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
![Computer Science Principles (1) Computer Science Principles (1)](https://i0.wp.com/code.org/images/banners/banner-csp-phone-icon.png)
Download video
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
![Computer Science Principles (7) Computer Science Principles (7)](https://i0.wp.com/code.org/images/csp-projects-widgets.gif)
![Computer Science Principles (8) Computer Science Principles (8)](https://i0.wp.com/code.org/images/csp-projects-choice-level.gif)
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.
![Computer Science Principles (9) Computer Science Principles (9)](https://i0.wp.com/code.org/images/resources-tabs-lesson-plan.gif)
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
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.
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.
![Computer Science Principles (11) Computer Science Principles (11)](https://i0.wp.com/code.org/images/resources-tabs-assessments.png)
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
![Computer Science Principles (12) Computer Science Principles (12)](https://i0.wp.com/code.org/images/resources-tabs-progress.png)
Track your students' progress
Our powerful progress view helps you monitor student work by providing insights into completion status, time spent, and more. Easily track each student's learning journey, quickly assess participation, and give personalized feedback.
Create a Code.org account
Lesson Plans
![Computer Science Principles (13) Computer Science Principles (13)](https://i0.wp.com/code.org/images/resources-tabs-lesson-plan.gif)
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
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.
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.
Assessments
![Computer Science Principles (15) Computer Science Principles (15)](https://i0.wp.com/code.org/images/resources-tabs-assessments.png)
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
Progress
![Computer Science Principles (16) Computer Science Principles (16)](https://i0.wp.com/code.org/images/resources-tabs-progress.png)
Track your students' progress
Our powerful progress view helps you monitor student work by providing insights into completion status, time spent, and more. Easily track each student's learning journey, quickly assess participation, and give personalized feedback.
Create a Code.org account
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.
Apply for Professional Learning
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.
Explore modules
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?
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.
What is Code.org with CMU CS Academy?
Code.org + CMU CS Academy AP CSP is an alternative option for Code.org's AP CSP course. Carnegie Mellon University has developed, in consultation with Code.org, an alternative option for Code.org's AP CSP course for teachers who want to teach the programming units using CMU CS Academy's Python offerings. Teachers using this option will teach using Code.org's AP CSP materials for all units with the exception of the programming units, which use JavaScript. For the programming units, students and teachers will work from the CMU CS Academy platform and program in Python.
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 supportExplore teacher forums
Subscribe for updates
Sign up to receive monthly emails about Code.org's Computer Science Principles and get helpful reminders, tips, and updates sent right to your inbox.
You can unsubscribe at any time.