Course Syllabus

CS294-84 / ME 290U: Interactive Device Design
Fall 2016, UC Berkeley. CCN: 33264 (CS294-84); 28558 (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. We will provide a set of promising project areas with local partners. Alternatively, groups can also come of with their own product ideas. 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. Classes will be held in 210 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
  • Had to have filled out our (now closed) entry survey


  • 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.
Jacobs Hall Design Specialists: Stacy Jo Scott, Matt Wolpe, Gary Gin, and Chris Parsell.
GSIs: Daniel (Dan) Drew, Daniel Lim

Office Hours:
Daniel Lim: Mon, Wed 12:30 - 2:30 - 110 Jacobs Hall
Daniel Drew: Tues 12:30-2pm, Thurs 3-4:20pm - 210 Jacobs Hall
Prof. Bjoern Hartmann: Mondays 1-2pm - 220A Jacobs Hall
Prof. Paul Wright: by appointment


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: Students will be expected to get a Jacobs Hall Maker Pass. The regular Maker Pass is $75. Expect additional out-of-pocket expenses for electronics and consumables for your class project.
Lab Hours (Jacobs Hall): Consult the Jacobs Hall Access page.

Class Meeting Times: MW 10:30am-12:30pm, 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.


Note that the schedule and assignments below are still tentative and will be updated for this year's offering

Course Summary:

Date Details Due