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. We also believe that developing these resources can help you to better grasp the concept and specific changes you may want to make for your classroom.

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.

A Note On Lessons:

You'll notice that some lesson pages have an emoji before them. This is keyed as follows:

  • 🔮 == Unit Overview

  • 🗃 == Mini Project

  • 🎨 == Unit Final Project

  • 🤓 == Optional Extra: This is an extension lesson that either provides deeper and more targeted practice or is a deep dive into a topic that is not necessary to continue in the course. You may safely skip or use as needed.

  • ✨ == Possible Prerequisite Skill: While we assume no prior knowledge, students may come in with prerequisite skills if they had a robust middle school experience that aligned to the NYS Computing Standards. These lessons can be abbreviated or skipped entirely based on the prior knowledge of your class, but they do contain important concepts to the rest of the course.

Choosing an Editor

One of the most important parts of beginning a course is determining the environment your students will be coding in. This course primarily supports one (Trinket) but there are other options available:

  • Trinket: This is a code editor that allows students to start with a default template that is already setup to run and display the canvas. Students have accounts and can rename and save their projects, as well as making folders to store and organize them. It runs smoothly with limited errors and provides access to a console. You can easily add extra files or images to your project.

  • This is a code editor that supports many languages and libraries and includes a template. In our initial tests, this template was often glitchy and did not run as intended. If you have a strong programming background and the ability to troubleshoot, this may be a great option to set up a default template that runs more smoothly and run off of that. There is a 'Teams for Education' option that is now free for K-12 educators and allows work to be collected/feedback left through

Because was unreliable for at the time the curriculum materials were being created, all resources and examples are currently only available in Trinket (but could be copy/pasted into a different editor as needed).


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.

We have done our best to provide extras and resources that you can use to fill out your curriculum if you have students coming in with substantial experience and would like additional activities.

Naming Conventions

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!

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!)

Last updated