Tom Igoe Fall 2022

Class Times

  • Section 3:9:30 AM – 12:00 PM Wednesday
  • Section 7: 9:30 AM – 12:00 PM Tuesday

Contacting Me

My email:

You can book office hour appointments on my calendar. You’ll need to sign in with your NYU login to do so. Please book no more than one a week, so that I can serve you all as equally as possible.

Outside of office hours, I generally work from 9 AM to 6 PM NYC time Monday-Friday. I’m usually on campus Mon – Thurs, and work offsite Fridays. If you contact me outside of working hours, I’ll try to get back to you as soon as my next working time allows.

Class Blogs

Please fill in your blog link and other details here. I learn a lot about your progress in this class from your blogs, and it improves the quality of the class. So post frequently.

Tuesday morning section

Wednesday morning section

How Class Will Be Run

The most valuable thing we can do when we are in person or online in a class meeting together is to discuss and practice the subject that you’re learning. Any “lecture material” is on this site in video or written form, and assigned for the weeks where we will discuss it. I will expect that you’ve done the readings or watched the videos and tried the lab exercises assigned in advance of each class, and are coming to the class meetings with questions. Class meetings will be mainly discussions of work you’ve tried and shared demonstrations or experiments, not lectures. Use class time to get me or your classmates to clarify things you didn’t understand from the assigned material.

It’s okay if you couldn’t get a lab exercise or a project to work. When that happens, try to debug it, explain what you did in your blog, and come to class prepared to talk about the details and ask specific questions. Pay attention to your classmates’ work and their questions; quite often, they’ll be asking the same thing as you.

David Rios has some excellent presentation feedback guidelines that we can use for running class discussions of each others’ projects.

I will share any tools that we find useful on the Resources section of this site.

Useful links

Pin out for the Nano 33 IoT

A Few Good Reads

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

  • Don Norman on the Paradox of Wearable Technologies, specifically heads-up displays like Google Glass.
  • Anil Dash on why There Is No “Technology Industry”
  • 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 2 show 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.

Tues Sep 20

How to make a tone without using delay():

// variable to keep track of when you started a tone:
long lastToneStart = 0;

void setup() {
  // put your setup code here, to run once:
  pinMode(2, INPUT);
  pinMode(3, OUTPUT);

void loop() {
  // read button state:
  int buttonState = digitalRead(2);

  if (buttonState == HIGH) {
    // if 100ms since you last started the tone, play the tone:
    if (millis() - lastToneStart > 100) {
      // play a tone at 44o Hz on pin 3 for 500 ms:
      tone(3, 440, 500);
      // save current time for comparison next loop:
      lastToneStart = millis();
  } else {
    // stop the tone

Oct 5 Questions about Interaction

  • What does the participant do?
    • What actions do they take?
    • What do they touch, speak to, step on, etc?
  • What do they see, hear, feel, taste, or smell?
    • What actions do those sensations encourage or discourage?
  • What task are they trying to accomplish? Or what activity are you trying to get them to engage in?
  • Why are they motivated to do the activity in question?
    • Is it something they wanted to do already?
    • Is it something that seems fun?
    • Is it something that will ease the difficulty of another activity?
  • How does your design help them to accomplish the activity?
    • What physical affordances does it offer to indicate how it will be helpful?
  • How does your design’s form or behavior help the person to form a mental model of its behavior and use?
    • What they can do in response to its behavior? (For example, if I slide a light dimmer up and the lights get a little brighter, my mental model is that more sliding up = brighter light)
    • How will they interpret its form?
    • How will they interpret its behavior?
  • Does it need verbal instructions?
  • What do they need to know before they start?
  • What is your overall goal? To entertain? To educate? To sell? To indoctrinate? To warn? To enable?
    • What are the specific goals for each action that your design makes? e.g. what do you want to indicate by making a beep or turning on a light?
  • Will your design improve the activity? If not, why should they use it? Why should you build it?
  • Is there a simpler way for the person to achieve their goal or to do their activity? Do you need to build your device? Can the goal be achieved with something other than an electronic device?
  • If you are designing an entertainment experience, or a game:
    • What do you want the person to do in that experience or game?
    • What is the person’s primary activity?
    • What is their goal?
    • How does your design suggest that goal?
    • How does your design assist in achieving the goal?
    • How does it prevent them from achieving the goal? (e.g. games tend to get progressively harder, but maintain a consistent mental model so you are motivated to win them)