Important Dates

First Day of Class
Attendance is mandatory. You will be dropped from the course if you do not attend.
June 19, 2017 @ 10:30PM
First Section
Attendance is required.
June 19, 2017 @ 1 || 2 PM.
Fourth of July
No Classes
July 4, 2017
Drop Deadline (Summer Session C) July 15, 2017
Attendance is required.
Attendance is required.
July 26, 10:00-12pm, Jacobs 310
Final Presentations
Attendance is required.
August 10, 10:00-12pm, Jacobs 310
Public Design Showcase (Poster Session)
Attendance is optional.
August 10, 4-6pm, Jacobs 310


Because of the hands-on nature of this course, we have a strict capacity limit of 64 students. The course is open to undergraduate students in all disciplines and requires previous programming experience at the CS61B level. This course may be used to fulfill College of Engineering undergraduate technical elective requirements.

Course Credit


You must be an undergraduate to enroll in CS160. This course can only be taken for a letter grade for 4 units. Please note that the drop deadline for the course is 15 July 2017. If you are unable or no longer wish to take the course, please make sure to drop the course so that other students on the waitlist can gain entry into the class.


Your attendance is required for Thursday studios and the final three weeks of the course.

Excessive absences will result in a grade penalty.

Class starts at 10:40AM. Arriving late is disruptive and disrespectful to your teacher and your classmates. If you miss material, it is your responsibility to find out what you missed and make it up.

Assignments and Grading Policy

Cheating, Collaboration, and Design Appropriation

Good artists copy; great artists steal.
Pablo Picasso

Collaboration is strongly encouraged at the design phase of every project. As a rule of thumb, your designs should differ from your inspiration by 30% and you should cite your inspirations.

Implementation should be done independently. Infractions of this policy will result in possible dismissal from UC Berkeley.

Frequently Asked Questions

How do I get into the class? This is my last chance to take it/need it to graduate/ only opportunity…

The summer course has a strict capacity of 64 students. CS160 is offered in the Fall and Spring and takes up to 200 students each. Because of the demand for the course during the Summer, we cannot make blanket exceptions to enrollment. At this point, enrollment has been locked. As spots open up from attrition during the first week of class, students on the waitlist will be offered the available spot. To be considered, you MUST be present the first day of class and fill out the enrollment survey (link to be given out during class). We will take into consideration your position on the waitlist, graduation requirements, and previous experience with associated course materials and technologies.

What it the technology focus for the course?

previous offerings of the course, we have had Android Wear, Amazon Echo, and Tablet development as our technology focus. Due to the accelerated schedule, the Summer offering will have an open-ended form-factor (desktop, tablet, mobile) and we will be utilizing the web development stack focusing on WebAPIs for interfacing with devices. Ruby on Rails will be our official backend framework. We will be using the Cloud9 development environment.

I am more familiar with node.js, Android, IoS programming. Can I use that instead?

recommend against it. We will be supporting HTML/CSS/JS development. Most assignments will have some skeleton code that will help overcome many implementation challenges.

Do I have the background to be successful in this course?

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 object-oriented programming and are comfortable coding a large-scale project.

What's the amount of time involved in the class?

Officially, the course includes 6 hours of instructor presentation of course materials per week, 16 hours of outside work hours per week, and 2 hours of the exchange of opinions or questions on course material per week. In contrast to most of the other CS classes at Berkeley, CS160 does not primarily focus on particular algorithmic techniques or computer technologies. Instead, the focus of the course is on developing a broad set of skills needed for user-centered design. These skills include ideation, needs assessment, communication, rapid prototyping, algorithmic implementation and evaluation. Many of these skills have components that cannot be done "the night before". During the Summer when a 16-week course is compressed into 8 weeks, it is especially important to allocate time throughout the week to focus on class materials and assignments. The final project will require a considerable effort during the last three weeks of class. Pay extra attention to the deliverables for the final project and make steady progress for each.

Do I have to go to studios?

Yes. Attendance at studios is mandatory.

Can I miss the final presentations?

No, attendance is mandatory.

Can I have an extension? I have a lot of work in other classes, I'll be out of town, I'm generally overwhelmed…

Please plan accordingly and do not overcommit in your Summer schedule. Since the course is compressed, we will not offer extensions since it will greatly affect your ability to complete the following week's assignment. You are allowed 96 slip hours on Cycle III portions of practicum assignments. It is our recommendation that you use no more than 24 slip hours per assignment lest risk falling behind.

When do we form groups?

Final group project teams will be assigned after the Midterm. We will send out a class survey that will help us assemble teams with an equal balance of skills and shared topic interest.

One or more of my teammates aren't pulling their weight...

Share your concerns with teaching staff early in person or via Piazza. Each situation is unique, but from experience, communication is key to a successful group experience. Address the issue early on and treat defusing the problem as a valuable skill to gain since you will likely run into these issues outside of the classroom.

I have a question that's not answered here. How do I contact the teaching staff?

If you have a technical question about your homework or project, please ask the class first through Piazza. For personal class-related issues, use the private messaging feature on Piazza. Piazza is the best way to reach us and ensure you receive a response. Please refrain from sending emails.

I need to access an instructional computer!

To get a computer account for this course, go to WebAcct.