Requirements

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 Java, Python, object oriented programming, working with various IDEs and APIs, and are comfortable coding a large-scale project.

Fall 2020 will be a unique offering as we will be under various additional new challanges around safe distancing as a result of continuied health concers around COVID-19. We will be aiming accommodate around 120 students (it may be slightly more or less depending on several factors). It will be held M+W 10:30am–noon. There will be sections as well once a week. There may 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 on syllabus). You must participate during the scheduled final critique date and time.

Once enrolled, 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. The teaching staff will promptly return graded homework to you, and will be available to provide feedback and help with problems.

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. A sample of the grading and samples can be found here. Late comments will NOT be accepted. 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: programming/design assignments and project assignments. Programming/design assignments will be mostly individual exercises; 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.

There may be a midterm exam.

Most assignments will be turned in online through bCourses.

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.

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 as well as the campus principles of community, and the university standards for academic integrity

This lectures, format and syllabus of this class are based on HCI classes taught by Bjoern Hartmann, Jodi Forlizzi, John Zimmerman, Haakon Faste, Ben Bederson, John Canny, Maneesh Agrawala, Scott Klemmer, Francois Guimbretiere, Marti Hearst, and James Landay. These authors have kindly provided access to their lecture slides and my own slides borrow from their earlier work.

All material on this website including course material Creative Commons License is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Creative Commons License