Spring 2019 Syllabus

Course number: IM-UH 1010
Credits Hours: 4
Classroom: C3-029 (Art Center – Interactive Media lab)
Time: 4:05pm – 5:20pm and Wednesday 2:40pm – 5:20pm

Recommended Prerequisites: None

This course counts towards the following NYUAD degree requirement: Major in Interactive Media

This syllabus is subject to change

Instructor: Aaron Sherwood sherwood@nyu.edu
Office Location: C3-163
Office Hours: TBD

If you need to meet me outside of these hours, please make an appointment via email.

Course Description

With the advent of digital computation, humans have found a variety of new tools for self expression and communication. However, most of the interfaces to these toolsets are created with a computer in mind, not taking into account humanistic needs of design and usability. Additionally, computers have traditionally lacked knowledge of the richness of the physical world. As such, their understanding of our needs has been informed by click and taps, seeing the world as a binary system of on or off.

This course explores creative computation through software and hardware.  By approaching software and hardware design as artists and designers with an emphasis on human-based factors, we can explore new paradigms of interaction with machines and each other. Using open source software environments and open hardware platforms, we will look at way of making these tools work for us. No background in programming or electronics is expected. A sense of play, desire to experiment, and a DIY attitude is strongly encouraged.

Learning outcomes

Students who successfully complete this course will be able to :

  • Understand and implement fundamentals of computation (logic and order of operations), data processing (input and output), and interactive experiences.
  • Think practically and critically about interaction design principles for hardware (physical) and software (screen-based) interfaces.
  • Work with basic electronic components and microcontrollers, including analog and digital sensors and actuators.
  • Understand and implement basic principles of computer programming using both the Processing and Arduino open source programming languages.
  • Produce participatory and creative experiences that connect the digital and physical world in experimental and playful ways.
  • Learn to utilize the computer as a tool for artistic self-expression.

Teaching methodology

This course is a production based class. You will be doing work in and outside of the class that is ideally experimental, participatory and collaborative. In lab courses we will review topics like programming techniques and circuit design, while non-lab class days will be given over to lecture and discussion based on readings, videos, audio, and interactive works found primarily online.


•10% Attendance
•10% Participation
•20% Weekly assignments
•10% Midterm project
•25% Journal entries
•25% Final project


Every class you will have an assignment. Some of the time it will be reading, some of the time it will be practical.

Expect to be asked to show your work every time we meet. Some classes everyone may demonstrate their work, other classes only a few students may, but always be prepared.

Each Wednesday lab there’s  a “walk-through” element that will be covered in class, which you are expected to do on your own, and an improvisational aspect, where you take the lesson and make something unique and interesting based on the in-class review. We will spend time in each class reviewing your work, and using this as an opportunity to review concepts that are unclear, or investigate solutions to common problems.

All of your work must be documented on the class site (see below for details).

Assignments are due before class starts on the day they are due. Each day they are late 15% will be subtracted from the grade for that assignment.

Online Journal

You are expected to contribute to our shared online journal. The purpose of the journal is twofold. First, it is a valuable way for you to communicate to me that you are keeping up with the work in the class. I read the site to see how you are doing. At a minimum, reference to your work is expected, as well as reference to the readings, and thorough documentation of any research. Secondly, the journal is a way to document your work for your own use and that of others.

You must update the journal weekly with the work you have done for class.

Document your projects thoroughly as you go; don’t put it off until the end.  Photos, video, drawings, schematics, and notes are all valuable forms of documentation. Explain the project at the beginning of your documentation, so that people who come to your site from outside this class can understand your work quickly.

Use pictures, drawings, and videos liberally to explain your work.

Don’t overload your notes with code.  Code repositories like gitHub are best for sharing code, rather than blogs, so post your code to a repository and link to it from your blog. When you base your code on someone else’s code, cite the original author and link to their code, just as you would when quoting another author in a paper. If you only changed one part of an existing program, post only the part you changed, and link to the original. Make sure any code you post is well-commented, so you and others can understand what it does.

Always cite the sources of your code, the places you learned techniques from, and the inspirations of your ideas. Copying code or techniques without attribution is plagiarism.  Few ideas come out of the blue, and your readers can learn a lot from the sources from which you learned and by which you were inspired. So be generous in sharing your sources.

Good documentation should include a description and illustration of your project. You should include what it looks like, what it does, what the user or participant does in response. When it’s interactive, mention and show what the user does. Your explanation should give enough information that someone who’s never seen the project can  understand it.

You should also include a section describing how the project works, aimed at a more informed reader (your instructor, or next year’s classmates). Include a system diagram to make clear what the major components of the system are and how they communicate.

Here are some examples of good weekly documentation.

  • Ma Tan
  • Matt Richardson
  • My good friend Chip Flynn builds copies of old analog synthesizers (that are no longer manufactured) and documents his builds here

You should use the journal as an opportunity to write clear, concise thoughts or questions based on the weekly topics. The writing is expected to be well reasoned, grammatically correct, and written as if it were a paper being turned in. You should link to any relevant sources, and provide as much context as you can using images, video, audio, or other forms of expression. I’ll set you all up with an account the first day of class.

Grading Rubrics

Weekly Production Assignments:

Technical Operation 30% Creativity 30% Clear Interaction (if applicable) 30% Above & beyond (10%) (15% minus each day late)

Reading Responses:

Clear Critical Thought Applied to content 100% (15% minus each day late)

Documentation Posts:

Clear story told with pictures, text, code, video, sketches, etc. 100% (15% minus each day late)

Midterm Project

  • More ambitious than weekly projects
  • Higher degree of finish and better construction techniques
  • Better functionality: The midterm project must work reliably and consistently

Midterm Grading Rubric:

Technical Operation 25% Creativity 30% Consistency of Interaction (the desired result happens consistently) 15% Clarity of Interaction (is clear to user what they are controlling) 15% Interaction Design (discoverability, use of signifiers, use of cognitive mapping, etc.) 15%

Final Project

Create a physically interactive system of your choice that relies on a multimedia computer for some sort of processing or data analysis.

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

A few examples:
Musical Instruments: Performing music involves a sustained engagement between the performer and the instrument. The feedback from the instrument has to be immediate and clear in order for the performer to continue playing. The interface has to be flexible so that the musician can exercise her creativity in playing, but has to have some boundaries so that she knows what the instrument can do and what it can’t do.

Game interfaces: Like musical instruments, they involve constant back-and-forth interaction and immediate response. They are often simpler than musical instruments. In fact, the standard game controller has gotten so standard that the action of many games is artificially adapted to the needs of the controller, not the physical expressiveness of the player. Pick a specific game and see if you can change that.

Assistive devices: Whether it’s something as simple as a reaching device (for example pickle pickers) or something more complex, these devices are very demanding of clear, reliable response.

Remote control systems: They require not only a clear interface, but must also return enough information on the remote system’s action to let you know that you’re doing the right thing. Whether it’s a remote controller for your home electrical devices or a Mars rover controller, the need for clarity and good feedback are equally essential to the person it’s made for.

There are many other good applications for this project. Discuss the specifics of yours with me!

Final Grading Rubric:

Technical Operation 25% Creativity 30% Consistency of Interaction (the desired result happens consistently) 15% Clarity of Interaction (is clear to user what they are controlling) 15% Interaction Design (discoverability, use of signifiers, use of cognitive mapping, etc.) 15%

Participation in the Interactive Media show

At the end of the semester all IM classes participate in the Interactive Media show. You will be expected to show your project, attend, and participate in the show.


  • Late arrival policy
    • Arriving late 20 minutes or more will count as an unexcused absence
    • Arriving late 10-20 minutes twice will also count as an unexcused absence
    • The late arrival policy is for after breaks as well as the beginning of class
  • Unexcused absence policy
    • Two unexcused absences lower your overall final grade by a letter. Each subsequent unexcused absence will lower another letter grade. (e.g. a B+ would become a B).
    • More than three unexcused absences will result in failure.
    • If you miss any part of a class for any reason, you are still responsible for making up the material covered.
    • If you are on your phone or computer, and it is not part of an in class assignment, you will be given an unexcused absence for that day
  • Excused absence policy
    • If you will be missing a class or arriving late due to illness or unavoidable personal circumstances, you must ask me for permission to be excused in advance via email or submit a doctor’s note for the absence to be excused.
    • If you are so ill that you can not mail me in advance you must submit a doctor’s note for the absence to be excused.

If you will be missing a class or arriving late due to illness or unavoidable personal circumstances, you must ask me for permission to be excused in advance via email or submit a doctor’s note for the absence to be excused.


Showing up on time, engaging in the class discussion, and offering advice and input in the class is a major part of your grade. participating in class discussions is helpful for me to get to know you as an individual and keep track of your progress, but most importantly, it provides you and your classmates with the opportunity to share failures, successes, and insights on the work you are doing.

You are expected to show work in class. This includes working prototypes, failed assignments, things that don’t work the way you expect, and so forth. The shorter of the two classes in a week is given over to your work, expect to be called on and show something. Don’t be afraid to volunteer to show what you did, or failed to do.

If you do not ask questions, I can only assume you understand the material completely. Asking questions about concepts you do not understand and showing work that did not function as expected is not a sign of failure, it is an opportunity to learn.

Laptop use is fine if you are using your laptop to present in class, or if we’re in the middle of an exercise that makes use of it. Whenever classmates are presenting or we’re in the midst of a class discussion, please keep your laptop closed. The quality of the class depends in large part on your attention and active participation, so please respect that and close your lid.

Mobile Phones
Texting and other uses are prohibited during class. Please silence and disable all calls and notifications. If you have an emergency that requires you to answer your phone during class, please let me know me ahead of time and quietly step out of class to take the call.


If you have any questions, would like extra help, or need further instruction, please reach out to me. You can communicate with me via email, visit me during office hours, or request a meeting outside of office hours via email. Please let me know if you have any concerns about the material or your progress in the course.

I am very willing to help, but you have to take the first step of reaching out to me.

Required Equipment

Sparkfun Inventors Kit (available from the NYU bookstore)

Required Software

Processing http://processing.org
Arduino IDE from https://www.arduino.cc/en/Main/Software

Recommended books

Title: Getting Started with Arduino
Author: Massimo Banzi and Michael Shiloh, 3rd Edition
Publisher: Maker Media, Inc

Title: Getting Started with Processing
Author: Casey Reas and Ben Fry
Publisher: Maker Media, Inc
Edition: Second

Title: Learning Processing: A Beginner’s Guide to Programming Images, Animation, and Interaction
Author: Daniel Shiffman
Publisher: Morgan Kaufmann
Edition: Second

Title: Arduino Cookbook, 2nd Edition
Author: Michael Margolis
Publisher: O’Reilly Media
Publication Date: 2011

Title: Make Electronics
Author: Charles Platt
ISBN: 0596153740
Publisher: Maker Media, Inc
Publication Date: August 2015

Title: Making Things Talk, 3rd Edition
Author: Tom Igoe
ISBN: 1449392431
Publisher: Maker Media, Inc
Publication Date: August 2017

Title: Making Things Move
Author: Dustyn Roberts
ISBN: 0071741674
Publisher: McGraw-Hill/TAB Electronics
Publication Date: 2010

Recommended tools

Hardware : All necessary tools are available in the lab. You might want your own set of basic small electronic tools (needle nose pliers, screwdrivers, wire cutters, wire strippers).
Software : Fritzing http://fritzing.org