This schedule is common to all sections. Lecture notes for individual sections are below:
Week 1
Primitive shapes, Programming concepts
Assignments due before the first class starts of the 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
- 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
- Your post should contain the following:
Here are some resources to look at for coding with p5.js:
Technical Reading (no response required):
Week 2
Animation, Conditionals, Loops
Assignments due before the first class starts of the 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):
- Watch Casey Reas’ Eyeo talk on chance operations
- How are you planning to incorporate random elements into your work? Where do you feel is the optimum balance between total randomness and complete control?
- Guidance on reading responses and discussion
- Watch Casey Reas’ Eyeo talk on chance operations
- 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 before the first class starts of the 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
- For those of you who know how to use classes and arrays, use this homework assignment to develop your creativity. We will critique your assignments in class, so pay extra attention to aesthetics. You’re not expected to all 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):
- Read The Art of Interactive Design, Ch. 1
- What do you consider to be the characteristics of a strongly interactive system? What ideas do you have for improving the degree of user interaction in your p5 sketches?
- Read The Art of Interactive Design, Ch. 1
- Technical Reading (no response required)
Week 4
Loading Data, Displaying text
Assignments due before the first class starts of the 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)
- What’s something (not mentioned in the reading) that drives you crazy and how could it be improved?
- How can you apply some of the author’s principles of design to interactive media?
- Be prepared to discuss
- Reading is also available in Brightspace->Reading Materials (for both sections)
- 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
- 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:
Assignments due before the first class starts of the 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
-
- Make progress on your midterm project and post your progress to the blog
-
- Creative Reading (posted response required):
- Read Computer Vision for Artists and Designers
- What are some of the ways that computer vision differs from human vision? What are some techniques we can use to help the computer see / track what we’re interested in? How do you think computer vision’s capacity for tracking and surveillance affects its use in interactive art?
Week 6
Computer Vision
Assignments due before the first class starts of the following week (for Mang’s section before the Wednesday / final class):
- 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)
-
-
Week 7
Midterm sharing!
Assignments due before the first class starts of the 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.
Fall Break
Week 8
Introduction to Electricity, Arduino digital input & output
Assignments due before the first class starts of the following week:
- Production:
- (Post documentation on blog): Create an unusual switch that doesn’t require the use of your hands. This should be a switch that opens and closes a circuit. You should use digitalRead in the Arduino to get the state of your switch and do something based on that information. This should use the human body (but not the hands!).
- 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. This should be a switch that opens and closes a circuit. You should use digitalRead in the Arduino to get the state of your switch and do something based on that information. This should use the human body (but not the hands!).
- 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 before the first class starts of the 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. Include a hand-drawn schematic in your documentation.
- 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 before the first class starts of the 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 before the first class starts of the 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)
- (Post documentation on blog): Write a preliminary concept for your final project, which must incorporate both Arduino and P5.
-
- (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 before the first class starts of the following week:
(Post documentation on blog):
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
- Start working on your overall project (document the progress)
Week 13
Work on Final Project
- (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)
Final Projects due before the first class starts of the following week:
- Final Project Documentation:
- (Post documentation on blog)
- Describe your concept
- Include some pictures / video of your project interaction
- How does the implementation work?
- Description of interaction design
- Description of Arduino code and include or link to full Arduino sketch
- Description of p5.js code and embed p5.js sketch in post
- 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)
AYA’s Section 002: FINAL PROJECT PRESENTATION ON DECEMBER 10TH CLASS TIME
IM End of Semester Show (Fall semester)
All IM students must show at least one project
Timeline:
-
- Setup in Arts Center Lobby (time for each section TBD)
- Find designated space for your project, set up and test
- Take laptops and valuables with you
- Date TBD – IM End of Semester show (5-8pm)!
- Open to NYUAD Community, happening inArts Center Lobby and Black Box
- 4:30pm – Get installation running
- 5-7pm Installations open for viewing
- 7-7:30pm Performances in Black Box
- 7:30pm Closing ceremony – group picture
- 8pm – Cleanup, return and check-in equipment to IM Lab / EC, help move tables etc.
- Setup in Arts Center Lobby (time for each section TBD)
Have a great break!