DM-GY 6063
Creative Coding
Fall 2024, Section B
Syllabus
Assignments
Resources
Schedule
Setup
Tutorials
Weekly Schedule
Week 01 (2024/09/09)
Class Materials:
Slides
Code
Starter Template
Recommended Readings:
Intro to Programming and JavaScript:
[1]
[2]
Setting up an IDE, Git and GitHub:
[1]
[2]
Setting Up p5.js:
[1]
Recommended Videos:
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 Committing using The GitHub App:
[1]
Homework 01 | due: 2024/09/16 - 5PM
Week 02 (2024/09/16)
Class Materials:
Slides
Code: Shapes and Colors
Code: Transformations
Code: Repeatable/Modular Code
Tutorials:
p5.js Intro
Drawing: Shapes and Colors
Transformations
Variables
Recommended Readings:
Getting Started with p5js (Chapters 1, 2, 3, 4, 6):
[1]
p5.js Documentation:
[1]
Recommended Videos:
Cloning and Committing using The GitHub App:
[1]
Code: Repeatable/Modular Code:
[1]
Homework 02 | due: 2024/09/23 - 5PM
Week 03 (2024/09/23)
Class Materials:
Slides
Code: Functions
Code: For Loops
Code: Nested For Loops
Tutorials:
Git and GitHub
Functions
Loops as Patterns
Loops as Counters
2D Patterns
Recommended Readings:
Getting Started with p5js (Chapters 4 and 9):
[1]
Homework 03 | due: 2024/09/30 - 5PM
Week 04 (2024/09/30)
Class Materials:
Slides
Code
Multi-Sketch Template
Tutorials:
Randomness
Conditionals
Homework 04 | due: 2024/10/07 - 5PM
Week 05 (2024/10/07)
Class Materials:
Slides
Code
Tutorials:
Interactions
Animation
Map & Mod
Cycles
Sine and Cosine
Recommended Readings:
Getting Started with p5js (Chapters 5 and 8):
[1]
Recommended Videos:
mod:
[1]
Homework 05 | due: 2024/10/14 - 5PM
Week 06 (2024/10/15)
Class Materials:
Slides
Code
Tutorials:
Arrays
Objects
Loading Data (JSON/CSV)
State Variables
Recommended Readings:
Getting Started with p5js (Chapters 10, 11, 12):
[1]
Introducing JavaScript Objects:
[1]
Recommended Videos:
Arrays:
[1]
[2]
Objects:
[1]
[2]
[3]
JSON:
[1]
Homework 06 | due: 2024/10/21 - 5PM
Week 07 (2024/10/21)
Class Materials:
Slides
Code
Tutorials:
Strings
Images
Recommended Readings:
Getting Started with p5js (Chapter 7):
[1]
IDM's Image Processing Tutorial:
[1]
Recommended Videos:
Animating Text:
[1]
[2]
Homework 07 | due: 2024/10/28 - 5PM
Week 08 (2024/10/28)
Class Materials:
Slides
Code
Tutorials:
Images
Videos
The DOM
Recommended Readings:
Getting Started with p5js (Chapter 13.4 - 13.6):
[1]
Intro to HTML:
[1]
Recommended Videos:
DOM:
[1]
Homework 08 | due: 2024/11/04 - 5PM
Week 09 (2024/11/04)
Midterm Presentations
Class Materials:
Mid-Term Codes
Mid-Term Projects
Slides
Code
Tutorials:
More Random
Recommended Readings:
Getting Started with p5js (Chapters 13):
[1]
The Nature of Code (Chapter 0: Randomness):
[1]
Homework 09 | due: 2024/11/11 - 5PM
Week 10 (2024/11/11)
Class Materials:
Slides
Code
Tutorials:
Classes
Classy Images
Classy Strings
Trigonometry
Sound Files
Sound Processing
Recommended Readings:
Getting Started with p5js (Chapters 13):
[1]
The Nature of Code (Chapter 1: Vectors):
[1]
Original Sound Library Documentation:
[1]
Jason Sigal's Visualizing Music:
[1]
Recommended Videos:
Sound:
[1]
[2]
Homework 10 | due: 2024/11/18 - 5PM
Week 11 (2024/11/18)
Arduino:
Arduino Intro
Outputs: Analog and Digital
Class Materials:
Circuits
Slides
Code
Tutorials:
analogWrite() and digitalWrite()
Multiple LEDs
Non-Blocking Delay
Moving a Servo Motor
(
code
)
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 11 | due: 2024/11/25 - 5PM
Week 12 (2024/11/25)
Arduino:
Inputs: Digital and Analog
Serial port
Finite-State Machines
Class Materials:
Circuits
Slides
Code
Tutorials:
analogRead() with digitalWrite()
(
code
)
analogRead() with Photoresistors
(
code
)
Piezoelectric Sensor
Piezo and Debounce
(
code
)
Piezo Knock Detection
Recommended Videos:
Digital Input:
[1]
[2]
Analog Input and Serial Port:
[1]
Homework 12 | due: 2024/12/02 - 5PM
Week 13 (2024/12/02)
Arduino:
More FSMs
Communicating with p5.js
Class Materials:
Circuits
Slides
Code
Tutorials:
Arduino + p5js Serial Communication
(
code
)
Recommended Readings:
Serial Communication:
[1]
Recommended Videos:
Arduino + p5js Serial Communication:
[1]
Homework 13 | due: 2024/12/09 - 5PM
Week 14 (2024/12/09)
Processing Signals
Average Filtering
WiFi and BLE
Class Materials:
Circuits
Slides
Code
Tutorials:
WiFi: Arduino HTTP Server
(
code
)
WiFi: p5js HTTP Client
(
code
)
Recommended Readings:
An overview of HTTP:
[1]
HTTP Server with the ESP32:
[1]
Bluetooth and p5.ble:
[1]
[2]
[3]
Recommended Videos:
WiFi: Arduino HTTP Server:
[1]
WiFi: p5js HTTP Client:
[1]
BLE Intro:
[1]
Homework 14 | due: 2024/12/17 - 5PM