Code.org’s Computer Science Principles (CSP) curriculum is a full-year, rigorous, entry-level course that introduces high school students to the foundations of modern computing. The course covers a broad range of foundational topics such as programming, algorithms, the Internet, big data, digital privacy and security, and the societal impacts of computing. The CS Principles Conceptual Framework developed by the College Board outlines five “Big Ideas” of computing which are further subdivided into Enduring Understanding, Learning Objectives, and Essential Knowledge Statements. The framework further identifies six “Computational Thinking Practices,” containing skills that students should employ and develop. The curriculum is designed such that students investigate each of these big ideas while practicing the computational thinking practices.

Big Ideas: Creative Development, Data, Algorithms and Programming, Computing Systems and Networks, Impact of Computing

Computational Thinking Practices: Computational Solution Design, Algorithms and Program Development, Abstraction in Program Development, Code Analysis, Computing Innovations, Responsible Computing

Unit

Timeframe

Big Ideas (Statements or Essential Questions)

Major Learning Experiences from Unit 

1 - Digital Information

3 weeks

Explore how computers store complex information like numbers, text, images and sound and debate the impacts of digitizing information.

  • Explore how computers store complex information like numbers, text, images, and sound

  • Debate the impacts of digitizing information and the impacts of digital information on society and culture at large 

2 - The Internet

2 weeks

Learn about how the Internet works and discuss its impacts on politics, culture, and the economy.

  • Use a digital tool called the Internet Simulator

  • Investigate an "Internet Dilemma," both from the standpoint of its technical background and its impacts on different groups of people

3 - Intro to App Design

3 weeks

Design your first app while learning both fundamental programming concepts and collaborative software development processes.

  • Work with partners to develop this simple app that teaches classmates about a topic of personal interest 

  • Learn how to use App Lab to design user interfaces and write simple event-driven programs.

  • Share the apps they develop with their classmates.

4 - Variables, Conditionals, and Functions

3 weeks

Expand the types of apps you can create by adding the ability to store information, make decisions, and better organize code.

  • Expand the types of apps they can create by adding the ability to store information (variables), make decisions (conditionals), and better organize code (functions) 

  • Guided hands-on activities that feature approachable manipulatives like sticky notes and plastic bags

  • Opportunities to explore working examples of programs that use each concept 

  • Increasingly challenging practice activities. 

  • Students must write the code for a simple app that uses each concept without starter code

  • Open-ended project in which students must build an app that helps their classmates make a decision based on user input 

5 - Data

2 weeks

Explore and visualize datasets from a wide variety of topics as you hunt for patterns and try to learn more about the world around you.

  • Work with datasets in App Lab 

  • Make use of a data visualizer tool that assists students in finding data patterns

  • Learn how different types of visualizations can be used to better understand the patterns contained in data sets and investigate hypotheses

  • Learn about the impacts of data analysis on the world around them,

  • Uncover and present a data investigation they've completed independently (CTP5).

6 - Lists, Loops, and Traversals

2 weeks

Build apps that use large amounts of information and pull in data from the web to create a wider variety of apps.

  • Explore the core concepts of lists, loops, and traversals through a variety of lesson types 

  • Import tables of real-world data to help further power the types of apps they can make. 

  • Design an app around a goal of their choosing that uses one of these data sets

7 - Parameters, Return, and Libraries

2 weeks

Learn how to design clean and reusable code that you can share with a single classmate or the entire world.

  • Design code that encapsulates algorithms 

  • Design libraries of functions that can be used in a variety of situations

8 - Cybersecurity and Global Impacts

3 weeks

Research and debate current events at the intersection of data, public policy, law, ethics, and societal impact.

  • Learn about the privacy and security risks of many computing innovations

  • Learn about the ways some of these risks can be mitigated.

  • Investigate at least three computing innovations

  • Discuss and debate many other innovations with their classmates 

  • Present their overall vision for a school of the future and the computing innovations that would power it.

9 - Create PT

3 weeks

Practice and complete the Create Performance Task (PT).

  • Explore a series of activities that ensure students understand the requirements of the Create PT

  • Complete the Create PT

10 - Algorithms

1 week

Design and analyze algorithms to understand how they work and why some are considered better than others.

  • Hands-on activities that help students get an intuitive sense of the differences between how quickly different algorithms run and the pros and cons of different algorithms 

  • Explore concepts like undecidable problems and parallel and distributed computing