Computer Science

Implementation Plan | Resources | High School Offerings

Computer Science, or the study of the theory, design, and engineering that form the basis for the design and use of computing systems, is quickly becoming a part of our global community.

What is Computer Science and Digital Literacy?

Computer Science (CS) is about designing and developing computing systems to solve problems. It is a science, so it is comprised of a set of ideas and principles.

  • Computational thinking is the heart of computer science as it pertains to K-12 CS education. Computational thinking is the thought processes involved in formulating a problem and expressing its solution(s) in such a way that a computer (or human) can effectively carry out. Computational thinking is both a set of skills and problem solving techniques. Applying computational thinking to problems typically results in the creation of computing systems, of which the most commonly recognized ones are computers (such as smartphones and laptops) and software applications (such as spreadsheet programs, search engines, websites and all the applications that run on your smartphone).
  • Coding (also called computer programming) is the creation of instructions in a form that can be used by a computer to create a software application.

Digital Literacy is the ability of a person to use computers and software applications to find, evaluate, create, and communicate information.

Digital literacy also includes:

  • how computing affects society (for example, privacy and security of information),
  • collaboration and research using applications and other digital tools, and
  • the ability to use computing systems such as devices and networks.  

The Massachusetts standards and framework for Digital Literacy and Computer Science (DL/CS) is here.

The video below provides an accessible explanation of the essential difference between using computers (digital literacy) and ideas and principles underlying computing (computer science):

What are examples of problems that Computer Science and Digital Literacy might solve?

Computer science can be used to solve: develop a solution that processes a bank’s credit card transactions each day and identifies the most likely fraud charges from the previous day. What characterizes this problem is:

  • It involves processing enormous amounts of data – more than a human can process. How the data is represented, organized, and analyzed are key elements of the problem.
  • The solution must be applied repeatedly, so the solution naturally involves applying it without human intervention.
  • The solution involves a set of rules and steps, called an algorithm, for how data is analyzed.
  • The human judgment of the rules for what constitutes fraudulent transactions must be represented in the algorithm.

Digital literacy can be used to solve: develop a presentation that explains the relationship between the most popular books published in 2015 and the National Book Award winners for that same year.  What characterizes this problem is:

  • The result, a presentation, is a digital artifact of information composed by a person from other data (popular books published in 2015 and National Book Award winners).
  • Digital tools (search engine and a software application to compose a presentation) are used to collect information and represent the solution.
  • The human interpretation and insight about the relationship between the two collections of books (book popularity versus award winning literature) is not represented as a set of rules to apply repeatedly and systematically to other collections but rather as a narrative or analysis.

students presenting an idea for a new winter jacket

More on Computational Thinking

Computational thinking is a set of skills and problem solving techniques that include:

  • Formulating problems in a way that enables us to use a computer and other tools to help solve them. This includes using abstractions and pattern recognition to represent the problem in new and different ways.
  • Logically organizing and analyzing data.
  • Representing data through abstractions such as models and simulations.
  • Breaking the problem down into smaller parts.
  • Approaching elements of the problem using programmatic thinking techniques such as iteration, symbolic representation, and logical operations.
  • Applying algorithmic thinking and reformulating the problem into a series of ordered steps.
  • Integrating modules that solve pieces of the problem into a complete solution.
  • Identifying, analyzing, and implementing possible solutions with the goal of achieving the most efficient and effective combination of steps and resources.
  • Understanding the consequences of scale, not only for reasons of efficiency but also for economic and social reasons.
  • Generalizing and transferring this problem-solving process to a wide variety of problems.

The elements of computational thinking included in the Massachusetts DL/CS frameworks are:

  • Abstraction: a process of reducing complexity by focusing on the main idea by hiding details irrelevant to the question at hand and bringing together related and useful details.
  • Algorithms: a sequence of precisely defined, reusable steps to solve a particular problem.
  • Data: collecting, managing, and interpreting a vast amount of raw data is part of the foundation of our information society and economy, and computational tools enable insights and decisions through new techniques for data collection and analysis.
  • Programming and Development: Programming articulates and communicates instructions in such a way that a computer can execute a task. Programming makes use of abstractions, algorithms, and data to implement ideas and solutions as executable code through an iterative process of design and debugging.
  • Modeling and Simulation: allow the representation and understanding of complex processes and phenomena. Computational models and simulations are created to analyze, identify patterns, and answer questions of real phenomena and hypothetical scenarios.

Bulletin board showing examples of computational thinking

The Commonwealth of Massachusetts has established the Massachusetts Curriculum Frameworks in Digital Literacy and Computer Science (2016) that define student learning across four “strands” or components:

Strand 1: Computing and Society (CAS)

Computing impacts all people and has global consequences on such things as communications, assistive technology, social networking, and the economy. Society values many different computing innovations. Computing is a key component of many professions and the content of digital media influences all citizens and society. Global disparities in access to the Internet, media, and devices may lead to an imbalance in equity and power. Principles of privacy, ethics, security, and copyright law influence digital safety and security, as well as interpersonal and societal relations.

  1. Safety and Security: Responsible citizens in the modern world apply principles of personal privacy and network security to the use of computing systems, software, the Internet, media, and data.
  2. Ethics and Laws:  Ethics include standards of conduct, fairness, and responsible use of the Internet, data, media, and computing devices. An understanding of principles and laws of software licenses, copyrights, and acceptable use policies are necessary to be responsible citizens in the modern world.
  3. Interpersonal and Societal Impact: The use of computing devices, assistive technologies and applying a computational perspective to solving problems changes the way people think, work, live, and play.  Computational approaches lead to new understanding, discoveries, challenges, and questions. Most professions rely on technology and advances in computing foster innovations in many fields. Differential access to principles of computing, computing devices, digital tools, and media in the global society, has potentially significant effects.

Students using an ipad and a chromebook

Strand 2: Digital Tools and Collaboration (DTC)

Digital tools are applications that produce, manipulate, or store data in a digital format (e.g., word processors, drawing programs, image/video/music editors, simulators, Computer-Aided Design (CAD) applications, publishing programs). Digital tools are critical for conducting research, communicating, collaborating and creating in social, work, and personal environments. The use of digital tools is integral to success in school and career.

  1. Digital Tools: Digital tools are used to create, manipulate, analyze, edit, publish, or develop artifacts. Individuals and groups identify, evaluate, select, and adapt new tools as they emerge.
  2. Collaboration and Communication: A variety of digital tools are used to work collaboratively anytime and anywhere, inside and outside the classroom, both synchronously and asynchronously, to develop artifacts or solve problems, contribute to the learning of others, and communicate.
  3. Research:  A variety of digital tools are used to conduct research, answer questions, and develop artifacts to facilitate learning and convey understanding. Access to the Internet and digital tools allows people to gather, evaluate (for validity, bias, relevance, accuracy, etc.), organize, analyze, and synthesize information, data and other media from a variety of sources. Effective use of information, data, and media requires consideration of validity, ethics, and attribution of sources.Student watching 3D printer work

Strand 3: Computing Systems (CS)

Computing systems are comprised of components, such as devices, software, interfaces, and networks that connect communities, devices, people, and services. They empower people to create, collaborate, and learn via human-computer partnerships. The design of many computing systems empowers people to debug, extend, and create new systems. Computing systems require troubleshooting and maintenance to consistently function.

  1. Computing Devices: Computing devices take many forms (e.g., car, insulin pump, or robot), not just personal computers, phones and tablets. They use many types of input data (collected via gesture, voice, movement, location, and other data) and run instructions in the form of programs to produce certain outputs (e.g., images, sounds, and actions). Computing will continue to be increasingly embedded into devices that are used in social, recreational, personal, and workplace environments.
  2. Human and Computer Partnerships:  Some tasks, such as repetitive tasks, or those involving complex computations, are best done by computers, while other tasks that do not have defined rules or are dynamic in nature, are best done by humans. Many tasks, however, are done through human-computer partnerships. Human-computer partnerships are characterized by the interaction of humans with devices and systems that work together to achieve a purpose or solution that would not be independently possible.  These skills and knowledge inform the decision to use technology in creating, innovating, or solving a problem or sub-problem.
  3. Networks: Network components, including hardware and software, carry out specific functions to connect computing devices, people, and services. The Internet facilitates global communication and relies on considerations of network functionality and security.
  4. Services: Data storage and computing occurs in many interconnected devices creating computational “services” that are the building blocks of computing systems. These services make use of data, algorithms, hardware, and connectivity that may occur on remote systems.

student using an chromebook

Strand 4: Computational Thinking (CT)

Computational thinking is a problem solving process that requires people to think in new ways to enable effective use of computing to solve problems and create solutions. The capacity of computers to rapidly and precisely execute programs makes new ways of designing, creating, and problem solving possible. Computational thinking is characterized by:

  • analyzing, modeling, and abstracting ideas and problems so people and computers can work with them;
  • designing solutions and algorithms to manipulate these abstract representations (including data structures); and
  • identifying and executing solutions (e.g., via programming).
  1. Abstraction: Abstraction is a process of reducing complexity by focusing on the main idea. By hiding details irrelevant to the question at hand and bringing together related and useful details, abstraction reduces complexity and allows one to focus on the problem.  This process creates a new representation which successfully reframes the problem.  At the most basic level of abstraction, data structures are used to represent information so that algorithms can operate on the data to create a result.
  2. Algorithms: An algorithm is a sequence of precisely defined steps to solve a particular problem. Carefully designed algorithms are essential to solving complex problems using computers. Effective algorithms are efficient, clear, reusable, and accurate.
  3. Data: Collecting, managing, and interpreting a vast amount of raw data is part of the foundation of our information society and economy. The storage of data impacts how data is used and accessed. Computational tools enable insights and decisions through new techniques for data collection and analysis.
  4. Programming and Development: Programming articulates and communicates instructions in such a way that a computer can execute a task. Programming makes use of abstractions, algorithms, and data to implement ideas and solutions as executable code through an iterative process of design and debugging. The process of creating software includes understanding the development life cycle, such as testing, usability, documentation, and release. Software development is the application of engineering principles (usually by a team) to produce useful, reliable software at scale and to integrate software into other engineered artifacts.
  5. Modeling and Simulation: Computational modeling and simulation help people to represent and understand complex processes and phenomena. Computational models and simulations are used, modified, and created to analyze, identify patterns, and answer questions of real phenomena and hypothetical scenarios.

Bulletin board called "Computational Thinking" and table with robots