🎨
[JS] Intro to Computational Media 2.0
CS4All Resources
  • Curriculum Overview
  • How to Use this Curriculum
  • 📬Leave Us Feedback
  • Curriculum Extras
    • 🔮Curriculum Extras Overview
    • Imposter Syndrome (pt. 1)
      • Imposter Syndrome (pt. 2)
    • Timers in p5.js
    • Time Functions: Crazy Clock Mini Project
    • Using Sliders
    • Pathfinding Algorithms && Facial Scanning
    • Playing with Pixels
    • Getting Sound from Mic
    • Sound Recognition with ml5
  • Unit 1: Draw & Draw With Functions
    • 🔮Unit 1 Overview
    • U1LA1.1: p5.js Introduction & Deconstruction
    • U1LA1.2 Line Functions and Parameters
    • U1LA1.3: Rectangles, Ellipses, and Layering
    • U1LA1.4: Other Shapes && Styling
    • 🗃️U1LA1 Mini Project: Taijitu Symbol
    • U1LA2.1: Intro to Color with RGB && HSB
    • 🤓EXTRA: Color & Data Storage
    • 🤓EXTRA: Color Palette Practice
    • ✨U1LA3.1: Introducing Variables
    • ✨U1LA3.2: Creating Custom Variables
    • ✨U1LA4.1: What is Abstraction?
    • ✨U1LA4.2: Intro to Functions && Function Calls
    • U1LA4.3: Draw with Functions
    • U1LA4.4: Using the Random Function
    • 🗃️U1LA4 Mini Project: Custom Emoji
    • U1LA5.1: Your Custom Function Library
    • 🎨Unit 1 Final Project: Abstract Album Art
  • Unit 2: Respond and Draw on Canvas
    • 🔮Unit 2 Overview
    • ✨U2LA1.1: Conditionals and If Statements
    • ✨U2LA1.2: Conditionals and if, else if, and else statements
    • ✨U2LA1.3: Logical Operators And/Or
    • 🗃️U2LA1 Mini Project: Make a Traffic Light
    • U2LA2.1: Draw with Mouse
    • U2LA2.2: The Map Function
    • ✨U2LA3.1: Data Type Scavenger Hunt
    • ✨U2LA3.2: Functions that Return Values
    • 🤓U2LA3.3: Functions with Purpose
    • U2LA4.1: Collision Functions && Collide2D
    • U2LA4.2: Mouse Clicks && Shapes as Buttons
    • 🗃️U2LA2 Mini Project: Light Switch Game
    • U2LA5.1: Key Presses && Nested Conditionals
    • 🎨Unit 2 Final Project: Interactive Drawing App
  • Unit 3: Arrays, Loops, Media
    • 🔮Unit 3 Overview
    • U3LA1.1: While Loops
    • U3LA1.2: For Loops Pt 1
    • U3LA1.3: Nested For Loops (For Loops pt 2)
    • 🗃️U3LA1 Mini Project: Wallpaper Design
    • U3LA2.1: Introduction to Arrays
    • U3LA.2.2: Arrays with floor() and random()
    • 🗃️U3LA2 Mini Project 1: Fortune Teller
    • U3LA2.3: Loops and Arrays
    • U3LA2.4: Updating and Deleting from Arrays
    • 🗃️🤓 U3LA2 Mini Project 2: CodeWars Array Challenges
    • U3LA3.1: Preload, Images, Tint
    • 🤓U3LA3.2: Images and Arrays with ml5
    • U3LA3.3: Fonts && Text Styling
    • 🗃️U3LA4 Mini Project 4: Typography
    • U3LA4.1: Loading & Playing Sound Files
    • 🎨Unit 3 Final Project: Patatap
  • Unit 4: Motion, Objects, Transformation
    • 🔮Unit 4 Overview
    • U4LA1.1: Intro to Motion with Flipbooks
    • U4LA1.2: Move in All Directions && Make it Bounce
    • U4LA2.1: Introduction to Classes and Objects
    • U4LA2.2: Reading and Updating Object Properties
    • U4LA2.3: Methods Off Canvas
    • U4LA2.4: Objects on Canvas
    • 🗃️U4LA2 Mini Project: Build a Tamagotchi
    • U4LA3.1: Creating Many Objects
    • 🤓🗃 Optional U4LA3 Mini Project: Rebuild with Objects
    • U4LA4.1: Translation Battleship
    • U4LA4.2: Rotations
    • 🤓U4LA5.1: Sine && Oscillating Motion
    • 🤓U4LA5.2: Cosine && Circular Motion
    • 🎨Unit 4 Final Project: Animated Greeting Card || PSA
  • Unit 5: Final Project
    • 🔮Unit 5 Overview
    • 🎨Course Final Project Guide
Powered by GitBook
On this page
  • Curriculum Overview
  • Attribution
  • Highlight on Resources

Curriculum Overview

A NYS Computing Standard-Aligned Introductory High School Computer Science Curriculum using p5.js

NextHow to Use this Curriculum

Last updated 7 days ago

Curriculum Overview

Welcome to Introduction to Computational Media with Javascript! 🥳 That's a lot to say and type, so most of us affectionaately refer to the curriculum by its shorthand: ICM JS. If you are landing here for the first time and are fairly new to computer science in general or coding in particular, you might be wondering: What is computational media? What is Javascript? Why am I here? Let's briefly address each question in relation to this curriculum.

What is computational media? Computational media essentially means using programming (coding) to create different types of media, which are usually referred to as sketches in this course. Notably, these sketches will become more sophisticated as students expand their understanding of computer science concepts such as algorithms, programming, abstraction, and data. By the end of the course, students will have the knowledge and skills they need to build interactive multi-media projects. Projects include: Drawing App; Fortune Teller; Meme Generator; and many more.

CS4All celebrates creative computing as a fruitful and galvanizing on-ramp to learning and practicing CS concepts and skills. We center creative expression in all our curricular offerings because we know from experience that project-based learning that prioritizes students' interests and creative power, provides students with fuel to power through the tricky and difficult problems they will surely encounter while learning to code!

What is Javascript? Javascript, or JS, is a programming language that is commonly used to make websites interactive. If you have been on the internet, and we are guessing you have 🥇, you have encountered media built with Javascript. In this course, we are using a Javascript library called P5.js that offers a gentler on-ramp to coding because students are able to see immediate visual output as they write and execute code. More about this as you dive into Unit 1! You can learn more about p5.js and the

Why are you here?

According to our student-built fortune teller app, you are here for a variety of reasons. Some of you are here because your administrator registered you to participate in our ICM JS professional learning series because you will be implementing this course in the upcoming school year. Congratulations and WELCOME! 🤗 This is going to be fun! You might be here because you were asked to find a curriculum that would serve as a suitable introductory computer science curriculum. If this is you, SCORE! 🏑 🥅 You have definitely landed on a great option! Maybe, you are a highly-skilled sifter of digital resources and you landed here because you want to teach yourself to code. ENJOY! 🎊

This curriculum is open-source and we wish you well on your learning journey, no matter what brought you here.

Attribution

This curriculum is version 2.0 of our It moves a little quicker and aims to hit all standards from the Computational Thinking category of the NYS Computing Standards.

Version 1.0 of this curriculum was developed by the academics team (José Olivares, EJ Park) with lead writer . Additional contributors to the curriculum include Courtney Morgan 🙆‍♀️ & José Orea (teacher implementation guide and additional activities), Esther Hersh, and the . Curricular reorganization, rewrites, and extras were developed by Courtney Morgan. Version 2.0 was planned, arranged, 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 .

Highlight on Resources

Once you start poking through this curriculum, you will notice that each lesson includes various resources to support both teachers and their students. Our page clearly outlines what this curriculum includes and does NOT include. Here, we would like to share some highlighted resources that you might find useful as you are developing a sense of how this curriculum can support you and your students.

Class Resource Examples

Instructional Videos

Additional Tools

Additional Workshops && Tutorials

Getting Started with p5 Projects

These projects help you get up and running with p5 very quickly. They include instructions, videos and sample code. You can create the projects in the Peblio workspace as you watch these videos. They are not classroom resources, but resources to help you build your comfort level with p5.

Interactive Art: Hour of Code in p5.js

This hour of code activity introduces drawing with p5 and system variables mouseX and mouseY. If you change the sequence and teach colors after shapes followed by system variables, this is a great project option.

Communities

Opportunities

(Courtney Morgan)

(Courtney Morgan)

(Courtney Morgan)

- most of Version 1.0 ICM curriculum presented as YouTube videos, modified for and filmed during pandemic remote learning.

- The coding train is an amazing resource for p5 instructional videos. Dan Shiffman is amazing and you can learn anything from his channel.

: A block language based on p5

: A web editor with a lot of cool examples from the community

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

An online web editor for any language with classroom tools

Meme Generator: Build a randomized meme generator in p5 -

Generative Portraits: upload images and generate portraits with p5 shapes and the .get function -

Changing faces conditionals practice -

Happy Coding Intro to Coding with p5.js and Processing -

and

Check out our CS4All Blueprint to further explore CS concepts, practices, and perspectives
Processing Foundation here
original ICM curriculum.
Looking for ICM Version 2.0 in Processing.py?
NYCDOE CS4All
Luisa Pereira
Processing Foundation
here
How to Use this Curriculum
Sample Introductory Survey
Sample Quiz
Sample Rubric
Computer Science with Ms. Morgan
The Coding Tr
ain
Intro to p5 Learning Playlist
Code-it
Open Processing
Codepen
Repl.it:
Tutorial
Worksheet
Worksheet
15-week Curriculum
Project 1: Drawing Apps
Project 2: Generative Design
Project 3: Game Design
Hour of Code Page
Facebook group for Processing and p5.js users
Processing Discourse discussion group
NYC DOE CSforAll Teacher Slack group
r/p5js
r/processing
Hackathons for High Schoolers
Built by Girls Events
Wave: Built by Girls Mentorship Program
CS Ed Week
AI for All Summer Programs
All Start Code: Summer program
Google Open Source Coding Challenge