(edit sidebar)
Intro to Physical Computing Syllabus

Research & Learning

Other Class pages

Shop Admin

ITP Help Pages
Tom's pcomp site
DanO's pcomp site


Syllabus Main? Labs & tutorials Books and Readings Parts & Supplies ClassPages

You may want to sign up for the ITP Physical Computing Mailing List as well. The phys-comp mailing list at NYU is for discussion of all matters related to physical computing, both at ITP and beyond. There are list members from current classes, as well as ITP alumni and present and past faculty with interest or expertise in physical computing.

Subscribe here:

   (required) your email: 

   (required) your name:  

   (required) set your password: 

   verify your password: 


The last few posts on the list

By Week

For each week, you'll find:

  • Practice Topics we'll discuss in class. Course notes are linked so you can read them before class, to know what we're talking about.
  • Lab assignments that illustrate the practice topics. You should read through the labs and try as much as you can the week before the lab is discussed in class. We'll go over the principles in the lab in class, so bring your hardware, and you'll get a chance to try it while we discuss, and ask questions.
You'll be responsible to show at least one lab finished lab project in the first half of the semester in class. Your instructor will pick the next week's lab presenters at random each week.
  • Production assignments larger assignments which have scheduled times you'll be expected to show them in class.
  • Reading to be read in the week they're assigned. Will come up in discussion the week after, usually.
  • Blog assignments Writing the week when it's assigned. Will come up in class from time to time. Read each other's stuff too.

Come to class with questions prepared about that week's assignments. If you have no questions, be prepared to show a working version of what you made.

Week 1

Practice Topics:

  • What is physical interaction?
  • Interaction concepts: discrete vs continuous, parallel events vs serial events, play testing, user observation.

In-class exercise:

As a class, we'll make a list of fantasy devices; things that don't exist, but that we wish did. For the moment, we'll ignore technical feasibility, and concentrate on how you'd operate these devices if they did exist. You'll be divided into groups of 3. Pick a fantasy device from the list. Design a control interface for this device and demonstrate it in-class. Think about what a person has to see, hear, touch, etc. while operating the device. Think about what cues they need to understand the interface. Think about what parts of their body they need to have free, what gestures are best for triggering the device's behaviors, and so forth. Build a mock-up of the controls from anything you can find on the floor. At the end of class, one or two of you will act out the use of the device using your mock-up while the third person narrates.

Assignment for next week:

  • Join the physcomp listserve
  • Put a link to your blog on the your class' blog list page. The link is next to your instructor's name above.

Reading for next week:


After this class' discussion and exercise, and reading Chris Crawford's definition and Bret Victor's rant, how would you define physical interaction? What makes for good physical interaction? Are there works from others that you would say are good examples of digital technology that are not interactive?

Practice topics for next week: Read through these in advance, try the labs, and come next week with questions about them.

Labs for next week:

  • Lab: Components
  • Lab: Setting up a breadboard
  • Lab: Electronics and using a Multimeter
  • Lab: Switches

Week 2

Practice Topics:

  • Understanding Electricity:
    • Ohm's Law
    • Parallel vs. serial circuits
    • Identifying electrical components
    • Making a switch

In-class discussion/exercise: Electronics lab exercises

Practice topics for next week: Read through these in advance, try the labs, and come next week with questions about them.

Labs for next week:

Reading for next week:


Observation. Pick a piece of interactive technology in public, used by multiple people. Write down your assumptions as to how it's used, and describe the context in which it's being used. Watch people use it, preferably without them knowing they're being observed. Take notes on how they use it, what they do differently, what appear to be the difficulties, what appear to be the easiest parts. Record what takes the longest, what takes the least amount of time, and how long the whole transaction takes. Consider how the readings from Norman and Crawford reflect on what you see.

Week 3

Practice Topics:

  • Intro to Arduino; digital and analog input from sensors

In-class discussion/exercise: Getting started with Arduino, including digital input, digital output (LED) and analog input. Blinking an LED and changing the speed of the delay

Practice topics for next week: Read through these in advance, try the labs, and come next week with questions about them.

Labs for next week:

  • Lab: servo/analog out
  • Lab: Tone output

Reading for next week:


Which of the types of projects mentioned in "Physical Computing's Greatest Hits (and misses)" have you seen before? Which are most compelling to you, and why? What strengths and weaknesses do you see in them? What other patterns of physical interaction have you seen repeatedly?

Week 4

In-class discussion/exercise:

  • Analog out theough Pulse Width Modulation (PWM) and Frequency Modulation (FM)
  • Arduino AnalogOut() and Tone() commands
  • Using External libraries: Arduino Servo library

Practice topics for next week: Read through these in advance, try the labs, and come next week with questions about them.

Lab for next week:

  • Lab: Serial Output

Reading for next week:

Week 5

In-class discussion/exercise:

  • Serial output from a microcontroller; graphing the output a sensor to learn its behavior
  • Project planning: descriptions, system diagrams, bills of materials, and budgets

Practice topics for next week: Read through these in advance, try the labs, and come next week with questions about them.

  • serial communication week 2
    • multiple sensors
    • Interpreting bytes: ASCII vs. binary
    • handshaking/call-and-response

Labs for next week:

  • Lab: Multiple Serial Output

Reading for next week:

Midterm Assignment:

Media Controller project. Make a physical device that controls a medium. It should control the medium in real-time, so that the user can change her actions and see changes as they affect the medium. There are lots of media: digital video, digital audio, electronic or acoustic sound, physical media like paint or ink, and others. Think about paint brushes, video mixers, musical instruments, water faucets, sewing machines -- anything that can control a medium and let you see the changes as you vary your control is fair game. Your device should demonstrate clear physical interaction. The user should be involved in changing the medium all the way through. The controls for making change should be clear and understandable.
This is a group assignment. Groups will be arranged in class this week.
Midterm schedule:
  • Concept presentations week 6
  • Playtest reports and questions week 7
  • Final plan presentations week 8
  • Project working demonstrations week 9
For next week, come up with a concept for your group's project. Describe the technical system briefly (one paragraph with a diagram). Prepare a preliminary bill of materials and start budgeting the cost.

Week 6

PRESENT THIS WEEK: Midterm concept presentations

In-class discussion/exercise:

  • Play Testing Techniques
  • More on serial communication
    • Multi-byte communication
    • Methods of managing the conversation: Handshaking (call-and-response), punctuation

Practice topics for next week: Read through these in advance, try the labs, and come next week with questions about them.

Labs for next week:

Assigment for next week:

Develop a plan to playtest your project. Figure out what the physical elements, and make stand-ins from cardboard, paper, wood, or whatever you have available. Prepare a list of questions you want to answer with this playtest. Perform a playtest before the next class and report on it. Think about what you did in week 1 with the fantasy device project, but this time for a real device. Your mock-up should include as little as you need so that you can have other people perform your system. When they do, they will have questions, or will tell you what doesn't make sense. Take note of those things and make changes to your plan accordingly.

Week 7

PRESENT THIS WEEK: Play test reports on midterms

In-class discussion/exercise:

  • Controlling High Current loads;relays and transistors
  • DC motor basics

Practice topics for next week: Read through these in advance, try the labs, and come next week with questions about them.

Labs for next week:

Assigment for next week:

Revise your project plan and description based on what you've learned from your playtest

Week 8

PRESENT THIS WEEK: Midterm system diagrams, descriptions, and BOMs.

In-class discussion/exercise:

  • Advanced motor control; H-bridges and stepper motors
  • Construction techniques

Reading for next week:

Week 9

PRESENT THIS WEEK: Midterm project demonstrations.


Final project. Create a physically interactive system of your choice. Your focus in this assignment should be on careful and timely sensing of the relevant actions of the person or people that you're designing this for, and on clear, prompt, and effective response. Any interactive system is going to involve systems of listening, thinking, and speaking from both parties. Whether it involves one cycle or many, the exchange should be engaging.
Document your work thoroughly online as you go. Include details of all phases of the project. Include a project summary as well, explaining what the system you built is, what it does, and what purpose it's intended to serve. Your summary should introduce the project.
You may work alone or in groups. Depending on how many groups/projects there are, we will split the final presentations into two weeks. You will be assigned a presentation week next week.
A few examples:
Musical Instruments. Performing music involves a sustained engagement between the performer and the instrument. The feedback fro mthe instrument has to be immediate and clear in order for the performer to continue playing. The interface has to be flexible so that the musician can exercise her creativity in playing, but has to have some boundaries so that she knows what the instrument can do and what it can't do.
Game interfaces. Like musical instruments, they involve constant back-and-forth interaction and immediate response. They are often simpler than musical instruments. In fact, the standard game controller has gotten so standard that the action of many games is artificially adapted to the needs of the controller, not the physical expressiveness of the player. Pick a specific game and see if you can change that.
Assistive devices. Whether it's something as simple as a reaching device (think of pickle pickers) or something more complex, these devices are very demanding of clear, reliable response.
Remote control systems. They require not only a clear interface, but must also return enough information on the remote system's action to let you know that you're doing the right thing. Whether it's a remote controller for your home electrical devices or a Mars rover controller, the need for clarity and good feedback are equally essential to the person who it's made for.
There are many other good applications for this project. Discuss the specifics of yours with your instructor.
Final schedule:
  • Concept presentations week 10
  • Playtest reports and questions week 11
  • Final plan presentations week 12
  • Project working demonstrations week 13 & 14


For next week, come up with a concept for your final project. Describe the technical system briefly (one paragraph with a diagram). Prepare a preliminary bill of materials and start budgeting the cost.

Week 10

Midterm project process review: what would you have done differently? In-class discussion

PRESENT THIS WEEK: Final project concept presentations

Assigment for next week:

Develop a plan to playtest your project. Perform a playtest before the next class and report on it.

Week 11

PRESENT THIS WEEK: Final project playtest reports

In-class discussion/exercise:

  • complex data communications
    • configuration vs. communication (command move vs. data mode)
    • addressing
    • Bluetooth serial as example
    • protocols discussion
    • Optional Bluetooth Lab or TBA depending on class topics

Assignment for next week:

Revise your project plan and description based on what you've learned from your playtest

Week 12

PRESENT THIS WEEK: Final project system plan presentations


  • Finish your final project documentation.

Week 13


  • Final Project Demonstrations

Week 14


  • Final Project Demonstrations


Participation & Attendance: 40%
Production Assignments: 40%
Journal: 20%

Participation & Attendance

Showing up on time, engaging in the class discussion, and offering advice and critique on other projects in the class is a major part of your grade. Please be present and prompt. Lateness will hurt your grade. If you're going to be late or absent, please email your instructor in advance. If you have an emergency, please let your instructor know as soon as you can. Please turn in assignments on time as well.


Laptop use is fine if you are using your laptop to present in class, or if we're in the middle of an exercise that makes use of it. Whenever classmates are presenting or we're in the midst of a class discussion, however, please keep your laptop closed. The quality of the class depends in large part on the quality of your attention and active participation, so please respect that and close your lid.

Mobile Phones

Please put them on vibrate or turn them off before you come to class unless they are part of your project. If you have an emergency that requires you to answer your phone during class, please tell your instructor ahead of time.

Lab Assignments?

There is a lab activity for nearly every class in the first half of the semester. They are very short, simple activities. These are the basic steps you need to go through to understand the principle discussed in class each week. They're designed to help you not only to understand the technical details, but also to get a feel for what the technologies we're discussing can do, so that you can incorporate them into actual applications. You should at least complete the steps outlined in the lab activity each week, so that you understand practically what it is we're talking about. Document on your blog any discoveries you make, pitfalls you hit, and details not covered in the class or the lab that you think will be useful for your fellow students and future students in this class.

Production Assignments

For production assignments, you'll be expected to present your project in class on the day that it's due. If you're working in a group, all group members should be present, and should participate equally in the presentation.

Journal & Documentation

You are expected to keep an online journal of your progress. The purpose of the journal is twofold. First, it is a valuable way for you to communicate to your instructor that you are keeping up with the work in the class. We read the journals to see how students are doing, so you should update your journal regularly throughout the semester. At a minimum, reference to each week's work is expected, as well as reference to the readings, and thorough documentation of the production projects and technical research. Second, the journal is a way to document your work for your own use and that of others. Many ITP students have found themselves using their journals as a place to store notes, code samples, and more.

Good documentation habits for this class:

You may choose to document your major projects in a separate individual or group site if you choose, but you will be expected to link your site to the main site, and contribute to the class site as well nonetheless. Please avoid flash, shockwave, or other sites that are not text-searchable, as they won't show up on search engines for others to use.

Blogs are great for documenting your process, as they're usually defaulted to organizing the information chronologically. However, projects summarized in a blog can be confusing. It's often worthwhile to set up a separate page or pages to summarize your projects when they're done.

You should document your projects thoroughly. Plan in advance, and perhaps as a group, to have what you need to document at least your midterms and finals. Photos, video, drawings, schematics, and notes are all valuable forms of documentation. Explain the project at the beginning of your documentation, so that people who come to the site from outside this class will understand the overview before they get the explanation.

Don't overload your notes with code. If you've made a big improvement on an existing piece of code, post your new code, and link to the code you based it on (just as you would in citing a pervious author in a paper). If you only changed one part of an existing program, post only the part you changed, and link to the original. Make sure any code you post is well-commented, so you and others can understand what it does.

Always cite the sources of your code, the places you learned techniques from, and the inspirations of your ideas. This is the equivalent to citing your sources in a written paper, and copying code or techniques without attribution is plagiarism. few ideas come out of the blue, and your readers can learn a lot from the sources you learned from or were inspired by.

Good documentation should include a description and illustration of your project. You should include what it looks like, what it does, what the user or participant does in response. It should give enough information that someone from outside ITP, who's never seen the project, can get an understanding of what your project is.

You should also include a section describing the workings of the project, aimed at a more informed reader (me, or next year's classmates), so that the details of production are clear. It doesn't have to include every scrap of code and circuit diagram, but it should make clear what the major components of the system are, and how they communicate, and what the code, if any, does.

Work on this as you go, don't put it off until the end. Your fellow classmates will find your notes as useful too.

Pictures and video help a lot.

Some good project summary sites:

A few good recent sample journals:


Useful books on the core concepts:

Physical Computing: Sensing and Controlling the Physical World with Computers, Dan O'Sullivan and Tom Igoe ©2004, Thomson Course Technology PTR; ISBN: 159200346X
Includes all the stuff covered in class and lots of advanced examples as well. This book was developed from this course. You can get through the course without it, but it'll make your life a whole lot easier if you read it while taking the class. The code examples in the book are not written for Arduino, but the concepts for each exercise apply to Arduino as well as the controllers described in the book. Even without the specific code, the examples will be useful, especially when combined with the labs in this class.

Making Things Talk, 2nd edition, Tom Igoe ©2011, Make Books; ISBN: 978-1449392437
Introduction to communication between computers, including serial communications, wireless, networking, RFID, and more. Though some of the material is beyond the scope of this class, much of it may be useful in understanding computer communications.

Making Things Move, Dustyn Roberts ©2010,McGraw-Hill/TAB ISBN-10: 0071741674 | ISBN-13: 978-0071741675
Dustyn's book is an invaluable guide to construction of mechanical things. Whether you're making a simple motor project or a Mars rover, it's a good place to get started.

Below are recommended texts for the course in general. You have readings from the first three. All of them are good inspirational guides for physical computing and computing in general. They are not assigned, but you'll find them to be useful reading in physical interaction design.

The Design of Everyday Things, Donald A. Norman ©1990 Doubleday Books; ISBN: 0385267746
If you design at all, or work with people who do, read this. A lucid approach to the psychology of everyday interaction and how the objects we deal with could be better designed to match the strengths and weaknesses of the way we think. His predictions about physical interaction design and information design, some accurate and some not, are interesting history lessons eleven years after the first edition.

The Art of Interactive Design, Chris Crawford, ©2002 No Starch Press; ISBN: 1886411840
Written in a very casual style, this book nevertheless is an excellent and concise summary of what interaction design is, why it is important, and what problems it brings with it. Anyone seriously interested in interaction design, physical or not, should read this book.

Emotional Design: Why We Love (Or Hate) Everyday Things Donald A. Norman. Basic books, ©2005. ISBN: 0465051367.
In this book, Norman counters some of the points he makes in his first book, The Design of Everyday Things, by pointing out that we do make decisions about design based on emotional reasoning, and that design affects us emotionally. He describes Human reaction to design on three levels: the visceral, or how it appears; the behavioral, or how it acts; and reflective, or how it makes us think and feel about ourselves through our association with it.

The User Illusion: Cutting Consciousness Down to Size, Tor Nørretranders ©1998 Viking Press; ISBN: 0670875791
Makes the case that much of our experience of the world does not come to us through our consciousness; in fact, the majority of it dealt with pre-consciously.

The following are good references for electronics hobbyists. Take a look at both, and get one or the other as a general reference, or find an electronics reference of your own.

Getting Started with Arduino, Massimo Banzi ©2008, O'Reilly Media ISBN 10: 0-596-15551-4 | ISBN 13: 9780596155513
A straightforward beginners' guide to most of the beginning exercises in this class.

The booklet from the Arduino Starter Kit is also an excellent reference. Scott Fitzgerald, a frequent teacher of this class, was the main author. Starter kit PDF

Make: Electronics, Charles Platt, © 2009 Maker Media Inc, Sebastapol, CA; 1st edition ISBN: 0596153740. An excellent intro to electronics. Practical, readable, and enjoyable. Start here.

Encyclopedia of Electronic Components Volume 1: Resistors, Capacitors, Inductors, Switches, Encoders, Relays, Transistors, Charles Platt, ©2012 Maker Media, Inc, Sebastapol, CA; 1st edition ASIN B00COVJULI. A useful reference for all kinds of electronics components.

Getting Started in Electronics, Forrest M. Mims III, ©1983, Forrest M. Mims III
A very basic introduction to electricity and electronics, written in notebook style. Includes descriptions of the basic components and what they do, and how they relate to each other.

There Are No Electrons: Electronics for Earthlings, Ken Amdahl ©1991, Clearwater Publishing; ISBN-10: 0962781592 A light-hearted introduction to elecrical concepts in laypersons' terms.

Practical Electronics for Inventors. Paul Scherz, ©2000, McGraw-Hill Professional Publishing; ISBN: 0070580782
A more in-depth treatment of electronics, with many practical examples and illustrations. An excellent reference for those comfortable with the basic topics. The use of plumbing systems as examples to demonstrate electric principles makes for some very clear illustrations of how different components work. Good chapters on sound electronics and motors as well.

Fashioning Technology: a DIY Intro to Smart Crafting Syuzi Pakhchyan. Make books, ©2008. ISBN: 0596514379.
This book includes a nice introduction to basic electronics and a number of construction projects for simple electronic crafts. The construction techniques are aimed primarily at wearables and soft circuit projects, but they'reuseful for a number of other projects as well.

A longer list of books for inspiration and reference is available online at Tom's books link.

Parts & Supplies


A list of parts needed for the first few weeks follows. You will end up spending money on materials in this class. It can be done reasonably inexpensively, by scavenging parts, reusing parts, and so forth, but more ambitious projects inevitably make demands on your budget.

Parts needed for Intro Physical Computing

You'll need some electronics components to complete the work in this course. If you've done any electronics or microcontroller project development, you may have many of the parts already. We'll be working with the Arduino microcontroller platform, and you should be able to do the lab exercises for the course on most any Arduino-compatible microcontroller. For best results on the labs, use an Arduino Uno, Leonardo, or Micro, as that's what your instructors will be using to demonstrate with.

If you've never done any of this before, you might want to get a starter kit. Having tried and evaluated several of the starter kits for Arduino, we recommend two: the Arduino Starter Kit, or the The Adafruit ARDX kit. Both are available from adafruit. The Arduino Starter Kit is available from other distributors as well. The Adafruit kit is the best of those that include the Uno, a few electronic components. While the Adafruit kit is less expensive, the Arduino kit includes a detailed book written by Scott Fitzgerald, who teaches this class. The book contains a series of projects that help you understand not only the electronics, but also what you can do with a microcontroller.

For the in-class lab exercises, when there's a specialty module needed, like a radio or a specific microcontroller, we'll have stock on hand to lend for the class period, so you can try things out before you buy them for your own projects.

There are some electronics components available in the physical computing lab cabinet. Please don't hoard parts, so that we always have some available for everyone. We try to keep more expensive modules, like microcontroller boards and radios, available for loan as well, though there is no guarantee that these will be available right when you need them.

The NYU Computer Store carries kits to make your life easier. In it you will find enough parts to complete the basic instructions in each lab. They also carry a basic toolkit, with the minimum amount of tools you might need for the same (those tools can be handy around the house too). If you have none of your own parts or tools, purchase the basic parts kit and basic tool kit, at least.

Basic Tool Kit

You will also need some hand tools. The shop has tools you can use, but there are a few tools you should pick up for yourself. The NYU computer store carries many of these tools that do the job quite well. When you go to the bookstore to buy your kit, bring your student ID. The intro kits will be reserved for ITP students for the first few weeks of the semester.

diagonal cutter
diagonal cutter
wire stripper
wire stripper
needle-nose pliers
needle-nose pliers
digital multimeter
digital multimeter
drill bits
drill bits

If you don't want to buy a full drill bit index, you should at least pick up the following: 7/64", 1/8", 5/16", 1/4". You'll use these a lot, and to avoid other people dulling or breaking your bits, get your own. They're cheap, and it'll save you hours of aggravation.

Where Can I Get Electronic Parts in New York City?

The bad news is that this city has very few storefront outlets for electronics. If you need a last minute component, you've got three options, basically: Radio Shack (plenty of them all over town); The NYU Computer Store (around the corner on Mercer and Greene, soon moving across the street on Broadway); and 269 Electronics. Save yourself time and call any of these and ask if they have what you need before you go.

You'll end up buying most of your electronic components online, so plan shipping time into your project planning. Here are some of our regular sources:

Adafruit is based in NYC, delivers fast, and has many components and modules that work well for this class. A ground-based shipment from Adafruit will often arrive before a two-day shipment from other retailers. Their customer service on shipments is excellent, and their tutorials are quite good too.

Spark Fun has a wide range of components and modules to solve many common physical computing tech challenges. Based in Colorado, they're also pretty fast on shipping, and good with the customer service.

Seeed Studio has some really interesting components. They ship large orders free from Shenzen, China, but shipping isn't always fast that way. You can pay for expedited shipping though.

Solarbotics is good for motors and motor support components, but carries a range of other components as well.

AC Gears is a storefront around the corner from ITP that carries Arduinos, 3D printers, and the like. http://www.acgears.com/

There are many large distributors of bulk components like resistors, capacitors, transistors. They're not aimed at the hobbyist market, and their sites can seem a bit daunting at first, but they're very useful as you get to know how to shop. We use Digikey, Mouser, Jameco, and Newark frequently.

There are also surplus houses that sell overstock and discontinued items. While they don't always have the same thing in stock all the time, they're excellent sources of discount deals and hard to find items. All Electronics, Electronics Goldmine, and Herbach and Rademan are examples of these.

  Edit | View | History | Print | Recent Changes | Search Page last modified on August 16, 2007, at 11:17 AM