Curriculum Overview

A NYS Computing Standard-Aligned Introductory High School Computing Curriculum in the Python version of Processing.


This curriculum is Version 2.0 of our original ICM curriculum using the Python version of Processing. It moves a little quicker (in a different language!) and aims to hit all standards from the Computational Thinking category of the NYS Computing Standards. Looking for ICM Version 2.0 in p5.js?

This curriculum was built on the foundation of ICM Version 1.0. Version 1.0 was developed by the NYCDOE CS4All academics team (José Olivares, EJ Park) with lead writer Luisa Pereira. Additional contributors to the curriculum include Courtney Morgan 🙆‍♀️ & José Orea (teacher implementation guide and additional activities), Esther Hersh, and the Processing Foundation. Curricular reorganization, rewrites, and extras were developed by Courtney Morgan.

ICM Version 2.0 [PY] was planned, adapted, and developed by Courtney Morgan. All lessons are licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International license License: CC BY-NC-SA 4.0. For more info on the limitations and use of materials under this license please click here.


While this is an introductory computer science course, it can serve as a terrific AP Computer Science Principles Prep course. The guides below were developed based on Curriculum Version 1.0 [JS], but you can still use the guides below to assist if you are a teacher whose students will eventually take AP CSP, or who is just looking to broaden the content covered within this course:

Class Resource Examples

Based on materials for ICM V. 1.0 [JS]

Instructional Videos

Python-specific resources coming soon - the following all refer to the V. 1.0 JavaScript version of this course.

Additional Tools

  • Codepen: A front end web editor with cool examples (although mostly not p5)

  • An online web editor for any language with classroom tools



Last updated