Enrollment and Credit

Enrollment of this course is limited to 96 students due to the quantity of feedback and hands-on work required. CS 160 is open to students of all backgrounds who have programming experience at the CS 61B level. We will assume that you are comfortable coding a large-scale project. This class can be taken for 4 units of course credit, and it can be used to satisfy College of Engineering undergraduate technical elective requirements. Auditors are welcome to sit in on lectures and sections, but they can not receive feedback on course work (e.g., assessments, projects) or participate in studio due resource constraints.


The lectures for this course will not be recorded, and the class features extensive in-class work. We encourage attendance at all lectures, but attendance is required for studios (Thursdays), the midterm, and the final presentation. During the last three weeks of the course, final project studio will take place during lecture time. Attendance during the last three weeks will factor into the teamwork and participation grade for the final project.


Final grades will be determined with the following breakdown:

  • 30% Weekly projects: The weekly projects each consist of 3 checkpoints (Cycle I, Cycle II, and Cycle III). Each checkpoint will be graded independently on a check scale (described below).

  • 30% Final project: Final projects take place during the last three weeks of class in assigned groups of 4-6. For grading, we will take into account several aspects of the final project process: teamwork and participation, design checkpoints, observation/needfinding, evaluation, implementation, and deliverables (e.g., presentation, poster, article).

  • 20% Studio: Studio will take place on Thursdays for the first 5 weeks of class. Studio grading will be based on attendance and preparation (e.g., bringing in your design to critique), and participation (e.g., critiquing other student's design). Revision based on studio critique will be turned in during Cycle II for each weekly project.

  • 20% Assessments

Check scale
Label Points Description
checkplusplus 20/20 Reserved for design awards (top 3 submissions)
checkplus 19/20 Exceeds expectations: The assignment is complete and some elements exceed expectations. Shows strong engagement with the design cycle through clear improvements. Presentation impeccable.
check 17/20 Satisfactory completion of the assignment: The assignment is complete and fulfills expectations. Student engaged with the design cycle, though some issues remain. Presentation understandable.
checkminus 15/20 Needs improvement: Some components of the assignment are incomplete. Some engagement with the design cycle, but many issues remain. Presentation may fall short (e.g., poor scans, incomplete descriptions).
minus 0/20 Unsatisfactory: No submission, or missing substantial assignment components. Does not represent engagement with the design cycle.
Late Work

Each weekly project consists of 3 checkpoints (Cycle I, Cycle II, and Cycle III). Late work will not be accepted for Cycle I and Cycle II (!) because the cycles within a project build off of one another. But, we will drop the lowest cycle score. For Cycle III, we have a policy of slip hours. Students will have 96 slip hours to use over the course of the semester. After these slip hours have been used, students will receive a 0 for work (save them for emergencies!). Extensions will not be granted due to the fast pace of the class, so plan accordingly.


To get into this class: attend the first lecture, attend the first section, and fill out the course entry survey. We will determine course admission based on prior experience (e.g., other upper division courses, experience with technologies or design software), external commitments, need, and interest.

Hours and Workload

Due to the compressed summer format, CS 160 is very time consuming. Per the course catalog, we expect students to commit 6 hours of "instructor presentation of course materials per week" (i.e. lecture), 2 hours of the "exchange of opinions or questions on course material per week" (i.e. section), and 16 hours of outside work per week.

Cheating policy

Cheating and plagiarism 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.

Citing sources

For the design portion of weekly projects (typically cycles I/II) we encourage you to draw inspiration from existing work and seek feedback on your designs. Be sure to cite your inspiration sources and feedback partners. When drawing inspiration from existing designs, focus on elements you want to incorporate (e.g., bold colors, low contrast, sharp corners) rather than copying the design as a whole. One rule of thumb is that your design should differ significantly (>30%) from existing examples.

For the implementation portions of weekly projects, you must work independently. Cite resources that contributed significantly to your project (e.g., a comprehensive tutorial).


Some quick answers to frequently asked questions:

What do I need to know before taking this class?

You will work on significant programming projects during CS160. To get the most out of the class, you are required to have taken CS61B or have equivalent programming experience. The more programming experience you have, the more you can focus on the user-centered design concepts which are the focus of the course.

What language will we use for the course?

The course will primarily use front end web development languages: HTML, CSS, and JavaScript. Students will be expected to program in these languages independently. Sections will help teach programming in these languages, while lecture will focus on core concepts. We will additionally use a backend, but we will provide support and skeleton code for backend programming.

Is the class project based? Do I need to find a group?

During the first 5 weeks of class, you will complete 5 small weekly projects, usually split ~2/3 design and ~1/3 programming. The first two projects will be completed individually, and the subsequent three in pairs. We'll likely let you choose a partner the first time, and assign for the second two. There is one final group project during the last 3 weeks of class. You will work with an assigned group of 4-6 people (we'll take into account things like preference from prior pairs, and your complementary strengths).

Is a textbook required for the course?

No, there is no required textbook. Required readings will be linked online or distributed using bCourses. Earlier this Spring, the course schedule for CS160 mistakenly listed the CS61C (!) textbooks. If you purchased these textbooks and you are unable to return them, please let us know.

Any required supplies?

Yes. In lieu of a text book, we will require supplies for design and prototyping tasks. The supply list lives here. Ideally, you will acquire your design supplies for the first assignment (due 6/19, Tuesday EOD). At the latest, you will need supplies for the first wireframe assignment (assigned 6/20, Wednesday) and studio critique (occurs 6/21, Thursday).

I have a different question, how should I contact the teaching staff?

Please use Piazza for all course-related questions. If you have a technical or logistical question about an assignment, please use the class messaging feature on Piazza. If you have a personal issue pertaining to the course, you may use the private messaging feature on Piazza to message staff. Piazza lets us organize and efficiently respond to questions. Please refrain from sending emails.