This schedule is common to all sections. Lecture notes for individual sections are below:
-
- Michael Shiloh lecture notes
- Links to code, discussion leaders, and student accounts for Michael Shiloh’s section are all in the class Github repository
- Mang lecture notes – p5js Code Examples – Brightspace – Weekly Schedule Spreadsheet
- Aya Riad Slide Decks – Brightspace
- Guidance on reading responses and discussion
- Michael Shiloh lecture notes
Week 1
Primitive shapes, Programming concepts
Assignments due midnight before first class of following week:
Production:.
- Create an account at https://editor.p5js.org/ so you can save and share your p5.js sketch
- Make a self-portrait using p5.js using the online editor
- The portrait must be entirely created by your code i.e. you must not interact with your computer while the portrait is being made (e.g. no drawing using the mouse)
- The portrait does not need to be dynamic (i.e. it does not need to change while we look at it)
- The portrait does not need to be realistic. The purpose is to practice using the simple drawing functions.
- Post your documentation and code on the class WordPress blog
- WordPress Login information here if that doesn’t work try here (for Aya’s section, check your Brightspace)
- Your post should contain the following:
- Your concept
- A highlight of some code that you’re particularly proud of
- Embedded sketch
- Reflection and ideas for future work or improvements
- See here for how to embed your P5js sketch directly into your post: https://intro.nyuadim.com/
2022/01/06/how-to-embed-a- p5js-sketch-in-your-blog-post/ - Here are some examples:
- Koala portrait (note: you don’t have to include motion / interactivity for this first assignment, but feel free to go for it!)
- A Self-Portrait Using Processing
- Assignment 1: Self-portrait
- Self Portrait: I’m a Hat
Here are some resources to look at for coding with p5.js:
Technical Reading (no response required):
Week 2
Animation, Conditionals, Loops
Assignments due midnight before first class of following week:
-
- Production:
- Using loops (
for()
orwhile()
) in some way, along with everything that you’ve learned so far, make a simple work of art. You may want to look at these old computer art magazines for inspiration, but you don’t need to make your so elaborate. Scroll through and look for images: - Post your documentation and code on the class WordPress blog
- Using loops (
- Creative Reading (posted response required):
- Production:
-
- Technical Reading (no response required):
- If you are new to functions or want to review, watch Dan Shiffman’s functions tutorials. There are four videos, each less than 10 minutes.
- Watch at least the first four of Dan Shiffman’s Object Oriented Programming tutorials.
- Technical Reading (no response required):
Week 3
Functions, Arrays, and Object-Oriented Programming
Assignments due midnight before first class of following week:
- Production:
- Create a generative artwork using Object-Oriented Programming. You must use arrays and objects. Pay attention to the structure, clarity, and organization of your program. As always, document your project:
- Well commented code, especially for any confusing or tricky parts
- References to any examples or inspiration
- Functions as needed to organize your program
- Excellent names for variables and functions
- Post code and one or more images
- Describe the overall concept of your artwork
- Embed your sketch in the post
- Describe any problems you ran into
- Post your documentation and code on the class WordPress blog
- Michael’s section: For those of you who know how to use classes and arrays, I want you to use this homework assignment to develop your creativity. We will critique your assignments in class, so pay extra attention to aesthetics. I don’t expect you all to be artists, but everyone can pay attention to the visual appearance of their work and make conscious choices. Be ready to discuss your work in this context, explaining your influences, inspiration, and choices.
- Create a generative artwork using Object-Oriented Programming. You must use arrays and objects. Pay attention to the structure, clarity, and organization of your program. As always, document your project:
- Creative Reading (posted response required):
- Technical Reading (no response required)
Week 4
Loading Data, Displaying text
Assignments due midnight before first class of following week:
- Production:
- (Post documentation on blog): Either make some sort of data visualization, or create a generative text output.
- (No blog post needed): Bring an idea (or ideas) to class for your midterm. We will spend part of class next week working on your midterms.
- Creative Reading (posted response required):
- Read The Design of Everyday Things, The Psychopathology of Everyday Things. If that link is broken use this. (Chapter 1 only)
- Be prepared to discuss
- Read The Design of Everyday Things, The Psychopathology of Everyday Things. If that link is broken use this. (Chapter 1 only)
- Technical Reading (no response required)
Week 5
Image Processing, Sounds (download files for use in class), introduce Midterm Project
Assignments due midnight before first class of following week:
- Production:
-
- Make progress on your midterm project and post your progress to the blog
-
- Decide on the concept and design the user interaction
- Start designing your code (functions, classes, interactivity)
- Identify the most frightening or uncertain or complex part of your midterm project, and do something to minimize that risk e.g. write some code to test a new library, or implement any critical algorithms that you need, etc. For example you could implement code to generate different graphical shapes, a collision detection algorithm, or a test program for sound playback.
- Document your project concept, design, and what you identified as the most frightening part and what you did to reduce this risk on the blog
-
- Midterm Project:
-
- Make an interactive artwork or game using everything you have learned so far
- Can have one or more users
- Must include
- At least one shape
- At least one image
- At least one sound
- At least one on-screen text
- Object Oriented Programming
- The experience must start with a screen giving instructions and wait for user input (button / key / mouse / etc.) before starting
- After the experience is completed, there must be a way to start a new session (without restarting the sketch)
-
- Examples of midterm projects:
- Examples of midterm progress posts:
- Make progress on your midterm project and post your progress to the blog
-
- Creative Reading (posted response required):
Week 6
Computer Vision
Midterm due dates:
- October 16 (Mang’s section)
- October 17 (Michael’s section)
- October 17th (Aya’s section)
- Production:
-
-
- Complete Midterm (post documentation on blog)
- Embed or link to your sketch (e.g. link to the sketch in fullscreen mode)
- Include code snippets and one or more images
- Describe the overall concept of your project (1-2 paragraphs)
- Describe how your project works and what parts you’re proud of (e.g. good technical decisions, good game design) 2-3 paragraphs
- Describe some areas for improvement and problems that you ran into (resolved or otherwise) (1-2 paragraphs)
- Complete Midterm (post documentation on blog)
-
-
- Creative Reading:
- Read Making Art is Like Setting a Trap. The article is about writing, but the concept is true for any art form. No reading response is necessary, but think about this as you work on your midterm project. What is your “emotional concept” and how does your midterm project replicate that in your user?
Week 7
Midterm sharing!
Assignments due midnight before first class of following week:
-
- Reading (no response required):
-
- Arduino requires a USB-A port. If your laptop has only USB-C ports, purchase a USB-C to USB-A adapter. These are readily available at Amazon as well as many shops, possibly even the campus bookstore and convenience store.
- Install the Arduino IDE from here. Install version 2.0. Arduino 2.0 IDE installation instructions.
Spring Break
Week 8
Introduction to Electricity, Arduino digital input & output
Assignments due midnight before first class of following week:
- Production:
- (Post documentation on blog): Create an unusual switch that doesn’t require the use of your hands. Should not use any code.
- Examples:
-
Get creative with switches: https://itp.nyu.edu/physcomp/labs/switches/#Get_Creative_With_Switches
- Blink triggered Polaroid camera (YouTube)
-
- Examples:
- (Post documentation on blog): Create an unusual switch that doesn’t require the use of your hands. Should not use any code.
- Creative Reading (posted response required):
- Read, post and be ready to discuss
- Technical Reading (no response required)
- Read about analog output
- Read about analog Input
Week 9
Arduino: analog input & output
Assignments due midnight before first class of following week:
- Production:
- (Post documentation on blog): Get information from at least one analog sensor and at least one digital sensor (switch), and use this information to control at least two LEDs, one in a digital fashion and the other in an analog fashion, in some creative way.
- Creative Reading (posted response required):
- Technical Reading (no response required):
- Read about the voltage divider. Don’t worry about the theory too much or the section on level shifting. The important thing is to absorb a little of the concept of a voltage divider.
Week 10
Sound, Servo motor, Mapping
Assignments due midnight before first class of following week:
- Production:
- (Post documentation on blog) – group assignment (2 people per group): Make a musical instrument
- You must use at least one digital sensor (switch)
- You must use at least one analog sensor (photoresistor, potentiometer, or distance measuring sensor)
- Each person should post to their individual blog (ok if the posts are the same)
- (Post documentation on blog) – group assignment (2 people per group): Make a musical instrument
Creative Reading (posted response required):
Technical Reading:
It is important that you understand the concepts behind BlinkWithoutDelay. Here are links to various other explanations of the same thing. Browse them, and read one deeply enough that you understand. Come to class with questions if none of these help.
Week 11
Serial Communication, introduce Final Project
Assignments due midnight before first class of following week:
- Production:
- (Each person, not just one for a group, should post code for each exercise, and video of just the LED lighting up with the ball bouncing) Work in the groups from class to finish the three in-class examples exercises:
-
make something that uses only one sensor on Arduino and makes the ellipse in p5 move on the horizontal axis, in the middle of the screen, and nothing on arduino is controlled by p5
-
make something that controls the LED brightness from p5
-
take the gravity wind example (https://editor.p5js.org/aaronsherwood/sketches/I7iQrNCul) and make it so every time the ball bounces one led lights up and then turns off, and you can control the wind from one analog sensor
-
- (Post documentation on blog): Write a preliminary concept for your final project, which must incorporate both Arduino and P5.
- Final project prompt (examples are listed on syllabus page)
- Create a physically interactive system of your choice that relies on a multimedia computer for some sort of processing or data analysis. The Final should use BOTH P5 AND Arduino. Your focus should be on careful and timely sensing of the relevant actions of the person or people that you’re designing this for, and on clear, prompt, and effective responses. Any interactive system is going to involve systems of listening, thinking, and speaking from both parties. Whether it involves one cycle or many, the exchange should be engaging. Each student does their own final project.
- Final project prompt (examples are listed on syllabus page)
- (Each person, not just one for a group, should post code for each exercise, and video of just the LED lighting up with the ball bouncing) Work in the groups from class to finish the three in-class examples exercises:
- Creative Reading (posted response required)
Week 12
DC motors, Construction and Debugging, Final Project Proposal
Assignments due midnight before first class of following week:
- Production:
- Commit to your final project proposal, include the following explanations in your blog post:
- Finalized concept for the project
- Design and description of what your Arduino program will do with each input and output and what it will send to and/or receive from P5
- Design and description of what P5 program will do and what it will send to and/or receive from Arduino
- (Post your proposal and design documentation on blog):
- Commit to your final project proposal, include the following explanations in your blog post:
Week 13
Work on Final Project
Final project is due Monday 8 May 11:59pm:
- Production:
- (Post documentation on blog):
- Conduct user testing (record video)
- Have people try your project without giving them any prompts/instructions and see how they use it
- Are they able to figure it out? Where do they get confused and why? Do they understand the mapping between the controls and what happens in the experience?
- What parts of the experience are working well? What areas could be improved?
- What parts of your project did you feel the need to explain? How could you make these areas more clear to someone that is experiencing your project for the first time?
- Have people try your project without giving them any prompts/instructions and see how they use it
- Conduct user testing (record video)
- (Post documentation on blog)
- Describe your concept
- How does the implementation work?
- Description of interaction design
- Description of Arduino code
- Description of p5.js code
- Description of communication between Arduino and p5.js
- What are some aspects of the project that you’re particularly proud of?
- What are some areas for future improvement?
- (Post documentation on blog):
Week 14
Final Project Due (post documentation on blog)
IM End of Semester Show (Spring semester)
- (Date/time TBD) in the Arts Center lobby and Black Box theater
- Mang Section – Setup (Date/time TBD)
- Set up your project and make sure it’s working
- All IM students must show at least one project
- Timeline – TBD
- Arrive – set up laptops, make sure project is still working
- Show your project
- Performances in Black Box theater
- Deinstall
- Clean up your area
- Remove your project
- Return and check in borrowed equipment to IM Lab
- Return tables, help with other cleanup