Tom Igoe Fall 2019

Class Times

Wednesday 3:20 PM – 5:50 PM

Tom’s Calendar click here for office hours and to know my general schedule for the week.

Class Date Exceptions

I will be here for all classes, though I will be out of town some weekends, which will mean I have to move some office hours around. My  calendar page will always have the most up-to-date office hours.

Useful links

A Few Good Reads

These are not on the main reading list, but I think they’re excellent reads if you’re thinking about physical interface design.

  • Timo Arnall on the fallacy of invisible interfaces
  • Don Norman on the Paradox of Wearable Technologies, specifically heads-up displays like Google Glass.
  • Anil Dash on why There Is No “Technology Industry”
  • Shelly Zalis on Designing Prosthetics That Give Female Veterans Confidence
  • Bret Victor on Doug Engelbart and why Engelbart matters. A lovely tribute.
  • Ben Rubin’s redesign of the sounds in the NYC subway, circa 1998. In these, Ben looked at the sounds that are used to cue users of the subway and noted their limitations, then redesigned them to make them more understandable and useful. Video 1 and video 2show the whole interaction.  Thanks to Alden Jones for finding them again.
  • Brenda Laurel’s Computers as Theatre, 2nd edition (NYU Library permalink). I first read this book in about 1993. It had a big impact on me, as I was working in theatre at the time, and it gave me a thorough, yet well explained, introduction to what computer interaction is all about, using theatre practice as an metaphor to explain it. Laurel stresses how it’s the action that is key to what we make, and the physical devices, controls, etc. set the stage for that. The 2nd edition, released in 2014, is a great update to a classic. Her writing is appropriately scholarly in its reference to the thinking of others in the field, yet very conversational, making it clearer than most theoretical writing.
  • Make: Learn Electronics with Arduino: An Illustrated Beginner’s Guide to Physical Computing by Jody Culkin and Eric Hagan
    NYU E-Book Here
    NYU Permalink Here
    This book is perfectly paced to cover the electronics in this class. It introduces the basics of electronics, microcontrollers, and Arduino programming with many graphic illustrations and helpful pointers. The authors are both ITP alums and teachers (Jody now teaches at the Borough of Manhattan Community College) and their approach is very much in line with this course.


Class Notes

  • Week 4-5: those of you wanting to do more with sound and music might want to check out my SoundExamples tutorials. The short answer to higher quality musical sounds is that MIDI is your friend.
  • Week 9: here is the motor speed and direction example we wrote in class:
const int switchPin = 2;
const int motor1 = 3;
const int motor2 = 4;
const int speedPin = 9;
int motorSpeed = 1;
int change = 1;

void setup() {
  pinMode(motor1, OUTPUT);
  pinMode(motor2, OUTPUT);
  pinMode(switchPin, INPUT);
  pinMode(speedPin, OUTPUT);

void loop() {
  // ramp the speed up and down:
  if (motorSpeed >= 255 || motorSpeed <= 0) {
    change = -change;
  motorSpeed = motorSpeed + change;
  analogWrite(speedPin, motorSpeed);

  // read the switch
  int switchState = digitalRead(switchPin);
  // if it's high, spin one way
  if (switchState == HIGH) {
    // spin one way
    digitalWrite(motor1, HIGH);
    digitalWrite(motor2, LOW);
  } else {
    // if it's low, spin the other
    digitalWrite(motor2, HIGH);
    digitalWrite(motor1, LOW);

Class Blogs