Syllabus

Syllabus Version: 1.5
Number: INTM-SHU 101
Class Hours per Week: 2.5
Credits: 4
Semester: Fall 2016
Room Number: 823
Website: http://ima.nyu.sh/interaction-lab/
Documentation Blog: http://ima.nyu.sh/documentation/

Instructor: Matthew Belanger
Email: mb1065@nyu.edu

Instructor: Antonius Wiriadjaja
Email: aw75@nyu.edu

Instructor: Dan Mikesell
Email: dgm280@nyu.edu

Instructor: JH Moon
Email: 
jh.moon@nyu.edu

Instructor: Marcela Godoy
Email:
mgodoy@nyu.edu 

Description

In this course students will be asked to think beyond the conventional forms of human computer interaction (i.e. the keyboard and mouse) to develop interfaces that consider the entire body, the body’s capacity for gesture, as well as the relationship between the body and it’s environment. Students will learn the fundamentals of electronics and programming as they build projects using the Arduino microcontroller platform. Arduino is a small computer based on open source hardware and software. When used in conjunction with various sensors and actuators, Arduino is capable of gathering information about and acting upon the physical world. In addition to these physical computing techniques, students will also learn to harness the methods of traditional computation. The fundamentals of programming: variables, conditionals, iteration, functions and objects, will be explored through the use of the Processing programming language. Students will gain a deeper appreciation of the expressive possibilities of computation as they learn to author their own software, and not simply use that which has been provided to them. Additional topics will include digital modeling and fabrication using 3D printers and laser cutters, the manipulation, presentation, and exchange of data, algorithmic drawing and animation techniques, as well as control of images, video, and audio. Structured weekly exercises are aimed at building specific skills, however students are free to pursue their own diverse interests in their midterm and final projects.

Classroom Conduct

Classes begin promptly at the scheduled start time. Please arrive early so as not to be late. This class will be highly participatory with lectures being very conversational. You are invited and expected to contribute to in-class discussions.

Recreational use of phones, music payers, video game systems and other portable electronic devices is forbidden. Laptops are allowed for note taking, in class work, as well as relevant research only. Activities not related to the class, such as recreational browsing of the internet, including all social media websites, email and instant messaging, game playing, and work for other classes, will not be permitted. Such activities are disrespectful to the instructor and distracting to others. Your laptop should always be closed whenever a fellow student is presenting.

Learning Objectives

At the completion of this course students will be able to demonstrate basic understanding of:

  • electricity and electrical components
  • analog and digital inputs and outputs on microcontrollers
  • fundamental programming concepts: variables, conditionals and iteration
  • programatic methods for drawing and animation
  • code organization techniques: functions and objects
  • screen based and physical interaction design principles
  • programatic methods for the manipulation of images, audio and video
  • data formats, data manipulation and data visualization
  • serial communication

Grading

Grades will be determined based on the following breakdown:

  • 20% Attendance & Participation
  • 10% Stupid pet trick
  • 20% Exercises
  • 20% Midterm Project
  • 30% Final Project

Attendance & Participation

Attendance in all class sessions is mandatory. Unexcused absences or lateness will adversely affect your grade. NYU policy does permit members of any religious group to absent themselves from classes without penalty when required for compliance with their religious obligations. If you are going to miss a class, it is your responsibility to make up the material you miss. Please let the instructor know ahead of time so that he/she can help you determine how to make up the material.

Your participation in this class is essential. Not only does it allow the instructor to gauge your interests and get to know you as an individual, but it also allows the instructor to asses your understanding of important concepts. It also provides the instructor with an opportunity to learn from your work. As a result, attendance and participation make up a meaningful percentage of your grade. Unexcused absence in more than three classes and / or labs will result in a failing grade.

Exercises

Exercises are defined in the weekly schedule and vary weekly depending on the topics covered in class. All exercises are required, and should be documented on the documentation blog. Undocumented work will not be considered complete.

Midterm Project

Explore Processing and / or Arduino by creating a small project that does something useful, interesting, or entertaining. Try to illustrate your understanding of the fundamental concepts covered in class. Be sure to document your work thoroughly on the documentation blog. You may work alone or with a single partner. Midterm projects and documentation are due the week of March 21-25, 2017.

Final Project

Create an interactive system of your choice using Processing and Arduino. Focus on careful and timely sensing of the relevant actions of the audience that you’re designing for and on prompt, clear and effective response. Any interactive project is going to involve listening, thinking and communicating. Whether it involves one cycle or many, the interaction should be engaging for your audience.

Begin the process by writing an approximately 500 word essay in which you provide a definition of interaction in your own words, propose what you would like to do for your Final Project, and critique an established form of interaction or specific interactive experience that relates to your final project. Post it to the documentation blog by April 27, 2017. Also, create a Concept Presentation for your Final Project and prepare to present.

Be sure to document your project thoroughly on the documentation blog. Include details about all phases of development, both successes and failures. You may work alone or in groups. Final projects are due May 19, 2017.

Readings

Title: Getting Started with Arduino
Author: Massimo Banzi
ISBN: 1449309879
Publisher: Make
Publication Date: December, 2014
Edition: 3rd

Title: Getting Started with Processing
Author: Casey Reas and Ben Fry
ISBN: 144937980X
Publisher: Make
Publication Date: September, 2015
Edition: 2nd

Title: Learning Processing: A Beginner’s Guide to Programming Images, Animation, and Interaction
Author: Daniel Shiffman
ISBN: 0123736021
Publisher: Morgan Kaufmann
Publication Date: September 2, 2008
Edition: 1st

Additional required readings will be supplied in the coursepack, online, or as electronic documents.

Software

Weekly Schedule

  • Week 1: Introduction + Electricity, Circuits & Electrical Components
  • Week 2: Microcontrollers & Arduino + Digital & Analog Inputs & Outputs
  • Week 3: Processing & Drawing + Animation & Variables
  • Week 4: Conditionals, Iteration & Functions
  • Week 5: Mouse & Keyboard Interaction + Physical Interaction
  • Week 6: Project Planning & Prototyping + Communication Between Processing & Arduino
  • Week 7: Objects & Arrays + Midterm Project Workshop
  • Week 8: Midterm Project Workshop + Midterm Project Critiques
  • Week 9: Digital Modeling & Fabrication + Controlling High Current Loads
  • Week 10: Final Project Concept Presentations + Images & Audio
  • Week 11: Video + Computer Vision
  • Week 12: Strings & Data
  • Week 13: Final Project Workshop
  • Week 14: Final Project Critiques