Mondays and Wednesdays, 9:30–11:20 a.m., in IDeATe’s Physical Computing Lab (Hunt A10)


instructor: Robert “Zach” Zacharias
email: (minus the cation)
office: Hunt A9C (across the hall from the Phys Comp Lab)
lab hours: 11:20 a.m.–12:30 p.m. Mondays and Wednesdays, or by appointment
phone: 412 268 5973

TA: Harshine Visvanathan
email: (minus the cation)
lab hours: to be determined

Course site
The site is updated frequently throughout the semester with assignment information.

This syllabus is available at
The PDF form is available at

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. Individual and group 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 for the final project; students conjure and build functioning assistive devices of a practical or whimsical nature for their critique and feedback. Readings and guest speakers address topics pertaining to design for older clients.

Major deliverables

There are a sequence of homeworks as well as three major projects in the course. See the particular assignments for further details on each. Briefly:

  • Homework
    • Technical homeworks are opportunities to stretch your ability and understanding of the nuts and bolts of writing software that drives electronics.
    • Reading homeworks typically consist of journal articles addressing issues pertinent to the course. There are only a handful of these assigned during the semester.
    • Combined homeworks are worth 20% of the final grade.
  • Project 1: A Double Transducer is a technical exercise in changing the form that a physical input signal takes, changing it again, and then outputting another signal. Students are assigned to work in teams of two. The assignment is worth 10% of the final grade.
  • Project 2: An Assistive Device for Someone You Know Very Well is an opportunity to build yourself something that may be useful to you in your own life; prior works include creative alarm clocks, a long-term memory aid, and a reminder for a thrombosis patient not to remain sitting for too long. Students work on their own project. The assignment is worth 20% of the final grade.
  • Final project: An Assistive Device for an Older Person is the major effort of the second half of the semester. Students work in assigned groups of three to produce a novel interactive device custom tailored to the needs of an older community member. Past projects include a device to automatically lower the volume of a television, a cane-mounted mobility aid for a Parkinson’s patient, and a quiz device to gamify dishwashing. The assignment is worth 50% of the final grade.


There are no formal prerequisites or assumed prior knowledge for this class. However, some basic programming understanding (such as familiarity with variables and their use, the if…else structure, for and while iterators, etc.) will be helpful, since we spend little time in class on the rudiments of programming. In the past, students without any prior programming experience have been able to succeed by learning as they go, and asking for help as needed.

Course materials

Enrolled students are supplied with a kit of electronics that is theirs to keep. This kit includes an Arduino Uno R3, which is our primary microcontroller in the course. To program that hardware, we use the Arduino integrated development environment, which is open-source and gratis software, available for download from There are no required texts.

General class policies


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 clear 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.
  • You’ll use class time to focus on the class, and not the fun things happening inside your phone or out on the internet. (See next section for more on that.)

The course is light on lecture and heavy on hands-on learning; especially since this is the case, when there is a lecture, please be careful to pay good attention.


You are expected to attend class, and to arrive on time. Past experience has repeatedly shown that higher attendance correlates with greater success in the class, so it’s in your best interest to come to class!

You are given two unexcused absences without penalty; beyond that, any additional unexcused absence will result in a 3 point deduction off of your final grade in the course. E.g.: at the end of the semester your final average is 92.4 (which would earn an A), but you have three unexcused absences; your grade falls to 89.4, which is a B.

Late arrivals to class are disruptive to the whole room. Please arrive on time (or early). Tardiness of 15 minutes or more is counted as an absence.

If you expect you won’t be able attend a session for any reason, or if you’ll be late, please email me as early as possible to request an excused absence. Viable reasons for an excused absence include religious or academic obligations; non-viable ones include working on buggy/booth, or your friend visiting from out of town.

If you’re sick in bed, please email me advising of the circumstance as early as possible and stay in bed. Rest up so you can regain your health and come back and join us (and please keep your new microbial friends at home with you).

The outline of each class session are posted after the class on the class log page. If you want to know what you missed, please look there first, and then ask your classmates, TA, or me questions.

Phone/computer use

While we’re in class, please don’t use your phone. If you need to use it, just step out into the hallway. (Exception: if you’re using your phone to look up information/resources/etc. for class, that’s fine.) If I see you using your phone in a non-academic way, I’ll ask you to give it to me so I can put it in the phone basket at the front of the room, and you’re welcome to get it at the end of class.

While we’re in class, please don’t use your computer for random internetting, social mediation, or any other use that isn’t pertinent to class. You’ve got the whole rest of your life to tweetgram awesome memes and #tags (though I don’t recommend it).

The use of distracting technology is obviously deleterious to the student who’s choosing to use it, but it’s also harmful to other students who are merely sitting near the distracted student. A 2013 article in “Computers & Education” pretty much spells it out in the title: “Laptop multitasking hinders classroom learning for both users and nearby peers.”1 A 2015 survey of 675 college students in the U.S. found that they spent “an average of 20.9% of class time using a digital device for non-class purposes,”2 which is pretty alarming. In this classroom, we’re going to aim to subtract 20.9% off of that national average!


In the spirit of encouraging everyone to be able to be maximally present in class together, it’s important that students feel comfortable and supported. If there is anything physically in the environment that can be reasonably adjusted to make your learning experience better, you should feel generally empowered to make that adjustment. If the lights are too bright at your table, please ask your neighbors if it’s ok to dim them, and if yes, go ahead and do so; if we’re playing music at a work session and it’s too loud, please say so; etc.

Likewise, if there is any aspect of instruction that is giving you difficulty, such as my not spending long enough on a topic or making reference to a point we haven’t covered yet, please speak up, either in class or afterwards. This sort of critique is very helpful to maintaining a successful classroom and much appreciated.

If you have a disability and have an accommodations letter from the Disability Resources office, I encourage you to discuss your accommodations and needs with me as early in the semester as possible. I will work with you to ensure that accommodations are provided as appropriate. If you suspect that you may have a disability and would benefit from accommodations but are not yet registered with the Office of Disability Resources, I encourage you to contact them at

Statement on diversity

Heterogeneous teams are better than homogeneous ones at innovating.3 IDeATe is a heterogeneous environment by design, and our classroom is as well. Having students from a variety of academic backgrounds and college years is one way in which we aim to diversify the space; but also we also embrace diversity along lines of culture, national origin, race, gender, language, socioeconomic status, disability, and religious adherence. We sincerely believe that bringing together many different kinds of people makes for a richer learning environment for everybody.

If at any point you feel that you’re experiencing discomfort brought about by discrimination along any of these lines (or others), please immediately notify me so that I can take appropriate steps to rectify the circumstance.

Room access

Enrolled students have access to the IDeATe Physical Computing Lab whenever Hunt Library is open, which is around the clock for most of the academic year. (The library’s hours are posted on their website.) The caveat is that there are many other classes in the lab, 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. If you discover a drawer is low or empty, fill this form out so it can be quickly refilled!

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
  • Covered water containers are permitted at work tables
  • 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 without asking, 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.
  • Broken electronic components should be disposed of in the Electronic Waste Bin.
  • It’s kind of a Kindergarten situation: when you’re done working, please clean up after yourself.

Projects and collaboration

As mentioned above, this and all IDeATe courses purposefully attract students from a wide disciplinary range, including art, design, engineering, architecture, computer science, business, science, and more.

Two of the three projects in the course are completed in groups rather than individually. 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 unusual circumstances.

The final project includes a peer critique during the process, which is an opportunity to give feedback to the course staff about your group dynamics. That said: if your group is having trouble working together, please reach out to the instructor or TA 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.

Grading and 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 project mark (so you might as well come to class and finish the project later).

Practical homeworks (i.e. the type that involve a tech demo) are graded in class when they are due. Homeworks may be turned in late for grading and will be penalized 25% per class day of tardiness. (“Class day” means a Monday or Wednesday we have class. For instance: a homework due on a Monday which would’ve earned a 10/10 will earn a 7.5/10 if handed in prior to the following Wednesday class meeting.)

Projects generally have two grade components: the project itself, and documentation of the project/process.

  • Projects are graded based on their state at the time they are due, i.e. the day of the in-class critique. They may not be handed in late, except in extreme circumstances.
  • Documentation is generally due one week after the project. Late documentation is penalized 10% for each 24-hour period of lateness past the documentation due date/time. (Example: project documentation is due on Monday the 6th at 9:30 a.m., and you submit it Monday after class. You get a 10% penalty for one day of lateness, so a 19/20 grade becomes a 17.1/20.)

Academic integrity

This is not a class 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 plagiarism 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 plagiarize, however, you can expect a serious response, detailed below.

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 or TA.

Homework and collaboration

Different homework assignments carry different collaboration standards. For instance, some homeworks will permit full collaboration with your peers, so long as each student types out every single character of the code they submit. (I.e. two students may submit the same code for the same assignment, though neither of those submissions may be copy/pasted from the other.) In other cases, discussion between students of the ideas of the homework is permitted, but direct code collaboration is not permitted. It is your responsibility to read and follow the collaboration guidelines specific to the homework you’re completing.

Students’ homework code is analyzed algorithmically to detect collaboration, and also examined and graded by the instructor. Please click here if you’re reading this. All code submitted for homework assignments should have an opening comment block as specified below, where any collaboration with other students, or sources from the internet, printed media, or any other place, must be disclosed.

A failure to explicitly note any collaboration or code source in this comment block is considered plagiarism and carries a harsh penalty: the student will receive a –100% on that assignment (e.g. for a 10-point assignment the student receives a grade of negative 10 points). Additionally, the student’s advisor will be informed of the infraction, and the University disciplinary structure may be invoked as well, at the instructor’s option. Please don’t copy code from any place or person without properly citing it.

Standard comment block

Below is an example of the format of the standard comment block that should appear at the top of all submitted homework; individual assignments may specify variations particular to that assignment.

 * Homework 3
 * Andrew Carnegie (acarnegi)
 * 1 hour 25 minutes
 * Collaboration: Ada Lovelace helped me understand
 * variables and we worked on the code together.
 * The function "Wheel" is copied from this Adafruit
 * tutorial:
 * Challenge: I tried to write a switch…case but
 * it did not go as planned. It took me an extra hour!
 * I was held up with bracket trouble the whole time, 
 * it seems.
 * Next time: I'll start by writing comments or pseudo-code
 * before trying to write the actual code. I think this
 * will reduce my getting tangled around the code
 * structure.
 * Description: The code below blinks three LEDs according
 * to a pattern. Pushing a button selects the next pattern 
 * from a pre-defined list. 
 * Pin mapping:
 * pin   | mode   | description
 * ------|--------|------------
 * 4      input     momentary pushbutton for mode selection   
 * 9      output    red LED 
 * 10     output    green LED
 * 12     output    yellow LED


Please do not record class without obtaining prior written permission from me. If you have special dispensation via the Office of Disability Resources to record as an accommodation, then naturally that is permissible.

Grading scheme

Each of the homeworks and projects have their own grade breakdowns; see the relevant assignment pages for those details.

The course grade is computed from these components:

  • 20% homeworks
  • 10% Project 1
  • 20% Project 2
  • 50% Final project

The grading scale for undergraduates is as follows:

final percentage of points earned grade assigned
>=90 A
<90 and >=80 B
<80 and >=70 C
<70 and >=60 D
<60 R


IDeATe, the Integrative Design, Arts, and Technology network at Carnegie Mellon, offers undergraduate minors and courses in Game Design, Animation & Special Effects, Media Design, Sonic Arts, Design for Learning, Innovation & Entrepreneurship, Intelligent Environments, and Physical Computing. These areas merge technology and creativity and provide learning opportunities for interdisciplinary collaboration. IDeATe minors and courses are open to all majors. We welcome students from every discipline to the unique learning environment that exists at Carnegie Mellon.

Relevant IDeATe skill-building courses

IDeATe is not its own department. Rather, Carnegie Mellon’s departments contribute faculty and courses to the IDeATe curriculum. Therefore, IDeATe does not have its own course number prefix. You can find the IDeATe course offerings for the upcoming semester by going to the Courses section of

IDeATe offers a selection of “micro” courses; these are skill-building workshop-style classes which meet only a few times and confer 1 academic credit. Micro courses relevant to Physical Computing:

  • 99-353 IDeATe CAD and Laser Cutting (super useful for fabrication!)
  • 99-359 IDeATe 3D Modeling and 3D Printing (also very useful for fabrication and design)
  • 99-352 IDeATe Soft Fabrication Skills (opening a whole new world of textile possibilities)
  • 99-357 IDeATe Pragmatic Photography (a great and broadly portable skill to have in your bag)

A mini (half-semester) course you may be interested in:

  • 62-478 digiTOOL (covers CAD for lasercutting and 3D printing, in more depth than the micro courses)

Learning goals for this course

  • 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.

IDeATe resources

IDeATe Open Fabrication Hours

Monday–Friday, 4:30–5:30 p.m. are IDeATe’s Open Fabrication Hours during the academic year. During this time, you can get individual help from IDeATe student staff in using the laser cutters, 3D printers, and other IDeATe facilities. This resource is available to all university affiliates. See for further details.

IDeATe Lending

Once you are enrolled in an IDeATe course, you will have access to IDeATe Lending, and you will maintain your access through the rest of your time at Carnegie Mellon. You must present your CMU ID each time you borrow an item. You will also be able to purchase consumable items (such as plywood and acrylic) for projects. Please visit for more detailed information on available resources, to review the IDeATe Lending Borrower Policy, and to find hours of operation.

Classroom and Lending access

If you are enrolled Intro to Physical Computing at least a week before the start of the course, you will have access to IDeATe Lending and the Physical Computing Lab starting on the first day of class. (If you add the course during the Add Period, you may need to wait a few business days to receive access while the lists are updated.) If you add a course after the last day of the Add Period, email with your name, Andrew ID, and course number so we can add you to our systems.

Laser cutter access

IDeATe maintains three laser cutters in the digital fabrication alcove off of room A5, and these tools are very precise, very fast, and very useful for all sorts of fabrication. Please read the latest laser access policy information here:

IDeATe advising

If you have questions or need advice about IDeATe minors or courses, please get in touch with Kelly Delaney, the Assistant Director of IDeATe. Her office is in Hunt A9 (immediately accross the hall from the Phys Comp Lab) and her email is (minus the cation).

Taking care of yourself

Take care of yourself. Do your best to maintain a healthy lifestyle this semester by eating well, exercising, avoiding drugs and alcohol, getting enough sleep and taking some time to relax. This will help you achieve your goals and cope with stress.

If you or anyone you know experiences any academic stress, difficult life events, or feelings like anxiety or depression, we strongly encourage you to seek support. Counseling and Psychological Services (CaPS) is here to help: call 412-268-2922 or visit Consider reaching out to a friend, faculty or family member you trust for help getting connected to the support that can help.

But really

All of the structure provided by the rules and grades and submission requirements above 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 provide us an environment in which we can 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 meaningful problems in creative ways, build interesting things, and help enrich our shared experience.


  1. Sana, F., T. Weston, and N. J. Cepeda. “Laptop multitasking hinders classroom learning for both users and nearby peers”. Computers & Education, volume 62. 2013. pp. 24–31. 

  2. McCoy, B. R., “Digital Distractions in the Classroom Phase II: Student Classroom Use of Digital Devices for Non-Class Related Purposes”. Faculty Publications, College of Journalism & Mass Communications, vol 90. 2016. p. 1. 

  3. Prat, A. “Should a team be homogeneous?”. European Economic Review, volume 46. July 2002. pp. 1187–1207.