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.

And, we still have a number of openings for applicants in the following regions:

  • Arizona
  • Bay Area and Central Coast, CA
  • Sacramento Valley and North Coast, CA
  • San Joaquin Valley, CA
  • Colorado
  • Northeast Florida
  • Miami, FL
  • Iowa
  • Illinois
  • Indiana
  • Maine
  • Maryland
  • Montana
  • New Jersey
  • Nevada
  • Oklahoma
  • Pennsylvania
  • South Carolina
  • Tennessee
  • Austin, TX
  • Dallas, TX
  • Utah
  • Virginia
  • Wisconsin'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.

Daily lesson plans come with detailed instructions, activity guides, and assessments

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

Students collaboratively program in groups using App Lab to create a digital scene



  • Access to daily lesson plans, covering roughly 150 hours of material with linked activity guides and assessment support
  • Build problem solving skills through the use of computational widgets such as the pixelation and text compression widgets
  • Rapidly develop shareable web applications using App Lab:'s online, block to text, JavaScript programming environment
  • Experience a blend of online, guided tutorials and open-ended, project-based learning
  • Learn from a diverse cast of role models, from well-known tech celebrities to social innovators who are using CS to tackle society's problems
  • Engage all students in constructing their own understanding of computer science concepts through equitable teaching practices and inquiry-based instructional strategies
  • Prepare for the AP® CS Principles exam through a curriculum intentionally designed around the latest developments in the College Board framework, including built-in preparation for the performance tasks
  • Use, share, and customize the resources, as they are distributed under a Creative Commons Attribution NonCommerical 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


Several documents describe the overarching themes and direction of the course.


After the '15-'16 pilot year, we revised and reorganized major portions of the curriculum. A document describing what we changed and why is here: here. All of the '15-'16 units are still available to use from the 2015-2016 version of the course.

All lessons are available at

Link Unit Description
Internet Simulator Unit 1 The Internet (Last updated: May 2016) This unit begins exploring the technical challenges and questions that arise from the need to represent digital information in computers and transfer it between people and computational devices. In the second half of the unit, students solve problems similar ones that had to be solved to build the real Internet. Students design their own versions of protocols, each one layered on the previous one, in a process that mimics the layered sets of protocols on the real Internet. Topics include: the digital representation of numbers and text, Internet Protocol, DNS, and TCP/IP.
binary magic Unit 2 Digital Information (Last updated: May 2016) 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 (Last updated: June 2016) This unit introduces students to programming in the JavaScript language and creating small applications (apps) that live on the web. This introduction places a heavy emphasis on understanding general principles of computer programming and revealing those things that are universally applicable to any programming language.
Graph Unit 4 Big Data and Privacy (Last updated: October 2016) 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 (Last updated: December 2016) 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 Unit 6 Create and Explore PT (Last updated: January 2017) Class time devoted to preparation and execution of the AP® Performance Tasks: Explore and Create.

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?

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.

Where did all the lessons go?

For the '16-'17 school year, we are revising the '15-'16 version of the curriculum (see a summary of the changes here.) We will re-release each unit as soon as it is ready. You can still access all of the '15-'16 archived materials.

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?

In-person professional development for the CS Principles course will be available in select partner districts starting in Summer 2015. After one year of piloting and refining the PD program we will make all of our PD agendas, schedules, and other materials available to the public. This includes all of our online and in-person PD programs.

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.