Week 1 (Jan. 24 & 26)
Primitive shapes, Programming concepts
Create an account on the P5js editor website.
Assignments due 30 January 2023 11:59pm:
-
- Production:
- Due Jan. 31 (post documentation on blog): Make a self-portrait using P5js.
- 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.
- Due Jan. 31 (post documentation on blog): Make a self-portrait using P5js.
- Reading:
- Due Jan. 31:
- Production:
Week 2 (Jan. 31 & Feb. 2)
Animation, Conditionals, Loops
Assignments due 6 February 2023 11:59pm:
-
- Production:
- (post documentation on blog): 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 documentation on blog): Using loops (
- Reading:
- Watch Casey Reas’ Eyeo talk on chance operations, be prepared to discuss
- Guidance on this discussion format can be found here
- Mang’s section: Shama and Hind to lead
- Michael’s section: Hana and Vladimir to lead
- Watch Casey Reas’ Eyeo talk on chance operations, be prepared to discuss
- Production:
-
-
- 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.
-
Week 3 ( Feb. 7 & 9)
Functions, Arrays, and Object-Oriented Programming
Assignments due 13 February 2023 11:59pm:
- Production:
- (post documentation on blog): Create a generative artwork using Object-Oriented Programming. You may use arrays if you wish. 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
- Include the image(s) or link(s) to video
- Describe any problems you ran into
- (post documentation on blog): Create a generative artwork using Object-Oriented Programming. You may use arrays if you wish. Pay attention to the structure, clarity, and organization of your program. As always, document your project:
- Reading:
- Read The Art of Interactive Design, Ch. 1, be prepared to discuss:
- Mang’s section: Yesenia and Zaeem to lead
- Michael’s section: Ajla and Swostik to lead
- Read The Art of Interactive Design, Ch. 1, be prepared to discuss:
Week 4 (Feb. 14 & 16)
Loading Data, Displaying text
Assignments due 20 February 2023 11:59pm:
- 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.
- Reading:
- Read The Design of Everyday Things, The Psychopathology of Everyday Things be prepared to discuss
- Mang’s section: Gautham and Ahsen to lead
- Michael’s section: Vatsa and Akhat to lead
- Read The Design of Everyday Things, The Psychopathology of Everyday Things be prepared to discuss
-
-
- Read about image processing in p5js: https://idmnyu.github.io/p5.js-image/ or watch Shiffman’s videos: https://www.youtube.com/watch?v=-f0WEitGmiw&list=PLRqwX-V7Uu6YB9x6f23CBftiyx0u_5sO9&ab_channel=TheCodingTrain
-
Week 5 (Feb. 21 & 23)
Image Processing, Sounds (download files for use in class), introduce Midterm Project
Assignments due 27 February 2023 11:59pm:
- Production:
- Post documentation on blog: Make some progress on your midterm project:
- Midterm Project:
- Make a game using everything you have learned so far
- Due Mar. 9th
- Can be one or more players
- Must include
- At least one shape
- At least one image
- At least one sound
- At least one on-screen text
- Object Oriented Programming
- The game must start with a screen giving instructions, and must wait there until a button or key (your choice) is pressed
- After the game is won or lost, there must be a way to restart the game without closing and restarting the program
- Midterm Project:
- Post documentation on blog: Make some progress on your midterm project:
- Reading:
- Due Feb. 28 (be prepared to discuss)
- Mang’s section: Zaina and Maimuna to lead
- Michael’s section: Naz and Abraiz to lead
Week 6 (Feb. 28 & Mar. 2)
Computer Vision
Assignments due 6 March 2023 11:59pm::
- Production:
-
-
- Complete Midterm (post documentation on blog)
-
-
Week 7 (Mar. 7 & 9)
Midterm due – Mar. 9 (post documentation on blog)
Assignments due 23 March 2023 11:59pm:
-
- Reading:
-
- Prepare a space for working with electronics
- Have your kits ready to use in class
- Install the Arduino IDE from here. If you are on Windows choose the Windows Installer.
- In your kit is a bundle of jumper wires with a very tight ziptie that must be carefully removed. Please do this before class because it may take you a while to find the right tool. A sharp pair of scissors should work. A knife might damage the wires and hurt you.
- Prepare a space for working with electronics
-
- Be careful not to damage the wires or yourselves!
SPRING BREAK
Week 8 (Mar. 23)
Introduction to Electricity, arduino digital input & output
Assignments due 27 March 2023 11:59pm:
- 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
-
- Examples:
- post documentation on blog): Create an unusual switch that doesn’t require the use of your hands. Should not use any code.
- Reading:
- (be prepared to discuss both) :
- Norman,“Emotion & Design: Attractive things work better”
- Her Code Got Humans on the Moon
- Mang’s section: Juan & Mariam to lead
- Michael’s section: Ishmal and Ilia to lead
- Read about analog output
- Read about analog Input
- (be prepared to discuss both) :
Week 9 (Mar. 28 & 30)
Arduino: analog input & output
Assignments due 3 April 2023 11:59pm:
- 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.
- Reading:
- (be prepared to discuss both) :
- Physical Computing’s Greatest hits and misses
- Making Interactive Art: Set the Stage, Then Shut Up and Listen
- Mang’s section: Lily & Nick to lead
- Michael’s section: Aibar and Zunair to lead
- 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.
- (be prepared to discuss both) :
Week 10 (Apr. 4 & 6)
Sound, Servo motor, Mapping
Assignments due 10 April 2023 11:59pm:
- 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)
- (post documentation on blog) – group assignment (2 people per group): Make a musical instrument
- Reading:
- (be prepared to discuss both):
- A Brief Rant on the Future of Interaction Design
- A follow-up article
- Mang’s section: Aliya and Kashyapa to lead
- Michael’s section: Majid and Hassan to lead
- 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.
- (be prepared to discuss both):
Week 11 (Apr. 11 & 13)
Serial Communication, introduce Final Project
Assignments due 17 April 2023 11:59pm:
- 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. You may work alone or in groups.
- 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:
- Reading
- Due Apr. 18 (be prepared to discuss) : Design Meets Disability
- Mang’s section: Dev and Yunho to lead
- Michael’s section: Aigerim and Aaron to lead
- Due Apr. 18 (be prepared to discuss) : Design Meets Disability
Week 12 (Apr. 18 & 20)
DC motors, Construction and Debugging, Final Project Proposal
Assignments due 24 April 2023 11:59pm:
- Production:
- (send email to teacher): Commit to your final project proposal, include the following explanations in the email:
- Finalized concept for the project
- Description of what your Arduino program will do with each input and output and what it will send to and/or receive from P5
- Description of what P5 program will do and what it will send to and/or receive from Arduino
- Whether you’re doing it as solo or group, and if in a group who is your partner (only one email needed for a group)
- (post documentation on blog):
- Get your project 90% complete
- (send email to teacher): Commit to your final project proposal, include the following explanations in the email:
Week 13 (Apr. 25 & 27)
Work on Final Project
Assignments due 1 May 2023 11:59pm:
- Production:
- (post documentation on blog):
- Conduct user testing (record video)
- (post documentation on blog):
No classes: Eid Al-Fitr Holiday May 2 & 4
Week 13.5 (May 5 – [Thurs.] – Class meets on Mon. schedule)
Assignments due ?? May 2023 11:59pm:
Final Project and final project documentation due at the beginning of class, May 11