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:
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:
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:
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:
- Moving a Servo Motor (code)
 - analogRead() with digitalWrite() (code)
 - analogRead() with Photoresistors (code)
 - Capacitance and Bananas (code)
 - Piezoelectric Sensor (code)
 - Piezo and Debounce (code)
 - Piezo Knock Detection
 
Recommended Readings:
Recommended Videos:
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:
- Arduino + p5js Serial Communication (code)
 - WiFi: Arduino HTTP Server (code)
 - WiFi: p5js HTTP Client (code)
 
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:
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