You are on page 1of 32

V I E W B Y C O N C E P T

The Concepts and Practices of the K–12 Computer Science Framework

Core Concepts Core Practices

1. Computing Systems 1. Fostering an Inclusive Computing Culture


2. Networks and the Internet 2. Collaborating Around Computing
3. Data and Analysis 3. Recognizing and Defining Computational Problems
4. Algorithms and Programming 4. Developing and Using Abstractions
5. Impacts of Computing 5. Creating Computational Artifacts
6. Testing and Refining Computational Artifacts
7. Communicating About Computing

CC BY-NC-SA 4.0. This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. To view a copy of this license, visit https://creativecommons.org/licenses/by-nc-sa/4.0/
Authorization to reproduce this report in whole or in part is granted. Examples of programs and resources are provided for the reader’s convenience and do not represent an endorsement.

Suggested citation: K–12 Computer Science Framework. (2016). Framework view by concept. Retrieved from http://www.k12cs.org

Suggested attribution: “The K–12 Computer Science Framework, led by the Association for Computing Machinery, Code.org, Computer Science Teachers Association, Cyber Innovation Center, and National Math and Science Initiative
in partnership with states and districts, informed the development of this work.”

How to refer to the concepts: [Grade Band].[Core Concept].[Subconcept]


Example: K–2.Algorithms and Programming.Program Development

How to refer to the practices: P[Practice Number].[Core Practice].[Practice Statement Number]


Example: P4.Developing and Using Abstractions.1
Practices 1

Practices

Practice 1. Fostering an Inclusive Computing Culture

Overview: Building an inclusive and diverse computing culture requires strategies for incorporating perspectives
from people of different genders, ethnicities, and abilities. Incorporating these perspectives involves understanding
the personal, ethical, social, economic, and cultural contexts in which people operate. Considering the needs of
diverse users during the design process is essential to producing inclusive computational products.

By the end of Grade 12, students should be able to

1. Include the unique perspectives of others and reflect on one’s own perspectives when designing and developing computational products.

At all grade levels, students should recognize that the choices people make when they create artifacts are based on personal interests, experiences, and
needs. Young learners should begin to differentiate their technology preferences from the technology preferences of others. Initially, students should be
presented with perspectives from people with different backgrounds, ability levels, and points of view. As students progress, they should independently
seek diverse perspectives throughout the design process for the purpose of improving their computational artifacts. Students who are well-versed in
fostering an inclusive computing culture should be able to differentiate backgrounds and skillsets and know when to call upon others, such as to seek out
knowledge about potential end users or intentionally seek input from people with diverse backgrounds.

2. Address the needs of diverse end users during the design process to produce artifacts with broad accessibility and usability.

At any level, students should recognize that users of technology have different needs and preferences and that not everyone chooses to use, or is able
to use, the same technology products. For example, young learners, with teacher guidance, might compare a touchpad and a mouse to examine
differences in usability. As students progress, they should consider the preferences of people who might use their products. Students should be able to
evaluate the accessibility of a product to a broad group of end users, such as people with various disabilities. For example, they may notice that allowing
an end user to change font sizes and colors will make an interface usable for people with low vision. At the higher grades, students should become aware
of professionally accepted accessibility standards and should be able to evaluate computational artifacts for accessibility. Students should also begin to
identify potential bias during the design process to maximize accessibility in product design. For example, they can test an app and recommend to its
designers that it respond to verbal commands to accommodate users who are blind or have physical disabilities.
Practices 2

3. Employ self- and peer-advocacy to address bias in interactions, product design, and development methods.

After students have experience identifying diverse perspectives and including unique perspectives (P1.1), they should begin to employ self-advocacy
strategies, such as speaking for themselves if their needs are not met. As students progress, they should advocate for their peers when accommodations,
such as an assistive-technology peripheral device, are needed for someone to use a computational artifact. Eventually, students should regularly
advocate for both themselves and others.

Practice 2. Collaborating Around Computing

Overview: Collaborative computing is the process of performing a computational task by working in pairs and
on teams. Because it involves asking for the contributions and feedback of others, effective collaboration can lead
to better outcomes than working independently. Collaboration requires individuals to navigate and incorporate
diverse perspectives, conflicting ideas, disparate skills, and distinct personalities. Students should use collaborative
tools to effectively work together and to create complex artifacts.

By the end of Grade 12, students should be able to

1. Cultivate working relationships with individuals possessing diverse perspectives, skills, and personalities.

At any grade level, students should work collaboratively with others. Early on, they should learn strategies for working with team members who possess
varying individual strengths. For example, with teacher support, students should begin to give each team member opportunities to contribute and to
work with each other as co-learners. Eventually, students should become more sophisticated at applying strategies for mutual encouragement and
support. They should express their ideas with logical reasoning and find ways to reconcile differences cooperatively. For example, when they disagree,
they should ask others to explain their reasoning and work together to make respectful, mutual decisions. As they progress, students should use
methods for giving all group members a chance to participate. Older students should strive to improve team efficiency and effectiveness by regularly
evaluating group dynamics. They should use multiple strategies to make team dynamics more productive. For example, they can ask for the opinions of
quieter team members, minimize interruptions by more talkative members, and give individuals credit for their ideas and their work.
Practices 3

2. Create team norms, expectations, and equitable workloads to increase efficiency and effectiveness.

After students have had experience cultivating working relationships within teams (P2.1), they should gain experience working in particular team roles.
Early on, teachers may help guide this process by providing collaborative structures. For example, students may take turns in different roles on the
project, such as note taker, facilitator, or “driver” of the computer. As students progress, they should become less dependent on the teacher assigning
roles and become more adept at assigning roles within their teams. For example, they should decide together how to take turns in different roles.
Eventually, students should independently organize their own teams and create common goals, expectations, and equitable workloads. They should also
manage project workflow using agendas and timelines and should evaluate workflow to identify areas for improvement.

3. Solicit and incorporate feedback from, and provide constructive feedback to, team members and other stakeholders.

At any level, students should ask questions of others and listen to their opinions. Early on, with teacher scaffolding, students should seek help and share
ideas to achieve a particular purpose. As they progress in school, students should provide and receive feedback related to computing in constructive
ways. For example, pair programming is a collaborative process that promotes giving and receiving feedback. Older students should engage in active
listening by using questioning skills and should respond empathetically to others. As they progress, students should be able to receive feedback from
multiple peers and should be able to differentiate opinions. Eventually, students should seek contributors from various environments. These contributors
may include end users, experts, or general audiences from online forums.

4. Evaluate and select technological tools that can be used to collaborate on a project.

At any level, students should be able to use tools and methods for collaboration on a project. For example, in the early grades, students could
collaboratively brainstorm by writing on a whiteboard. As students progress, they should use technological collaboration tools to manage teamwork,
such as knowledge-sharing tools and online project spaces. They should also begin to make decisions about which tools would be best to use and when
to use them. Eventually, students should use different collaborative tools and methods to solicit input from not only team members and classmates but
also others, such as participants in online forums or local communities.
Practices 4

Practice 3. Recognizing and Defining Computational Problems

Overview: The ability to recognize appropriate and worthwhile opportunities to apply computation is a skill that
develops over time and is central to computing. Solving a problem with a computational approach requires defining
the problem, breaking it down into parts, and evaluating each part to determine whether a computational solution
is appropriate.

By the end of Grade 12, students should be able to

1. Identify complex, interdisciplinary, real-world problems that can be solved computationally.

At any level, students should be able to identify problems that have been solved computationally. For example, young students can discuss a technology
that has changed the world, such as email or mobile phones. As they progress, they should ask clarifying questions to understand whether a problem
or part of a problem can be solved using a computational approach. For example, before attempting to write an algorithm to sort a large list of
names, students may ask questions about how the names are entered and what type of sorting is desired. Older students should identify more complex
problems that involve multiple criteria and constraints. Eventually, students should be able to identify real-world problems that span multiple disciplines,
such as increasing bike safety with new helmet technology, and can be solved computationally.

2. Decompose complex real-world problems into manageable subproblems that could integrate existing solutions or procedures.

At any grade level, students should be able to break problems down into their component parts. In the early grade levels, students should focus on
breaking down simple problems. For example, in a visual programming environment, students could break down (or decompose) the steps needed to
draw a shape. As students progress, they should decompose larger problems into manageable smaller problems. For example, young students may think
of an animation as multiple scenes and thus create each scene independently. Students can also break down a program into subgoals: getting input from
the user, processing the data, and displaying the result to the user. Eventually, as students encounter complex real-world problems that span multiple
disciplines or social systems, they should decompose complex problems into manageable subproblems that could potentially be solved with programs or
procedures that already exist. For example, students could create an app to solve a community problem that connects to an online database through an
application programming interface (API).
Practices 5

3. Evaluate whether it is appropriate and feasible to solve a problem computationally.

After students have had some experience breaking problems down (P3.2) and identifying subproblems that can be solved computationally (P3.1), they
should begin to evaluate whether a computational solution is the most appropriate solution for a particular problem. For example, students might
question whether using a computer to determine whether someone is telling the truth would be advantageous. As students progress, they should
systematically evaluate the feasibility of using computational tools to solve given problems or subproblems, such as through a cost-benefit analysis.
Eventually, students should include more factors in their evaluations, such as how efficiency affects feasibility or whether a proposed approach raises
ethical concerns.

Practice 4. Developing and Using Abstractions

Overview: Abstractions are formed by identifying patterns and extracting common features from specific examples
to create generalizations. Using generalized solutions and parts of solutions designed for broad reuse simplifies the
development process by managing complexity.

By the end of Grade 12, students should be able to

1. Extract common features from a set of interrelated processes or complex phenomena.

Students at all grade levels should be able to recognize patterns. Young learners should be able to identify and describe repeated sequences in data
or code through analogy to visual patterns or physical sequences of objects. As they progress, students should identify patterns as opportunities for
abstraction, such as recognizing repeated patterns of code that could be more efficiently implemented as a loop. Eventually, students should extract
common features from more complex phenomena or processes. For example, students should be able to identify common features in multiple segments
of code and substitute a single segment that uses variables to account for the differences. In a procedure, the variables would take the form of
parameters. When working with data, students should be able to identify important aspects and find patterns in related data sets such as crop output,
fertilization methods, and climate conditions.
Practices 6

2. Evaluate existing technological functionalities and incorporate them into new designs.

At all levels, students should be able to use well-defined abstractions that hide complexity. Just as a car hides operating details, such as the mechanics
of the engine, a computer program’s “move” command relies on hidden details that cause an object to change location on the screen. As they progress,
students should incorporate predefined functions into their designs, understanding that they do not need to know the underlying implementation
details of the abstractions that they use. Eventually, students should understand the advantages of, and be comfortable using, existing functionalities
(abstractions) including technological resources created by other people, such as libraries and application programming interfaces (APIs). Students should
be able to evaluate existing abstractions to determine which should be incorporated into designs and how they should be incorporated. For example,
students could build powerful apps by incorporating existing services, such as online databases that return geolocation coordinates of street names or
food nutrition information.

3. Create modules and develop points of interaction that can apply to multiple situations and reduce complexity.

After students have had some experience identifying patterns (P4.1), decomposing problems (P3.2), using abstractions (P4.2), and taking advantage of
existing resources (P4.2), they should begin to develop their own abstractions. As they progress, students should take advantage of opportunities to
develop generalizable modules. For example, students could write more efficient programs by designing procedures that are used multiple times in the
program. These procedures can be generalized by defining parameters that create different outputs for a wide range of inputs. Later on, students should
be able to design systems of interacting modules, each with a well-defined role, that coordinate to accomplish a common goal. Within an object-oriented
programming context, module design may include defining the interactions among objects. At this stage, these modules, which combine both data and
procedures, can be designed and documented for reuse in other programs. Additionally, students can design points of interaction, such as a simple user
interface, either text or graphical, that reduces the complexity of a solution and hides lower-level implementation details.

4. Model phenomena and processes and simulate systems to understand and evaluate potential outcomes.

Students at all grade levels should be able to represent patterns, processes, or phenomena. With guidance, young students can draw pictures to
describe a simple pattern, such as sunrise and sunset, or show the stages in a process, such as brushing your teeth. They can also create an animation
to model a phenomenon, such as evaporation. As they progress, students should understand that computers can model real-world phenomena, and
they should use existing computer simulations to learn about real-world systems. For example, they may use a preprogrammed model to explore how
parameters affect a system, such as how rapidly a disease spreads. Older students should model phenomena as systems, with rules governing the
interactions within the system. Students should analyze and evaluate these models against real-world observations. For example, students might
create a simple producer–consumer ecosystem model using a programming tool. Eventually, they could progress to creating more complex and realistic
interactions between species, such as predation, competition, or symbiosis, and evaluate the model based on data gathered from nature.
Practices 7

Practice 5. Creating Computational Artifacts

Overview: The process of developing computational artifacts embraces both creative expression and the
exploration of ideas to create prototypes and solve computational problems. Students create artifacts that are
personally relevant or beneficial to their community and beyond. Computational artifacts can be created by
combining and modifying existing artifacts or by developing new artifacts. Examples of computational artifacts
include programs, simulations, visualizations, digital animations, robotic systems, and apps.

By the end of Grade 12, students should be able to

1. Plan the development of a computational artifact using an iterative process that includes reflection on and modification of the plan, taking into account
key features, time and resource constraints, and user expectations.

At any grade level, students should participate in project planning and the creation of brainstorming documents. The youngest students may do so with
the help of teachers. With scaffolding, students should gain greater independence and sophistication in the planning, design, and evaluation of artifacts.
As learning progresses, students should systematically plan the development of a program or artifact and intentionally apply computational techniques,
such as decomposition and abstraction, along with knowledge about existing approaches to artifact design. Students should be capable of reflecting on
and, if necessary, modifying the plan to accommodate end goals.

2. Create a computational artifact for practical intent, personal expression, or to address a societal issue.

Students at all grade levels should develop artifacts in response to a task or a computational problem. At the earliest grade levels, students should be
able to choose from a set of given commands to create simple animated stories or solve pre-existing problems. Younger students should focus on
artifacts of personal importance. As they progress, student expressions should become more complex and of increasingly broader significance.
Eventually, students should engage in independent, systematic use of design processes to create artifacts that solve problems with social significance
by seeking input from broad audiences.
Practices 8

3. Modify an existing artifact to improve or customize it.

At all grade levels, students should be able to examine existing artifacts to understand what they do. As they progress, students should attempt to use
existing solutions to accomplish a desired goal. For example, students could attach a programmable light sensor to a physical artifact they have created
to make it respond to light. Later on, they should modify or remix parts of existing programs to develop something new or to add more advanced
features and complexity. For example, students could modify prewritten code from a single-player game to create a two-player game with slightly
different rules.

Practice 6. Testing and Refining Computational Artifacts

Overview: Testing and refinement is the deliberate and iterative process of improving a computational artifact.
This process includes debugging (identifying and fixing errors) and comparing actual outcomes to intended
outcomes. Students also respond to the changing needs and expectations of end users and improve the
performance, reliability, usability, and accessibility of artifacts.

By the end of Grade 12, students should be able to

1. Systematically test computational artifacts by considering all scenarios and using test cases.

At any grade level, students should be able to compare results to intended outcomes. Young students should verify whether given criteria and
constraints have been met. As students progress, they should test computational artifacts by considering potential errors, such as what will happen if a
user enters invalid input. Eventually, testing should become a deliberate process that is more iterative, systematic, and proactive. Older students should
be able to anticipate errors and use that knowledge to drive development. For example, students can test their program with inputs associated with all
potential scenarios.

2. Identify and fix errors using a systematic process.

At any grade level, students should be able to identify and fix errors in programs (debugging) and use strategies to solve problems with computing
systems (troubleshooting). Young students could use trial and error to fix simple errors. For example, a student may try reordering the sequence of
commands in a program. In a hardware context, students could try to fix a device by resetting it or checking whether it is connected to a network. As
Practices 9

students progress, they should become more adept at debugging programs and begin to consider logic errors: cases in which a program works, but not
as desired. In this way, students will examine and correct their own thinking. For example, they might step through their program, line by line, to identify
a loop that does not terminate as expected. Eventually, older students should progress to using more complex strategies for identifying and fixing errors,
such as printing the value of a counter variable while a loop is running to determine how many times the loop runs.

3. Evaluate and refine a computational artifact multiple times to enhance its performance, reliability, usability, and accessibility.

After students have gained experience testing (P6.2), debugging, and revising (P6.1), they should begin to evaluate and refine their computational
artifacts. As students progress, the process of evaluation and refinement should focus on improving performance and reliability. For example, students
could observe a robot in a variety of lighting conditions to determine that a light sensor should be less sensitive. Later on, evaluation and refinement
should become an iterative process that also encompasses making artifacts more usable and accessible (P1.2). For example, students can incorporate
feedback from a variety of end users to help guide the size and placement of menus and buttons in a user interface.

Practice 7. Communicating About Computing

Overview: Communication involves personal expression and exchanging ideas with others. In computer science,
students communicate with diverse audiences about the use and effects of computation and the appropriateness
of computational choices. Students write clear comments, document their work, and communicate their ideas
through multiple forms of media. Clear communication includes using precise language and carefully considering
possible audiences.

By the end of Grade 12, students should be able to

1. Select, organize, and interpret large data sets from multiple sources to support a claim.

At any grade level, students should be able to refer to data when communicating an idea. Early on, students should, with guidance, present basic data
through the use of visual representations, such as storyboards, flowcharts, and graphs. As students progress, they should work with larger data sets
and organize the data in those larger sets to make interpreting and communicating it to others easier, such as through the creation of basic data
representations. Eventually, students should be able to select relevant data from large or complex data sets in support of a claim or to communicate
the information in a more sophisticated manner.
Practices 10

2. Describe, justify, and document computational processes and solutions using appropriate terminology consistent with the intended audience
and purpose.

At any grade level, students should be able to talk about choices they make while designing a computational artifact. Early on, they should use language
that articulates what they are doing and identifies devices and concepts they are using with correct terminology (e.g., program, input, and debug).
Younger students should identify the goals and expected outcomes of their solutions. Along the way, students should provide documentation for end
users that explains their artifacts and how they function, and they should both give and receive feedback. For example, students could provide a project
overview and ask for input from users. As students progress, they should incorporate clear comments in their product and document their process using
text, graphics, presentations, and demonstrations.

3. Articulate ideas responsibly by observing intellectual property rights and giving appropriate attribution.

All students should be able to explain the concepts of ownership and sharing. Early on, students should apply these concepts to computational ideas
and creations. They should identify instances of remixing, when ideas are borrowed and iterated upon, and give proper attribution. They should
also recognize the contributions of collaborators. Eventually, students should consider common licenses that place limitations or restrictions on the
use of computational artifacts. For example, a downloaded image may have restrictions that prohibit modification of an image or using it for
commercial purposes.
Concepts — Computing Systems 11

Concepts

Computing Systems

Overview: People interact with a wide variety of computing devices that collect, store, analyze, and act upon information in ways that can affect human capabilities
both positively and negatively. The physical components (hardware) and instructions (software) that make up a computing system communicate and process
information in digital form. An understanding of hardware and software is useful when troubleshooting a computing system that does not work as intended.

By the end of Grade 2: By the end of Grade 5: By the end of Grade 8: By the end of Grade 12:

DEVICES
Overview: Many everyday objects contain computational components that sense and act on the world. In early grades, students learn features and applications
of common computing devices. As they progress, students learn about connected systems and how the interaction between humans and devices influences
design decisions.

People use computing devices to Computing devices may be connect- The interaction between humans Computing devices are often inte-
perform a variety of tasks accurately ed to other devices or components to and computing devices presents grated with other systems, including
and quickly. Computing devices extend their capabilities, such as advantages, disadvantages, and biological, mechanical, and social
interpret and follow the instructions sensing and sending information. unintended consequences. The study systems. These devices can share
they are given literally. Connections can take many forms, of human–computer interaction can data with one another. The usability,
such as physical or wireless. Together, improve the design of devices and dependability, security, and accessibil-
Computing devices can be used to do a devices and components form a extend the abilities of humans. ity of these devices, and the systems
number of things, such as play music, system of interdependent parts that they are integrated with, are import-
create documents, and send pictures. interact for a common purpose. Accessibility is an important consider- ant considerations in their design as
Computing devices are also very ation in the design of any computing they evolve.
precise. For example, computers can Computing devices often depend on system. For example, assistive devices
perform multiple complex calculations other devices or components. For provide capabilities such as scanning A medical device can be embedded
much faster and with greater accuracy example, a robot depends on a written information and converting it to inside a person to monitor and regulate
than people. While people may diverge physically attached light sensor to speech. The use of computing devices his or her health, a hearing aid (a type
from instructions given to them, detect changes in brightness, whereas also has potential consequences, such as of assistive device) can filter out certain
computers will follow instructions the light sensor depends on the robot in the areas of privacy and security. For frequencies and magnify others, a
exactly as they are given, even if they for power. A smartphone can use example, GPS-enabled smartphones can monitoring device installed in a motor
do not achieve the intended result. wirelessly connected headphones to provide directions to a destination yet vehicle can track a person’s driving
send audio information, and the unintentionally allow a person to be patterns and habits, and a facial
Crosscutting Concept: Human– headphones are useless without a tracked for malicious purposes. Also, the recognition device can be integrated
Computer Interaction music source. attention required to follow GPS into a security system to identify a
directions can lead to accidents due to person. The devices embedded in
Connections Within Framework: K–2. Crosscutting Concepts: Communication distracted driving. everyday objects, vehicles, and
Algorithms and Programming.Control; and Coordination; System Relationships buildings allow them to collect and
K–2.Algorithms and Programming. Crosscutting Concepts: Human– exchange data, creating a network (e.g.,
Modularity; 3–5.Algorithms and Computer Interaction; Privacy and Internet of Things). The creation of
Programming.Control Security integrated or embedded systems is not
an expectation at this level.

Table continued on next page


Concepts — Computing Systems 12

Table continued from previous page

Connection Within Framework: 3–5. Connection Within Framework: Crosscutting Concepts: System
Networks and the Internet.Network 3–5.Impacts of Computing.Culture Relationships; Human–Computer
Communication and Organization Interaction; Privacy and Security

Connections Within Framework: 9–12.


Networks and the Internet.Network
Communication and Organization;
9–12. Data and Analysis.Collection;
9–12. Impacts of Computing.Culture
Concepts — Computing Systems 13

HARDWARE AND SOFTWARE


Overview: Computing systems use hardware and software to communicate and process information in digital form. In early grades, students learn how systems use
both hardware and software to represent and process information. As they progress, students gain a deeper understanding of the interaction between hardware and
software at multiple levels within computing systems.

A computing system is composed of Hardware and software work together Hardware and software determine Levels of interaction exist between the
hardware and software. Hardware as a system to accomplish tasks, such a computing system’s capability to hardware, software, and user of a
consists of physical components, as sending, receiving, processing, and store and process information. computing system. The most common
while software provides instructions storing units of information as bits. The design or selection of a levels of software that a user interacts
for the system. These instructions Bits serve as the basic unit of data in computing system involves multiple with include system software and
are represented in a form that a computing systems and can represent considerations and potential applications. System software controls
computer can understand. a variety of information. tradeoffs, such as functionality, the flow of information between
cost, size, speed, accessibility, hardware components used for input,
Examples of hardware include screens For example, a photo filter application and aesthetics. output, storage, and processing.
to display information and buttons, (software) works with a camera (hard-
keys, or dials to enter information. ware) to produce a variety of effects The capability of a computing system is At its most basic level, a computer is
Software applications are programs with that change the appearance of an determined by the processor speed, composed of physical hardware and
specific purposes, such as a web image. This image is transmitted and storage capacity, and data transmission electrical impulses. Multiple layers of
browser or game. A person may use a stored as bits, or binary digits, which are speed, as well as other factors. Select- software are built upon the hardware
mouse (hardware) to click on a button commonly represented as 0s and 1s. All ing one computing system over another and interact with the layers above and
displayed in a web browser (software) to information, including instructions, is involves balancing a number of below them to reduce complexity.
navigate to a new web page. Comput- encoded as bits. Knowledge of the tradeoffs. For example, selecting a System software manages a computing
ing systems convert instructions, such as inner workings of hardware and faster computer with more memory device’s resources so that software can
“print,” “save,” or “crop,” into a special software, number systems such as involves the tradeoffs of speed and interact with hardware. For example, text
language that the computer can binary or hexadecimal, and how bits are cost. Choosing one operating system editing software interacts with the
understand. At this level, understanding represented in physical media are not over another involves the tradeoff of operating system to receive input from
that computer information is encoded is priorities at this level. capability and compatibility, such as the keyboard, convert the input to bits
appropriate, but the explicit under- which apps can be installed or which for storage, and interpret the bits as
standing of “bits” is reserved for later Crosscutting Concepts: devices can be connected. Designing a readable text to display on the monitor.
grade levels. Communication and Coordination; robot requires choosing both hardware System software is used on many
Abstraction and software and may involve a tradeoff different types of devices, such as
Crosscutting Concept: Communication between the potential for customization smart TVs, assistive devices, virtual
and Coordination Connection Within Framework: 3–5. and ease of use. The use of a device components, cloud components,
Data and Analysis.Storage that connects wirelessly through a and drones. Knowledge of specific,
Connections Within Framework: K–2. Bluetooth connection versus a device advanced terms for computer
Algorithms and Programming. that connects physically through a USB architecture, such as BIOS, kernel, or
Algorithms; K–2.Algorithms and connection involves a tradeoff between bus, is not expected at this level.
Programming.Control mobility and the need for an additional Crosscutting Concepts: Abstraction;
power source for the wireless device. Communication and Coordination;
System Relationships
Crosscutting Concepts: System
Relationships; Communication and Connections Within Framework: 9–12.
Coordination Networks and the Internet.Network
Communication and Organization;
Connection Within Framework: 6–8. 9–12. Algorithms and Programming.
Data and Analysis.Collection Variables; 9–12.Algorithms and
Programming. Modularity
Concepts — Computing Systems 14

TROUBLESHOOTING
Overview: When computing systems do not work as intended, troubleshooting strategies help people solve the problem. In early grades, students learn that
identifying the problem is the first step to fixing it. As they progress, students learn systematic problem-solving processes and how to develop their own
troubleshooting strategies based on a deeper understanding of how computing systems work.

Computing systems might not work Computing systems share similarities, Comprehensive troubleshooting Troubleshooting complex problems
as expected because of hardware or such as the use of power, data, and requires knowledge of how computing involves the use of multiple sources
software problems. Clearly describing memory. Common troubleshooting devices and components work and when researching, evaluating, and
a problem is the first step toward strategies, such as checking that interact. A systematic process will implementing potential solutions.
finding a solution. power is available, checking that identify the source of a problem, Troubleshooting also relies on
physical and wireless connections are whether within a device or in a larger experience, such as when people
Problems with computing systems have working, and clearing out the working system of connected devices. recognize that a problem is similar
different causes, such as hardware memory by restarting programs or to one they have seen before or
settings, programming errors, or faulty devices, are effective for many Just as pilots use checklists to trouble- adapt solutions that have worked
connections to other devices. Develop- systems. shoot problems with aircraft systems, in the past.
mentally appropriate ways to solve people can use a similar, structured
problems include debugging simple Although computing systems may vary, process to troubleshoot problems with Troubleshooting information may come
programs and seeking help by clearly common troubleshooting strategies can computing systems and ensure that from external sources, such as user
describing a problem (for example, “The be used on them, such as checking potential solutions are not overlooked. manuals, online technical forums, or
computer won’t turn on,” “The pointer connections and power or swapping a Because a computing device may manufacturer websites. Distinguishing
on the screen won’t move,” or “I lost the working part in place of a potentially interact with interconnected devices between reliable and unreliable sources
web page.”) Knowing how to diagnose defective part. Rebooting a machine within a system, problems may not be is important. Examples of complex
or troubleshoot a problem with a is commonly effective because it due to the specific computing device troubleshooting strategies include
computing system is not expected. resets the computer. Because itself but to devices connected to it. resolving connectivity problems,
computing devices are composed Examples of system components that adjusting system configurations and
Crosscutting Concept: System of an interconnected system of hard- may need troubleshooting are physical settings, ensuring hardware and
Relationships ware and software, troubleshooting and wireless connections, peripheral software compatibility, and transferring
strategies may need to address both. equipment, and network hardware. data from one device to another.
Connection Within Framework: 3–5. Strategies for troubleshooting a
Algorithms and Programming.Program Crosscutting Concepts: System computing system and debugging a Crosscutting Concepts: Abstraction;
Development Relationships; Abstraction program include some problem-solving System Relationships
steps that are similar.
Connection Within Framework: 3–5. Connection Within Framework: 9–12.
Networks and the Internet.Network Crosscutting Concepts: System Algorithms and Programming.Program
Communication and Organization Relationships; Abstraction Development

Connection Within Framework:


6–8.Algorithms and Programming.
Algorithms
Concepts — Networks and the Internet 15

Networks and the Internet

Overview: Computing devices typically do not operate in isolation. Networks connect computing devices to share information and resources and are an increasingly
integral part of computing. Networks and communication systems provide greater connectivity in the computing world by providing fast, secure communication and
facilitating innovation.

By the end of Grade 2: By the end of Grade 5: By the end of Grade 8: By the end of Grade 12:

NETWORK COMMUNICATION AND ORGANIZATION


Overview: Computing devices communicate with each other across networks to share information. In early grades, students learn that computers connect them to
other people, places, and things around the world. As they progress, students gain a deeper understanding of how information is sent and received across different
types of networks.

Computer networks can be used to Information needs a physical or Computers send and receive informa- Network topology is determined, in
connect people to other people, wireless path to travel to be sent and tion based on a set of rules called part, by how many devices can be
places, information, and ideas. The received, and some paths are better protocols. Protocols define how supported. Each device is assigned
Internet enables people to connect than others. Information is broken messages between computers are an address that uniquely identifies it
with others worldwide through many into smaller pieces, called packets, structured and sent. Considerations on the network. The scalability and
different points of connection. that are sent independently and of security, speed, and reliability are reliability of the Internet are enabled
reassembled at the destination. used to determine the best path to by the hierarchy and redundancy
Small, wireless devices, such as cell Routers and switches are used to send and receive data. in networks.
phones, communicate with one another properly send packets across paths to
through a series of intermediary connec- their destinations. Protocols allow devices with different Large-scale coordination occurs among
tion points, such as cellular towers. This hardware and software to communicate, many different machines across multiple
coordination among many computing There are physical paths for communi- in the way that people with different paths every time a web page is opened
devices allows a person to voice call a cating information, such as ethernet native languages may use a common or an image is viewed online. Devices
friend or video chat with a family cables, and wireless paths, such as language for business. Protocols describe on the Internet are assigned an Internet
member. Details about the connection Wi-Fi. Often, information travels on a established commands and responses Protocol (IP) address to allow them to
points are not expected at this level. combination of physical and wireless between computers on a network, such communicate. The design decisions
paths; for example, wireless paths as requesting data or sending an image. that directed the coordination among
Crosscutting Concepts: Communication originate from a physical connection There are many examples of protocols systems composing the Internet also
and Coordination; Human–Computer point. The choice of device and type of including TCP/IP (Transmission Control allowed for scalability and reliability.
Interaction connection will affect the path informa- Protocol/Internet Protocol) and HTTP Scalability is the capability of a network
tion travels and the potential bandwidth (Hypertext Transfer Protocol), which serve to handle a growing amount of work or
Connections Within Framework: (the capacity to transmit data or bits in a as the foundation for formatting and its potential to be enlarged to accom-
K–2.Impacts of Computing. Social given timeframe). Packets and packet transmitting messages and data, modate that growth.
Interactions; K–2.Data and Analysis. switching (the method used to send including pages on the World Wide Web.
Collection; 3–5.Impacts of Computing. packets) are the foundation for further Routers also implement protocols to Crosscutting Concepts:
Social Interactions understanding of Internet concepts. At record the fastest and most reliable paths Communication and Coordination;
by sending small packets as tests. The Abstraction; System Relationships
this level, the priority is understanding
priority at this grade level is understand-
the flow of information, rather than
ing the purpose of protocols, while
details of how routers and switches
knowing details of how specific protocols
work and how to compare paths.
work is not expected.

Table continued on next page


Concepts — Networks and the Internet 16

Table continued from previous page

Crosscutting Concept: Communication Crosscutting Concepts: Communication Connections Within Framework: 9–12.
and Coordination and Coordination; Abstraction; Privacy and Computing Systems.Devices; 9–12.
Security Computing Systems.Hardware and
Connections Within Framework: 3–5. Software; 9–12.Impacts of Computing.
Computing Systems.Devices; 3–5. Connection Within Framework: 6–8. Social Interactions
Computing Systems.Troubleshooting Data and Analysis.Storage
Concepts — Networks and the Internet 17

CYBERSECURITY
Overview: Transmitting information securely across networks requires appropriate protection. In early grades, students learn how to protect their personal
information. As they progress, students learn increasingly complex ways to protect information sent across networks.

Connecting devices to a network or Information can be protected using The information sent and received Network security depends on a
the Internet provides great benefit, various security measures. These across networks can be protected combination of hardware, software,
care must be taken to use authentica- measures can be physical and/or from unauthorized access and and practices that control access to
tion measures, such as strong digital. modification in a variety of ways, such data and systems. The needs of users
passwords, to protect devices and as encryption to maintain its confi- and the sensitivity of data determine
information from unauthorized An offline backup of data is useful in dentiality and restricted access to the level of security implemented.
access. case of an online security breach. A maintain its integrity.
variety of software applications can Security measures may include physical
Authentication is the ability to verify the monitor and address viruses and Security measures to safeguard online security tokens, two-factor authentica-
identity of a person or entity. User- malware and alert users to their information proactively address the tion, and biometric verification, but
names and passwords, such as those on presence. Security measures can be threat of breaches to personal and every security measure involves
computing devices or Wi-Fi networks, applied to a network or individual private data. tradeoffs between the accessibility and
provide a way of authenticating a user’s devices on a network. Confidentiality security of the system. Potential security
identity. Because computers make refers to the protection of information The integrity of information involves problems, such as denial-of-service
guessing weak passwords easy, strong from disclosure to unauthorized ensuring its consistency, accuracy, and attacks, ransomware, viruses, worms,
passwords have characteristics that individuals, systems, or entities. trustworthiness. For example, HTTPS spyware, and phishing, exemplify why
make them more time-intensive to (Hypertext Transfer Protocol Secure) is sensitive data should be securely stored
break. Crosscutting Concept: Privacy and an example of a security measure to and transmitted. The timely and reliable
Security protect data transmissions. It provides a access to data and information services
Crosscutting Concepts: Privacy and more secure browser connection than by authorized users, referred to as
Security; Communication and Connection Within Framework: 3–5. availability, is ensured through ade-
HTTP (Hypertext Transfer Protocol)
Coordination Impacts of Computing.Safety, Law, and quate bandwidth, backups, and other
because it encrypts data being sent
Ethics measures.
between websites. At this level,
Connection Within Framework: K–2. understanding the difference between
Impacts of Computing.Safety, Law, and HTTP and HTTPS, but not how the Crosscutting Concepts: Privacy and
Ethics technologies work, is important. Security; System Relationships; Human–
Computer Interaction
Crosscutting Concept: Privacy and
Security Connection Within Framework: 9–12.
Algorithms and Programming.
Connection Within Framework: 6–8. Algorithms
Impacts of Computing.Safety, Law, and
Ethics
Concepts — Data and Analysis 18

Data and Analysis

Overview: Computing systems exist to process data. The amount of digital data generated in the world is rapidly expanding, so the need to process data effectively is
increasingly important. Data is collected and stored so that it can be analyzed to better understand the world and make more accurate predictions.

By the end of Grade 2: By the end of Grade 5: By the end of Grade 8: By the end of Grade 12:

COLLECTION
Overview: Data is collected with both computational and noncomputational tools and processes. In early grades, students learn how data about themselves and
their world is collected and used. As they progress, students learn the effects of collecting data with computational and automated tools.

Everyday digital devices collect and People select digital tools for the People design algorithms and tools Data is constantly collected or
display data over time. The collection collection of data based on what is to automate the collection of data by generated through automated
and use of data about individuals being observed and how the data will computers. When data collection is processes that are not always evident,
and the world around them is a be used. For example, a digital automated, data is sampled and raising privacy concerns. The different
routine part of life and influences thermometer is used to measure converted into a form that a comput- collection methods and tools that are
how people live. temperature and a GPS sensor is er can process. For example, data used influence the amount and
used to track locations. from an analog sensor must be quality of the data that is observed
Many everyday objects, such as cell converted into a digital form. The and recorded.
phones, digital toys, and cars, can There is a wide array of digital data method used to automate data
contain tools (such as sensors) and collection tools; however, only some are collection is influenced by the Data can be collected and aggregated
computers to collect and display data appropriate for certain types of data. availability of tools and the intended across millions of people, even when
from their surroundings. Tools are chosen based upon the type of they are not actively engaging with or
use of the data. physically near the data collection
measurement they use as well as the
Crosscutting Concept: Human– type of data people wish to observe. Data can be collected from either devices. This automated and nonevident
Computer Interaction Data scientists use the term observation individual devices or systems. The collection can raise privacy concerns,
to describe data collection, whether or method of data collection (for example, such as social media sites mining an
Connection Within Framework: K–2. not a human is involved in the collection. surveys versus sensor data) can affect account even when the user is not
Networks and the Internet.Network the accuracy and precision of the data. online. Other examples include surveil-
Communication and Organization Crosscutting Concept: Abstraction Some types of data are more difficult to lance video used in a store to track
collect than others. For example, customers for security or information
Connections Within Framework: 3–5. emotions must be subjectively evaluat- about purchase habits or the monitoring
Algorithms and Programming.Variables; ed on an individual basis and are thus of road traffic to change signals in real
3–5.Algorithms and Programming. difficult to measure across a population. time to improve road efficiency without
Algorithms Access to tools may be limited by drivers being aware. Methods and
factors including cost, training, and devices for collecting data can differ by
availability. the amount of storage required, level of
detail collected, and sampling rates. For
Crosscutting Concept: Human– example, ultrasonic range finders are
Computer Interaction good at long distances and are very
accurate, as compared to infrared range
Connection Within Framework: 6–8. finders, which are better for short
Computing Systems.Hardware and distances. Computer models and
Software simulations produce large amounts of
data used in analysis.

Table continued on next page


Concepts — Data and Analysis 19

Table continued from previous page

Crosscutting Concept: Privacy and


Security

Connections Within Framework: 9–12.


Computing Systems.Devices; 9–12.
Impacts of Computing.Safety, Law,
and Ethics
Concepts — Data and Analysis 20

STORAGE
Overview: Core functions of computers are storing, representing, and retrieving data. In early grades, students learn how data is stored on computers. As they
progress, students learn how to evaluate different storage methods, including the tradeoffs associated with those methods.

Computers store data that can be Different software tools used to Applications store data as a represen- Data can be composed of multiple
retrieved later. Identical copies of access data may store the data tation. Representations occur at data elements that relate to one
data can be made and stored in differently. The type of data being multiple levels, from the arrangement another. For example, population data
multiple locations for a variety stored and the level of detail repre- of information into organized formats may contain information about age,
of reasons, such as to protect sented by that data affect the storage (such as tables in software) to the gender, and height. People make
against loss. requirements. physical storage of bits. The software choices about how data elements are
tools used to access information organized and where data is stored.
For example, pictures can be stored on Music, images, video, and text require translate the low-level representation These choices affect cost, speed,
a cell phone and viewed later, or different amounts of storage. Video will of bits into a form understandable reliability, accessibility, privacy, and
progress in a game can be saved and often require more storage than music by people. integrity.
continued later. The advantage of or images alone because video
recording data digitally, such as in combines both. For example, two Computers can represent a variety of A data model combines data elements
images or a spreadsheet, versus on a pictures of the same object can require data using discrete values at many and describes the relationships among
physical space, such as a whiteboard, is different amounts of storage based different levels, such as characters, the elements. Data models represent
that old data (states of data collected upon their resolution. Different software numbers, and bits. Text is represented choices made about which data
over time) can be easily retrieved, tools used to access and store data may using character encoding standards like elements are available and feasible to
copied, and stored in multiple places. add additional data about the data UNICODE, which represent text as collect. Storing data locally may increase
This is why personal information put (metadata), which results in different numbers. All numbers and other types security but decrease accessibility.
online can persist for a long time. storage requirements. An image file is a of data are encoded and stored as bits Storing data on a cloud-based,
Understanding local versus online designed representation of a real-world on a physical medium. Lossy and redundant storage system may increase
storage is not expected at this level. image and can be opened by either an lossless data formats are used to store accessibility but reduce security, as it can
image editor or a text editor, but the different levels of detail, but whenever be accessed online easily, even by
Crosscutting Concepts: System text editor does not know how to digital data is used to represent analog unauthorized users. Data redundancies
Relationships; Privacy and Security translate the data into the image. measurements, such as temperature or and backups are useful for restoring data
Understanding binary or 8-bit versus sound, information is lost. Representa- when integrity is compromised.
Connections Within Framework: 16-bit representations is not expected tions, or file formats, can contain
K–2.Impacts of Computing.Social at this level. metadata that is not always visible to Crosscutting Concepts: System
Interactions; K–2.Algorithms and the average user. There are privacy Relationships; Privacy and Security;
Programming.Variables Crosscutting Concept: System implications when files contain metada- Communication and Coordination
Relationships ta, such as the location where a
photograph was taken. Connection Within Framework:
Connections Within Framework: 9–12.Algorithms and Programming.
3–5.Computing Systems.Hardware and Crosscutting Concept: Abstraction Algorithms
Software; 3–5.Algorithms and
Programming.Variables Connections Within Framework: 6–8.
Algorithms and Programming. Variables;
6–8.Networks and the Internet.Network
Communication and Organization
Concepts — Data and Analysis 21

VISUALIZATION AND TRANSFORMATION


Overview: Data is transformed throughout the process of collection, digital representation, and analysis. In early grades, students learn how transformations can be
used to simplify data. As they progress, students learn about more complex operations to discover patterns and trends and communicate them to others.

Data can be displayed for communi- People select aspects and subsets of Data can be transformed to remove People transform, generalize, simplify,
cation in many ways. People use data to be transformed, organized, errors, highlight or expose relation- and present large data sets in
computers to transform data into new clustered, and categorized to provide ships, and/or make it easier for different ways to influence how other
forms, such as graphs and charts. different views and communicate computers to process. people interpret and understand the
insights gained from the data. underlying information. Examples
Examples of displays include picture The cleaning of data is an important include visualization, aggregation,
graphs, bar charts, or histograms. A Data is often sorted or grouped to transformation for reducing noise and rearrangement, and application of
data table that records a tally of provide additional clarity. Data points errors. An example of noise would be mathematical operations.
students’ favorite colors can be can be clustered by a number of the first few seconds of a sample in
displayed as a chart on a computer. commonalities without a category label. which an audio sensor collects extrane- Visualizations, such as infographics, can
For example, a series of days might be ous sound created by the user position- obscure data and positively or negative-
Crosscutting Concept: Abstraction grouped by temperature, air pressure, ing the sensor. Errors in survey data are ly influence people’s views of the data.
and humidity and later categorized as cleaned up to remove spurious or People use software tools or program-
Connection Within Framework: K–2. fair, mild, or extreme weather. The same inappropriate responses. An example of ming to create powerful, interactive
Impacts of Computing. Social data could be manipulated in different a transformation that highlights a data visualizations and perform a range
Interactions ways to emphasize particular aspects or relationship is representing two groups of mathematical operations to transform
parts of the data set. For example, (such as males and females) as percent- and analyze data. Examples of mathe-
when working with a data set of popular ages of a whole instead of as individual matical operations include those related
songs, data could be shown by genre counts. Computational biologists use to aggregation, such as summing and
or artist. Simple data visualizations compression algorithms to make averaging. The same data set can be
include graphs and charts, infographics, extremely large data sets of genetic visualized or transformed to support
and ratios that represent statistical information more manageable and the multiple sides of an issue.
characteristics of the data. analysis more efficient.
Crosscutting Concept: Abstraction:
Crosscutting Concept: Abstraction: Crosscutting Concept: Abstraction Human–Computer Interaction
Human–Computer Interaction
Connection Within Framework: Connection Within Framework:
Connection Within Framework: 6–8.Algorithms and Programming. 6–8.Impacts of Computing.Social
6–8.Impacts of Computing.Social Algorithms Interactions
Interactions
Concepts — Data and Analysis 22

INFERENCE AND MODELS


Overview: Data science is one example where computer science serves many fields. Computer science and science use data to make inferences, theories, or
predictions based upon the data collected from users or simulations. In early grades, students learn about the use of data to make simple predictions. As they
progress, students learn how models and simulations can be used to examine theories and understand systems and how predictions and inferences are affected by
more complex and larger data sets.

Data can be used to make inferences The accuracy of inferences and Computer models can be used to The accuracy of predictions or
or predictions about the world. predictions is related to how simulate events, examine theories and inferences depends upon the
Inferences, statements about realistically data is represented. inferences, or make predictions with limitations of the computer model
something that cannot be readily Many factors influence the accuracy either few or millions of data points. and the data the model is built upon.
observed, are often based on of inferences and predictions, such Computer models are abstractions The amount, quality, and diversity of
observed data. Predictions, as the amount and relevance of data that represent phenomena and use data and the features chosen can
statements about future events, are collected. data and algorithms to emphasize key affect the quality of a model and
based on patterns in data and can features and relationships within a ability to understand a system.
be made by looking at data visualiza- People use data to highlight or propose system. As more data is automatically Predictions or inferences are tested
tions, such as charts and graphs. cause-and-effect relationships and collected, models can be refined. to validate models.
predict outcomes. Basing inferences or
Observations of people’s clothing predictions on data does not guarantee Very large data sets require a model for Large data sets are used to make
(jackets and coats) can be used to make their accuracy; the data must be analysis; they are too large to be models used for inference or predic-
an inference about the weather (it is relevant and of sufficient quantity. An analyzed by examining all of the tions, such as forecasting earthquakes,
cold outside). Patterns in past data can example of irrelevance is using eye records. While individual users are traffic patterns, or the results of car
be identified and extrapolated to make color data when inferring someone’s online, shopping websites and online crashes. Larger quantities and higher
predictions. For example, a person’s age. An example of insufficient quantity advertisements use personal data they quality of collected data will tend to
lunch menu selection can be predicted is predicting the outcome of an election generate, compared to millions of other improve the accuracy of models. For
by using data on past lunch selections. by polling only a few people. users, to predict what they would like example, using data from 1,000 car
and make recommendations. A crashes would generally yield a more
Crosscutting Concept: Abstraction Crosscutting Concept: System video-streaming website may recom- accurate model than using data from
Relationships mend videos based on models generat- 100 crashes. Additionally, car crashes
Connection Within Framework: K–2. ed from other users and based upon- provide a wide variety of data points,
Impacts of Computing.Culture their personal habits and preferences. such as impact speed, car make and
The data that is collected about an model, and passenger type, and this
individual and potential inferences data is useful in the development of
made from that data can have implica- injury prevention measures.
tions for privacy.
Crosscutting Concepts: Abstraction;
Crosscutting Concepts: Privacy and Privacy and Security
Security; Abstraction

Connections Within Framework:


6–8.Algorithms and Programming.
Algorithms; 6–8.Impacts of
Computing.Culture
Concepts — Algorithms and Programming 23

Algorithms and Programming

Overview: An algorithm is a sequence of steps designed to accomplish a specific task. Algorithms are translated into programs, or code, to provide instructions for
computing devices. Algorithms and programming control all computing systems, empowering people to communicate with the world in new ways and solve
compelling problems. The development process to create meaningful and efficient programs involves choosing which information to use and how to process and
store it, breaking apart large problems into smaller ones, recombining existing solutions, and analyzing different solutions.

By the end of Grade 2: By the end of Grade 5: By the end of Grade 8: By the end of Grade 12:

ALGORITHMS
Overview: Algorithms are designed to be carried out by both humans and computers. In early grades, students learn about age-appropriate algorithms from the real
world. As they progress, students learn about the development, combination, and decomposition of algorithms, as well as the evaluation of competing algorithms.

People follow and create processes as Different algorithms can achieve the Algorithms affect how people interact People evaluate and select algorithms
part of daily life. Many of these same result. Some algorithms are with computers and the way computers based on performance, reusability,
processes can be expressed as more appropriate for a specific respond. People design algorithms that and ease of implementation.
algorithms that computers can follow. context than others. are generalizable to many situations. Knowledge of common algorithms
Algorithms that are readable are easier improves how people develop
Routines, such as morning meeting, Different algorithms can be used to tie to follow, test, and debug. software, secure data, and store
clean-up time, and dismissal, are shoes or decide which path to take on information.
examples of algorithms that are the way home from school. While the Algorithms control what recommenda-
common in many early elementary end results may be similar, they may not tions a user may get on a music- Some algorithms may be easier to
classrooms. Other examples of algo- be the same: in the example of going streaming website, how a game implement in a particular programming
rithms include making simple foods, home, some paths could be faster, responds to finger presses on a language, work faster, require less
navigating a classroom, and daily slower, or more direct, depending on touchscreen, and how information is sent memory to store data, and be applicable
routines like brushing teeth. Just as varying factors, such as available time or across the Internet. An algorithm that is in a wider variety of situations than other
people use algorithms to complete the presence of obstacles (for example, generalizable to many situations can algorithms. Algorithms used to search
daily routines, they can program a barking dog). Algorithms can be produce different outputs, based on a and sort data are common in a variety of
computers to use algorithms to expressed in noncomputer languages, wide range of inputs. For example, an software applications. Encryption
complete different tasks. Algorithms are including natural language, flowcharts, algorithm for a smart thermostat may algorithms are used to secure data, and
commonly implemented using a precise and pseudocode. control the temperature based on the compression algorithms make data
language that computers can interpret. time of day, how many people are at storage more efficient. At this level,
Crosscutting Concept: Abstraction home, and current electricity consump- analysis may involve simple calculations
Crosscutting Concept: Abstraction tion. The testing of an algorithm requires
of steps. Analysis using sophisticated
Connection Within Framework: 3–5. the use of inputs that reflect all possible
mathematical notation to classify
Connection Within Framework: K–2. Data and Analysis.Collection conditions to evaluate its accuracy
and robustness. algorithm performance, such as Big-O
Computing Systems.Hardware and notation, is not expected.
Software Crosscutting Concepts: Human–
Computer Interaction; Abstraction Crosscutting Concepts: Abstraction;
Privacy and Security
Connections Within Framework: 6–8.
Data and Analysis.Inference and Connections Within Framework: 9–12.
Models; 6–8.Computing Systems. Data and Analysis. Storage; 9–12.
Troubleshooting; 6–8.Data and Analysis. Networks and the Internet.Cybersecurity
Visualization and Transformation
Concepts — Algorithms and Programming 24

VARIABLES
Overview: Computer programs store and manipulate data using variables. In early grades, students learn that different types of data, such as words, numbers, or
pictures, can be used in different ways. As they progress, students learn about variables and ways to organize large collections of data into data structures of
increasing complexity.

Information in the real world can be Programming languages provide Programmers create variables to store Data structures are used to manage
represented in computer programs. variables, which are used to store and data values of selected types. A program complexity. Programmers
Programs store and manipulate data, modify data. The data type determines meaningful identifier is assigned to choose data structures based on
such as numbers, words, colors, and the values and operations that can be each variable to access and perform functionality, storage, and perfor-
images. The type of data determines performed on that data. operations on the value by name. mance tradeoffs.
the actions and attributes associated Variables enable the flexibility to
with it. Variables are the vehicle through which represent different situations, process A list is a common type of data
computer programs store different types different sets of data, and produce structure that is used to facilitate the
Different actions are available for of data. At this level, understanding how varying outputs. efficient storage, ordering, and retrieval
different kinds of information. For to use variables is sufficient, without a fuller of values and various other operations
understanding of the technical aspects of At this level, students deepen their on its contents. Tradeoffs are associated
example, sprites (character images) can
variables (such as identifiers and memory understanding of variables, including with choosing different types of lists.
be moved and turned, numbers can be
locations). Data types vary by program- when and how to declare and name Knowledge of advanced data
added or subtracted, and pictures can
ming language, but many have types for new variables. A variable is like a structures, such as stacks, queues,
be recolored or cropped.
numbers and text. Examples of operations container with a name, in which the trees, and hash tables, is not expected.
Crosscutting Concept: Abstraction associated with those types are multiplying contents may change, but the name User-defined types and object-oriented
numbers and combining text. Some visual, (identifier) does not. The identifier programming are optional concepts
Connection Within Framework: K–2. blocks-based languages do not have makes keeping track of the data that is at this level.
Data and Analysis.Storage explicitly declared types but still have stored easier, especially if the data
certain operations that apply only to changes. Naming conventions for Crosscutting Concepts: Abstraction;
particular types of data in a program. identifiers, and thoughtful choices of System Relationships
identifiers, improve program readability.
Crosscutting Concept: Abstraction Connection Within Framework: 6–8.
The term variable is used differently in
Computing Systems.Hardware and
programming than the way it is com-
Connection Within Framework: 3–5. Software
monly used in mathematics: a program
Data and Analysis. Storage
variable refers to a location in which a
value is stored, and the name used to
access the value is called the identifier. A
program variable is assigned a value,
and that value may change throughout
the execution of the program. Mathema-
ticians typically do not make a distinction
between a variable and the variable
name. A mathematics variable often
represents a set of values for which the
statement containing the variable is true.

Crosscutting Concept: Abstraction

Connection Within Framework: 6–8.


Data and Analysis.Storage
Concepts — Algorithms and Programming 25

CONTROL
Overview: Control structures specify the order in which instructions are executed within an algorithm or program. In early grades, students learn about sequential
execution and simple control structures. As they progress, students expand their understanding to combinations of structures that support complex execution.

Computers follow precise sequences Control structures, including loops, Programmers select and combine Programmers consider tradeoffs
of instructions that automate tasks. event handlers, and conditionals, are control structures, such as loops, related to implementation, readabili-
Program execution can also be used to specify the flow of execution. event handlers, and conditionals, to ty, and program performance when
nonsequential by repeating patterns Conditionals selectively execute or create more complex program selecting and combining control
of instructions and using events to skip instructions under different behavior. structures.
initiate instructions. conditions.
Conditional statements can have Implementation includes the choice of
Computers follow instructions literally. Different types of loops are used to varying levels of complexity, including programming language, which affects
Examples of sequences of instructions repeat instructions in multiple ways compound and nested conditionals. the time and effort required to create a
include steps for drawing a shape or depending on the situation. Examples Compound conditionals combine two or program. Readability refers to how clear
moving a character across the screen. of events include mouse clicks, typing more conditions in a logical relationship, the program is to other programmers
An event, such as the press of a button, on the keyboard, and collisions and nesting conditionals within one and can be improved through docu-
can trigger an action. Simple loops can between objects. Event handlers are another allows the result of one mentation. The discussion of perfor-
be used to repeat instructions. At this sets of commands that are tied to conditional to lead to another being mance is limited to a theoretical
level, distinguishing different types of specific events. Conditionals represent evaluated. An example of a nested understanding of execution time and
loops is not expected. decisions and are composed of a conditional structure is deciding what to storage requirements; a quantitative
Boolean condition that specifies actions do based on the weather outside. If it is analysis is not expected. Control
Crosscutting Concept: Abstraction based on whether the condition sunny outside, I will further decide if I structures at this level may include
evaluates to true or false. Boolean logic want to ride my bike or go running, conditional statements, loops, event
Connections Within Framework: and operators (e.g., AND, OR, NOT) but if it is not sunny outside, I will decide handlers, and recursion. Recursion is a
K–2.Computing Systems.Devices; can be used to specify the appropriate whether to read a book or watch TV. control technique in which a procedure
K–2.Computing Systems. Hardware groups of instructions to execute under Different types of control structures calls itself and is appropriate when
and Software various conditions. can be combined with one another, problems can be expressed in terms
such as loops and conditionals. Different of smaller versions of themselves.
Crosscutting Concepts: Abstraction; types of programming languages Recursion is an optional concept at
Communication and Coordination implement control structures in different this level.
ways. For example, functional program-
Connection Within Framework: K–2. ming languages implement repetition Crosscutting Concepts: Abstraction;
Computing Systems.Devices using recursive function calls instead of System Relationships
loops. At this level, understanding
implementation in multiple languages is
not essential.

Crosscutting Concept: Abstraction


Concepts — Algorithms and Programming 26

MODULARITY
Overview: Modularity involves breaking down tasks into simpler tasks and combining simple tasks to create something more complex. In early grades, students learn
that algorithms and programs can be designed by breaking tasks into smaller parts and recombining existing solutions. As they progress, students learn about
recognizing patterns to make use of general, reusable solutions for commonly occurring scenarios and clearly describing tasks in ways that are widely usable.

Complex tasks can be broken down Programs can be broken down into Programs use procedures to organize Complex programs are designed as
into simpler instructions, some of smaller parts to facilitate their design, code, hide implementation details, systems of interacting modules, each
which can be broken down even implementation, and review. Pro- and make code easier to reuse. with a specific role, coordinating for a
further. Likewise, instructions can grams can also be created by incor- Procedures can be repurposed in new common overall purpose. These
be combined to accomplish porating smaller portions of programs programs. Defining parameters for modules can be procedures within a
complex tasks. that have already been created. procedures can generalize behavior program; combinations of data and
and increase reusability. procedures; or independent, but
Decomposition is the act of breaking Decomposition facilitates aspects of interrelated, programs. Modules
down tasks into simpler tasks. An program development, such as testing, A procedure is a module (a group of allow for better management of
example of decomposition is preparing by allowing people to focus on one instructions within a program) that complex tasks.
for a party: it involves inviting guests, piece at a time. Decomposition also performs a particular task. In this
making food, and setting the table. enables different people to work on framework, procedure is used as a Software applications require a
These tasks can be broken down different parts at the same time. An general term that may refer to an actual sophisticated approach to design
further. For example, setting the table example of decomposition at this level procedure or a method, function, or that uses a systems perspective. For
involves laying a tablecloth, folding is creating an animation by separating a similar concept in other programming example, object-oriented programming
napkins, and placing utensils and plates story into different scenes. For each languages. Procedures are invoked to decomposes programs into modules
on the table. Another example is scene, a background needs to be repeat groups of instructions. For called objects that pair data with
breaking down the steps to draw a selected, characters placed, and actions example, a procedure, such as one to methods (variables with procedures).
polygon. programmed. The instructions required draw a circle, involves many instructions, The focus at this level is understanding a
to program each scene may be similar but all of them can be invoked with one program as a system with relationships
Composition, on the other hand, is the to instructions in other programs. instruction, such as “drawCircle.” between modules. The choice of
combination of smaller tasks into more Procedures that are defined with implementation, such as programming
complex tasks. To build a city, people Crosscutting Concepts: System parameters are generalizable to many language or paradigm, may vary.
build several houses, a school, a store, Relationships; Abstraction situations and will produce different
etc. To create a group art project, outputs based on a wide range of inputs Crosscutting Concepts: System
people can paint or draw their favorite (arguments). Relationships; Abstraction
ocean animal, then combine them to
create an ecosystem. Crosscutting Concepts: Abstraction; Connection Within Framework:
System Relationships 9–12.Computing Systems.Hardware
Crosscutting Concept: System and Software
Relationships

Connection Within Framework: K–2.


Computing Systems. Devices
Concepts — Algorithms and Programming 27

PROGRAM DEVELOPMENT
Overview: Programs are developed through a design process that is often repeated until the programmer is satisfied with the solution. In early grades, students
learn how and why people develop programs. As they progress, students learn about the tradeoffs in program design associated with complex decisions involving
user constraints, efficiency, ethics, and testing.

People develop programs collabora- People develop programs using an People design meaningful solutions Diverse teams can develop programs
tively and for a purpose, such as iterative process involving design, for others by defining a problem’s with a broad impact through careful
expressing ideas or addressing implementation, and review. Design criteria and constraints, carefully review and by drawing on the
problems. often involves reusing existing code or considering the diverse needs and strengths of members in different
remixing other programs within a wants of the community, and testing roles. Design decisions often involve
People work together to plan, create, community. People continuously whether criteria and constraints tradeoffs. The development of
and test programs within a context that review whether programs work as were met. complex programs is aided by
is relevant to the programmer and expected, and they fix, or debug, parts resources such as libraries and tools
users. Programming is used as a tool to that do not. Repeating these steps Development teams that employ to edit and manage parts of the
create products that reflect a wide enables people to refine and improve user-centered design create solutions program. Systematic analysis is
range of interests, such as video programs. that can have a large societal impact, critical for identifying the effects of
games, interactive art projects, and such as an app that allows people with
Design, implementation, and review can lingering bugs.
digital stories. speech difficulties to translate
be further broken down into additional
hard-to-understand pronunciation into As programs grow more complex, the
Crosscutting Concept: Human– stages and may have different labels. The
understandable language. Use cases choice of resources that aid program
Computer Interaction design stage occurs before writing code.
and test cases are created and analyzed development becomes increasingly
This is a planning stage in which the
to better meet the needs of users and to important. These resources include
Connection Within Framework: programmers gather information about
evaluate whether criteria and constraints libraries, integrated development
3–5. Impacts of Computing.Culture the problem and sketch out a solution.
are met. An example of a design environments, and debugging tools.
During the implementation stage, the
constraint is that mobile applications Systematic analysis includes the
planned design is expressed in a
must be optimized for small screens and testing of program performance and
programming language (code) that can
limited battery life. functionality, followed by end-user
be made to run on a computing device.
During the review stage, the design testing. A common tradeoff in program
Crosscutting Concepts: Human– development is sometimes referred to
and implementation are checked for Computer Interaction; Abstraction
adherence to program requirements, as “Fast/Good/Cheap: Pick Two”: one
correctness, and usability. This review can develop software quickly, with high
Connection Within Framework:
could lead to changes in implementation quality, or with little use of resources (for
3–5.Impacts of Computing.Culture
and possibly design, which demonstrates example, money or number of people),
the iterative nature of the process. A but the project manager may choose
community is created by people who only two of the three criteria.
share and provide feedback on one
another’s creations. Crosscutting Concepts: Human–
Computer Interaction; System
Crosscutting Concepts: Human– Relationships; Abstraction
Computer Interaction; System
Relationships Connection Within Framework: 9–12.
Computing Systems.Troubleshooting
Connection Within Framework: K–2.
Computing Systems.Troubleshooting
Concepts — Impacts of Computing 28

Impacts of Computing

Overview: Computing affects many aspects of the world in both positive and negative ways at local, national, and global levels. Individuals and communities
influence computing through their behaviors and cultural and social interactions, and in turn, computing influences new cultural practices. An informed and
responsible person should understand the social implications of the digital world, including equity and access to computing.

By the end of Grade 2: By the end of Grade 5: By the end of Grade 8: By the end of Grade 12:

CULTURE
Overview: Computing influences culture—including belief systems, language, relationships, technology, and institutions—and culture shapes how people engage with
and access computing. In early grades, students learn how computing can be helpful and harmful. As they progress, students learn about tradeoffs associated with
computing and potential future impacts of computing on global societies.

Computing technology has positively The development and modification of Advancements in computing technol- The design and use of computing
and negatively changed the way computing technology is driven by ogy change people’s everyday technologies and artifacts can
people live and work. Computing people’s needs and wants and can activities. Society is faced with improve, worsen, or maintain
devices can be used for entertain- affect groups differently. Computing tradeoffs due to the increasing inequitable access to information
ment and as productivity tools, and technologies influence, and are globalization and automation that and opportunities.
they can affect relationships and influenced by, cultural practices. computing brings.
lifestyles. While many people have direct access
New computing technology is created The effects of globalization, such as the to computing throughout their day,
Computing devices, such as fitness and existing technologies are modified sharing of information and cultural many others are still underserved or
trackers, can motivate a more active to increase their benefits (for example, practices and the resulting cultural simply do not have access. Some of
lifestyle by monitoring physical activity. Internet search recommendations), homogeneity, are increasingly possible these challenges are related to the
On the other hand, passively consuming decrease their risks (for example, because of computing. Globalization, design of computing technologies, as in
media from computing devices may lead autonomous cars), and meet societal coupled with the automation of the the case of technologies that are
to a more sedentary lifestyle. In the past, demands (for example, smartphone production of goods, allows access to difficult for senior citizens and people
the most popular form of communica- apps). Increased Internet access and labor that is less expensive and creates with physical disabilities to use. Other
tion was to send mail via the postal speed have allowed people to share jobs that can easily move across equity deficits, such as minimal expo-
service. Now, more people send emails cultural information but have also affect- national boundaries. Online piracy has sure to computing, access to education,
or text messages. ed the practice of traditional cultural increased because of information and training opportunities, are related
customs. access that traverses national boundar- to larger, systemic problems in society.
Crosscutting Concept: Human– ies and varying legal systems.
Computer Interaction Crosscutting Concepts: Human– Crosscutting Concepts: Human–
Computer Interaction; System Crosscutting Concepts: Human– Computer Interaction; System
Connection Within Framework: Relationships Computer Interaction; System Relationships
K–2.Data and Analysis.Inference Relationships
and Models Connections Within Framework: K–2. Connection Within Framework: 9–12.
Algorithms and Programming. Program Connection Within Framework: 6–8. Computing Systems.Devices
Development; 6–8.Computing Systems. Data and Analysis.Inference and Models
Devices; 6–8.Algorithms and Program-
ming.Program Development
Concepts — Impacts of Computing 29

SOCIAL INTERACTIONS
Overview: Computing can support new ways of connecting people, communicating information, and expressing ideas. In early grades, students learn that
computing can connect people and support interpersonal communication. As they progress, students learn how the social nature of computing affects institutions
and careers in various sectors.

Computing has positively and Computing technology allows for People can organize and engage Many aspects of society, especially
negatively changed the way people local and global collaboration. By around issues and topics of interest careers, have been affected by the
communicate. People can have facilitating communication and through various communication degree of communication afforded by
access to information and each other innovation, computing influences platforms enabled by computing, computing. The increased connectivi-
instantly, anywhere, and at any time, many social institutions such as family, such as social networks and media ty between people in different
but they are at the risk of cyberbully- education, religion, and the economy. outlets. These interactions allow cultures and in different career fields
ing and reduced privacy. issues to be examined using multiple has changed the nature and content
People can work in different places and viewpoints from a diverse audience. of many careers.
Online communication facilitates at different times to collaborate and
positive interactions, such as sharing share ideas when they use technologies Social networks can play a large role in Careers have evolved, and new careers
ideas with many people, but the public that reach across the globe. These social and political movements by have emerged. For example, social
and anonymous nature of online social interactions affect how local and allowing individuals to share ideas and media managers take advantage of
communication also allows intimidating global groups interact with each other, opinions about common issues while social media platforms to guide the
and inappropriate behavior in the form and alternatively, these interactions can engaging with those who have different presence of a product or company and
of cyberbullying. Privacy should be change the nature of groups. For opinions. Computing provides a rich increase interaction with their audience.
considered when posting information example, a class can discuss ideas in environment for discourse but may Global connectivity has also changed
online; such information can persist for the same school or in another nation result in people considering very limited how teams in different fields, such as
a long time and be accessed by others, through interactive webinars. viewpoints from a limited audience. computer science and biology, work
even unintended viewers. together. For example, the online
Crosscutting Concepts: System Crosscutting Concepts: System genetic database made available by the
Crosscutting Concepts: Human– Relationships; Human–Computer Relationships; Human–Computer Human Genome Project, the algorithms
Computer Interaction; Privacy and Interaction Interaction required to analyze the data, and the
Security ability for scientists around the world to
Connection Within Framework: K–2. Connections Within Framework: 3–5. share information have accelerated the
Connections Within Framework: K–2. Networks and the Internet.Network Data and Analysis.Visualization and pace of medical discoveries and led to
Data and Analysis.Storage; K–2.Data Communication and Organization Transformation; 9–12.Data and Analysis. the new field of computational biology.
and Analysis.Visualization and Visualization and Transformation
Transformation Crosscutting Concepts: System
Relationships; Human–Computer
Interaction

Connection Within Framework: 9–12.


Networks and the Internet.Network
Communication and Organization
Concepts — Impacts of Computing 30

SAFETY, LAW, AND ETHICS


Overview: Legal and ethical considerations of using computing devices influence behaviors that can affect the safety and security of individuals. In early grades,
students learn the fundamentals of digital citizenship and appropriate use of digital media. As they progress, students learn about the legal and ethical issues that
shape computing practices.

People use computing technology in Ethical complications arise from There are tradeoffs between allowing Laws govern many aspects of
ways that can help or hurt themselves the opportunities provided by information to be public and keeping computing, such as privacy, data,
or others. Harmful behaviors, such as computing. The ease of sending and information private and secure. property, information, and identity.
sharing private information and receiving copies of media on the People can be tricked into revealing These laws can have beneficial and
interacting with strangers, should be Internet, such as video, photos, and personal information when more harmful effects, such as expediting or
recognized and avoided. music, creates the opportunity for public information is available about delaying advancements in computing
unauthorized use, such as online them online. and protecting or infringing upon
Using computers comes with a level of piracy, and disregard of copyrights, people’s rights. International
responsibility, such as not sharing login such as lack of attribution. Social engineering is based on differences in laws and ethics have
information, keeping passwords private, tricking people into breaking security implications for computing.
and logging off when finished. Rules Online piracy, the illegal copying of procedures and can be thwarted by
guiding interactions in the world, such materials, is facilitated by the ability to being aware of various kinds of attacks, Legal issues in computing, such as
as “stranger danger,” apply to online make identical-quality copies of digital such as emails with false information those related to the use of the Internet,
environments as well. media with little effort. Other topics and phishing. Security attacks often cover many areas of law, reflect an
related to copyright are plagiarism, fair start with personal information that is evolving technological field, and can
Crosscutting Concept: Privacy and use, and properly citing online sources. publicly available online. All users involve tradeoffs. For examples, laws
Security Knowledge of specific copyright laws is should be aware of the personal that mandate the blocking of some
not an expectation at this level. information, especially financial file-sharing websites may reduce online
Connection Within Framework: K–2. information, that is stored on the piracy but can restrict the right to
Networks and the Internet.Cybersecurity Crosscutting Concepts: System websites they use. Protecting personal freedom of information. Firewalls can
Relationships; Privacy and Security online information requires authentica- be used to block harmful viruses and
tion measures that can often make it malware but can also be used for media
Connection Within Framework: 3–5. harder for authorized users to access censorship. Access to certain websites,
Networks and the Internet.Cybersecurity information. like social networking sites, may vary
depending on a nation’s laws and may
Crosscutting Concepts: Privacy and be blocked for political purposes.
Security; Communication and
Coordination Crosscutting Concepts: System
Relationships; Privacy and Security;
Connection Within Framework: 6–8. Abstraction
Networks and the Internet.Cybersecurity
Connection Within Framework: 9–12.
Data and Analysis.Collection

You might also like