Introduction to Physical Computing (60-223) is a 10-credit semester project-based course offered at Carnegie Mellon University by the School of Art under the auspices of IDeATe.

Instructor: Robert Zacharias, (minus the cation)
Teaching Assistant: Runchang (Richard) Kang, (minus the cation)

Class meetings: Tuesdays and Thursdays, 2:30–4:20 p.m., room A10 in Hunt Library (IDeATe’s Physical Computing Lab)

Lab hours

  • RZ: Tuesdays/Thursdays 1:00–2:30 p.m.
  • RK: Mondays/Wednesdays 5–6:30 p.m.
  • or by appointment with RZ; email to request a meeting at another time

Course synopsis

The first half of this practical project-based course is spent covering the basic technical skills (including electronics, programming, and hardware) needed to build simple interactive objects with embedded behavior using the Arduino microcontroller. Inputs to read information about the world include sensors such as an ultrasonic ranger, thermometer, light sensor, and human inputs like buttons and knobs. Outputs to affect the world include actuators such as motors, LED lights, speakers, and haptic feedback devices. A sequence of projects challenge students to apply their technical skills in creative ways. The class will be working with a local group of older people who serve as design clients; students conjure and build functioning assistive devices of a practical or whimsical nature for their critique and feedback. Readings and guest speakers address topics including design and disability.

Topic and assignment schedule

This schedule is subject to change.

week Tuesday class Thursday class
1 #1 Aug. 28th: intro and expectations; IDeATe facilities available; Arduino board tour; digitalWrite(); Homework 1 assigned #2 Aug. 30th: Homework 1 discussion (quick review of example projects posted by students to course site); schematics and circuits part 1; breadboard; always maintain enough resistance between power and ground; blinking with variations; more LED outputs; Homework 2 assigned
2 #3 Sept. 4th: using the IDE’s built-in reference; Serial feedback; a voltage divider; V=IR; Homework 3 assigned; Project 1 introduced #4 Sept. 6th: driving a hobby servo; digitalRead() and switches/buttons; Homework 4 assigned
3 #5 Sept. 11th: analogWrite(); ADXL335 accelerometer; soldering; handsaw; external power via battery or transformer #6 Sept. 13th: external power supplies; digital multimeter use; Project 1 work day
4 #7 Sept. 18th: Project 1 due date and crit; Homework 5 assigned #8 Sept. 20th: Photo Zone and DSLR tutorial; guest speaker Laura Poskin, MPSG
5 #9 Sept. 25th: juggling timing tasks without delay(); Project 1 documentation due; Homework 6 assigned #10 Sept. 27th: Homework 6 due; prep for first meeting with older friends; Project 2 introduction
6 #11 Oct. 2nd: first meeting with older friends: introductions, brainstorming, and open ideation; Project 1 documentation feedback returned #12 Oct. 4th: due: Project 2: brainstorming sketches and notes for discussion with course staff
7 #13 Oct. 9th: Project 2 work day #14 Oct. 11th: due: Project 2 prototype and work day
8 #15 Oct. 16th: Project 2 work day #16 Oct. 18th: due: Project 2 final project for crit
9 #17 Oct. 23rd: practical project planning and debugging; final groups announcement #18 Oct. 25th: due: Project 2 documentation; interview prep; guest speaker Prof. Berntsen from HCII
10 #19 Oct. 30th: 👻 bewaaaaare 👻 optional class: reserved final project interview time #20 Nov. 1st: interview recap and prototype ideation
11 #21 Nov. 6th: due: final project interview documentation; first-round prototype work day #22 Nov. 8th: first-round prototype work day
12 #23 Nov. 13th: due: presentation and formative critique of “behaves-like” prototypes #24 Nov. 15th: due: prototype process documentation; presentation debrief and final planning
13 #25 Nov. 20th: final project work day Nov. 22nd: Thanksgiving break 🦃
14 #26 Nov. 27th: final project work day #27 Nov. 29th: final project work day
15 #28 Dec. 4th: due: final project presentations and crit with invited guests #29 project wrap-up, documentation work time, and lab cleanup
16 (finals week) due: Final project documentation (5 p.m. on Friday, December 14th)  

Policies, expectations, and housekeeping

Room access

Enrolled students have access to the IDeATe Phys Comp Lab whenever Hunt Library is open, which is around the clock for most of fall and spring semesters. (The library’s hours are posted on their website.) The caveat is that there are many other classes in the room, and while you can come and go as you’d like, please be respectful of other classes and make as little noise as you can while they’re in session. All of IDeATe’s spaces’ schedules are available online.

The Phys Comp Lab’s inventory is online for your convenience.

While in the Phys Comp Lab please observe some simple rules:

  • Food and nonwater drink must remain in the zone of shame by the door
  • Please store project material in your cubby; if you need more space let us know and we’ll make arrangements
  • Tools that belong to the room (like those on the pegboard in the Heavy Work Zone, or in the red tool cabinet) must always remain in the room. Don’t take them elsewhere, and don’t hide them in your cubby!
  • Electronics in the drawers are available for your use; take them as you need. The expectation is that you’ll return things when you’re done with them. Don’t worry so much about little stuff like resistors and LEDs; do worry about things like motor drivers or rotary encoders or pumps.
  • It’s kind of a Kindergarten situation: when you’re done working, please clean up after yourself.
  • There are more than 75 students rotating through this room every week in 7 different classes, so consideration of the common areas is really important.

Class time

Class time is very precious—we’ve got only 4 hours a week, about 60 hours over the course of the semester. Because of this, I have some expectations for myself and for you:

  • I will get to class early and ready to go. During class time, I’ll focus exclusively on our course.
  • I’ll use class time as wisely as I can: if the whole group does not need to be involved in a discussion, I’ll try to bring only the needed group together.
  • You’ll also use class time carefully; you will come on time and ready to learn. If you’re late, please enter quietly and speak with me after class.
  • You’ll use classtime to focus on the class, and not the fun things happening inside your phone or out on the internet.
  • Attendance is expected at all sessions. Any absences beyond your 2nd will result in a third of a grade (3 point) deduction from your final course grade. An unexcused tardy is like a third of an unexcused absence (1 point off of your final grade). Excused absences, latenesses, and emergencies are excepted, of course. Speak with me and email me in the case of either of these events coming about.



This course, and IDeATe more broadly, purposefully attracts students from a wide disciplinary range, including art, design, engineering, architecture, computer science, business, and more.

Projects in the course are completed in groups rather than individually. Sometimes groups will be assigned, and sometimes students will choose their own groups. In both cases, the expectation is that group members will honestly strive to work together on their projects and will rise or fall as a unit, understanding that identifying complimentary strengths and weaknesses early on will help the team succeed. All members of a group receive the same grade for a project except in rare cases.

If your group is having trouble working together, please reach out to Zach or Runchang as soon as you think there may be some real issues. As authoritative outsiders, we can step in to help in ways that group members themselves can’t.

Due dates

Assignments are generally due at the beginning of class, and arriving late to class because you are finishing the assignment results in a late attendance mark as well as a late project mark. Documentation is also due at the beginning of class; if you haven’t submitted by 2:30 p.m. on the day the documentation is due, it will be considered late and incur a grade penalty.

Academic integrity

This is not a class, and IDeATe’s Phys Comp Lab is not an environment, where you are expected to write every line of your own code. We gratefully stand on the shoulders of giants and also regular-sized heroes who share interesting projects on Instructables, or Github, or their blogs. You are expected to incorporate ideas, hardware/electronics designs, and even verbatim software fragments from other sources. This isn’t considered plaigirism in this class if: 1) you properly cite sources, and 2) you don’t simply make a wholesale reproduction of somebody else’s project but instead use their work as a jumping-off point. If you do plaigiarize, however, you can expect a serious response, including a major grade penalty and referral to the University disciplinary structure.

If you’re not sure if you’re borrowing too much from somebody else, or you don’t know how to credit the work you’re borrowing from, please discuss it with the instructor.

Grading scheme

As noted above, more than two unexcused absences (or more than six unexcused latenesses, since three latenesses make an absence) will lower a student’s final grade by 3 points. Each of the projects, and practicum, have their own grade breakdowns; see the relevant project pages for those details.

  • 20% homeworks
  • 10% Project 1
  • 20% Project 2
  • 50% Final project:
    • 20% Final documentation
    • 10% Final crit and presentation
    • 5% Community/home/etc. meeting documentation
    • 7.5% “Behaves-like” prototype process documentation
    • 7.5% “Behaves-like” prototype crit and presentation

IDeATe Common Learning Goals

  • Demonstrate an appreciation for and ability to participate in critique of one’s own work and the work of others
  • Demonstrate an understanding of the role of reflection in learning and designing (begin to become a reflective practitioner)
  • Demonstrate an ability to articulate the story (visually, orally, verbally, aurally…) of one’s own work and one’s own learning
  • Demonstrate an understanding of the history, cultural context and social implications of electronics
  • Demonstrate the ability to work in a multidisciplinary environment
  • Demonstrate technical and creative skills in writing software in the Arduino IDE, creating circuits that safely work as intended, and making an effective, interesting, useful device to help improve the life on an older person.

But really

All of the structure provided by the rules and grades and submission requirements is there partly because we’re operating in an academic environment that requires that I evaluate you as fairly as I can with a grade at the end of the semester, and partly because a bit of structure helps us thrive.

I hope you’re taking this class because you’re interested in learning something new and useful. I’m teaching it because I sincerely believe that the ability and confidence to use these technological tools can be transformative—and that it’s good to work towards a world in which as many people as possible are empowered to solve their own problems in creative ways, build interesting things, and help enrich our shared experience.