Computer Science Principles

What is CS Principles?

In fall 2016, the College Board launched its newest AP® course, AP Computer Science Principles. The course introduces students to the foundational concepts of computer science and challenges them to explore how computing and technology can impact the world. The AP Program designed AP Computer Science Principles with the goal of creating leaders in computer science fields and attracting and engaging those who are traditionally underrepresented with essential computing tools and multidisciplinary opportunities.

For more information, visit

Apply for Professional Learning

General applications for the 2017-18 CS Principles Professional Learning Program have closed. However, all of our curriculum is available at no cost for anyone, anywhere to teach even if you have not attended our workshops. You can use the full curriculum or specific lessons.

We still have a few seats available at TeacherCon Phoenix, our five-day workshop for CS Principles, July 16 - 21. If you are available for those dates, please apply now!'s AP CS Principles Curriculum AP CSP Endorsed is recognized by the College Board as an endorsed provider of curriculum and professional development for AP® Computer Science Principles. This endorsement affirms that all components of CS Principles’s offerings are aligned to the AP Curriculum Framework standards and the AP CS Principles assessment. Using an endorsed provider affords schools access to resources including an AP CS Principles syllabus pre-approved by the College Board’s AP Course Audit, and officially recognized professional development that prepares teachers to teach AP CS Principles. Our curriculum is available at no cost for anyone, anywhere to teach.


Curriculum Resources and Features has daily lesson plans that come with detailed instructions, activity guides, assessments, standards mappings, and more

Students get hands on with concepts like binary and pixels through computational widgets

Quickly create shareable apps with's App Lab - an online block to text, JavaScript programming environment.


Unit Overview

Link Unit Description
Internet Simulator Unit 1 The Internet What can be represented with a single bit and how do we get a single bit of information from one place to another? This unit explores the technical challenges and questions that arise from the need to represent digital information in computers and transfer it between people and computational devices. Topics include: the digital representation of information - numbers, text, images, and communication protocols.
binary magic Unit 2 Digital Information This unit further explores the ways that digital information is encoded, represented and manipulated. In this unit students will look at and generate data, clean it, manipulate it, and create and use visualizations to identify patterns and trends.
App Lab Unit 3 Algorithms and Programming This unit introduces the foundational concepts of computer programming, which unlocks the ability to make rich, interactive apps. This course uses JavaScript as the programming language, and App Lab as the programming environment to build apps, but the concepts learned in these lessons span all programming languages and tools.
Graph Unit 4 Big Data and Privacy The data rich world we live in also introduces many complex questions related to public policy, law, ethics and societal impact. In many ways this unit acts as a unit on current events. It is highly likely that there will be something related to big data, privacy and security going on in the news at any point in time. The major goals of the unit are 1) for students to develop a well-rounded and balanced view about data in the world around them and both the positive and negative effects of it and 2) to understand the basics of how and why modern encryption works.
App Unit 5 Building Apps This unit continues to develop students’ ability to program in the JavaScript language, using’s App Lab environment to create a series of small applications (apps) that live on the web, each highlighting a core concept of programming. In this unit students transition to creating event-driven apps. The unit assumes that students have learned the concepts and skills from Unit 3, namely: writing and using functions, using simple repeat loops, being able to read documentation, collaborating, and using the Code Studio environment with App Lab.
survey AP Tasks AP Exam and Performance Tasks Class time and lessons devoted to preparation and execution of the AP® Performance Tasks: Explore and Create.
data button post-AP Post-AP material - Making Data-backed Apps After the AP test, many people have a few weeks left of school. We have some material and lessons that teach students how to use App Lab's database capabilities to make apps that store data in the cloud so it can be retrieved later.


Use, share, and customize the resources, as they are distributed under a Creative Commons Attribution Non-Commerical ShareAlike License see our Terms of Service. If you are interested in licensing materials for commercial purposes, contact us.

Watch a video from the CS Principles Video Library

Chat about CS Principles in the forum

We have forums for educators to discuss and trade ideas about CS Principles and talk about the curriculum. forums are used for all of our courses K-12 and can be found at For CS Principles there are two forums that are most useful:

Frequently Asked Questions

What materials do I need for this course?

Required Materials:

This course requires students have access to computers with a modern web browser. For more details, check out's technology requirements, here.

Many lessons have handouts that are designed to guide students through activities. While these handouts are not required, we highly recommend their use. In addition to handouts, you will need the following:

  • Unit 1 Lesson 2 requires some craft materials for constructing physical devices. The lesson recommends items like cups, string/yarn, construction paper, flashlights, slinkies, noise makers, markers, and glue.

Optional Materials

The following items are called for in lessons, but alternatives are offered below:

  • (Unit 3, Lesson 1) A handful of legos per 2-3 students. Alternatives: post-it notes, construction paper
  • (Unit 3, Lesson 2 - 3) Playing cards (1 deck per 6 students). Alternatives: write numbers of post-it notes.
  • (Unit 4, Lesson 8) Clear dixie cups with beans. Alternatives: Any clear container (ziplock bag, empty water bottle, etc) with any small item (beads, raisins, coffee beans, etc)

The following supplies are completely optional but will be useful to have on hand for various lessons:

  • Graph paper
  • Chart paper
  • Markers
  • Post-it notes

How can I access answer keys?

With an approved teacher account you can find answer keys in a blue "Teacher Only" panel that shows in the online lessons and activities.

For teachers in our professional learning program will automatically be approved to view answer keys. If you need an approved teacher account, any teacher can apply for Code Studio access to protected teacher-only materials (answer keys, etc) through this form.

How can I communicate with other teachers who are using the curriculum?

Check out our forum at There you'll find a space for general CS Principles discussion as well as unit- and lesson-specific threads.

Can I give feedback on the lessons?

Yes, please! Our desire is that the curriculum will be a living document and not something set in stone. We are open to changes or alternatives to lessons so please send us your feedback by using the CS Principles forum.

How/Where can I get professional development for this course?

We have an in-person professional learning program... here

How can I learn about what's new or changing with the curriculum?

We send out monthly updates! Sign up for future emails.

Ideas and Inspirations

Please see this page about CS Principles Inspirations to read about the influential works in computer science education that form some of the course's philosophical underpinnings.

AP® is a registered trademark of the College Board.