Syllabus Version: 1.7
Number: INTM-SHU 101
Class Hours per Week: 2.5
Semester: Spring 2018
Room Number: 823
Documentation Blog: http://ima.nyu.sh/documentation/
Instructor: Marcela Godoy
Instructor: Rodolfo Cossovich
Instructor: Sean Clute
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
Below you will see a breakdown that determines the grades. When grading, instructors will use the rubric described in this document.
- 20% Attendance and Participation
- 20% Exercises
- 10% 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 & Documentation
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.
Stupid Pet Trick Project
Make a simple physically interactive device that uses the skills you’ve learned in class. It must respond to a physical action or series of actions a person takes, and it must be amusing, surprising, or otherwise engaging. It doesn’t have to be practical, or complex, as long it shows that you understand the basics of digital and analog I/O and how to use them. If you’re unfamiliar with the term “stupid pet trick,” Googling the term may provide you inspiration for the tone of this project. Due February 23, 2018.
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 from your lecture section. Both of you should document the work individually and know about the work done in the project. Midterm projects and documentation are due the week of March 19-23, 2018.
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. Your essay should match the grading criteria posted in this rubric. Post it to the documentation blog by April 12, 2018. 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 10, 2018.
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.
In order to have access to IMA equipment, you MUST attend IMA orientation at the beginning of each semester. The IMA Equip website lists equipment that is available for checkout and can be found here: http://ima.nyu.sh/equip/
- Week 1: Introduction + Electricity, Circuits & Electrical Components
- Week 2: Microcontrollers & Arduino + Digital & Analog Inputs & Outputs
- Week 3: Conditionals, Iteration & Functions
- Week 4: Project Planning + Stupid Pet Trick
- Week 5: Processing & Drawing + Animation & Variables
- Week 6: Serial Communication + Mouse & Keyboard Interaction
- Week 7: Arrays, Functions and Loops + Interaction Design & User Testing
- Week 8: Midterms
- Week 9: Objects & ArrayLists + Motors
- Week 10: Sound in Processing
- Week 11: Digital Modeling & Fabrication
- Week 12: Final Project Concept Presentations
- Week 13: Images and Video + Pixel Manipulation
- Week 14: Final Project Presentations