Unit 1 Overview

Essential question: How can code be used as a creative and expressive medium?


In this unit students get acquainted with the p5 canvas coordinate system, drawing shapes and colors on it. Programming concepts covered include calling built-in p5 functions with different parameters, working with variables (both built-in and custom), and using controlled randomness.
Students are introduced to the p5 web editor and practice consulting the p5 online documentation. In the final project, students apply these skills to create an abstract album cover.

Nota Bene

We do not include a proper Unit 0 in this curriculum - the lessons begin with students thinking about p5.js. However, we strongly recommend planning a Unit 0 for your classroom to allow you to set a positive classroom culture and establish norms with your students. You can view a list of Classroom Culture && Teambuilders here.

Blueprint Foundational Student Outcomes

Give examples of specific patterns in something I can see, do or touch.
Describe how I might use patterns to express an idea.
Describe different things I tried in order to achieve a goal.
Explain why I chose to include the specific components of my prototype over others.
Explain how I might help others identify patterns.
Explain why using patterns is necessary when creating with a computer.
Describe more than one set of instructions that might complete a task.
Describe how instructions can have different outputs depending on inputs.
Explain why I used specific instructions to complete a task.
Compare and contrast my instructions with other instructions that complete the same task.
Experiment with the commands of a programming language
Describe three ways a development environment helps me create a project.
Describe tools and processes needed to collaborate on programming projects.
Explain why I chose specific commands to communicate my instructions.
Describe the changes I made after testing at least three parts of my program.
Explain how I used or remixed someone else’s project in my prototype and give them credit.
Discuss what can and cannot be done with a specific set of commands.
Teach another person how to use a development environment and the basics of programming.
Present the challenges, and benefits of using tools to program collaboratively.

NYS && CSTA Standards

NYS Standards
  • 9-12.CT.5 Modify a function or procedure in a program to perform its computation in a different way over the same inputs, while preserving the result of the overall program.
  • 9-12.CT.7 Design or remix a program that utilizes a data structure to maintain changes to related pieces of data.
  • 9-12.CT.9 Systematically test and refine programs using a range of test cases, based on anticipating common errors and user behavior.
  • 9-12.CT.10 Collaboratively design and develop a program or computational artifact for a specific audience and create documentation outlining implementation features to inform collaborators and users.
  • 9-12.DL.1 Type proficiently on a keyboard.
  • 9-12.DL.2 Communicate and work collaboratively with others using digital tools to support individual learning and contribute to the learning of others.
CSTA Standards
  • 3A-AP-13 Create prototypes that use algorithms to solve computational problems by leveraging prior student knowledge and personal interests.
  • 3A-AP-21 Evaluate and refine computational artifacts to make them more usable and accessible.
  • 3A-AP-22 Design and develop computational artifacts working in team roles using collaborative tools.
  • 3A-AP-23 Document design decisions using text, graphics, presentations, and/or demonstrations in the development of complex programs.
  • 3A-CS-03 Develop guidelines that convey systematic troubleshooting strategies that others can use to identify and fix errors.

Suggested Duration

Duration based class meeting 5x a week with 45 min periods
2 weeks, without class projects ~ 7.5 hrs
3+ weeks, with projects 11.25 hrs
Some classrooms may need more time based on the time allotted to finish various project activities.


None - this is the start of the unit! While some students may have some programming experience, we are assuming that they are coming in without any prior programming experience.

Overview of Instructional Materials

Each learning activity on the curriculum website has been broken down into 1-2 period lessons. The resources below are teacher-facing notes on the suggested implementation for the curriculum; they include structures for content delivery, suggestions for assessment, and resources for each lesson segment. At the end of each learning activity is a slightly longer project to serve as a summative assessment; at the end of the unit, there is an end of unit project.
Teachers should review these materials and use them as they apply to their classroom. This is the suggested implementation, but it should be modified to fit student population, class period constraints, etc.

Sequence of Lessons

LA 1: Create a Greyscale Drawing
LA 2: Make it Vary
LA 3: Make it Colorful
U1LA1.1 - p5.js & Editor Intro, unplugged robot activity
U1LA1.2 - Greyscale, drawing lines
U1LA1.3 - Rectangles, Ellipses & layering
U1LA1.4 - Various Shapes, stroke and stroke weight
U1LA1 - Mini project: Taijitu Symbol
U1LA2.1 - Intro to Variables (System Variables)
U1LA2.2 - Custom Variables in p5.js
U1LA2.3 - Random Function
U1LA2 - Mini project: Teacher Notes
U1LA2 - Mini project: Custom Emoji
U1LA3.1 - Intro to Color (Additive vs. Subtractive Mixing)
U1LA3.2 - RGB vs. HSB Color Mode
U1LA3.3 - Color palettes & Design
Unit 1 - Final Project: Abstract Album Art