CS Discoveries Beta Preview 2021

Standards Alignment

Learning Frameworks

Unit 1 Overview

Unit 1 introduces core practices and frameworks that students will use throughout the course. By the end of the unit, students should be able to identify the defining characteristics of a computer and how it is used to solve information problems. They should be able to use a structured problem solving process to address problems and design solutions that use computing technology.

Learning Framework

Understanding Computing Devices

Students should be able to identify input, output, storage, and processing as four essential components of a computing device and explain the role that each component takes when computers are used to solve informational problems.

Models of Computing Devices:

Identify a computer as a machine that processes information and give a high level description of the input-output-storage-processing model of computing devices.

Input and Output:

Identify the inputs and outputs of common computing devices and select the inputs and outputs used to perform common computing tasks.

Storage:

Provide examples of common types of information that is stored on a computer and explain the need for storage as part of processing information with a computer.

Processing:

Define processing as the work done (possibly by a computer) to turn an input into an output and define an algorithm as the series of commands a computer uses to process information

The Problem Solving Process

Students should be able to define and use a structured problem solving process, identifying key components of the process and how they apply to various problems. Students should use multiple strategies to approach problems, iteratively improving on the solution through collaboration and reflection.

Use a structured problem solving process:

Given various problems, identify individual actions that would fall within each step of a structured process to solve them.

Define a problem to be solved

Assess how well defined a problem is and use strategies to define the problem more precisely

Plan a solution

Consider various approaches to solving a problem, and decide which is the most appropriate

Implement a solution

Carry out and evaluate a solution to a problem, iteratively improving on it as needed

Computing and Algorithms

Students should combine their understandings of computing and problem solving to identify and design solutions for computational problems. In doing so, they should develop algorithms that can automate the processing of information, producing a desired output from a given input.

Identify and define computational problems:

Choose problems that can be solved with computing and justify those choices.

Develop computational solutions:

Identify the inputs associated with a given problem, and define the processing and storage needed to produce the desired output.

Developing algorithms:

Develop and iteratively improve algorithms for processing information.

Unit 2 Overview

Unit 2 introduces computer languages and how students can use these languages to create digital artifacts. By the end of the unit, students should be able to create a digital artifact that uses multiple computer languages to control the structure and style of their content. They should understand that different languages allow them to solve different problems, and that these solutions can be generalized across similar problems. Lastly, they should understand their responsibilities as both creators and consumers of digital media.

Learning Framework

Using Computer Languages

Students should understand the need for computer languages, and how to choose a language based on the the task at hand. They should understand that different languages use different syntax, and understand the need for precision and syntax in using multiple computer languages.

Understand and explain the need for computer languages

Understand why specialized languages exist to communicate with computers and describe the features a language might need.

Attend to precision and syntax when creating a digital artifact

Understand the need for precision when using computer languages and use appropriate syntax.

Combine computer languages within a digital artifact

Use multiple computer languages to manage the complexity of a digital artifact.

Choose an appropriate computer language

Understand differences between HTML and CSS and choose the most appropriate language for a given task.

Modularity and Abstraction

Students should be able to break down complex problems into their component parts, distinguishing between content, structure, and formatting. They should also recognize and use abstraction as it is built into computer languages, grouping elements by type or by classes that they create.

Logically separate the content, structure and formatting of a digital artifact

Distinguish between the content, structure, and formatting in the design of a digital artifact and ensure that they are logically separated in its encoding (e.g. by using HTML for structuring and CSS for formatting).

Create classes that can be referenced and affected as a group

Use classes to identify and set the properties multiple elements as a group

Create rules that affect entire groups of elements

Use classes to create formatting rules that will be applied to groups of elements, either by tag or by class.

Use stylesheets to apply formatting rules across multiple web pages

Create and reference style sheets so that consistent formatting rules will apply to multiple web pages.

Creating a Digital Artifact

Students should be able to design and create their own digital artifact using multiple computer languages. Students should use multiple strategies to find and eliminate bugs from their code.

Structure content on a web page using HTML

Use HTML to create a web page that includes hierarchical headings, paragraphs, and images.

Apply formatting in a web page using CSS

Use external style sheets to control placement, size, and appearance of elements.

Use multiple debugging strategies

Develop a set of techniques for preventing bugs in HTML and CSS code and finding them when they occur.

Clean Code and Documentation

Students should understand the importance of clean, readable code and should use appropriate formatting and commenting conventions to make their code easier to read and maintain.

Format code to make it easier to read and maintain

Use whitespace and indentation to make code easier to read and maintain.

Comment code where appropriate

Use comments to make code more readable.

Document the development and intended use of digital artifacts

Create documentation that explains the design decisions of an artifact and gives guidance to end users on how it functions.

Responsible Creation and Consumption of Digital Media

Students should recognize their responsibilities as creators and consumers of digital media. They should be able to make ethical and safe choices when publishing information online. They should understand that not all information found online is trustworthy, and have strategies for finding relevant and reliable information on the web.

Use good judgement in sharing personal information online

Justify and adhere to guidelines for safely publishing information online,

Explain the purpose of copyright and follow copyright law, accurately attributing others when using their work.

Vet sources

Use basic web searching techniques to find relevant information online, identify elements that contribute to a website's trustworthiness or untrustworthiness.

Inclusivity and Collaboration

Students should identify collaboration and inclusivity as crucial practices in developing digital artifacts. They should work effectively with a variety of team members and users to identify collective goals, design inclusive products and manage the development process.

Distribute tasks among team members and maintain a project timeline

Fairly split work between team members in a way that each person has a clear role on the project and a common understanding of when work should be completed.

Seek and incorporate feedback to improve a project, and provide constructive feedback to others

Seek and provide diverse perspectives from team members and end users throughout the design process, and use the feedback to improve the product.

Incorporate design features that allow for better accessibility and inclusion for the end user

Consider accessibility and inclusion when designing a digital artifact, and ensure that features that support accessibility (such as alt tag for images and good HTML structure to support screen readers) are incorporated into a product’s design and development

Unit 3 Overview

Unit 3 focuses on algorithms and programming. By the end of the unit, students should be able to create an interactive animation or game that includes basic programming concepts such as control structures, variables, user input, and randomness. They should manage this task by working with others to break it down using objects (sprites) and functions. Throughout the process, they should give and respond constructively to peer feedback and work with their teammates to complete a project.

Learning Framework

Program Development

Students should be able to collaborate with peers to develop a piece of software. This process involves defining the needs of the program, designing a program to meet those needs, and breaking down the design into manageable pieces. Student code should be written so that others can read and understand it, and they should give and receive feedback on their work, as well as test and revise the program.

Constructively give and respond to peer feedback

Give feedback to peers using a structured process that points out strengths and areas for growth in a project, and incorporate given feedback for their own programs into their revisions.

Write readable code

Organize code such that it is readable and make comments where appropriate to help readers understand the purpose of specific sections. Use reasonable variable and function names.

Using a structured process to plan and develop a program

Use a structured process to describe a program’s behavior, identify the core programming constructs necessary to complete the project, then use them as a guide to complete the program.

Collaborate effectively with team members in distributing and completing tasks on time

Break up tasks so that each team member can make a meaningful contribution. Ensure that the code will work together once it is finished.

Modularity

Students should be able to break down complex problems into their component parts, both to increase readability and organization of code and to allow them to reuse portions of code many times. Algorithms should be broken into functions, and screen elements into sprites/objects. They should also recognize and use abstraction as it is built into programming languages.

Use objects to manage the complexity of on-screen elements

Create and modify objects (sprites) to represent on screen elements and their associated properties. Use dot notation to get and set sprite properties.

Manage complexity through abstraction

Use abstraction to reason about a program at different levels of complexity. Describe the benefits of abstraction, including simplifying code to more easily program complex behavior.

Define and call functions in a program

Create and use functions to organize reuse code within the same program. Modify and use functions created by others

Algorithms and Control

Students should be able to use basic programming constructs to create a wide range of behaviors in their programs. These constructs should be combined to create complex behaviors, such as screen elements that move according to user input, or properties that change after a certain threshold has been reached. Programs should run differently each time according user input or random chance.

Use arguments to change the way a method runs

Use arguments to change the way a method runs, distinguishing between the roles of multiple arguments passed to a method

Detect and respond to user input

Use input from the keyboard and mouse to change the behavior of a program while it is running.

Use iteration to repeat behavior within a program.

Use loops to repeat behavior in a program, combing repetition with other control structure to produce ongoing complex behaviors.

Use conditionals to control the flow of a program.

Use conditional statements to control the flow of a program based on user input, variable values, or properties of objects (sprites).

Generate and use random numbers in a program.

Use random numbers to introduce variation in how a program is run.

Position and Movement

Students should use the coordinate plane to place and move screen elements. The should be able to model various types of motion, including acceleration, linear movement and simulating gravity.

Place elements on screen using a coordinate plane

Use a coordinate system to place elements on a screen, accounting for object size and overlay.

Model two dimensional movement on a coordinate plane

Manipulate the x and y coordinates of an object on a screen to create the illusion of smooth motion.

Model complex movement on a coordinate plane

Combine different types of movement to create more complex behaviors such as acceleration, jumping, and bouncing.

Variables/Storing Information

Students should be able to create new variables as needed in their programs, and update and access the variable values as the program runs.

Use variables to store and update information

Create and assign values to variables as a program is run to store and update changing information

Unit 4 Overview

Unit 4 extends the problem solving process to incorporate user centered design and software development. By the end of the unit, students should see the design process as a form of problem solving that prioritizes the needs of a user. They should be able to identify user needs and assess how well different designs address them. In particular they know how to develop a paper and digital prototypes, gather and respond to feedback about a prototype, and consider ways different user interfaces do or do not affect the usability of their apps. Students should leave the unit with a basic understand of other roles in software development, such as product management, marketing, design, and testing, and to use what they have learned as a tool for social impact.

Learning Framework

Understanding the user

Students should actively consider the needs of others while developing a solution to a problem. They should identify user needs as central criteria for the development of a computational artifact and distinguish their own needs from those of the user, taking steps to identify those needs through a variety of strategies.

Identify user needs as distinct from the needs of the developer:

Describe the target users for a computational artifact and identify those user’s needs, distinguishing between the needs of the student and those of the user.

Collect and analyze user information to better understand user needs:

Collect information on users, either through research, interviews, or surveys, and analyze that information to create a profile for the user, including the needs that the user may have in interacting with the intended computational artifact.

Designing to criteria

Students should be able to use set criteria to guide their design of a computational artifact, both in the overall design and purpose of the artifact and in the specific ways that users can interact with it.

Generate and evaluate ideas for meeting specific criteria

Generate multiple strategies for meeting user needs, then organize them into meaningful categories so that they can be analyzed. Select the most appropriate strategies from the list.

Design according to specific user needs

Design an artifact, including core functionality and user interface, that meets the needs of a specific user, or design improvements to an existing artifact in order to meet those needs.

Prototyping and Testing

Students should be able to create and use a prototype to test the proposed features and functionality of a computational artifact. They should design prototypes tests that allow them to observe user interaction and get user feedback on the artifact and use that feedback to create a plan for improving the artifact’s design.

Create and test a prototype for a computational artifact

Create a paper or digital prototype that incorporates the user flow for a computational artifact. Design and run tests that use these prototypes to gather feedback on a design before creating the full computational artifact.

Synthesize user feedback to identify needed improvements to a design

Analyze user tests to identify features that should be removed, added, or improved within the design of a computational artifact.

Software Development

Use events to detect and respond to use input

Select the appropriate input element for a given type of information and create an event that detects and responds to that input.

Collaboratively develop a computational artifact

Collaborate with others to develop a computational artifact, developing a plan for splitting work effectively, assigning roles and responsibilities to each team member, and integrating all components into the final artifact.

Communicate and document the design and development of a computational artifact

Communicate the design and intended use of program, as well as the development of an ongoing project, to a variety of audiences, including non-technical users.

Refinine Computational Artifacts

Analyze user feedback and test results on a computational artifact, then categorize and prioritize the issues according to impact and ease of implementation. Create and implement a plan for further development of the artifact.

Evaluation and Feedback

Students should be able to evaluate a computational artifact, such as a web page, app, or program, according to its ability to meet a broad range of user needs and its social impact. Students should understand that computational artifacts may incorporate assumptions that developers have made about users, and should be able to clearly and respectfully critique a design

Evaluate usability of computational artifact

Critically evaluate a design based on a specific set of user needs, identifying which needs are and are not met by the design.

Evaluate the purpose and impact of a computational artifact:

Identify the ways in which a computational artifact will impact the intended users, as well as others. This impact may or may not be related to the intended purpose of the artifact. Evaluate whether or not a computational artifact is successful in its intended purpose.

Unit 5 Overview

Unit 5 covers the importance of data in solving problems and highlights how computers can help in this process. By the end of the unit, students should have a broad understanding of the role of data and data representation in solving information problems. They should be able to explain the necessary components of any data representation scheme, as well as the particulars of binary and common ways that various types of simple and complex data are represented in binary code. Students should also be able to design and implement a data-based solution to a given problem and determine how the different aspects of this problem solving process could be automated.

Learning Framework

Data Encoding Systems

Student should be able to use a variety of encoding systems, as well as develop their own systems for encoding particular types of data. They should recognize the importance of encoding at various levels of abstraction.

Develop an encoding system for a particular type of data

Recognize the necessary features of a system for encoding information, such as general agreement among users and a lack of ambiguity. Create, test, and use a system for encoding a particular type of data.

Use existing encoding systems

Choose and justify an appropriate encoding system for a given piece of information. Recognize and extend patterns in existing encoding systems.

Modeling and Problem Solving with Data

Students should be able to use data as a central tool in a structured problem solving process. This process should incorporate data-based models that students test and refine. Students should be able to explain how different aspects of this process can be automated, and how data allows them to identify patterns and support conclusions about the phenomena that they are observing.

Data-based problem solving

Use data in conjunction with the problem solving process to find a data-based solution to a problem. Identify, collect, and clean relevant data, and use it to identify relationships that will help better understand and solve a problem.

Draw conclusions from data

Identify patterns and draw conclusions from data sets, and use them to support a claim or decision. Identify additional data that could improve the decision.

Develop a data-based model

Choose the best way to model complex information or real world phenomena based on how it will be used, and provide examples of how different forms of modeling can facilitate solving different types of problems. Refine the model based on new data.

Automated decision making

Design an algorithm for making decisions using data as inputs, and explain the benefits and drawbacks of using computers for automated decision making

Binary Systems

Students should identify binary representation as a fundamental representation system in computing. They should be able to use binary systems to represent different types of data, and identify some key common representation systems.

Defining binary systems

Define a binary system as one that uses just two possible states to represent information. Describe common features of systems used to encode information in binary.

Using binary systems

Use multiple binary systems to encode, decode, and manipulate information, including characters, numbers, and images. Choose and justify the use of different binary representation depending on the information being represented.

Data and Security

Students should be able to explain how their data may be used with or without their knowledge. They should be able to identify different ways to secure data, both physical and digital, and implement an encryption scheme, differentiating between encryption and encoding.

Distinguish between data that users intentionally and unintentionally produce.

Explain how users produce data both intentionally and unintentionally when interacting with computing systems. Give examples of each type of data and how they are collected.

Apply a method of encryption to ensure the secure transmission of data.

Encrypt and decrypt data using a set cryptographic scheme.

Use both physical and digital security measures to secure data.

Differentiate between physical and digital security measures, and give examples of each. Choose multiple security measures what will best secure data in a given scenario.

Collecting and Transforming Data

Identify and collect relevant data

Identify data that could be collected to develop a model or solve a problem, determine the appropriate sources of that data. Give examples of how data can be collected from sensors, tracking user behavior, as well as surveys and direct responses.

Clean a data set

Explain why a data set must be cleaned to make it more useful, and identify and remove irrelevant data from a data set.

Use data to highlight relationships

Use various data visualizations to highlight relationships in data, including cross-tabulation. Transform data from one visualization to another, and choose and justify the most appropriate visualization for a given task.

Unit 6 Overview

In Unit 6, students further develop their programming skills while more deeply exploring the role of hardware platforms in computing. By the end of the unit, students should be able to design and build a physical computing device that integrates hardware inputs and outputs with software. This unit builds on the skills and understandings from the Animations and Games unit with more sophisticated programming constructs, such as arrays, for-loops, and parameters, as well as a deeper understanding of the types of input and output that can be used in computing. Students should leave the unit feeling equipped to use physical computing to solve problems in fun and innovative ways.

Learning Framework

Computing Systems

Identify hardware used in computing systems

Describe different types of input and output that a computing device might use, and justify the choice of a particular input or output for a given task or computing system

Prototype a physical computing device

Develop an interactive physical prototype that integrates hardware and software, including simple circuits. Connect, troubleshoot, and debug external devices and integrated computing systems.

Use hardware output

Develop software to control a variety of physical devices. Recognize the needs for various types of hardware output in computing systems and use software to produce them.

Use hardware input

Develop a program that responds to a variety of hardware input, including those the user does and doesn’t actively control. Recognize the need for various types of input, both analog and digital, and represent the values of those inputs in various ways.

Algorithms

Events and user input

Use event handlers to respond to user interaction, and describe how an event handler responds to user input.

Use getters and setters to manipulate properties

Use getters and setters to access and manipulate the properties of elements in a system.

Modularity

Use functions with parameters

Create and use a function that uses parameters to generalize behavior. Recognize when a program can use parameterized functions to further generalize algorithms, and justify their use.

Use arrays and iteration

Recognize an array as a list of elements that can be operated on sequentially. Create, modify, and and access elements in arrays. Use for loops to iterate over arrays.

Program Development

Use a structured process to develop a piece of software

Implement different features of a program by following a structured project guide, scoping the features according to user needs and intended functionality.

Identify and analyze computing solutions to a specific problem

Identify various computing solutions to a given problem, and analyze their effectiveness. Suggest and implement improvements to computing solutions.


Download as CSV

Unit 1: The Design Process

Lesson 1: Designing With Empathy

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

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

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

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 - Define and Prepare

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

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-Centered Design - Try and Reflect

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

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 5: User Interfaces

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

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 6: Feedback and Testing

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

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: Identifying User Needs

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

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 8: Project - Paper Prototype

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

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 9: Designing Apps for Good

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

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: Market Research

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

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 11: Exploring UI Elements

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

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 12: Build a Paper Prototype

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

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 13: Prototype Testing

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

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 14: Design Mode in App Lab

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

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 15: Build a Digital Prototype

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

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 16: Events in App Lab

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

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 17: Linking Prototype Screens

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

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 18: Testing the App

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

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 19: Bugs and Features

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

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 20: Updating Your Prototype

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

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 21: Project - App Presentation

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

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 2: Data and Society

Lesson 1: Representation Matters

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

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

Lesson 2: Patterns and Representation

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

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

Lesson 3: ASCII and Binary Representation

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

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

Lesson 4: Representing Images

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

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

Lesson 5: Representing Numbers

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

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

Lesson 6: Combining Representations

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

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

Lesson 7: Keeping Data Secret

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

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

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

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

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

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

Lesson 10: Structuring Data

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

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

Lesson 11: Interpreting Data

Lesson 12: Making Decisions with Data

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

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

Lesson 13: Automating Data Decisions

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

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 14: Problem Solving with Big Data

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

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 15: Data and Machine Learning

Lesson 16: Project - Make a Recommendation

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

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.