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.


  • 25% Individual and Small Group Programming & Design Assignments
  • 20% Midterm
  • 40% Final Group Project
  • 15% Class Participation (Attendance, Reading Responses, Class Participation, bCourses interaction)

There will be required reading responses, individual programming and design assignments and a midterm, but much of the grade comes from the final design project. This is a design class with an emphasis on identifying and satisfying users’ needs. Unlike most CS classes there is not a single “correct” solution, and you will have to make trade-offs. In this class you will learn to both design new interfaces and evaluate the pros and cons of the interfaces you design. As you complete the assignments for this class you should try to point out both the pros and the cons of the interfaces and applications you design and the choices you made.

Design is typically evaluated in a qualitative manner. As a result a significant portion of the grading in this class will be qualitative, including assessments of the end user experience of the system and the quality of your designs, evaluations, and prototypes. Evaluation feedback will be given by course staff, outside experts, and your peers. It will be important for you to communicate your goals and choices effectively in written and oral presentation within the page limits and time allowed.

Each group is responsible for making sure that all members are participating. As part of the project reports, you are required to describe the effort put in by each member, both on specific tasks and as a fraction of the group’s effort. Make sure you discuss this regularly, to make sure your group is in agreement about the work breakdown. Effective group work (which entails some amount of conflict resolution) is a key skill for success in industry. We would like you to work through conflicts if at all possible, and we will devote some class time to this topic. Your project assignments include self-reports of effort by all team members. It’s very important that team members contribute equally. If issues arise around group work, please contact the staff promptly.

late policy

Group project assignments may not be turned in late, as we want to give quick and timely feedback, and you should be able to work together as a group to turn in assignments on time. Individual project and design assignments will lose points as follows:

  • 1 min — 24 hours: -10% (weekends count)
  • 24 hours — 48 hours: -20%
  • 48 hours — 72 hours: -40%

Assignments submitted more than 72 hours late will not be accepted. This does not apply to reading responses; there is a zero-tolerance for late reading responses.

regrading policy

As mentioned earlier, grading design projects is largely qualitative, and may give rise to disagreements. We encourage you to discuss grading concerns directly with your TA. If that cannot be resolved, you may invoke a regrade process by emailing a copy of your assignment and a written description of why you believe the grade was unsatisfactory no sooner than two days but within two weeks after receiving the grade. Submit the regrade request to John Tang’s email. An independent TA will regrade the entire assignment; this means that your grade could go up or down. Entering the regrade process means that you agree to that process.


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.