*Units marked with an asterisk have been updated to the Computer Science Principles 2021 standards.

Unit 1: Digital Information*

Big Questions

  • Why do computers use binary to represent digital information?
  • Are the ways data is represented and transmitted with computers laws of nature or laws of man?

Enduring Understandings

  • DAT-1: The way a computer represents data internally is different from the way the data is interpreted and displayed for the user. Programs are used to translate data into a representation more easily understood by people.
  • IOC-1: while computing innovations are typically designed to achieve a specific purpose, they may have unintended consequences

Optional Lessons

  • None

Unit 2: The Internet*

Big Questions

  • What are the protocols that are used on the Internet, and how do they work?
  • How were these protocols developed, and how can we make our own?

Enduring Understandings

  • DAT-1: Computer systems and networks facilitate how data are transferred
  • IOC-1: While computing innovations are typically designed to achieve a specific purpose, they may have unintended consequences

Optional Lessons

  • None

Unit 3: Intro to App Design*

Big Questions

  • How do apps work, and how do we make them?
  • What is programming and how do we do it?

Enduring Understandings

  • CRD-1: Incorporating multiple perspectives through collaboration improves computing innovations as they are developed.
  • CRD-2: Developers create and innovate using an iterative design process that is user-focused, that incorporates implementation/feedback cycles, and that leaves ample room for experimentation and risk-taking.
  • AAP-2: The way statements are sequenced and combined in a program determines the computed result. Programs incorporate iteration and selection constructs to represent repetition and make decisions to handle varied input values.
  • AAP-3: Programmers break down problems into smaller and more manageable pieces. By creating procedures and leveraging parameters, programmers generalize processes that can be reused. Procedures allow programmers to draw upon existing code that has already been tested, allowing them to write programs more quickly and with more confidence.

Optional Lessons

  • None

Unit 4: Variables, Conditionals, and Functions*

Big Questions

  • How do programs store and retrieve information?
  • How do programs make decisions and change how they react to input?
  • How can we organize and reuse our code?

Enduring Understandings

  • CRD-2: Developers create and innovate using an iterative design process that is user-focused, that incorporates implementation/feedback cycles, and that leaves ample room for experimentation and risk-taking.
  • AAP-1: To find specific solutions to generalizable problems, programmers represent and organize data in multiple ways.
  • AAP-2: The way statements are sequenced and combined in a program determines the computed result. Programs incorporate iteration and selection constructs to represent repetition and make decisions to handle varied input values.
  • AAP-3: Programmers break down problems into smaller and more manageable pieces. By creating procedures and leveraging parameters, programmers generalize processes that can be reused. Procedures allow programmers to draw upon existing code that has already been tested, allowing them to write programs more quickly and with more confidence.

Optional Lessons

  • None

Unit 5: Lists, Loops, and Traversals*

Big Questions

  • How can we store lots of information in an organized way?
  • How can we repeat code multiple times?
  • How can we iterate through lists?

Enduring Understandings

  • CRD-2: Developers create and innovate using an iterative design process that is user-focused, that incorporates implementation/feedback cycles, and that leaves ample room for experimentation and risk-taking.
  • AAP-1: To find specific solutions to generalizable problems, programmers represent and organize data in multiple ways.
  • AAP-2: The way statements are sequenced and combined in a program determines the computed result. Programs incorporate iteration and selection constructs to represent repetition and make decisions to handle varied input values.
  • AAP-3: Programmers break down problems into smaller and more manageable pieces. By creating procedures and leveraging parameters, programmers generalize processes that can be reused. Procedures allow programmers to draw upon existing code that has already been tested, allowing them to write programs more quickly and with more confidence.

Optional Lessons

  • None

Unit 4: Big Data and Privacy

Big Questions

  • What opportunities do large data sets provide for solving problems and creating knowledge?
  • How is cybersecurity impacting the ever-increasing number of Internet users?
  • How does cryptography work?

Enduring Understandings

  • 3.2 Computing facilitates exploration and the discovery of connections in information.
  • 3.3 There are trade offs when representing information as digital data.
  • 4.2 Algorithms can solve many but not all computational problems.
  • 6.3 Cybersecurity is an important concern for the Internet and the systems built on it.
  • 7.1 Computing enhances communication, interaction, and cognition.
  • 7.3 Computing has a global affect - both beneficial and harmful - on people and society.
  • 7.4 Computing innovations influence and are influenced by the economic, social, and cultural contexts in which they are designed and used.

Explore Performance Task


Unit 5: Building Apps

Big Questions

  • How do you program apps to respond to user "events"?
  • How do you write programs to make decisions?
  • How do programs keep track of information?
  • How creative is programming?
  • How do people develop, test, and debug programs?

Enduring Understandings

  • 1.1 Creative development can be an essential process for creating computational artifacts.
  • 1.2 Computing enables people to use creative development processes to create computational artifacts for creative expression or to solve a problem.
  • 1.3 Computing can extend traditional forms of human expression and experience.
  • 2.2 Multiple levels of abstraction are used to write programs or create other computational artifacts.
  • 4.1 Algorithms are precise sequences of instructions for processes that can be executed by a computer and are implemented using programming languages.
  • 5.1 Programs can be developed for creative expression, to satisfy personal curiosity, to create new knowledge, or to solve problems (to help people, organizations, or society).
  • 5.2 People write programs to execute algorithms.
  • 5.3 Programming is facilitated by appropriate abstractions.
  • 5.4 Programs are developed, maintained, and used by people for different purposes.
  • 5.5 Programming uses mathematical and logical concepts.
  • 7.1 Computing enhances communication, interaction, and cognition.

Optional Lessons

  • None

Big Questions

  • How are real world phenomena modeled and simulated on a computer?
  • How do you write programs to store and retrieve lots of information?
  • What are "data structures" in a program and when do you need them?
  • How are algorithms evaluated for "speed"?

Enduring Understandings

  • 2.3 Models and simulations use abstraction to generate new understanding and knowledge.
  • 3.1 People use computer programs to process information to gain insight and knowledge.
  • 4.1 Algorithms are precise sequences of instructions for processes that can be executed by a computer and are implemented using programming languages.
  • 5.1 Programs can be developed for creative expression, to satisfy personal curiosity, to create new knowledge, or to solve problems (to help people, organizations, or society)

Create Performance Task


CSP Resources

Computer Science Principles Resources

  1. Getting Started with CSP Widgets
  2. Widgets Page