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

Class meetings: Mondays and Wednesdays, 9:30am–11:20am, room A10 in Hunt Library (IDeATe’s Physical Computing Lab)
Lab hours: to be determined

Instructor: Robert Zacharias, (without the cation)
Teaching Assistant: Joseph Paetz, (without the cation)

Short course description

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 elderly people who serve as design clients; students will design and build functioning assistive devices of a of a practical or whimsical nature, which will be critiqued and tested for efficacy by the elders. Readings and guest speakers address topics including design and disability.

Topic and assignment schedule

weekweek ofMonday classWednesday class
1January 14(1) Jan. 17th: intro and expectations; Arduino board tour; blink with variations
2January 21(2) Jan. 22nd: the Arduino is a voltmeter; analogRead() a potentiometer; breadboard; schematics; more LED outputs(3) Jan. 24th: V=IR; digitalRead() and a voltage divider; using a digital multimeter; hobby servo; ultrasonic ranger and contributed libraries
3January 28(4) Jan. 29th: ADXL335 and ADXL345 accelerometers; using the bench supply; soldering; documentation requirements(5) Jan. 31st: work day
4February 4(6) Feb. 5th: Assignment 1 due date and crit(7) Feb. 7th: Git and Github; journey through the datasheet
5February 11(8) Feb. 12th: documentation for Assignment 1 due(9) Feb. 14th: ♥︎
6February 18(10) Feb. 19th:(11) Feb. 21st:
7February 25(12) Feb. 26th:(13) Feb. 28th:
8March 4(14) Mar. 5th:(15) Mar. 7th:
9March 11spring break
10March 18(16) Mar. 19th:(17) Mar. 21st:
11March 25(18) Mar. 26th:(19) Mar 28th:
12April 1(20) Apr. 2nd:(21) Apr. 4th:
13April 8(22) Apr. 9th:(23) Apr. 11th:
14April 15(24) Apr. 16th:(25) Apr. 18th:
15April 22(26) Apr. 23rd:(27) Apr. 25th:
16April 29(28) Apr. 30th:(29) May 2nd:

Submission requirements for each project

The documentation guidelines page details the submission requirements for each project.


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.

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 endeavor to follow some guidelines:

  • 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 do the same. You will come on time and ready to learn. If you’re late, enter quietly and speak with me after class.
  • 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. Excused absences 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 Joseph 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 generally due at the beginning of class; if you haven’t submitted by 9:30am 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 like people who share interesting projects on Instructables.