Creative Coding
Instructor:
Tega Brain
Tuesdays & Thursdays 10:00 to 11:45
IDM creative coding Slack
Link to the p5 editor.
Syllabus
The official syllabus can be found here.
Class Schedule
WEEK 0: Thu Jan 28: Syllabus overview // Class tools and technologies
- Introductions
For next class:
- View: Intro to the editor
- View: Shapes and drawing
- View: Color
- Read excerpt from Code, Charles Petzold, and discuss on the Slack channel #brain-s21-reading-chat
WEEK 1: Tue Feb 2: Syntax and languages // Editors and console // Coding practice
- Coding from life
For next class:
- Finish and submit coding from life assignment
Thu Feb 4: Parameters
- Due: Coding from Life // Open Mic
- Lost and found assignment (see description below)
For next class:
- Optional revision: Errors and console
- Optional revision: Comments and documentation
- Optional revision: Transformation/translation
- View: Variables
- View: JS objects
- Artist talk: Jenny Odell Eyeo Talk 2016
- Complete: Lost and Found Assignment
WEEK 2: Tue Feb 9: Generativity
- Due: Lost and Found (see project description below) // Open mic session
- Introduction to map, random.
- Variables exercises
For next class:
- Optional revision: Map function
- Optional revision: Random
- View: Intro conditional logic
- View: Bouncing ball
Thu Feb 11: Conditionals
- Lecture: Introduction to generative design
- Generative design assignment
For next class:
- Do the conditional testing homework exercise at the bottom of the notes for this week.
- Read: Reading 1 from the Generative Design Project. Randomness by Nick Montfort (p119-146). (See NYU Classes for a PDF)
- View: Else, else if
- View: Boolean variables
WEEK 3: Tue Feb 16: Programming state
- Live coding: generative code examples
- Functions, lerp and while loops
For next class:
- Read: Reading 2 from the the Generative Design Project by Kate Compton.
- View: While loops (Watch from 0-8 mins): https://www.youtube.com/watch?v=cnRD9o6odjk
- View: Lerp function https://www.youtube.com/watch?v=8uLVnM36XUc
- Optional Revision: Functions w/ parameters https://www.youtube.com/watch?v=zkc417YapfE
- Optional Revision: Custom functions: https://www.youtube.com/watch?v=wRHAitGzBrg
- Optional: More state exercises (listed at the bottom of the Week3 notes.
- Generative thing project.
Thu Feb 18: NO CLASS
WEEK 4: Tues 23rd: Loops and Media
- Return functions
- Variable types, strings, print and console.log
- Check in on generative assignment work
For next class:
Thu Feb 25
- For Loops // Images and Media
- Due: Generative design // Open Mic
For next class:
- Watch: Joy Buolamwini's talk on Algorithmic Bias
- Read: Ch 1. in Ruha Benjamin's Race After Technology and reflect on the reading in the slack channel by discussing an example where an aspect of the world, the human or the body is represented as variables or parameters.
- View: Nested loops: https://www.youtube.com/watch?v=1c1_TMdf8b8&feature=emb_logo
- View (or review?): For loops (from 8 minutes): https://www.youtube.com/watch?v=cnRD9o6odjk
- Optional Review: Return Functions https://www.youtube.com/watch?v=qRnUBiTJ66Y
WEEK 5: Tue Mar 2: Time and Technology
- Lecture in class and introduction to the clock project. See notes here.
- The time functions
For next class:
- View: Object orientated programming https://www.youtube.com/watch?v=xG2Vbnv0wvg
- View: Classes in JS https://www.youtube.com/watch?v=T-HGdc8L-7w
- View: Constructor https://www.youtube.com/watch?v=rHiSsgFRgx4
Thu Mar 4:Object Orientated Programming
- Objects, objects, objects!
For next class:
- Review objects video lectures as needed.
- Review loading media as needed: https://www.youtube.com/watch?v=5nf41qLeagU
- View: Arrays https://www.youtube.com/watch?v=VIQoUghHSxU
- View: Arrays and Loops https://www.youtube.com/watch?v=RXWO3mFuW-I
- Objects exercise at the end of the class notes
- Clock project readings and concept sketches
WEEK 6: Tue Mar 9: Arrays & External editors and the console
- Arrays!
- More exercises with objects and arrays
For next class:
- Review arrays and exercises from class
- Clock project work
Thu Mar 11: External editors
For next class:
- Clock project work
WEEK 7: Tue Mar 16: Arrays and The Clock
- Arrays examples
- Clock project work
Thu Mar 18:
- Clock project due.
- Guest artist: Sam Lavigne
For next Thursday:
- Viewing. Eyeo is a art and design festival held every year with a fantastic archive. Choose one of the following Eyeo talks from their vimeo channel and watch it. Write a reflection in the Slack reading channel,
- Stephanie Dinkins
- Everest Pipkin
- Sara Hendren
- Paul Soulellis
- Darius Kazemi
- Morehshin Allahyari
- Mimi Onuoha
WEEK 8: Tue Mar 23: Introduction to the terminal, github and the pixel array.
Intro to terminal & folder poetry. See the class notes and lectures slide on classes.
For next class:
- Viewing: Either view the rain game video, in resources on the NYU Classes page. Starter code is here.
- Or object interactions 1:Object communication 1
- And object interactions 2:Object communication 2
Thu Mar 25: Images & image analysis
For next class:
- Revision working the pixels array: https://www.youtube.com/watch?v=nMUMZ5YRxHI
- Optional: Images and objects: https://www.youtube.com/watch?v=i2C1hrJMwz0
- Software mirror exercise as outlined in the notes.
WEEK 9: Tue Mar 30: Introduction to Libraries and Machine Learning
- What is machine learning?
- Project 4: Interaction with Teachable Machine
For next class:
- Teachable machine: Image classification 1 https://www.youtube.com/watch?v=kwcillcWOg0
- Optional follow up where he creates a snake game using the classifier: Image classification 2 https://www.youtube.com/watch?v=UPgxnGC8oBU&t=427s
Thu Apr 1: More examples with Teachable Machine
For next class:
- Teachable machine: Sound classification https://www.youtube.com/watch?v=TOrVsLklltM&t=1s
- Reading: Excavating AI https://excavating.ai/
- Optional background viewing on ML: https://www.youtube.com/watch?v=jmznx0Q1fP0
WEEK 10: Tue Apr 6: Office Hours
Thu Apr 8:Advanced topics #1
- Introduction to web and the DOM
Project Show and Tell
For next class:
- Watch the first 3 videos from Shiffman's working with data series to get up to speed on data/JSON! https://www.youtube.com/watch?v=rJaXOFfwGVw&list=PLRqwX-V7Uu6a-SQiI4RtIwuOrLJGnel0r
WEEK 11: Tue Apr 13: Advanced topics #2
- Introduction to data and APIs
- Final Project introduction
Thu Apr 15: Advanced topics #3
- Introduction to the sound library.
WEEK 12: Tue Apr 20: Final Project Proposals
- Proposal crit session #1
Thu Apr 15
- Proposal crit session #2
WEEK 13: Final Project Work
Monday 26th 5-7pm EST - #OSSTA Lecture Series at Studio for Creative Inquiry.
Tue April 27: No class (we will attend the Monday night of the lecture series in place of class. If you can't make Monday night, you are to attend another night of this series.)
For next class:
- Give a review and reflection of two of the speaker's talks in the lecture series. Describe their practice. What are the key questions or concerns of their practice? Take a look at their portfolio and reflect on their artistic research
- Final project work
Thu Apr 29: Final Project work session
WEEK 14. Finals
Tues May 4: Final project work session
Thu May 6: Final project presentations
Assignments
0: Hello World // Coding from Life
Art made from life is about learning to see in new ways. Code, like drawing can be a process of paying attention to these ways of seeing. Code a scene from life.
1: Lost and Found Assignment (5%)
Interview one of your classmates about an object that they lost and recreate this object in code. See the project sheet here.
2: Generative Thing (10%)
Take either the object you produced in assignment 1 or represent something new such as a face, a postage stamp, a teapot etc. and use code to create a generator for this thing. Produce at least 9 different things with your generator and present them as a grid.
See the project sheet here.3: The Clock (15%)
Create a non conventional representation of the time. Project sheet is here
4: Classify This! (10%)
Exploring interaction with machine learning. Project sheet is here
5: Final (20%)
Resources
p5.js
- Learn p5.js
- p5.js Code Editor
- Programming with p5.js Video Series
- Examples from Shiffman videos
- Visual Studio Code