DM-GY 6063
Creative Coding
Fall 2023, Section D
Syllabus
Assignments
Resources
Schedule
Setup
Tutorials
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:
Slides
Code
Starter Template
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:
Slides
Code
Starter Template
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:
Slides
Code
Tutorials:
Boolean Mouseover
Loops
Loops (counting)
Random Lottery
Recommended Readings:
Getting Started with p5js (Chapters 4):
[1]
Recommended Videos:
Conditionals:
[1]
Loops:
[1]
[2]
Random:
[1]
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:
Slides
Code
Multi-Sketch Template
Tutorials:
Functions
Animation (1D)
Map
Cycles
Sine and Cosine
Recommended Readings:
Getting Started with p5js (Chapters 5, 6, 8, 9):
[1]
Recommended Videos:
Functions:
[1]
[2]
Transforms:
[1]
[2]
Mouse Events:
[1]
Animation:
[1]
[2]
map():
[1]
[2]
[3]
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:
Slides
Code
Tutorials:
State
Arrays
Objects
Loading Data (JSON/CSV)
Recommended Readings:
Getting Started with p5js (Chapters 10 - 12):
[1]
Recommended Videos:
Arrays:
[1]
[2]
[3]
Objects:
[1]
Data:
[1]
JSON:
[1]
[2]
[3]
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:
Slides
Code
Tutorials:
Advanced Arrays
Classes
Strings
Classy Strings
Recommended Readings:
Getting Started with p5js (Chapters 7.9 - 7.13, 10):
[1]
Introducing JavaScript Objects:
[1]
Recommended Videos:
Objects:
[1]
[2]
[3]
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:
Slides
Code
Tutorials:
Trigonometry
Classy Events
Images
Classy Images
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:
A Brief Introduction to Debugging:
[1]
[2]
[3]
[4]
Pixel Array:
[1]
Images:
[1]
Video Capture:
[1]
Homework 07 | due: 2023/10/25 by 1PM
Week 08 (2023/10/25)
Midterm Presentations
p5.js:
The DOM
Sound Files
Class Materials:
Slides
Code
Tutorials:
Mid-Term
The DOM
Sound Files
Recommended Readings:
Getting Started with p5js (Chapters 13):
[1]
Jason Sigal's Visualizing Music:
[1]
Recommended Videos:
DOM:
[1]
Sound:
[1]
[2]
[3]
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:
Slides
Code
Tutorials:
Random Gaussian
Noise
Recommended Videos:
Noise:
[1]
[2]
[3]
RiTa Library:
[1]
ml5.js Object Detection:
[1]
ml5.js PoseNet:
[1]
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:
Slides
Code
Tutorials:
analogWrite() and digitalWrite()
(
code
)
Multiple LEDs
(
code
)
Non-Blocking Delay
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:
Electricity:
[1]
[2]
Outputs:
[1]
[2]
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:
Slides
Code
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:
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:
Slides
Code
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:
Slides
Code
Tutorials:
Sound Processing
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