Syllabus Version: 1.6
Number: INTM-SHU 101
Class Hours per Week: 2.5
Semester: Fall 2017
Room Number: 823
Documentation Blog: http://ima.nyu.sh/documentation/
Instructor: JH Moon
Instructor: Marcela Godoy
Instructor: Rodolfo Cossovich
Instructor: Sean Clute
Supporting Instructor: Antonius Wiriadjaja
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.
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 players, 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.
At the completion of this course students will be able to demonstrate a basic understanding of:
- electricity and electrical components
- analog and digital inputs and outputs on microcontrollers
- fundamental programming concepts: variables, conditionals and iteration
- programmatic methods for drawing and animation
- code organization techniques: functions and objects
- screen based and physical interaction design principles
- programmatic methods for the manipulation of images, audio and video
- data formats, data manipulation and data visualization
- serial communication
Grades will be determined based on the following breakdown:
- 20% Attendance and Participation
- 18% Exercises
- 12% Stupid Pet Trick
- 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 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.
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 October 30-November 3, 2017.
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 November 21, 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 December 14, 2017.
Title: Getting Started with Arduino
Author: Massimo Banzi
Publication Date: December, 2014
Title: Getting Started with Processing
Author: Casey Reas and Ben Fry
Publication Date: September, 2015
Title: Learning Processing: A Beginner’s Guide to Programming Images, Animation, and Interaction
Author: Daniel Shiffman
Publisher: Morgan Kaufmann
Publication Date: September 2, 2008
Additional required readings will be supplied in the coursepack, online, or as electronic documents.
- Week 1: Introduction + Electricity, Circuits & Electrical Components
- Week 2: Microcontrollers & Arduino + Digital & Analog Inputs & Outputs
- Week 3: Conditionals, Variables, Sensors and actuators.
- Week 4: Project Planning and Prototyping. Stupid Pet Tricks Due.
- Week 5: Intro to Drawing and Animation with Processing
- Week 6: Serial Communication and Mouse and Keyboard Interaction
- Week 7: Arrays and Object Oriented Programming.
- Week 8: Midterms Due.
- Week 9: Motors and High Current Load
- Week 10: Final Project Concept Presentations
- Week 11: Digital Fabrication
- Week 12: Images and Audio
- Week 13: Video and Basic CV
- Week 14: Final Presentations