# CS Discoveries

Standards Alignment

## Unit 1: Problem Solving

### Lesson 1: Intro to Problem Solving

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 1B-AP-08 - Compare and refine multiple algorithms for the same task and determine which is the most appropriate.
• 1B-AP-11 - Decompose (break down) problems into smaller, manageable subproblems to facilitate the program development process.
• 1B-AP-13 - Take on varying roles, with teacher guidance, when collaborating with peers during the design, implementation and review stages of program development.

### Lesson 2: The Problem Solving Process

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 1B-AP-08 - Compare and refine multiple algorithms for the same task and determine which is the most appropriate.
• 1B-AP-11 - Decompose (break down) problems into smaller, manageable subproblems to facilitate the program development process.

### Lesson 3: Exploring Problem Solving

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 1B-AP-08 - Compare and refine multiple algorithms for the same task and determine which is the most appropriate.
• 1B-AP-11 - Decompose (break down) problems into smaller, manageable subproblems to facilitate the program development process.
• 1B-AP-13 - Take on varying roles, with teacher guidance, when collaborating with peers during the design, implementation and review stages of program development.

### Lesson 4: What is a Computer?

#### CSTA K-12 Computer Science Standards

CS - Computing Systems
• 1B-CS-01 - Describe how internal and external parts of computing devices function to form a system.

### Lesson 5: Input and Output

#### CSTA K-12 Computer Science Standards

CS - Computing Systems
• 1B-CS-01 - Describe how internal and external parts of computing devices function to form a system.
• 1B-CS-02 - Model how computer hardware and software work together as a system to accomplish tasks.

### Lesson 6: Processing

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 2-AP-10 - Use flowcharts and/or pseudocode to address complex problems as algorithms.
CS - Computing Systems
• 1B-CS-01 - Describe how internal and external parts of computing devices function to form a system.
• 1B-CS-02 - Model how computer hardware and software work together as a system to accomplish tasks.

### Lesson 7: Storage

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 2-AP-10 - Use flowcharts and/or pseudocode to address complex problems as algorithms.
• 2-AP-17 - Systematically test and refine programs using a range of test cases.

### Lesson 8: Apps and Problem Solving

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 2-AP-10 - Use flowcharts and/or pseudocode to address complex problems as algorithms.
IC - Impacts of Computing
• 2-IC-20 - Compare tradeoffs associated with computing technologies that affect people's everyday activities and career options.

### Lesson 9: Project - Propose an App

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 2-AP-10 - Use flowcharts and/or pseudocode to address complex problems as algorithms.
• 2-AP-15 - Seek and incorporate feedback from team members and users to refine a solution that meets user needs.
• 2-AP-18 - Distribute tasks and maintain a project timeline when collaboratively developing computational artifacts.
CS - Computing Systems
• 2-CS-02 - Design projects that combine hardware and software components to collect and exchange data.

## Unit 2: Web Development

### Lesson 1: Exploring Websites

#### CSTA K-12 Computer Science Standards

IC - Impacts of Computing
• 2-IC-20 - Compare tradeoffs associated with computing technologies that affect people's everyday activities and career options.

### Lesson 2: Websites for Expression

#### CSTA K-12 Computer Science Standards

IC - Impacts of Computing
• 1B-IC-18 - Discuss computing technologies that have changed the world and express how those technologies influence, and are influenced by, cultural practices.

### Lesson 3: Intro to HTML

#### CSTA K-12 Computer Science Standards

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

### Lesson 4: Headings

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 1B-AP-11 - Decompose (break down) problems into smaller, manageable subproblems to facilitate the program development process.
• 1B-AP-15 - Test and debug (identify and fix errors) a program or algorithm to ensure it runs as intended.

### Lesson 5: Digital Footprint

#### CSTA K-12 Computer Science Standards

IC - Impacts of Computing
• 2-IC-20 - Compare tradeoffs associated with computing technologies that affect people's everyday activities and career options.
• 2-IC-23 - Describe tradeoffs between allowing information to be public and keeping information private and secure.
NI - Networks & the Internet
• 1B-NI-05 - Discuss real-world cybersecurity problems and how personal information can be protected.

### Lesson 6: Lists

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 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.
• 1B-AP-15 - Test and debug (identify and fix errors) a program or algorithm to ensure it runs as intended.

### Lesson 7: Intellectual Property and Images

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 2-AP-16 - Incorporate existing code, media, and libraries into original programs, and give attribution.
• 3A-AP-21 - Evaluate licenses that limit or restrict use of computational artifacts when using resources such as libraries.
IC - Impacts of Computing
• 1B-IC-21 - Use public domain or creative commons media and refrain from copying or using material created by others without permission.
• 2-IC-23 - Describe tradeoffs between allowing information to be public and keeping information private and secure.

### Lesson 8: Clean Code and Debugging

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 2-AP-19 - Document programs in order to make them easier to follow, test, and debug.

### Lesson 9: Project - Multi-Page Websites

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 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-19 - Document programs in order to make them easier to follow, test, and debug.
IC - Impacts of Computing
• 1B-IC-21 - Use public domain or creative commons media and refrain from copying or using material created by others without permission.

### Lesson 10: Styling Text with CSS

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 2-AP-16 - Incorporate existing code, media, and libraries into original programs, and give attribution.
• 2-AP-19 - Document programs in order to make them easier to follow, test, and debug.

### Lesson 11: Styling Elements with CSS

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 2-AP-16 - Incorporate existing code, media, and libraries into original programs, and give attribution.
• 2-AP-19 - Document programs in order to make them easier to follow, test, and debug.

### Lesson 12: Sources and Search Engines

#### CSTA K-12 Computer Science Standards

IC - Impacts of Computing
• 2-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-23 - Describe tradeoffs between allowing information to be public and keeping information private and secure.

### Lesson 13: RGB Colors and Classes

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 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-19 - Document programs in order to make them easier to follow, test, and debug.

### Lesson 14: Project - Personal Portfolio Website

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 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.

## Unit 3: Interactive Games and Animations

### Lesson 1: Programming for Entertainment

#### CSTA K-12 Computer Science Standards

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

### Lesson 2: Plotting Shapes

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 2-AP-10 - Use flowcharts and/or pseudocode to address complex problems as algorithms.
• 2-AP-13 - Decompose problems and subproblems into parts to facilitate the design, implementation, and review of programs.
• 2-AP-17 - Systematically test and refine programs using a range of test cases.

### Lesson 3: Drawing in Game Lab

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 2-AP-13 - Decompose problems and subproblems into parts to facilitate the design, implementation, and review of programs.
• 2-AP-19 - Document programs in order to make them easier to follow, test, and debug.

### Lesson 4: Shapes and Randomization

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 2-AP-13 - Decompose problems and subproblems into parts to facilitate the design, implementation, and review of programs.
• 2-AP-17 - Systematically test and refine programs using a range of test cases.
• 2-AP-19 - Document programs in order to make them easier to follow, test, and debug.

### Lesson 5: Variables

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 2-AP-11 - Create clearly named variables that represent different data types and perform operations on their values.
• 2-AP-13 - Decompose problems and subproblems into parts to facilitate the design, implementation, and review of programs.
• 2-AP-17 - Systematically test and refine programs using a range of test cases.
• 2-AP-19 - Document programs in order to make them easier to follow, test, and debug.

### Lesson 6: Sprites

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 2-AP-11 - Create clearly named variables that represent different data types and perform operations on their values.
• 2-AP-13 - Decompose problems and subproblems into parts to facilitate the design, implementation, and review of programs.
• 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-19 - Document programs in order to make them easier to follow, test, and debug.

### Lesson 7: The Draw Loop

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 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-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-19 - Document programs in order to make them easier to follow, test, and debug.

### Lesson 8: Counter Pattern Unplugged

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 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.

### Lesson 9: Sprite Movement

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 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-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-19 - Document programs in order to make them easier to follow, test, and debug.

### Lesson 10: Booleans Unplugged

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 2-AP-10 - Use flowcharts and/or pseudocode to address complex problems as algorithms.

### Lesson 11: Booleans and Conditionals

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 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-17 - Systematically test and refine programs using a range of test cases.
• 2-AP-19 - Document programs in order to make them easier to follow, test, and debug.

### Lesson 12: Conditionals and User Input

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 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-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-19 - Document programs in order to make them easier to follow, test, and debug.

### Lesson 13: Other Forms of Input

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 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-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-19 - Document programs in order to make them easier to follow, test, and debug.

### Lesson 14: Project - Interactive Card

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 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-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.

### Lesson 15: Velocity

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 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-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-19 - Document programs in order to make them easier to follow, test, and debug.

### Lesson 16: Collision Detection

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 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-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.

### Lesson 17: Complex Sprite Movement

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 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-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-19 - Document programs in order to make them easier to follow, test, and debug.

### Lesson 18: Collisions

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 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-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-19 - Document programs in order to make them easier to follow, test, and debug.

### Lesson 19: Functions

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 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-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-19 - Document programs in order to make them easier to follow, test, and debug.

### Lesson 20: The Game Design Process

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 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-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-19 - Document programs in order to make them easier to follow, test, and debug.

### Lesson 21: Using the Game Design Process

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 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-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-19 - Document programs in order to make them easier to follow, test, and debug.

### Lesson 22: Project - Design a Game

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 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-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.

## Unit 4: The Design Process

### Lesson 1: Analysis of Design

#### CSTA K-12 Computer Science Standards

CS - Computing Systems
• 2-CS-01 - Recommend improvements to the design of computing devices, based on an analysis of how users interact with the devices.

### Lesson 2: Understanding Your User

#### CSTA K-12 Computer Science Standards

CS - Computing Systems
• 2-CS-01 - Recommend improvements to the design of computing devices, based on an analysis of how users interact with the devices.

### Lesson 3: User-Centered Design Micro Activity

#### CSTA K-12 Computer Science Standards

CS - Computing Systems
• 2-CS-02 - Design projects that combine hardware and software components to collect and exchange data.
IC - Impacts of Computing
• 2-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.

### Lesson 4: User Interfaces

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 2-AP-10 - Use flowcharts and/or pseudocode to address complex problems as algorithms.
• 2-AP-17 - Systematically test and refine programs using a range of test cases.
CS - Computing Systems
• 2-CS-01 - Recommend improvements to the design of computing devices, based on an analysis of how users interact with the devices.

### Lesson 5: Feedback and Testing

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 2-AP-10 - Use flowcharts and/or pseudocode to address complex problems as algorithms.
• 2-AP-15 - Seek and incorporate feedback from team members and users to refine a solution that meets user needs.
• 2-AP-17 - Systematically test and refine programs using a range of test cases.
IC - Impacts of Computing
• 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.

### Lesson 6: Identifying User Needs

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 2-AP-10 - Use flowcharts and/or pseudocode to address complex problems as algorithms.
• 2-AP-15 - Seek and incorporate feedback from team members and users to refine a solution that meets user needs.
• 2-AP-17 - Systematically test and refine programs using a range of test cases.
IC - Impacts of Computing
• 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.

### Lesson 7: Project - Paper Prototype

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 2-AP-10 - Use flowcharts and/or pseudocode to address complex problems as algorithms.
• 2-AP-15 - Seek and incorporate feedback from team members and users to refine a solution that meets user needs.
• 2-AP-17 - Systematically test and refine programs using a range of test cases.

### Lesson 8: Designing Apps for Good

#### CSTA K-12 Computer Science Standards

IC - Impacts of Computing
• 2-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.

### Lesson 9: Market Research

#### CSTA K-12 Computer Science Standards

IC - Impacts of Computing
• 2-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.

### Lesson 10: Paper Prototypes

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 2-AP-10 - Use flowcharts and/or pseudocode to address complex problems as algorithms.
• 2-AP-13 - Decompose problems and subproblems into parts to facilitate the design, implementation, and review of programs.
• 2-AP-19 - Document programs in order to make them easier to follow, test, and debug.

### Lesson 11: Prototype Testing

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 2-AP-10 - Use flowcharts and/or pseudocode to address complex problems as algorithms.
• 2-AP-15 - Seek and incorporate feedback from team members and users to refine a solution that meets user needs.
• 2-AP-17 - Systematically test and refine programs using a range of test cases.
CS - Computing Systems
• 2-CS-01 - Recommend improvements to the design of computing devices, based on an analysis of how users interact with the devices.
DA - Data & Analysis
• 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.
IC - Impacts of Computing
• 2-IC-22 - Collaborate with many contributors through strategies such as crowdsourcing or surveys when creating a computational artifact.

### Lesson 12: Digital Design

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 2-AP-13 - Decompose problems and subproblems into parts to facilitate the design, implementation, and review of programs.
• 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-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.
CS - Computing Systems
• 2-CS-01 - Recommend improvements to the design of computing devices, based on an analysis of how users interact with the devices.
IC - Impacts of Computing
• 2-IC-22 - Collaborate with many contributors through strategies such as crowdsourcing or surveys when creating a computational artifact.

### Lesson 13: Linking Screens

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 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-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.
IC - Impacts of Computing
• 2-IC-22 - Collaborate with many contributors through strategies such as crowdsourcing or surveys when creating a computational artifact.

### Lesson 14: Testing the App

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 2-AP-15 - Seek and incorporate feedback from team members and users to refine a solution that meets user needs.
• 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.
CS - Computing Systems
• 2-CS-01 - Recommend improvements to the design of computing devices, based on an analysis of how users interact with the devices.
DA - Data & Analysis
• 2-DA-08 - Collect data using computational tools and transform the data to make it more useful and reliable.
IC - Impacts of Computing
• 2-IC-22 - Collaborate with many contributors through strategies such as crowdsourcing or surveys when creating a computational artifact.

### Lesson 15: Improving and Iterating

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 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.
CS - Computing Systems
• 2-CS-01 - Recommend improvements to the design of computing devices, based on an analysis of how users interact with the devices.
DA - Data & Analysis
• 2-DA-09 - Refine computational models based on the data they have generated.
IC - Impacts of Computing
• 2-IC-22 - Collaborate with many contributors through strategies such as crowdsourcing or surveys when creating a computational artifact.

### Lesson 16: Project - App Presentation

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 2-AP-19 - Document programs in order to make them easier to follow, test, and debug.
CS - Computing Systems
• 2-CS-01 - Recommend improvements to the design of computing devices, based on an analysis of how users interact with the devices.
DA - Data & Analysis
• 2-DA-09 - Refine computational models based on the data they have generated.
IC - Impacts of Computing
• 2-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.

## Unit 5: Data and Society

### Lesson 1: Representation Matters

#### CSTA K-12 Computer Science Standards

DA - Data & Analysis
• 2-DA-07 - Represent data using multiple encoding schemes.

### Lesson 2: Patterns and Representation

#### CSTA K-12 Computer Science Standards

DA - Data & Analysis
• 2-DA-07 - Represent data using multiple encoding schemes.

### Lesson 3: ASCII and Binary Representation

#### CSTA K-12 Computer Science Standards

DA - Data & Analysis
• 2-DA-07 - Represent data using multiple encoding schemes.

### Lesson 4: Representing Images

#### CSTA K-12 Computer Science Standards

DA - Data & Analysis
• 2-DA-07 - Represent data using multiple encoding schemes.

### Lesson 5: Representing Numbers

#### CSTA K-12 Computer Science Standards

DA - Data & Analysis
• 2-DA-07 - Represent data using multiple encoding schemes.

### Lesson 6: Keeping Data Secret

#### CSTA K-12 Computer Science Standards

NI - Networks & the Internet
• 2-NI-05 - Explain how physical and digital security measures protect electronic information.
• 2-NI-06 - Apply multiple methods of encryption to model the secure transmission of information.

### Lesson 8: Create a Representation

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 2-AP-10 - Use flowcharts and/or pseudocode to address complex problems as algorithms.
• 2-AP-13 - Decompose problems and subproblems into parts to facilitate the design, implementation, and review of programs.
DA - Data & Analysis
• 2-DA-07 - Represent data using multiple encoding schemes.

### Lesson 9: Problem Solving and Data

#### CSTA K-12 Computer Science Standards

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

### Lesson 10: Problem Solving with Big Data

#### CSTA K-12 Computer Science Standards

IC - Impacts of Computing
• 2-IC-20 - Compare tradeoffs associated with computing technologies that affect people's everyday activities and career options.
• 2-IC-23 - Describe tradeoffs between allowing information to be public and keeping information private and secure.

### Lesson 11: Structuring Data

#### CSTA K-12 Computer Science Standards

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

### Lesson 12: Making Decisions with Data

#### CSTA K-12 Computer Science Standards

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

### Lesson 14: Automating Data Decisions

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 2-AP-10 - Use flowcharts and/or pseudocode to address complex problems as algorithms.
DA - Data & Analysis
• 2-DA-08 - Collect data using computational tools and transform the data to make it more useful and reliable.
IC - Impacts of Computing
• 2-IC-22 - Collaborate with many contributors through strategies such as crowdsourcing or surveys when creating a computational artifact.

### Lesson 15: Project - Make a Recommendation

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 2-AP-10 - Use flowcharts and/or pseudocode to address complex problems as algorithms.
• 2-AP-15 - Seek and incorporate feedback from team members and users to refine a solution that meets user needs.
• 2-AP-18 - Distribute tasks and maintain a project timeline when collaboratively developing computational artifacts.
DA - Data & Analysis
• 2-DA-08 - Collect data using computational tools and transform the data to make it more useful and reliable.
IC - Impacts of Computing
• 2-IC-23 - Describe tradeoffs between allowing information to be public and keeping information private and secure.

## Unit 6: Physical Computing

### Lesson 1: Innovations in Computing

#### CSTA K-12 Computer Science Standards

IC - Impacts of Computing
• 2-IC-20 - Compare tradeoffs associated with computing technologies that affect people's everyday activities and career options.

### Lesson 2: Input Unplugged

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 2-AP-10 - Use flowcharts and/or pseudocode to address complex problems as algorithms.

### Lesson 3: Event Types

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 2-AP-13 - Decompose problems and subproblems into parts to facilitate the design, implementation, and review of programs.
• 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.

### Lesson 4: Getters and Setters

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 2-AP-11 - Create clearly named variables that represent different data types and perform operations on their values.
• 2-AP-13 - Decompose problems and subproblems into parts to facilitate the design, implementation, and review of programs.
• 2-AP-16 - Incorporate existing code, media, and libraries into original programs, and give attribution.
• 2-AP-19 - Document programs in order to make them easier to follow, test, and debug.

### Lesson 5: The Circuit Playground

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 2-AP-11 - Create clearly named variables that represent different data types and perform operations on their values.
• 2-AP-13 - Decompose problems and subproblems into parts to facilitate the design, implementation, and review of programs.
• 2-AP-16 - Incorporate existing code, media, and libraries into original programs, and give attribution.
• 2-AP-19 - Document programs in order to make them easier to follow, test, and debug.
CS - Computing Systems
• 2-CS-02 - Design projects that combine hardware and software components to collect and exchange data.
• 2-CS-03 - Systematically identify and fix problems with computing devices and their components.

### Lesson 6: Lists

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 2-AP-11 - Create clearly named variables that represent different data types and perform operations on their values.
• 2-AP-13 - Decompose problems and subproblems into parts to facilitate the design, implementation, and review of programs.
• 2-AP-16 - Incorporate existing code, media, and libraries into original programs, and give attribution.
• 2-AP-19 - Document programs in order to make them easier to follow, test, and debug.
CS - Computing Systems
• 2-CS-02 - Design projects that combine hardware and software components to collect and exchange data.

### Lesson 7: Color LEDs

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 2-AP-11 - Create clearly named variables that represent different data types and perform operations on their values.
• 2-AP-13 - Decompose problems and subproblems into parts to facilitate the design, implementation, and review of programs.
• 2-AP-16 - Incorporate existing code, media, and libraries into original programs, and give attribution.
• 2-AP-19 - Document programs in order to make them easier to follow, test, and debug.
CS - Computing Systems
• 2-CS-01 - Recommend improvements to the design of computing devices, based on an analysis of how users interact with the devices.
• 2-CS-02 - Design projects that combine hardware and software components to collect and exchange data.
• 2-CS-03 - Systematically identify and fix problems with computing devices and their components.

### Lesson 8: For Loops

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 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-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-19 - Document programs in order to make them easier to follow, test, and debug.
CS - Computing Systems
• 2-CS-01 - Recommend improvements to the design of computing devices, based on an analysis of how users interact with the devices.
• 2-CS-02 - Design projects that combine hardware and software components to collect and exchange data.
• 2-CS-03 - Systematically identify and fix problems with computing devices and their components.

### Lesson 9: Lists and For Loops

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 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-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-19 - Document programs in order to make them easier to follow, test, and debug.
CS - Computing Systems
• 2-CS-01 - Recommend improvements to the design of computing devices, based on an analysis of how users interact with the devices.
• 2-CS-02 - Design projects that combine hardware and software components to collect and exchange data.
• 2-CS-03 - Systematically identify and fix problems with computing devices and their components.

### Lesson 10: Timed Loops

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 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-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-19 - Document programs in order to make them easier to follow, test, and debug.
CS - Computing Systems
• 2-CS-01 - Recommend improvements to the design of computing devices, based on an analysis of how users interact with the devices.
• 2-CS-02 - Design projects that combine hardware and software components to collect and exchange data.
• 2-CS-03 - Systematically identify and fix problems with computing devices and their components.

### Lesson 11: Project - Board Output

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 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-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.
CS - Computing Systems
• 2-CS-01 - Recommend improvements to the design of computing devices, based on an analysis of how users interact with the devices.
• 2-CS-02 - Design projects that combine hardware and software components to collect and exchange data.
• 2-CS-03 - Systematically identify and fix problems with computing devices and their components.

### Lesson 12: Physical Input

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 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-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-19 - Document programs in order to make them easier to follow, test, and debug.
CS - Computing Systems
• 2-CS-01 - Recommend improvements to the design of computing devices, based on an analysis of how users interact with the devices.
• 2-CS-02 - Design projects that combine hardware and software components to collect and exchange data.
• 2-CS-03 - Systematically identify and fix problems with computing devices and their components.

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 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-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-19 - Document programs in order to make them easier to follow, test, and debug.
CS - Computing Systems
• 2-CS-01 - Recommend improvements to the design of computing devices, based on an analysis of how users interact with the devices.
• 2-CS-02 - Design projects that combine hardware and software components to collect and exchange data.
• 2-CS-03 - Systematically identify and fix problems with computing devices and their components.

### Lesson 14: Sensor Applications

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 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-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-19 - Document programs in order to make them easier to follow, test, and debug.
CS - Computing Systems
• 2-CS-01 - Recommend improvements to the design of computing devices, based on an analysis of how users interact with the devices.
• 2-CS-02 - Design projects that combine hardware and software components to collect and exchange data.
• 2-CS-03 - Systematically identify and fix problems with computing devices and their components.

### Lesson 15: Project - Prototype an Innovation

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 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-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.
CS - Computing Systems
• 2-CS-01 - Recommend improvements to the design of computing devices, based on an analysis of how users interact with the devices.
• 2-CS-02 - Design projects that combine hardware and software components to collect and exchange data.
• 2-CS-03 - Systematically identify and fix problems with computing devices and their components.