Weekly Schedule

Week 01 (2023/09/06)

  • Review Syllabus
  • Introductions
  • Presentation: What is Programming?
  • Presentation: What is p5.js?
  • Setting up a local dev environment and GitHub

Class Materials:

Recommended Videos:

  • How Transistors Do Math: [1]
  • Git: [1]
  • Signing up for GitHub: [1]
  • Creating a GitHub Organization: [1]
  • Setup GitHub Desktop App: [1]
  • Start a Project from a Template: [1]
  • Installing VSCode plugins: [1]
  • Cloning and Commiting using The GitHub App: [1]
  • Cloning and Commiting using VSCode: [1]

Homework 01 | due: 2023/09/13 by 1PM


Week 02 (2023/09/13)

  • Review Assignment
  • Discuss Reading
  • Presentation: Math Review

p5.js:

  • Functions and Variables
  • Pixels and Canvas
  • Drawing Functions
  • Transforms

Class Materials:

Recommended Readings:

  • Getting Started with p5js (Chapters 1 - 4, 6): [1]
  • p5.js Documentation: [1]

Recommended Videos:

  • Git: [1]
  • Cloning and Committing using The GitHub App: [1]
  • Cloning and Committing using VSCode: [1]
  • Canvas and Drawings: [1]
  • Colors: [1]
  • Transforms: [1]

Homework 02 | due: 2023/09/20 by 1PM


Week 03 (2023/09/20)

  • Review Assignment
  • Discuss Reading
  • Presentation: Git & Markdown

p5.js:

  • Loops and Conditionals
  • Variation and Randomness

Class Materials:

Tutorials:

Recommended Readings:

  • Getting Started with p5js (Chapters 4): [1]

Recommended Videos:

Homework 03 | due: 2023/09/27 by 1PM


Week 04 (2023/09/27)

  • Review Assignment
  • Discuss Reading
  • Presentation: Pseudo-code

p5.js:

  • Transforms and Functions
  • Mouse and Events
  • Time, Movement and Animation
  • Cycles

Class Materials:

Tutorials:

Recommended Readings:

  • Getting Started with p5js (Chapters 5, 6, 8, 9): [1]

Recommended Videos:

Homework 04 | due: 2023/10/04 by 1PM


Week 05 (2023/10/04)

  • Review Assignment
  • Discuss Reading

p5.js:

  • State
  • Arrays
  • Objects
  • Data and CSV and JSON

Class Materials:

Tutorials:

Recommended Readings:

  • Getting Started with p5js (Chapters 10 - 12): [1]

Recommended Videos:

Homework 05 | due: 2023/10/11 by 1PM


Week 06 (2023/10/11)

  • Review Assignment
  • Discuss Reading

p5.js:

  • Objects
  • Text and Strings

Class Materials:

Tutorials:

Recommended Readings:

  • Getting Started with p5js (Chapters 7.9 - 7.13, 10): [1]
  • Introducing JavaScript Objects: [1]

Recommended Videos:

Homework 06 | due: 2023/10/18 by 1PM


Week 07 (2023/10/18)

  • Review Assignment
  • Discuss Reading

p5.js:

  • More Classes
  • Images and Pixel Array

Class Materials:

Tutorials:

Recommended Readings:

  • p5.js's Field Guide To Debugging: [1]
  • Getting Started with p5js (Chapters 7.1 - 7.8): [1]
  • IDM's Image Processing Tutorial: [1]

Recommended Videos:

Homework 07 | due: 2023/10/25 by 1PM


Week 08 (2023/10/25)

  • Midterm Presentations

p5.js:

  • The DOM
  • Sound Files

Class Materials:

Tutorials:

Recommended Readings:

  • Getting Started with p5js (Chapters 13): [1]
  • Jason Sigal's Visualizing Music: [1]

Recommended Videos:

Homework 08 | due: 2023/11/01 by 1PM


Week 09 (2023/11/01)

  • Review Assignment
  • Discuss Reading

p5.js:

  • Noise
  • Libraries
  • Image and Audio Processing

Class Materials:

Tutorials:

Recommended Videos:

Homework 09 | due: 2023/11/08 by 1PM


Week 10 (2023/11/08)

  • Review Assignment
  • Discuss Reading
  • Presentation: Intro to Electronics

Arduino:

  • Setting up
  • Outputs: Analog and Digital

Class Materials:

Tutorials:

Recommended Readings:

  • Sparkfun's Electronics Tutorial: [1] [2] [3] [4]
  • Setting Up The Arduino IDE: [1]
  • Getting Started with the Nano ESP32: [1] [2]

Recommended Videos:

Homework 10 | due: 2023/11/15 by 1PM


Week 11 (2023/11/15)

  • Review Assignment
  • Discuss Reading
  • Analog and Digital signals
  • Finite-State Machines

Arduino:

  • Serial
  • Inputs: Analog and Digital

Class Materials:

Tutorials:

Recommended Readings:

  • Getting Started with the Nano ESP32: [1] [2]

Recommended Videos:

  • Digital Input: [1] [2]
  • Analog Input and Serial Port: [1]

Homework 11 | due: 2023/11/29 by 1PM


Week 12 (2023/11/29)

  • Review Assignment
  • Discuss Reading
  • More C++ Quirks
  • Processing Analog Signals

Arduino:

  • Average Filtering
  • Communicating with p5js

Class Materials:

Tutorials:

Recommended Readings:

  • Serial Communication: [1]
  • An overview of HTTP: [1]
  • HTTP Server with the ESP32: [1]
  • Bluetooth and p5.ble: [1] [2] [3]

Recommended Videos:

  • Arduino + p5js Serial Communication: [1]
  • WiFi: Arduino HTTP Server: [1]
  • WiFi: p5js HTTP Client: [1]
  • BLE Intro: [1]

Homework 12 | due: 2023/12/06 by 1PM


Week 13 (2023/12/06)

  • Review Assignment
  • Discuss Reading

p5.js:

  • More Sound Library

Arduino:

  • Communicating with p5js

Class Materials:

Tutorials:

Recommended Readings:

  • Sound Library Documentation: [1]
  • Jason Sigal's Visualizing Music: [1]

Recommended Videos:

  • The Coding Train Sound Tutorials: [1]

Homework 13 | due: 2023/12/13 by 1PM


Week 14 (2023/12/13)

  • Review Assignment
  • Discuss Reading
  • Guest Speaker
  • Final Project preview, feedback and adjustments

Homework 14 | due: 2023/12/20 by 1PM