Weekly Schedule
- WEEK 1 - September 2
- Housekeeping - Ritual reading of the syllabus
- wtf is ‘creative coding’?
- pixels on a screen - coordinate system
- setting up a local dev environment
- p5js online editor
- drawing with p5js
- brief intro to color
- Assignment
No Class September 9, classes run on a Monday schedule
I will be sending you videos to watch before class on Sept 16
- WEEK 2 - September 16
- pre-work
- discussion of campbell article
- review your work, q&a - what worked for you and what didn’t?
- animation, and time discussion
- link of the week - For Your Processing
- Assignment
- Watch the videos on loops
- Watch the videos on functions
- Optional but encouraged videos on translation
- Read p5.js Tutorial on interaction, in particular pay attention to the section on Events. The aspects in the aricle that describe mouseOver() and mouseOut() are our of scope for our discussion at the moment, so don’t worry if you don’t entirely get what it’s describing.
- Read The Art of Interactive Design Chapter 1. Online access provided by NYU libraries. Write a response to this on your blog — Crawford defines interaction as something that can happen along a continuum, from a simple switch to a deep and engaging conversation. How do you define interaction? Would you consider a book to be interactive? What about a plant you need to care for? How about a puppy? What about your sketches?
- Suggested Reading Getting Started With p5.js Chapters 4-6. Online access provided by NYU libraries.
- Create one of the following and post a link to the sketch on your website
- Make a clock with p5js. Functions like second(), hour() and minute() are useful here! The clock can be analogous to a real-world clock or it could be an abstract way of telling time
- using your mouse and a simple shape (rect, ellipse, arc, triangle, line, polygon), create an interaction that causes the shape to demonstrate an emotion. It could be fear, attraction, desire, exhaustion. Your choice. Obviously mouseX and mouseY are helpful. Examples like this easing function might be inspirational, as would notes from the 12 principles of animation
- WEEK 3 - September 23
- review your work
- question & answer time! nothimng should be unclear after this class ;)
- you down with oop? A brief introduction to making objects in p5js
- Assignments
- watch videos on objects
- watch the video on arrays
- Read Objects of Our Affection : How Object Orientsation Made Computers a Meduim by Casey Alt. Online access provided by NYU libraries. It’s a denser read than the other things we have enagged with so far, so give yourself some extra time.
- Write a response to Alt’s chapter. He argues that computers became “media” and were no longer just big adding machines when data and interface became rolled into one. With your newfound perspective on what object oriented programming is thanks to the videos above, how do you think this changed computation? What does this provide you? How can you see this being useful?
- suggested reading Getting Started With p5.js Chapters 10 & 11. Online access provided by NYU libraries.
- Watch the video for Around the World by Daft Punk. While you’re enjoying the music, think about how each of the different dancers/monsters in the video are like an object. They are similar, but have their own behaviors. Create a sketch that has a dance party. Use multiple instances of a class, or create multiple classes and many objects thsat have their own dance party. Your idea of a dance party may not have actual bodies, that’s ok. Explore different kinds of ways of creating objects with unique behaviors. Post this on your class site.
- WEEK 4 - September 30
- Bradford Paley’s CodeProfiles
- questions and answers about objects and arrays
- organizing your code into multiple files - aka bliss
- a bit about pseudocode
- Assignments
- watch these 4 short videos about debugging It’s about code and hardware, but it’s super useful for orienting yourself mentally to tackle this stupid important process
- read the p5js guide on debugging
- watch Objects talking with other objects
- watch More about arrays
- Create a sketch that adds objects based on interaction (mousepress, keystroke, etc) that interact with each other (collision, repulsion, etc.) or create a sketch that makes faces which have multiple dimensions of variability (skin color, eyes, ears, mouth, hair, age, etc). A new face should eb created everytime you click the mouse. For either example, write the sketch as pseudo-code first, then fill in your code afterwards.
- WEEK 5 - October 7
- review work
- Vectors
- recording things
- discuss midterm
- Assignments
- watch working with APIs and JSON
- Suggested Reading Getting Started With p5.js Chapter 12 on Data. Online access provided by NYU libraries.
- read Art and the API by Jer Thorp reflect of how you can use data from an API to tell a story or be persuasive.
- create a sketch that calls an API, processes the data, and visualizes it somehow. A non-exhaistive list of publically available APIs can be found here
- write a proposal for your midterm project. This includes a narrative description and a high level pseudocode explainer. Add sketches, gifs, and images as appropriate. Identify where you expect to run into trouble, or where you think you will have a gap in your knowledge.
- WEEK 6 - October 14
- Review your work with APIs
- Discuss your midterms
- working with libraries
- Assignments
- watch this series of videos on the DOM
- watch this video series on the audio library
- optionally watch these videos on the scribble and RiTa libraries
- create a small sketch that uses a library to enahnce a sketch. For example, use the DOM to create sliders or buttons for interfaces, use peasycam to navigate a 3D space, use p5.scribble to mimic hand drawn images, etc etc etc.
- continue to work on your midterm. You should have progressed to a point where you have a skeleton that has some basic functionality. You fully and write out as pseudocode/comments what functions, classes and objects you will need and what they will do.
- WEEK 7 - October 21
- review questions about libraries and use - who found something cool?
- midterm workshop
- video and image manipulation lecture
- optionally watch video tracking and image manipulation videos
- read these notes on video and image manipulation
- optionally read my harebrained notes on video tracking and computer vision
- finish your midterm project. Write a post about your work, describing what you did and why you did it. Take a step back and refelct on what you would have done differently (if anything!) and the challenges you faced/overcame - this could be conceptual, technical, or aesthetic. Explain how you might continue to work on this project if you had the time and motivation to do so. Remember, your project must have the following elements : 1) pseudocode of what you set out to do, 2) well commented code that explains what functions, classes, and objects are doing in your program 3) clear attribution with links to other’s code as appropriate.
- WEEK 8 - October 28
- Midterm presentations - everyone will have 5 minutes to present their work. Show what you did, share the link in the chat, and describe your process. What did you learn from this exercise?
- For those of you coming to class on Nov 4, bring the Arduino kit you received in the backpack you picked up. For thoae of you who are remote, make sure you have that available.
- read these harebarined notes on electricity
- watch these videos on your Arduino Kit
- watch these videos on electricity and circuits
- buid a circuit with a switch you make on your own that can be operated without using your hands. Think about what you have that is conductive. Aluminum foil works well. Be careful you do not cause a short! Always unplug your Arduino before changing anything in your circuit, and check to make sure there are no loose wires.
- WEEK 9 - November 4
- Using a multimeter
- what’s up switches?
- review your work - questions?
- read these harebarined notes on digital input and output
- watch these videos on setting up the Arduino IDE and what all those pins on your board do
- watch these videos on digital input and output
- read this article from Don Norman, Attractive Things Work Better
- build With the switch you built last week (or a different one if you want to experiment) use the Arduino to provide some meaningful feedback on what the action you engage in means. For example — if you are trying to notify someone that their posture is good or bad, could you make a switch that was based on how they stood, and notify them if they are not straight? What about gettting someone to smile for a camera? Using the digital input and output provide feedback to your user that is meaningful in context. Labeling LEDs with text, or using different colored lights to indicate things is helpful, try diffusing the light with paper or a ping pong ball, how does that change the quality of the light?
- WEEK 10 - November 11
- watch these videos on analog input & output
- watch these videos on servos and libraries
- optionally watch these videos on the built in sensors of your Arduino (IMUs! an acceleromteter, gyroscope and magnometer)
- optionally watch this video on building a capacitive touch sensor
- read the chapter I will distribute in slack
- read these notes on analog Input/output
- make/build/code a love compatiability machine. Using analog input and/or analog output, make a love compatiability machine. This could be 2 photocells that have an LED as an output, or a pair of buttons that enagge a servo motor, or one photocell that people need to clasp hands over, or anything else that demonstrates how to display how compatiable people are.
- WEEK 11 - November 18
- review love machines!
- Serial communication with a microcontroller in class
- read these notes on serial commuication
- Watch these videos to review serial communication
Optionally Watch these videos on Bluetooth communcation Life conspired against us, and I was ubnable to make this video content. I strongly reccommend Tom Igoe’s notes on BLE communitcation
- make/build/code control a sketch with a physical interface - take one of your early p5 sketches and make it controllable with a switch, pot or photocell using serial or bluetooth communcation. Alternatively, create a new p5 sketch that reacts to soem sort of input. How does this change in control transform the exerience of using the sketch?
- WEEK 12 - November 25
- Advanced topics
- final project proposal
- start working on your final project! Write up a block diagram or pseudocode of your projct. Think about all the materials, libraries or code you will need. Start the implementation of your projects!.
- take at least one full dday off this weekend to rest!
- WEEK 13 - December 2
- Final project reviews - reality check / workshopping
- WEEK 14 - December 9
- Final project presentation
- Project and documentation due on Wed Dec 16
- On your blog, document your work. This sould include sketches, links to code or the project itself, video, inages, etc. Write a description of the process you took to make it. What influenced you? What were you trying to convey with your work? Did you rely on the work of others? be sure to link to those resources and describe how you used them. What would you have done differently if you knew then what you know now? What woudl you do if you had more time to to work on this?