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. We will assume that you are familiar with programming and are comfortable coding a large-scale project.

You will be expected to actively participate in lectures, complete readings ahead of time, complete a number of small programming assignments, and, most importantly, participate fully in your group project.

Note that the majority of the work in this course is conducted in the form of a semester-long group project. Unlike other courses, dropping the course before the end of the semester has negative consequences for your other group members. So once you have joined a group please make sure you are committed to staying in the course.

  • You are expected to read the assigned readings and post a substantive reading response before class. You have two slip days to use on your reading responses: beyond this, late submissions will NOT be accepted, and you will receive 0 points. There will be plenty of opportunities in class to apply that knowledge and in-class participation will be part of your grade.
  • There will be two types of assignments: individual assignments and project assignments. Individual assignments are divided between programming assignments and short design exercises. The 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 will help to give an oral presentation about your project at the end of the semester.
  • There will be a midterm exam.
  • Most assignments will be turned in online through either bCourses or
  • Project assignments may not be turned in late. Individual assignments will lose 33% per day they are late.
  • 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.
  • If a group member is not participating, the entire group must meet with the teaching staff. 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.
  • If you have a question about a grade, you should meet with the GSI. You can come to the professor if the issue cannot be resolved with the GSI’s help.
  • Cheating will not be tolerated, and will get you an F in the class. Please take time to view the UC Berkeley Student Code of Conduct
  • We expect all students and teaching staff to conduct themselves according to the UC Berkeley Honor Code
  • Participation (10%) (reading responses, section, lecture, studio)
  • Peer Assessment (10%)
  • Individual Assignments (20%)
  • Midterm (20%)
  • Group Project (40%)

Attendance Policy: You are encouraged to attend all of the lectures and studio time, as well as a twice-weekly discussion section. There are several required lectures and sections such as the the midterm, the group brainstorming, group interactive prototype presentations, final presentation, etc. We will call out the required attendance dates for these and others in advance. Please plan accordingly and do not miss these classes.

Late Policy: Group project assignments may not be turned in late. Two slip days may be used on any reading responses (both on a single reading response or one on each of two responses). Individual assignments will lose 33% after the deadline and an additional 33% every 24 hours thereafter.

Regrading Policy: If you want an assignment regraded, you must submit a hardcopy 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.

Section Attendance: Section attendance is strongly encouraged and is considered in calculating your class participation grade. You are not required to attend sections, but there will be quizzes in section that contribute to your participation grade and your group must attend design review sections later in the semester. These dates will be announced and you are required to check the syllabus for that date.

Note: This is largely a design class. Unlike most other CS classes there is not always a single “correct” design solution. Usually there are many possible designs with different advantages and disadvantages. 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.

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.


My lectures, course design, and web content are merely the latest iteration in the long history of CS160. Many thanks to those who came before me and from whom I've borrowed extensively. At very least, this includes Andy Carle, Eric Paulos, Bjoern Hartmann, John Canny, Maneesh Agrawala, James Landay, and Jen Mankoff.