ICCSD Computational Thinking Competencies

The competencies document below articulates core computational thinking competencies, along with relevant CSTA standards, across grades K-12 in the Iowa City Community School District. For each competency area, you will find a series of descriptions of the meaning of the standards, along with aligned concepts, skills, and connections to other curriculum or district programming, such as Iowa Core and NGSS.

Grades K-2
Grades 3-5
Grades 6-8
Grades 9-10
Grades 11-12

Grades K-2

By the end of Grade 2, what will all students know and be able to do? 

Core Competencies Relevant Standards What do the standards mean?ConceptSkillsConnections & Extensions 
Algorithms  1A-AP-08. Model daily processes by creating and following algorithms (sets of step-by-step instructions) to complete tasks. 

1A-AP-09 Model the way programs store and manipulate data by using numbers or other symbols to represent information. 

1A-AP-10 Develop programs with sequences and simple loops, to express ideas or address a problem.

1A-AP-11 Decompose (break down) the steps needed to solve a problem into a precise sequence of instructions.

1A-AP-12 Develop plans that describe a program’s sequence of events, goals, and expected outcomes.

1A-AP-13 Give attribution when using the ideas and creations of others while developing programs.

1A-AP-13 Debug (identify and fix) errors in an algorithm or program that includes sequences and simple loops.

1A-AP-14 Using correct terminology, describe steps taken and choices made during the iterative process of program development.
Develop and follow step-by-step instructions. 

Collect and use numbers and symbols to represent information. 

Follow and repeat a process to solve a problem. 

Document the process to solve a problem. 

Describe the process to solve a problem.  

Share credit for original works.  

Identify and make corrections to a process. 

Describe how a process was developed. 
Students will know how to develop and follow step-by-step instructions. 

Students will know how to collect and use symbols to represent information. 

Students will know how to follow and repeat a process to solve a problem.  
 
Students will know how to document the process to solve a problem.  

Students will know how to describe the process to solve a problem.  

Students will know and when to share credit for original work.  

Students will know how to identify and make corrections to a process. 

Students will know how to describe the development of a process.  
Example: students will be able to develop and follow a routine for getting ready for recess. 

Example: students will be able to use tally marks to track progress through the school year.  

Example: students will be able to follow all components of a process for use of the restroom.  

Example: students will be able to correctly write one or more sentence instructions for washing hands.  

Example: students will be able to explain the process of making a sandwich.  

Example: students will be able to identify the author and illustrator of a book. 

Example: students will be able to evaluate and correct a procedure for making a sandwich. 

Example: students will be able to sequence the events of a story.  
Close alignment with:

Iowa Core W.K.8, SL.K.1, 1.OA.D.8, 2.OA.A.1, K–2–ETS1–1, 1.MD.C.4, 21.K–2.TL.4,S.2.4, W.2.3, W.1.7, W.1.8, W.2.8

NGSS: K-2-ETS1-1, 1-LS1-1, K-ESS3-3







There are many opportunities to extend learning in terms of PBIS instruction, integration across academic areas, and establishment of classroom routines.   
Computational ModelsNo standards identified at this grade level.
Systems
Data 1A-DA-05. Store, copy, retrieve, modify, and delete information using a computing device and define the information stored as data. 

1A-DA-06. Collect and present the same data in various visual formats. 

1A-DA-07 Identify and describe patterns in data visualizations, such as charts or graphs, to make predictions. 
Use a digital device to store and use age-appropriate data sets. 

Use digital and non-digital devices to both collect and share data in a variety of ways.

 Share the key takeaways from the data set, implementing a variety of formats.  
Students will know how to collect and use basic data, including with the use of digital tools. 

Students will know that data can be presented in a variety of ways, and that different presentation types make it more or less difficult to identify the purpose of the data. 

Students will know how to identify and share their key takeaways from a set of data. 
Students will be able to create digital records and articulate the purpose of or function for that data (i.e., results from a survey). 

Students will be able to present data in a variety of ways, both digitally and non-digitally (i.e., digital or non-digital charts, tables, descriptive narrative, verbally). 

Students will be able to explain the meaning of their data (i.e., more students like pizza than fish sticks for lunch), and make predictions based upon the data (i.e., if the school serves fish sticks, more food might get thrown away).  
Close alignment with Iowa CS Standards (CSTA) and Iowa CORE, integrated in PLTW Launch curriculum.  Iowa CORE examples include: 21.K-2.TL.3, 21.K-2.TL.4, SS.K.3, 1-ESS1-1, 2.MD.D.10, 2.MD.D.IA.2

Opportunities exist to extend learning by integration computational thinking into social studies, math, science, and communication-focused instruction. 
Other: Impact of ComputingIA-IC-16. Compare how people live and work before and after the implementation or adoption of new computing technology.

IA-IC-17. Work respectfully and responsibly with others online.

IA-IC-18. Keep login information private, and log off of devices appropriately.
Identify digital technologies, and the elements of daily life that rely upon digital technologies.

Engage and collaborate safely with others in a digital environment. 

Learn and follow expectations and best practices for technology use both at school and at home.  
Students will know how to identify a digital or computing technology (i.e., computers, communication technologies, wearable technology, digital assistants, etc). 

Students will know how those technologies impact them as individuals, their school, and their families. 

Students will know that technology can be used to allow people to work together, and will know some of the approaches to making that collaboration safe and productive. 

Students will know the rules and expectations relating to technology use at school and at home, and will know why those expectations are in place. 
Students will be able to identify common technologies, and make use of technologies effectively at school and at home. 

Students will be able to collaborate with other students on creation of a digital product, and will be able to use digital communication tools (i.e., video communication, shared documents, Seesaw). 

Students will be able to articulate best practices for online collaboration. Students will be able to articulate rules for technology use at school, and will be able to use and appropriately maintain their access credentials. 

Students will be able to identify the purposes for these practices. 
Close alignment with Iowa CS Standards (CSTA) and Iowa CORE, integrated in PLTW Launch curriculum.  Iowa CORE examples include: 21.K-2.TL.5, 21.K-2.TL.6, 21.K-2.ES.1


Opportunities exist to extend learning through the district’s Digital Citizenship curriculum provided through the library program, the employability skills component of the Iowa CORE 21st Century skills, and the district’s broader citizenship and responsibility-focused initiatives. 

Grades 3-5

By the end of Grade 5, what will all students know and be able to do?  

Core CompetenciesRelevant StandardsWhat do the standards mean?ConceptsSkillsConnections & Extensions 
Algorithms 1B-AP-08. Compare and refine multiple algorithms for the same task and determine which is the most appropriate. 

1B-AP-09 Create programs that use variables to store and modify data. 

1B-AP-10 Create programs that include sequences, events, loops, and conditionals.

1B-AP-11 Decompose (break down) problems into smaller, manageable subproblems to facilitate the program development process.

1B-AP-12 Modify, remix, or incorporate portions of an existing program into one’s own work, to develop something new or add more advanced features.oals, and expected outcomes.

1B-AP-13 Use an iterative process to plan the development of a program by including others’ perspectives and considering user preferences.

1B-AP-14 Observe intellectual property rights and give appropriate attribution when creating or remixing programs.

1B-AP-15 Test and debug (identify and fix errors) a program or algorithm to ensure it runs as intended.

1B-AP-16 Take on varying roles, with teacher guidance, when collaborating with peers during the design, implementation, and review stages of program development.

1B-AP-17 Describe choices made during program development using code comments, presentations, and demonstrations. 
Develop a simple understanding of an algorithm (i.e., search, sequence of events, or sorting) using non-digital and digital approaches. 

Identify applications for algorithms in daily life, and explore opportunities for different algorithmic approaches to a task. 

Understand and use the basic steps in algorithmic problem-solving (problem statement and exploration, examination of sample instances, design, implementation, and testing). 

Develop block-based programs that use variable representations of data inputs. 

Implement control structures within a program that specify the order, sequence, and number of times an action will occur.  

Break down a complex task into simpler tasks.  

Utilizing decomposition, identify opportunities to modify components of a program to achieve an outcome different from the original program. 

Solicit feedback from end users to determine user preferences, and implement those preferences in program development. 

Identify the need for and approaches to citations/attributions when modifying existing programs. 

Identify and implement troubleshooting steps to fix a program that is not working as planned. 

Utilize collaborative approaches to strengthen a programming project, building upon perspectives, skills, and experiences of participants.  

Communicate effectively the decisions related to program conceptualization, design development and troubleshooting. 
Students will know the basic types of algorithm, and the basic steps of the algorithmic problem-solving process.  

Students will know how to identify different approaches to solving the same task, and how to evaluate the effectiveness of potential solutions.  

Students will know how variables can be used in programming at a basic level. 

Students will know how to choose, order, and sequence events, including basic use of conditional events. 

Students will know how to identify individual components within a larger program. 

Students will know how a modification to one component within a program will impact the overall program, and will know how to implement changes that will achieve a desired end result. 

Students will know how to solicit feedback from others with regard to design preferences, and will know how to implement programming choices that reflect those preferences. 

Students should know how to articulate examples where ideas are borrowed or programs are modified. 

Students should know the proper attribution standards in such events. 

Students should know how to test an existing program, and how to implement tools and analysis to identify and fix errors. 

Students should know how to collaborate in a manner that builds upon role assignments to improve the output of the team. 

Students should know how to identify and articulate key design decisions, and the rationale for those decisions.  
Students will be able to identify and use basic algorithms, and to identify and sequence the basic steps of the algorithmic problem-solving process. 

Students will be able to look at different ways to solve the same task, and decide which is the best approach (i.e., development of algorithms regarding how to get from one part of the school to another).  

Students will be able to use mathematical operations involving variables to achieve a task (i.e., within a cash register program). 

Students will be able to create a program where events occur based upon a specific action (i.e., a trivia game where a certain event occurs based upon a correct answer).  

Students will be able to break a complex program into simpler events (i.e., breaking a game down into character creation, task implementation, and an end screen). 

Students will be able to modify individual program components to alter the end result of the program (i.e., modifying a one-player game to allow for two-player gameplay). 

Students will be able to outline key features, time and resource constraints, and user expectations based upon feedback (i.e., students storyboard/flowchart a program based upon users’ reported user interface and program content preferences). 

 Students will be able to give credit to the creator of a work, including work that is modified or adapted per student design. 

Students will be able to identify restrictions on use or modification of existing material (i.e., students modify a program that is licensed for reuse with modification, and properly cite the content creator(s)). 

Students should be able to continuously test programs to determine whether they are working as expected, and to debug programs that are not functioning as intended (i.e., students should be able to identify and remedy basic errors in a program written by somebody else). 

Students should be able to articulate roles as part of a collaborative team working on a program, and function within and across those roles to collaborate on development of an end product (i.e., students should take turns in different roles while developing programs, such as computer operator, primary tester, note-taker, communications).  S

tudents should be able to explain the decisions that they made in program development, and to articulate why those decisions were made (i.e., students present their program to the class, or for judges in a computer science fair setting).  
Close alignment with Iowa CS Standards (CSTA) and Iowa CORE, integrated in PLTW Launch curriculum.  Iowa CORE examples include: 21.3-5.TL.2, 21.3-5.TL.4, 21.3-5.ES.1, 21.3-5.ES.2, 21.3-5.ES.3, 21.3-5.ES.4, 21.3-5.ES.5, 5.OA.B.3











Opportunities exist to extend learning through the district’s coding fairs, robotics programs, and integration of algorithmic processes in social science, ELA, and mathematics instruction.  
Computational ModelsNo standards identified at this grade level.
Systems
Data 
1B-DA-06. Organize and present collected data visually to highlight relationships and support a claim.

1B-DA-07.Use data to highlight or propose cause-and-effect relationships, predict outcomes, or communicate an idea.
Develop a visual to show relationships.  . 

Use data to support a theory or statement.  
Students will know how to develop a visual to show relationships.  

Students will know how to use data to support a theory or statement.  
Example: students will be able to show how shadow length changes with time of day. 

Example: students will be able to predict the length of a shadow at a specific time of day.  
Iowa CORE: 5.MD.B.2,  RL.5.3, RL.5.9, 21.3-5.TL.1,3.MD.B.4, 4.MD.B.4NGSS: 5-ESS1-2, 5-PS1-2



Extension opportunities include integration across academic areas, opportunities for students’ civic engagement, implementation within the data components of PBIS.  


Other: Impact of Computing1B-IC-18.Discuss computing technologies that have changed the world, and express how those technologies influence, and are influenced by, cultural practices.

1B-IC-19. Brainstorm ways to improve the accessibility and usability of technology products for the diverse needs and wants of users.

1B-IC-20. Seek diverse perspectives for the purpose of improving computational artifacts.

1B-IC-21. Use public domain or creative commons media, and refrain from copying or using material created by others without permission.
Discuss how technologies influence and are influenced by the world around us.  

Discuss ways that technologies could be more accessible.  

Seek multiple perspectives on effective digital creations. 

Identify and follow content usage restrictions.  
Students will know how technologies influence and are influenced by the world around us.  

Students will know how to identify ways in which technologies could be more accessible.  

Students will know how to seek multiple perspectives on effective digital creations. 

Students will know how to identify and follow content usage restrictions.  
Example: exploration of the changes in music media, creation, and access throughout history. 

Example: identify potential barriers to technology access, and find tools to overcome them.

Example: use a peer collaboration tool like G Suite or Flipgrid to seek input on digital creations

Example: complete the Mindful Mountain activity within the Be Internet Awesome digital citizenship program
Iowa CORE: RL.5.6, 21.3–5.TL.1, 21.3–5.TL.5, 21.3–5.ES.1, 21.3–5.ES.5, SS.5.4








Extension opportunities include integration across academic areas, implementation within the library program, options for participation in computer science and robotics fairs, opportunities for students’ school and civic engagement.  

Grades 6-8

By the end of Grade 8, what will students know and be able to do?

Core CompetenciesRelevant StandardsWhat do the standards mean?SkillsConnections & Extensions 
Algorithms 2-AP-10. Use flowcharts and/or pseudocode to address complex problems as algorithms.

2-AP-11. Create clearly named variables that represent different data types and perform operations on their values.

2-AP-12. Design and iteratively develop programs that combine control structures, including nested loops and compound conditionals.

2-AP-13. Decompose problems and subproblems into parts to facilitate the design, implementation, and review of programs.

2-AP-14. Create procedures with parameters to organize code and make it easier to reuse.

2-AP-15. Seek and incorporate feedback from team members and users to refine a solution that meets user needs.

2-AP-16. Incorporate existing code, media, and libraries into original programs, and give attribution.

2-AP-17. Systematically test and refine programs using a range of test cases.

2-AP-18. Distribute tasks and maintain a project timeline when collaboratively developing computational artifacts.

2-AP-19. Document programs in order to make them easier to follow, test, and debug.
Complex problems are problems that would be difficult for students to solve computationally. Students should use pseudocode and/or flowcharts to organize and sequence an algorithm that addresses a complex problem, even though they may not actually program the solutions.

A variable is like a container with a name, in which the contents may change, but the name (identifier) does not. When planning and developing programs, students should decide when and how to declare and name new variables.

Students should use naming conventions to improve program readability. 

Control structures can be combined in many ways. Nested loops are loops placed within loops. Compound conditionals combine two or more conditions in a logical relationship (e.g., using AND, OR, and NOT), and nesting conditionals within one another allows the result of one conditional to lead to another. Students should break down problems into subproblems, which can be further broken down to smaller parts.

Decomposition facilitates aspects of program development by allowing students to focus on one piece at a time (e.g., getting input from the user, processing the data, and displaying the result to the user). Decomposition also enables different students to work on different parts at the same time. Students should create procedures and/or functions that are used multiple times within a program to repeat groups of instructions. These procedures can be generalized by defining parameters that create different outputs for a wide range of inputs.

Development teams that employ user-centered design create solutions (e.g., programs and devices) that can have a large societal impact, such as an app that allows people with speech difficulties to translate hard-to-understand pronunciation into understandable language. Building on the work of others enables students to produce more interesting and powerful creations. Students should use portions of code, algorithms, and/or digital media in their own programs and websites. At this level, they may also import libraries and connect to web application program interfaces (APIs).

Use cases and test cases are created and analyzed to better meet the needs of users and to evaluate whether programs function as intended. At this level, testing should become a deliberate process that is more iterative, systematic, and proactive than at lower levels. Students should begin to test programs by considering potential errors, such as what will happen if a user enters invalid input (e.g., negative numbers and 0 instead of positive numbers).

Collaboration is a common and crucial practice in programming development. Often, many individuals and groups work on the interdependent parts of a project together. Students should assume pre-defined roles within their teams and manage the project workflow using structured timelines. With teacher guidance, they will begin to create collective goals, expectations, and equitable workloads.

Documentation allows creators and others to more easily use and understand a program. Students should provide documentation for end users that explains their artifacts and how they function. 
For example, students might express an algorithm that produces a recommendation for purchasing sneakers based on inputs such as size, colors, brand, comfort, and cost. Testing the algorithm with a wide range of inputs and users allows students to refine their recommendation algorithm and to identify other inputs they may have initially excluded. Examples of operations include adding points to the score, combining user input with words to make a sentence, changing the size of a picture, or adding a name to a list of people.

For example, when programming an interactive story, students could use a compound conditional within a loop to unlock a door only if a character has a key AND is touching the door.

For example, animations can be decomposed into multiple scenes, which can be developed independently.

For example, a procedure to draw a circle involves many instructions, but all of them can be invoked with one instruction, such as “drawCircle.” By adding a radius parameter, the user can easily draw circles of different sizes.

Students should begin to seek diverse perspectives throughout the design process to improve their computational artifacts. Considerations of the end-user may include usability, accessibility, age-appropriate content, respectful language, user perspective, pronoun use, color contrast, and ease of use.

For example, when creating a side-scrolling game, students may incorporate portions of code that create a realistic jump movement from another person’s game, and they may also import Creative Commons-licensed images to use in the background. Students should give attribution to the original creators to acknowledge their contributions.

For example, students may divide the design stage of a game into planning the storyboard, flowchart, and different parts of the game mechanics. They can then distribute tasks and roles among members of the team and assign deadlines.

For example, students could provide a project overview and clear user instructions. They should also incorporate comments in their product and communicate their process using design documents, flowcharts, and presentations.

Alignment with numerous Common Core and NGSS standards.  
Opportunities for extension include cross-curricular integration (particularly in science, social studies, and mathematics).  Further opportunities include coding fairs, robotics clubs, and Girls who Code. 
Computational Models2-DA-09. Refine computational models based on the data they have generated A model may be a programmed simulation of events or a representation of how various data is related. In order to refine a model, students need to consider which data points are relevant, how data points relate to each other, and if the data is accurate. For example, students may make a prediction about how far a ball will travel based on a table of data related to the height and angle of a track. The students could then test and refine their model by comparing predicted versus actual results and considering whether other factors are relevant (e.g., size and mass of the ball). Additionally, students could refine game mechanics based on test outcomes in order to make the game more balanced or fair.
Alignment with numerous Common Core and NGSS standards.  
Opportunities for extension include cross-curricular integration (particularly in science, social studies, and mathematics).  


SystemsNo standards identified at this grade level.
Data 2-DA-07.Represent data using multiple encoding schemes.

2-DA-08.Collect data using computational tools and transform the data to make it more useful and reliable.

2-DA-09. Refine computational models based on the data they have generated.
Data representations occur at multiple levels of abstraction, from the physical storage of bits to the arrangement of information into organized formats (e.g., tables). Students should represent the same data in multiple ways.

As students continue to build on their ability to organize and present data visually to support a claim, they will need to understand when and how to transform data for this purpose. Students should transform data to remove errors, highlight or expose relationships, and/or make it easier for computers to process.

The cleaning of data is an important transformation for ensuring consistent format and reducing noise and errors (e.g., removing irrelevant responses in a survey). A model may be a programmed simulation of events or a representation of how various data is related. In order to refine a model, students need to consider which data points are relevant, how data points relate to each other, and if the data is accurate. 

For example, students could represent the same color using binary, RGB values, hex codes (low-level representations), as well as forms understandable by people, including words, symbols, and digital displays of the color (high-level representations).

An example of a transformation that highlights a relationship is representing males and females as percentages of a whole instead of as individual counts.

For example, students may make a prediction about how far a ball will travel based on a table of data related to the height and angle of a track. The students could then test and refine their model by comparing predicted versus actual results and considering whether other factors are relevant (e.g., size and mass of the ball). Additionally, students could refine game mechanics based on test outcomes in order to make the game more balanced or fair.
Alignment with numerous Common Core and NGSS standards.  
Opportunities for extension include cross-curricular integration (particularly in science, social studies, and mathematics).  Further opportunities include coding fairs, robotics clubs, and Girls who Code. 
Other: Impact of Computing2-IC-20. Compare tradeoffs associated with computing technologies that affect people’s everyday activities and career options.

2-IC-21. Discuss issues of bias and accessibility in the design of existing technologies.

2-IC-22. Collaborate with many contributors through strategies such as crowdsourcing or surveys when creating a computational artifact.

2-IC-23. Describe tradeoffs between allowing information to be public and keeping information private and secure.
Advancements in computer technology are neither wholly positive nor negative. However, the ways that people use computing technologies have tradeoffs. Students should consider current events related to broad ideas, including privacy, communication, and automation. Students should test and discuss the usability of various technology tools (e.g., apps, games, and devices) with the teacher’s guidance.

Crowdsourcing is gathering services, ideas, or content from a large group of people, especially from the online community. It can be done at the local level (e.g., classroom or school) or global level (e.g., age-appropriate online communities, like Scratch and Minecraft). Sharing information online can help establish, maintain, and strengthen connections between people. 
For example, driverless cars can increase convenience and reduce accidents, but they are also susceptible to hacking. The emerging industry will reduce the number of taxi and shared-ride drivers, but will create more software engineering and cybersecurity jobs.

For example, facial recognition software that works better for lighter skin tones was likely developed with a homogeneous testing group and could be improved by sampling a more diverse population. When discussing accessibility, students may notice that allowing a user to change font sizes and colors will not only make an interface usable for people with low vision but also benefits users in various situations, such as in bright daylight or a dark room.

For example, a group of students could combine animations to create a digital community mosaic. They could also solicit feedback from many people though use of online communities and electronic surveys.

For example, it allows artists and designers to display their talents and reach a broad audience. However, security attacks often start with personal information that is publicly available online. Social engineering is based on tricking people into revealing sensitive information and can be thwarted by being wary of attacks, such as phishing and spoofing.
Alignment with numerous Common Core standards.  
Opportunities for extension include cross-curricular integration (particularly digital citizenship, library programming, and social studies).  

Grades 9-10

By the end of Grade 10, what will all students know and be able to do?

Core CompetenciesRelevant StandardsWhat do the standards mean?SkillsConnections & Extensions 
Algorithms 3A-AP-13. Create prototypes that use algorithms to solve computational problems by leveraging prior student knowledge and personal interests.

3A-AP-14. Use lists to simplify solutions, generalizing computational problems instead of repeatedly using simple variables.

3A-AP-15. Justify the selection of specific control structures when tradeoffs involve implementation,readability, and program performance, and explain the benefits and drawbacks of choices Made.

3A-AP-16. Design and iteratively develop computational artifacts for practical intent, personal expression, or to address a societal issue by using events to initiate instructions.

3A-AP-17. Decompose problems into smaller components through systematic analysis, using constructs such as procedures, modules, and/or objects.

3A-AP-18.Create artifacts by using procedures within a program, combinations of data and procedures, or independent but interrelated programs.

3A-AP-19.Systematically design and develop programs for broad audiences by incorporating feedback from users.

3A-AP-20. Evaluate licenses that limit or restrict use of computational artifacts when using resources such as libraries.

3A-AP-21. Evaluate and refine computational artifacts to make them more usable and accessible.

3A-AP-22. Design and develop computational artifacts working in team roles using collaborative tools.

3A-AP-23. Document design decisions using text, graphics, presentations, and/or demonstrations in the development of complex programs.
A prototype is a computational artifact that demonstrates the core functionality of a product or process. Prototypes are useful for getting early feedback in the design process, and can yield insight into the feasibility of a product.

The process of developing computational artifacts embraces both creative expression and the exploration of ideas to create prototypes and solve computational problems. Students should be able to identify common features in multiple segments of code and substitute a single segment that uses lists (arrays) to account for the differences.

Implementation includes the choice of programming language, which affects the time and effort required to create a program.

Readability refers to how clear the program is to other programmers and can be improved through documentation. The discussion of performance is limited to a theoretical understanding of execution time and storage requirements; a quantitative analysis is not expected.

Control structures at this level may include conditional statements, loops, event handlers, and recursion. In this context, relevant computational artifacts include programs, mobile apps, or web apps.

Events can be user-initiated, such as a button press, or system-initiated, such as a timer firing. At previous levels, students have learned to create and call procedures. Here, students design procedures that are called by events. At this level, students should decompose complex problems into manageable subproblems that could potentially be solved with programs or procedures that already exist.

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. Complex programs are designed as systems of interacting modules, each with a specific role, coordinating for a common overall purpose.

Modules allow for better management of complex tasks. The focus at this level is understanding a program as a system with relationships between modules. Examples of programs could include games, utilities, and mobile applications.

Students at lower levels collect feedback and revise programs. At this level, students should do so through a systematic process that includes feedback from broad audiences. Examples of software licenses include copyright, freeware, and the many open-source licensing schemes. At previous levels, students adhered to licensing schemes. At this level, they should consider licensing implications for their own work, especially when incorporating libraries and other resources. 

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.

Collaborative tools could be as complex as source code version control system or as simple as a collaborative word processor. Team roles in pair programming are driver and navigator but could be more specialized in larger teams.

As programs grow more complex, the choice of resources that aid program development becomes increasingly important and should be made by the students.Complex programs are designed as systems of interacting modules, each with a specific role, coordinating for a common overall purpose. These modules can be procedures within a program; combinations of data and procedures; or independent, but interrelated, programs.

The development of complex programs is aided by resources such as libraries and tools to edit and manage parts of the program.

Students create artifacts that are personally relevant or beneficial to their community and beyond.

Students should develop artifacts in response to a task or a computational problem that demonstrate the performance, reusability, and ease of implementation of an algorithm.

For example, students might compare the readability and program performance of iterative and recursive implementations of procedures that calculate the Fibonacci sequence.

Students might create a mobile app that updates a list of nearby points of interest when the device detects that its location has been changed.

For example, students could create an app to solve a community problem by connecting to an online database through an application programming interface (API).

The choice of implementation, such as programming language or paradigm, may vary. Students could incorporate computer vision libraries to increase the capabilities of a robot or leverage open-source JavaScript libraries to expand the functionality of a web application.

Students might create a user satisfaction survey and brainstorm distribution methods that could yield feedback from a diverse audience, documenting the process they took to incorporate selected feedback in product revisions.

Students might consider two software libraries that address a similar need, justifying their choice based on the library that has the least restrictive license.

For example, students could incorporate feedback from a variety of end users to help guide the size and placement of menus and buttons in a user interface.

Students might work as a team to develop a mobile application that addresses a problem relevant to the school or community, selecting appropriate tools to establish and manage the project timeline; design, share, and revise graphical user interface elements; and track planned, in-progress, and completed components.
Alignment with numerous Common Core and NGSS standards.  
Opportunities for extension include cross-curricular integration (particularly in science, social studies, and mathematics).  Further opportunities include programming clubs, robotics clubs, internships, student technician programming, Girls who Code, and PSEO courses. 
Computational Models3A-DA-12. Create computational models that represent the relationships among different elements of data collected from a phenomenon or process.*Computational models make predictions about processes or phenomenon based on selected data and features. The amount, quality, and diversity of data and the features chosen can affect the quality of a model and ability to understand a system. Predictions or inferences are tested to validate models. 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.

Alignment with numerous Common Core and NGSS standards.  
Opportunities for extension include cross-curricular integration (particularly in science, social studies, and mathematics).  
Systems No standards identified at this grade level.Students will be able to DO…


Data 3A-DA-09.Translate between different bit representations of real-world phenomena, such as characters, numbers, and images.

3A-DA-10. Evaluate the tradeoffs in how data elements are organized and where data is stored.

3A-DA-11. Create interactive data visualizations using software tools to help others better understand real-world phenomena.

3A-DA-12. Create computational models that represent the relationships among different elements of data collected from a phenomenon or process.
People make choices about how data elements are organized and where data is stored. These choices affect cost, speed, reliability, accessibility, privacy, and integrity. Students should evaluate whether a chosen solution is most appropriate for a particular problem.

People transform, generalize, simplify, and present large data sets in different ways to influence how other people interpret and understand the underlying information. Examples include visualization, aggregation, rearrangement, and application of mathematical operations.

People use software tools or programming to create powerful, interactive data visualizations and perform a range of mathematical operations to transform and analyze data.

Computational models make predictions about processes or phenomenon based on selected data and features. The amount, quality, and diversity of data and the features chosen can affect the quality of a model and ability to understand a system.

Predictions or inferences are tested to validate models. Students should model phenomena as systems, with rules governing the interactions within the system. 
For example, convert hexadecimal color codes to decimal percentages, ASCII/Unicode representation, and logic gates.

Students might consider the cost, speed, reliability, accessibility, privacy, and integrity tradeoffs between storing photo data on a mobile device versus in the cloud.

Students should model phenomena as systems, with rules governing the interactions within the system and evaluate these models against real-world observations. For example, flocking behaviors, queueing, or life cycles. Google Fusion Tables can provide access to data visualization online.

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.
Alignment with numerous Common Core and NGSS standards.  
Opportunities for extension include cross-curricular integration (particularly in science, social studies, and mathematics).  Further opportunities include, internships, student technician programming, Girls who Code, and PSEO courses.
Other: Impact of Computing3A-IC-24. Evaluate the ways computing impacts personal, ethical, social, economic, and cultural practices.

3A-IC-25. Test and refine computational artifacts to reduce bias and equity deficits.

3A-IC-26. Demonstrate ways a given algorithm applies to problems across disciplines.

3A-IC-27. Use tools and methods for collaboration on a project to increase connectivity of people indifferent cultures and career fields.

3A-IC-28. Explain the beneficial and harmful effects that intellectual property laws can have on innovation.

3A-IC-29. Explain the privacy concerns related to the collection and generation of data through automated processes that may not be evident to users.

3A-IC-30. Evaluate the social and economic implications of privacy in the context of safety, law, or ethics.
Computing may improve, harm, or maintain practices.

Equity deficits, such as minimal exposure to computing, access to education, and training opportunities, are related to larger, systemic problems in society. Biases could include incorrect assumptions developers have made about their user base.

Computation can share features with disciplines such as art and music by algorithmically translating human intention into an artifact. Many aspects of society, especially careers, have been affected by the degree of communication afforded by computing.

The increased connectivity between people in different cultures and in different career fields has changed the nature and content of many careers.

Laws govern many aspects of computing, such as privacy, data, property, information, and identity. These laws can have beneficial and harmful effects, such as expediting or delaying advancements in computing and protecting or infringing upon people’s rights.

International differences in laws and ethics have implications for computing. 

Data can be collected and aggregated across millions of people, even when they are not actively engaging with or physically near the data collection devices. 
Students should be able to evaluate the accessibility of a product to a broad group of end users, such as people who lack access to broadband or who have various disabilities. Students should also begin to identify potential bias during the design process to maximize accessibility in product design.

Students should begin to identify potential bias during the design process to maximize accessibility in product design and become aware of professionally accepted accessibility standards to evaluate computational artifacts for accessibility.

Students should be able to identify real-world problems that span multiple disciplines, such as increasing bike safety with new helmet technology, and that can be solved computationally.

Students should explore different collaborative tools and methods used to solicit input from team members, classmates, and others, such as participation in online forums or local communities. For example, students could compare ways different social media tools could help a team become more cohesive.

For example, laws that mandate the blocking of some file-sharing websites may reduce online piracy but can restrict the right to access information.

Firewalls can be used to block harmful viruses and malware but can also be used for media censorship.

Students should be aware of intellectual property laws and be able to explain how they are used to protect the interests of innovators and how patent trolls abuse the laws for financial gain.

Automated data collection can raise privacy concerns, such as social media sites mining an account even when the user is not online. Other examples include surveillance video used in a store to track customers for security or information about purchase habits or the monitoring of road traffic to change signals in real time to improve road efficiency without drivers being aware.

Methods and devices for collecting data can differ by the amount of storage required, level of detail collected, and sampling rates.

Students might review case studies or current events which present an ethical dilemma when an individual’s right to privacy is at odds with the safety, security, or wellbeing of a community.
Alignment with numerous Common Core standards.  
Opportunities for extension include cross-curricular integration (particularly digital citizenship and library programming).  Further opportunities include internships and the student technician program.

Grades 11-12

Core CompetenciesRelevant StandardsWhat do the standards mean?SkillsConnections & Extensions
Algorithms 3B-AP-08. Describe how artificial intelligence drives many software and physical systems.

3B-AP-09. Implement an artificial intelligence algorithm to play a game against a human opponent or solve a problem.

3B-AP-10. Use and adapt classic algorithms to solve computational problems (examples could include sorting and searching). 

3B-AP-11. Evaluate algorithms in terms of their efficiency, correctness, and clarity.

3B-AP-12. Compare and contrast fundamental data structures and their uses (arrays, lists, strings, etc.). 

3B-AP-13. Illustrate the flow of execution of a recursive algorithm. 

3A-AP-14.Construct solutions to problems using student-created components, such as procedures, modules and/or objects.

3A-AP-15. Analyze a large-scale computational problem and identify generalizable patterns that can be applied to a solution.

3A-AP-16. Demonstrate code reuse by creating programming solutions using libraries and APIs.

3A-AP-17. Plan and develop programs for broad audiences using a software life cycle process.

3A-AP-18. Explain security issues that might lead to compromised computer programs.

3A-AP-19. Develop programs for multiple computing platforms.

3A-AP-20. Use version control systems, integrated development environments (IDEs), andcollaborative tools and practices (code documentation) in a group software project.

3A-AP-21. Develop and use a series of test cases to verify that a program performs according to its design specifications.

3A-AP-22. Modify an existing program to add additional functionality and discuss intended and unintended implications (e.g., breaking other functionality).

3A-AP-23. Evaluate key qualities of a program through a process such as a code review.

3A-AP-24. Compare multiple programming languages and discuss how their features make them suitable for solving different types of problems.
Games do not have to be complex. Simple guessing games, Tic-Tac-Toe, or simple robot commands will be sufficient.

Object-oriented programming is optional at this level. Problems can be assigned or student-selected.

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. Libraries and APIs can be student-created or common graphics libraries or maps APIs, for example.

For example, common issues include lack of bounds checking, poor input validation, and circular references.

For instance, changes made to a method or function signature could break invocations of that method elsewhere in a system.

Examples of features include blocks versus text, indentation versus curly braces, and high-level versus low-level.

Examples include digital ad delivery, self-driving cars, and credit card fraud detection.

Examples could include sorting and searching.Examples could include strings, lists, arrays, stacks, and queues.

For example, students could create an app to solve a community problem by connecting to an online database through an application programming interface (API).

Processes could include agile, spiral, or waterfall.

Example platforms could include: computer desktop, web, or mobile.

Group software projects can be assigned or student-selected.

At this level, students are expected to select their own test cases.

Examples of qualities could include correctness, usability, readability, efficiency, portability and scalability.

Alignment with numerous Common Core and NGSS standards.  
Opportunities for extension include cross-curricular integration (particularly in science, social studies, and mathematics).  Further opportunities include programming clubs, robotics clubs, internships, student technician programming, Girls who Code, and PSEO courses.
Computational Models3A-DA-07. Evaluate the ability of models and simulations to test and support the refinement ofHypotheses*.For example, identify trends in a dataset representing social media interactions, movie reviews, or shopping patterns.


Alignment with numerous Common Core and NGSS standards.  
Opportunities for extension include cross-curricular integration (particularly in science, social studies, and mathematics).  


SystemsNo standards identified at this grade level.
Data 3B-DA-05.Use data analysis tools and techniques to identify patterns in data representing complex systems.

3B-DA-06. Select data collection tools and techniques to generate data sets that support a claim orcommunicate information.

3A-DA-07. Evaluate the ability of models and simulations to test and support the refinement ofhypotheses.
See StandardsFor example, identify trends in a dataset representing social media interactions, movie reviews, or shopping patterns.

Alignment with numerous Common Core and NGSS standards.  
Opportunities for extension include cross-curricular integration (particularly in science, social studies, and mathematics).  Further opportunities include, internships, student technician programming, Girls who Code, and PSEO courses.
Other: Impact of Computing3B-IC-25. Evaluate computational artifacts to maximize their beneficial effects and minimize harmful effects on society.

3B-IC-26. Evaluate the impact of equity, access, and influence on the distribution of computingresources in a global society.

3B-IC-27. Predict how computational innovations that have revolutionized aspects of our culture might evolve.

3B-IC-28. Use tools and methods for collaboration on a project to increase connectivity of people indifferent cultures and career fields.
See StandardsAreas to consider might include education, healthcare, art/entertainment, and energy.Alignment with numerous Common Core standards.  
Opportunities for extension include cross-curricular integration (particularly digital citizenship and library programming).  Further opportunities include programming clubs, robotics clubs, internships, student technician programming, Girls who Code, and PSEO courses.