Weekly Schedule Fall 2024

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

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() or while()) 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
        • WordPress Login information here if that doesn’t work try here
        • 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
    • Creative Reading (posted response required):
    • 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.
Week 3

Functions, Arrays, and Object-Oriented Programming

Basic (very) Car Sketch

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.
  • 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?
  • Technical Reading (no response required)
    • Watch this two part (part 1 and part 2) video tutorial on transformations
    • Watch this video tutorial on Perlin noise
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):
  • Technical Reading (no response required)
    • Read about working with images here or watch Shiffman’s video on the subject
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:

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

         

  • 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)
Week 7
Midterm sharing!

Assignments due before the first class starts of the following week:

    • 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:

Week 9 

Arduino: analog input & output

Assignments due before the first class starts after Eid break:

  • 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 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)

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:
      1. 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
      2. make something that controls the LED brightness from p5
      3. 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.
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?

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?
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.

Have a great break!