Computer Science Principles

Free year-long curriculum that introduces students to the foundational concepts of computer science and challenges them to explore how computing and technology can impact the world. Can be taught as an introductory class and as an AP course.

Explore course
Video thumbnail

Free, AP® CSP endorsed, high school introductory course

  • Culturally responsive pedagogy
  • Real-world problem investigation
  • Explainer videos with diverse presenters
  • Open-ended projects for more personalized learning
Explore course

Curriculum at a glance

  • Grades: 9-12

  • Level: Beginner

  • Duration: School Year

  • Devices: Laptop, Chromebook

  • Topics: Programming, Data, Art and Design, Games and Animation

  • Programming Tools: App Lab

  • Professional Learning: Facilitator-led Workshops, Self-paced Modules

  • Accessibility: Text-to-speech, Closed captioning, Immersive reader

  • Languages Supported: English

Can I just say I LOVE Code.org? It's my first year teaching AP CS Principles (actually 1st year it is offered at our school) - and both the kids and I are having a blast.

Jennifer Douglass CS Principles Teacher

Engaging projects and activities that inspire learning

Build apps

Using the JavaScript language, students learn about algorithms and program design as they create a series of real working, shareable apps with App Lab.

Try App Lab

Widgets

Students get hands-on experience with concepts like binary and pixels, text compression, cryptography, encoding and transmitting data through computational widgets, which are directly integrated into the Code.org platform.

Explore widgets

Choice levels

Students are offered the choice between a variety of tasks that reinforce course objectives while allowing for differentiation and customization, meeting students where they are at and encouraging them to go further.

Explore example choice level

Resources that support you every step of the way

Sign up for a Code.org account to get access to materials that will help you teach computer science with confidence. Code.org has extensive resources designed to support educators, even those without prior CS teaching experience.

Lesson Plans

Get step-by-step guidance, learning objectives, and assessment strategies for effective teaching.

Helpful resources include slide decks, activity guides, rubrics, and more — all organized in one place. Each lesson plan is accompanied by tips for classroom implementation, differentiation ideas, and extension activities to cater to students of all abilities.

Explore example lesson plan
Introducing How AI Works

Instructional Videos

Watch easy-to-understand overviews of computer science and programming concepts.

Code.org video series are designed specifically to support your classroom and are engaging and fun to watch.

Explore all videos

Slide Decks

We offer educators an organized, visually engaging, and pedagogically sound framework to deliver computer science lessons.

Code.org slide decks provide step-by-step instructions, examples, and interactive activities that align with curricular objectives.

Explore example slide deck

Assessments

Our curricula includes a comprehensive system of formative and summative assessment resources.

These include rubrics, checklists, mini-projects, end-of-chapter projects, student-facing rubrics, sample projects, and post-project tests — all designed to support teachers in measuring student growth, providing feedback, and evaluating student understanding.

Explore an assessment lesson

Programming Tools

Code.org's integrated development environments (IDEs) cater to students of all skill levels.

We offer a versatile and user-friendly platform that supports a variety of programming paradigms. This enables learners to seamlessly transition from block-based coding to text-based languages, and fosters creativity and innovation.

Try out programming tools
Lesson Plans

Lesson Plans

Get step-by-step guidance, learning objectives, and assessment strategies for effective teaching.

Helpful resources include slide decks, activity guides, rubrics, and more — all organized in one place. Each lesson plan is accompanied by tips for classroom implementation, differentiation ideas, and extension activities to cater to students of all abilities.

Explore example lesson plan
Videos
Introducing How AI Works

Instructional Videos

Watch easy-to-understand overviews of computer science and programming concepts.

Code.org video series are designed specifically to support your classroom and are engaging and fun to watch.

Explore all videos
Slides

Slide Decks

We offer educators an organized, visually engaging, and pedagogically sound framework to deliver computer science lessons.

Code.org slide decks provide step-by-step instructions, examples, and interactive activities that align with curricular objectives.

Explore example slide deck
Assessments

Assessments

Our curricula includes a comprehensive system of formative and summative assessment resources.

These include rubrics, checklists, mini-projects, end-of-chapter projects, student-facing rubrics, sample projects, and post-project tests — all designed to support teachers in measuring student growth, providing feedback, and evaluating student understanding.

Explore an assessment lesson
Programming Tools

Programming Tools

Code.org's integrated development environments (IDEs) cater to students of all skill levels.

We offer a versatile and user-friendly platform that supports a variety of programming paradigms. This enables learners to seamlessly transition from block-based coding to text-based languages, and fosters creativity and innovation.

Try out programming tools

Professional learning that meets your needs

Get the support you need as you prepare to teach. Teachers love it, with over 90% ranking it the best professional development ever!

Facilitator-led Workshops

Our highly supportive Professional Learning Program will bring you together with a group of teachers to learn from each other as well as expert facilitators as you take on the first year of teaching the free curriculum to your students. In-person and virtual workshops are starting this summer.

Self-Paced Online Modules

Through reading, viewing videos, completing interactive puzzles, and reflecting on your learning, you will develop your own understanding while preparing to teach computer science in your classroom.


Frequently asked questions

Is CS Principles mapped to standards?

CS Principles was written using the AP CS Principles Framework and prepares students for the AP CS Principles exam. The curriculum has also been aligned to the newly revised 2017 CSTA standards. A summary of standards mappings can be found here. A google sheet version of the standards can be found at CSP Standards.

How much does it cost to teach CS Principles?

Our curriculum and platform are available at no cost for anyone, anywhere, to teach!

How/Where can I get professional development for CS Principles?

Our Professional Learning Program offers year-round support. The program kicks off with a 5-day summer workshop where you'll have an opportunity to work hands-on with the curriculum and meet other teachers from your area. Throughout the year, we offer forum support and follow-up workshops. You don't need any prior computer science experience to get started. And teachers love it! 90% rank it the best professional development ever. Click here to apply and learn more.

Have questions about professional development? Provide your contact information to a Regional Partner in your area.

What is the recommended timing for teaching CS Principles?

We recommend that CS Principles be taught as a full year class, assuming that you meet with students daily or nearly daily for 45 or more minutes.

It is possible to teach CS Principles on a semester block schedule, though we highly recommend this implementation only be used in the fall semester. Since the AP Performance Tasks are due in late April and require 20 dedicated hours of class time to complete, most schools find there is not enough time to complete the course on a block schedule in the spring.

What materials do I need for CS Principles?

Required Materials: CS Principles requires that students have access to computers with a modern web browser. At this time, our courses are not optimized for tablets or mobile devices. For more details, check out Code.org's technology requirements.

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, several lessons call for specific items. You can find these listed below as well as our suggestions for alternatives:

  • Unit 1, Lesson 2: Assortment of craft materials for constructing physical devices. Recommendations: cups, string/yarn, construction paper, flashlights, slinkies, noise makers, markers, and glue, etc. Alternative: none.
  • Unit 2, Lesson 2: String for table groups to build a network connecting them. Alternative: Students draw their network but don't actually build it.
  • Unit 3, Lesson 5: A handful of LEGO® blocks for every pair of students. Alternative: Sticky notes, construction paper.
  • Unit 4, Lessons 1 & 5: Plastic bags, sticky notes, dry erase markers. Alternative: Envelopes.
  • Unit 5, Lesson 1: Plastic bags, gallon-sized plastic bags, sticky notes, dry erase markers, tape. Alternative: Envelopes.
  • Unit 6, Lessons 2 & 3: Sticky notes. Alternative: Scraps of paper.
  • Unit 6, Lesson 4: Decks of cards. Alternative: Any item that could be combined into two categories (e.g. change with even / odd year).
  • Unit 7, Lessons 1 & 5: Sticky notes, envelopes, plastic bags, file folders. Alternative: Scraps of paper, folders made of a folded sheet of paper, etc.

Optional Materials: 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.

Teachers in our Professional Learning Program will automatically be approved to view answer keys. If you need an approved teacher account, you can apply for access to protected teacher-only materials (answer keys, etc) through this form. Please keep in mind that it may take 3-5 business days to verify your account.

How was the curriculum developed?

Our CS Principles curriculum has always been designed as part of a broader vision of supporting high quality, engaging, and equitable computer science instruction in classrooms across the country. Our Curriculum Values continue to guide us, and in particular our focus on expanding access to those who historically have been denied opportunities to learn about the exciting and impactful field of computing. While our vision and values remain unchanged, the landscape of CS education is rapidly developing.

For the 2020-21 school year the College Board has made some significant updates to the CS Principles framework and AP assessment to ensure that CS Principles remains relevant and aligned with equivalent university courses. CS education research continues to reveal new insights on how students learn about computing, and feedback from the thousands of classrooms now using our CS Principles curriculum has identified opportunities to further improve our courses, tools, and recommended pedagogy.

The goal of the updates to our curriculum is to navigate these developments in a way that remains committed to our vision and values and supports the many teachers, schools, classrooms, and districts that are already a part of our broader CS Principles community. We remain deeply thankful for you joining us on this mission to make our collective vision a reality.

For more information about our goals and approach to our courses, please see our Curriculum Values and our Professional Learning Values.

What is Code.org with CMU CS Academy?

Support and questions

Still have questions? Reach out to us! We are here to help.

Our support team is here to answer any questions you may have about starting teaching with Code.org. You can also ask other teachers about their experience on our teacher forums.

Contact Code.org support Explore teacher forums