UC Berkeley
Fall 2017



In Fall 2017 we will be aiming accommodate around 100 students. Lectures will be held Monday and Wednesday, 11:00am-12:30pm in Jacobs 310. There will be sections as well once a week. There will be a midterm. There will not be a final exam (ignore any conflicts you have with final exams). We will have a final critique during RRR week (date and time TBD). You must attend the final critique. Please try to attend all the lectures, including the first one. Enrollment will use the standard policy for computer science upper division courses and will not use a separate application process. We will take people off the waitlist in waitlist order.

During the first half of the semester class time will be used for lectures and workshops focusing on core HCI techniques and material, leading to a midterm exam. During the second half of the semester, students will break into smaller groups (~4 students). Within these smaller teams, students will work on a larger scale design project using the three hours of class time as work sessions, critique time, and for direct interaction with faculty and teaching staff. Students will be expected to attend these studios. A final project critique and public showcase on Dec. 6-7 (exact time TBD) will replace a final exam. Attendance at the final project presentation is mandatory—block that out in your schedule.

Note that the much of the work in this course is conducted in the form of a group project during the second half of the semester. Unlike other courses, dropping the course before the end of the semester has negative consequences for your other group members. Once you have joined a group please make sure you are committed to staying in the course.

sections :: studios

Sections will function as Studios—a consistent TA that grades your work throughout the semester and group of students to get feedback from. You will need to attend the Studio section that you are scheduled in, and project teams will form within each Studio. Transfers among sections must be approved by the teaching team.


CS160 is an upper division course, and one of few where you will work extensively on one significant programming project. To participate fully in this course, you are required to have taken CS61B or have equivalent knowledge as noted in the Berkeley CS Course Page. We will assume that you are familiar with Java and are comfortable coding a large-scale project. While you can choose to code in any platform that you and your team agree, we will only be providing training and technical support for the Facebook APIs.

texts and readings

There is no textbook for the course. Online readings will be available before each class. You are expected to read the assigned readings and post a substantive reading response before class. Late comments will NOT be given credit. There will be plenty of opportunities in class and in the assignments to apply that knowledge and in-class participation will be part of your grade.


There will be both individual assignments and project assignments. Individual assignments (including some programming assignments) will be done by each student; their main goal is to teach you the skills needed to successfully execute on your project. Project assignments will be done in groups. You will be expected to turn in written documentation at each stage of your project. You will also turn in working code. Each group member must participate in giving an oral presentation about your project. Most assignments will be turned in online through bCourses.


You are encouraged to attend all of the lectures and a weekly discussion section. We expect to do many in-class, group activities which cannot be made up if you miss class.  Furthermore, class and section attendance is part of the class participation grade. Feel free to contact the teaching staff in advance to discuss any issues that arise affecting your attendance. There are several mandatory class sessions identified in the syllabus: Midterm, grading sessions in class, final critique during RRR week (date and time TBD), and Final Presentation that is part of the Berkeley Design Showcase (Dec. 6-7). We may identify other required attendance dates in advance.  Please plan accordingly and do not miss these classes. Due to the size of the class, we won’t be “catching up” students on missed assignments or details. It is your responsibility to obtain that information from fellow classmates.


Cheating is not acceptable. All incidents will incur penalties in the course and will be reported to the Center for Student Conduct. Please take time to view the UC Berkeley Student Code of Conduct and the UC Berkeley Honor Code. Forms of cheating include distributing or posting assignments or midterm questions outside of the class, or using such materials. Other forms of violation are described here. You will also need to work directly with potential users to evaluate your ideas. You must deal with these potential users professionally and respectfully. We will cover this is lecture, but make sure you let them know what to expect in terms of activities to do and time required (and allow them to opt out during the process), respect their time, and respect their privacy regarding any information that they share with you.


The lectures, format and syllabus of this class are based on HCI classes taught by Eric Paulos, Bjoern Hartmann, Andy Carle, Jodi Forlizzi, John Zimmerman, Haakon Faste, Ben Bederson, Maneesh Agrawala, Scott Klemmer, Francois Guimbretiere, Marti Hearst, Michael Bernstein, and James Landay. These authors have kindly provided access to their lecture slides and my own slides borrow from their earlier work.