Course Syllabus

CS294-84 / ME 290U: Interactive Device Design
Fall 2015, UC Berkeley. CCN: 27157 (CS294-84); 56247 (ME 290U) (4 units)

This course teaches concepts and skills required to design, prototype, and fabricate interactive devices -- that is, physical objects that intelligently respond to user input and enable new types of interactions. The first half of the semester will be dedicated to a survey of relevant techniques in 3D modeling and fabrication; electronics and circuit board design; sensing and actuation for interaction; embedded software development, wired and wireless communication with mobile devices, computers, and networks; and user interface programming. In the second half of the semester, students will propose and carry out a significant design project of their own choice in groups. We encourage students to work on projects in CITRIS focus areas: health, energy technologies, connected communities, people and robots; PhD students can also explore projects related to their area of research after consultation with us.

Class sessions will alternate between concepts and experiential learning. Initial classes will be held in the CITRIS Invention Lab, 141 Sutardja Dai Hall. After a few weeks, we will move in to the newly opened Jacobs Hall.


Because of the hands-on nature of this course, we have a strict capacity limit of 30 students. All students are initially placed on the wait list. In order to be considered for the class you must:

  • Be on the waitlist for either CS294-84 (Hartmann) or ME 290U (Wright) by the first class meeting
  • Come to the first class meeting and sign in
  • Fill out our entry survey by Friday, August 21 2015.


  • Programming experience required: You will program embedded systems for this course. You should be able to pick up a new language and API (with some help from us). Knowing the equivalent of the CS61A-C series at Berkeley should be sufficient.
  • User Interface Design experience very useful: Your projects will have both software and hardware user interfaces. Some background in user interface design, e.g., INFO290 Tangible Interaction or CS160 User Interface Design is valuable.
  • 3D modeling skills very useful, but not required: You will model and fabricate parts on our FDM machine. If you want to get a head start, learn how to use SolidWorks, but we'll also have a tutorial.
  • Some electronics experience useful, but not required: You will build basic sensing and actuation circuits. The threshold for doing this has decreased rapidly in recent years, but you will be soldering your own electronics. If you have taken the equivalent of EE40 or have built projects Arduino boards before, you'll be fine.

If you have no programming background, you should not take this course. If you do not have experience in at least one of (UI design, 3D modeling, electronics) you should not take this course. You must be comfortable with learning a sizable set of new tools and processes, quickly.

Course Information

Instructors: Bjoern Hartmann and Paul Wright.
Invention Lab Managers: Mark Oehlberg and Chris Myers.
GSIs: Joanne Lo, Zhiwei Wu

Piazza Group (for any course-related questions):  (Or: just click on the Piazza link in the left hand menu)
If you have a technical question about your homework or project, please ask the class first through this group. For individual, class-related issues, use the private messaging feature on Piazza to reach all course staff. Do not send us individual email.

Lab Fee: $50 Materials fee. This semester, we will cover your lab fee. However, we charge a materials fee to offset expenses for the electronics and materials we provide for you. Expect additional out-of-pocket expenses for electronics and consumables for your class project.
Lab Hours (Invention Lab): Consult the Invention Lab calendar.
Lab Hours (Jacobs Hall): Consult the Jacobs Hall Access page. JH will be available after Sep 14.

Class Meeting Times: MW 10:30am-12:30pm, starting in 141 Sutardja Dai Hall, then moving to 210 Jacobs Hall

Textbook: There is no required textbook for this class. There will be readings assigned for many lectures. The readings will be available online in bCourses. You may have to submit reading responses for those readings through bCourses assignments.

Course Summary:

Date Details