This course takes interactive computing beyond the limitations of the mouse, the keyboard and the monitor. It brings the revolutionary power of the semiconductor away from the home and office and into the physical world of everyday life. We learn to program microcontrollers, which are single-chip computers that can easily fit in the palm of your hand. Through a variety of electronic sensors, we detect aspects of the physical world, such as light, sound, and touch, to input that data into our programs. The applications create meaningful output using lights, motors, and speakers. This course teaches hands-on electronics as students build projects using wires, circuits, and other components.
Dates: Jan 27 – May 13
No class: February 17, March 17-23
Class time: MW 12:30PM – 1:45PM
Location: CIWW 317
amos at cs dot nyu dot edu
Office hours: TBD
Tutoring / Communal Hacking
We have two over-qualified tutors/hackers here to help you:
You are encouraged to come to tutoring/hacking sessions to do prototyping work with like-minded folks here, even if you don’t need help from the tutors.
Course email discussion list
An email discussion list is set up for this course. This is a good place for you to share information, advice, and get help from fellow students with any problems. Use this list however you see fit.
Previous programming experience.
Topics and Project Assignments
- Basic electronics components overview
- Setting up breadboards
- Arduino setup with LEDs
- Digital input and output with buttons and switches
- Analog input and output with variable resistors
- Creating motion with servomotors
- Creating sound with speakers
- Music and lights with custom MIDI devices
- Serial communication with a personal computer
- Moving motors with transistors, relays, and H-bridges
See the Schedule page for a more detailed course plan.
Parts & Materials
Our only required part is the ARDX Arduino kit from Adafruit. See the Parts page for information on ordering.
Assignments & Projects
Assignments consist of weekly exercises and reading. Students must complete assignments independently and document their work on public blogs. Unless otherwise noted, assignments are given every Wednesday and are due before class the following Wednesday. Late assignment submissions will receive 10 points off for each class session the assignment is late. Assignments more than 3 class sessions late will not be accepted.
Students will design and create midterm and final projects of their own choosing. These two projects must be different. The process of developing all projects must be thoroughly documented. Students are free to work in groups of two or three on the midterm and final project. However, each student in such a group must document their own contribution to each project and exhibit an understanding of the all aspects and inner workings of the project.
Students are expected to come to class. Two late arrivals (15 minutes or more) will be counted as one absence. If you experience difficulty or feel you are falling behind, please see the instructor or tutor immediately.
Your grade is mechanically calculated using the following formula:
- Participation & Attendance: 10%
- Assignments & Labs: 30%
- Quizzes: 15%
- Midterm: 20%
- Final: 25%
Getting Started with Arduino, 2nd Ed. by Massimo Banzi
Getting Started in Electronics by Forrest M. Mims III
Physical Computing: Sensing and Controlling the Physical World with Computers by Dan O’Sullivan and Tom Igoe
Forrest Mims, Getting Started in Electronics
Massimo Banzi, Getting Started with Arduino
Chris Crawford, The Art of Interactive Design, chapters 1 and 2 (note: you will need to sign into NYUHome to view this. From your NYUHome home page, click “Research” then “books24x7.com” then search for “The Art of Interactive Design” by Chris Crawford. Alternately, try this link. )
Donald Norman, The Design of Everyday Things, Chapter 1
Donald Norman, Emotion & Design
Donald Hoffman, Visual Intelligence: How we create what we see
Joshua Noble, Programming Interactivity
Erico Marui Guizzo, The Essential Message: Claude Shannon and the Making of Information Theory