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.

The course will primarily use front end web development languages: HTML, CSS, and JavaScript. Students will be expected to program in these languages independently. Some sections will help teach programming in these languages, however you will be responsible for learning what you need. We will additionally use a backend, but we will provide support and skeleton code for backend programming.

Required Supplies

In lieu of a text book, you will be required to have supplies for designing and prototyping activities. Make sure you have all of the supplies on this list. Ideally, you will acquire your design supplies for the first assignment. At the latest, you will need supplies for the first wireframe assignment and studio critique.

You will also be required to register for a paid “Starter” account on codeanywhere for $3 / month for the duration of the course.


If you haven’t already, create accounts with the following web sites. You will use them for communicating with peers and course staff, for doing work, and for submitting your projects.

Site Purpose Description
Piazza Questions and Announcements Make sure you are enrolled in Piazza, and are receiving notifications. We will use Piazza for answering questions, and for all time-sensitive announcements.
Pinterest Design Archive You will document your projects on our Pinterest course page. This will let us have a shared archive of everyone’s designs that everyone can view.
bCourses Assignment Submissions You will submit links to your projects and receive grades through bCourses. Note that we will NOT use bCourses for announcements; make sure you are subscribed to Piazza.
GitHub Project Code You will create your project code respositories through our course Github page. This lets us distribute starter code, and keeps all the projects in the same place.
Codeanywhere Pair Programming and Project Hosting You will import your code from github into this online environment that supports pair programming for group assignments, and hosts publicly viewable versions of your apps.


You must attend all mandatory lectures. These lectures will be marked on the syllabus, and your attendance will factor into your participation grade. However, everything that we say in class may be included in any assessment, and may be difficult to obtain through other channels, so we recommend attending all lectures. Attendance at studios is also mandatory. Your attendance will factor into your participation grade.

Sections are not required, but we anticipate in many cases they will be extremely useful to your success in the course and beyond. Make sure you do not have conflicts with your assigned section so you can get timely help preparing for assignments and practicing skills.

Excused Absences

Given the above policies, you are required to only attend a subset of lectures, and can use dropped quizzes and slip days for graded assignments. Beyond that, you are required to be at all studios and mandatory lectures. We will only grant exceptions in cases of medical or family emergencies, and will handle these on a case by case basis. If you have unavoidable conflicts, you MUST inform the instructors at the beginning of the semester.

Grading Policy

Final grades will be determined with the following breakdown:

30% Weekly projects: The weekly projects each consist of 3-6 Design Cycle Checkpoints. 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% Participation: Your participation grade is determined based on your attendance, preparation, and participation in class and studio, and the feedback you provide on your peers’ designs. Studio takes place on Thursdays for the first 5 weeks of class, and you will provide feedback on peers’ designs every Tuesday.

20% Assessments: Every week for the first 6 weeks, there will be an in-class, 10-minute quiz. The quiz will be multiple choice and short answer, and will cover lecture material, readings from any prior week, and readings from the upcoming week. There is no final exam.

Check Scale

All prototypes, reports, and videos must adhere to the guidelines for successful submissions.

Label Points Description
✓++ 20/20 Reserved for design awards (top 4 submissions)
✓+ 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.
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.
✓- 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).
X 0/20 Unsatisfactory: No submission, or missing substantial assignment components. Does not represent engagement with the design cycle.

Late Policies

Project slip days

You have 3 slip days. Slip days can be used on specific assignment checkpoints, such as the final iteration. However, certain checkpoints cannot use slip days, since later checkpoints will depend on the timely completion of these checkpoints, for example peer feedback or iterative design. Whether or not you can use a slip day will be clearly marked in the deliverables for each checkpoint. Late submissions of checkpoints that do not allow slip days will not be graded and will receive no credit.

Any delay in submission after the deadline will use a slip day. There is no grace period.

Dropping a quiz grade

We will drop your lowest quiz grade. You are required to attend all quizzes. However, if you need to miss a single quiz, that quiz will receive a 0 but can be dropped as your lowest score.

Group Work

When you work in pairs and groups, each group is responsible for making sure that all members are participating. After each project, you will be asked to describe the effort put in by each member of the group, 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.

Etiquette for Dropping the Course

The majority of the work in this course is conducted in pairs and groups. Dropping the course in the middle of a project will have negative consequences for your peers. If you drop the course, do so only after seeing through your current project. Please commit to the course by the time you are assigned to your final project group.

Attribution and Cheating

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.

We’ll be evaluating your design work as exercises in value creation. Therefore, if the main interesting parts of your project are merely copies of what you’ve seen elsewhere, this will be reflected in your grade.

For the implementation portions of weekly projects, write your own code. It’s important to us that each of you know how to assemble user interfaces on your own so you can be productive contributors to your group. As such, you may speak with other students about their assignments, and can see parts of their code, but no copy and paste is tolerated. Cite any resources from which you borrow source code or algorithmic ideas to your project, including Stack Overflow and external GitHub projects, as a comment adjacent to the code with a URL to the source and a description of what you reused.

Any out-sourcing to services like Upwork or Mechanical Turk will be considered someone else’s work and hence cheating.


Cheating and plagiarism will not be tolerated, and will get you an F in the class. Please familiarize yourself with the UC Berkeley Student Code of Conduct. We expect all students and teaching staff to conduct themselves according to the UC Berkeley Honor Code.


I have a question, how do 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.

Are there 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. At the latest, you will need supplies for the first wireframe assignment and studio critique.

What can I talk about in office hours?

We will hold many office hours each week. Keep in mind they may be quite busy the day before challenging assignments are due. We highly encourage everyone to make use of office hours; examples of topics that can be covered include design critique of in progress work, debugging assistance, life advice, conceptual brushups of course topics, etc.