How to Use this Curriculum

A Brief Overview on how to read the resources


This curriculum was built as an introductory high school computer science course. While it can be implemented at any point in high school, it is appropriate for 9th grade and up. It assumes no prior knowledge and focuses on creative expression as a means to learn computational thinking and syntactical concepts.
The curriculum is broken into units, with each unit including lesson arcs (structured as 'learning activities') with many projects and final projects to endcap each unit.

What We Provide

This curriculum provides detailed lesson plans, sample code, starter code, and links to additional resources (including videos).
We do not provide other classroom materials such as lesson slides or rubrics, as we believe these are things that often need to be customized to meet the needs of your class and your specific learners.
Our hope is that given the robust lesson plan and learning materials, it will be quick work for teachers to turn these into slides. To assist, we have created a Lesson Slide Template that may hasten the process.

Choosing an Editor

One of the most important parts of beginning a course is determining the environment your students will be coding in. This curriculum supports two:
  • p5 Editor: This is a code editor that allows students to start with a default template that is already inked to the p5 library (as well as sound library). Students have accounts and can rename and save their projects, as well as making 'collections' (folders/directories) to store and organize them. It is actively worked on and updated by the p5/processing team and is made specifically for working with p5. Runs best in Chrome. It does not have a teams/classroom/education feature, so teachers will need to collect links to student projects and give feedback separately.
  • This is a code editor that supports many languages and libraries and includes a p5 template. Students will need to select the p5 template when creating new projects, but it will then have the p5 library automatically linked. While their focus is not specifically p5, any updates to the p5 library will also exist here. There is a 'Teams for Education' option that is now free for K-12 educators and allows work to be collected/feedback left through
We have done our best to ensure all starter code exists as a template in both editors. This curriculum was initially made using the p5 editor before added the p5 template (and because there was initially helpful p5 reminders that only existed in the editor, but has since become a part of the library), so there remain some examples that exist only in the editor. We have done our best to ensure that anything that exists in only the p5 editor is a project that is only meant to be viewed by students/teachers, not necessarily remixed or interacted with.


There is no end-of-course exam, so teachers should feel free to adjust pacing to suit the needs of their class. From experience, we believe that the five units in this guide represent a reasonable pace for a year. Finishing Unit 5 also puts students in a great place for follow-up courses such as AP Computer Science Principles.
For students coming in with more experience, there are two optional units that can be shared by request to ensure no gaps in the instructional year.


Each Unit is broken into various "learning activities" which are in turn split into various lessons.
Seeing a lesson like this would mean:
U1LA1.4 --> Unit 1, Learning Activity 1, Lesson 4
Please feel free to adjust the naming conventions to meet the needs of your own classroom!


While we recommend following this course in the intended order, there are some changes that can be made.
This curriculum purposefully keeps functions as an end-of-unit activity to try and keep kids from getting overwhelmed by concepts and syntax early on in the course. If this is not your preferred method of delivery, Unit 5 could be moved to after Unit 2.
Additionally, there are a variety of optional learning activities that contain guidance on when they are best implemented. We strongly encourage teachers to follow any inspiration that strikes them and introduce any and all interesting projects that may come to mind!

Using CR-SE Prompts

Mini Projects and Unit Projects include a section on Culturally Responsive Best Practices. These are intended to allow students to connect their classroom experience to their own communities and culture. In some instances, it is provided as guidance, and in others, it is additional prompts that can be presented alongside a project to give the project a more intentionally culturally responsive lens.
Many projects in this course allow for great amounts of student choice, which we hope will allow students to make the work their own and produce things that they can be proud of. Student choice is important as some may want to focus on big, serious things, and some may just want a moment to have fun, be creative, and be silly.
(Please keep in mind that communities can refer to a lot of things, including just the culture of being a teen, a Minecraft player, or a KPop fan - be mindful that you are allowing students to explore choice in their creations in a way that is authentic to them!)