Main Page

From UCB CS160 Fall 2013
Jump to: navigation, search

CS 160 is an introduction to Human Computer Interaction (HCI). You will learn to prototype, evaluate, and design a user interface. You will be expected to work within a group of four or five students in this project-based course. The project topic will be proposed by your group, and your implementation will be tailored to your users’ needs based on interviews with them.

In contrast to most of the other CS classes at Berkeley, CS160 does not focus on particular algorithmic techniques or computer technologies. Instead, you will make use of technology to develop your applications, and you will acquire some expertise in the development environment you choose. 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.

Project Theme: This semester, projects will focus on mobile applications. Mobile applications present unique opportunities (e.g., sensors, camera) and challenges (e.g., text input). Your team will be developing applications using the Google Android SDK. We will have a number of Android phones and tablet devices available that you can borrow for the semester (one per team). You can also use your own personal Android device for development.



  • Please check the CS160 Piazza for more active announcements and course discussions
  • First Day of Class: Friday 30 August
  • Please attend this class if you are on the wait list
  • Section will be held this first day (30 Aug)
  • Final decisions concerning enrollment will be made by 4 Sept. You must fill out the Course Petition (closed)



F 30 Aug: Introduction

No Readings | Slides
Overflow: After 306 Soda fills up, please go to our overflow room, 380 Soda.
Assignment due by 11:59pm on Fri 30 Aug: Course Petition (closed)
Assignment: Create Wiki Profile (due before class on Fri 06 Sep)
Assignment: Reading Response (due before class on Wed 04 Sep)
Assignment: Individual Design Exercise (due before class on 09 Sep)
Assignment: Individual Programming Assignment 1 (due by 11:59pm on 11 Sep)

F 29 Aug: Section 1: Installing the Android SDK.

Discussion Slides



W 04 Sep: The Design Cycle

Readings | Submit Response | Slides

F 06 Sep: Brainstorming and Critique

Readings | Submit Response | Slides

F 06 Sep: Section 2: Understanding the Android SDK

Discussion Slides


M 09 Sep: Sketching

Readings | Submit Response | Slides
Assignment Due before class: Individual Design Exercise

W 11 Sep: Storyboards, Scenarios, and Personas

Readings | Submit Response | Slides
Assignment Due by 11:59pm: Individual Programming Assignment 1

F 13 Sep: In Class Brainstorm

Readings | Submit Response | No Slides
Meet in 306 Soda; then move to brainstorming rooms: 380 Soda, 373 Soda, 511 Soda, and 5th floor atrium Soda.
Assignment: Group Brainstorm (due before class on 23 Sep)

F 13 Sep: Section 3: Android SDK Part II

Discussion Slides
Example Code for Drawing App


M 16 Sep: Task Analysis

No Readings | Slides
Assignment: Individual Programming Assignment 2 (due by midnight on 27 Sep)

W 18 Sep: Contextual Inquiry and Affordance

No Readings | Slides

F 20 Sep: Conceptual Models 1

Readings | Submit Response | Slides

F 20 Sep: Section 4: Direct Manipulation Review


M 23 Sep: Conceptual Models 2

No Readings | Slides
Assignment due before class Group Brainstorm
Assignment Sign up to present your group brainstorm (due before section on 27 Sept)

W 25 Sep: Heuristic Evaluation

Readings | Submit Response | Slides
Assignment: Individual Heuristic Evaluation (due midnight on 02 Oct)

F 27 Sep: Modes and Metaphors

Readings | Submit Response | Slides
Assignment due at midnight Individual Programming Assignment 2
Assignment: Contextual Inquiry, Task Analysis, Competitive Analysis (due midnight on 14 Oct)

F 27 Sep: Section 5: Review Heuristic Evaluation and Human Models

Sign up to present your group brainstorm
Discussion Slides


M 30 Sep: Human Models

Readings | Submit Response | Slides

W 02 Oct: Input Devices and Input Models

Readings | Submit Response | Slides
Assignment due before class Individual Heuristic Evaluation

F 04 Oct: Prototyping 1

Readings | Submit Response | Submit Response | Slides

F 04 Oct: Section 6: Working with Web Services and APIs Slides


M 07 Oct: Prototyping 2

Readings | Submit Response | Slides
Assignment: Individual Programing Assignment 3 (due Before CLASS on 28 Oct)

W 09 Oct: Video Sketching

No Readings | Slides
Assignment: Mid-Semester Feedback (due before class 11 Oct)
Assignment: Loaner Device Survey (due before class 14 Oct)
Assignment: Low-Fidelity Prototype Video (due 18 Oct)

F 11 Oct: Engineering Interfaces

Assignment due: Mid-Semester Feedback
No Readings | Slides

F 11 Oct: Section 7: Prototyping Challenge " Section 7: Slides"


M 14 Oct: Usability Testing

Readings | Submit Response | Slides
Assignment due at 11:59 Contextual Inquiry, Task Analysis, Competitive Analysis

W 16 Oct: Data Analysis

Readings | Submit Response | Slides

F 18 Oct: Midterm Review

No Readings | Slides
Assignment due 11:59 Low-Fidelity Prototype Video
Assignment: Team Assessment 1 (due 21 Oct)

F 18 Oct: Section 8: Midterm Review


M 21 Oct: No Class - Study for Midterm

Assignment due: Team Assessment 1

W 23 Oct: Midterm

In class
Closed notes and book

F 25 Oct: Graphic Design

Readings | No Response | Slides
Assignment: Interactive Prototype (due 04 Nov)

F 25 Oct: Section 9 : Android Help Slides (PDF)


M 28 Oct: Visual Information Design

Readings | Submit Response | Slides
Assignment due BEFORE CLASS Individual Programing Assignment 3

W 30 Oct: Guest Lecture: Ted Selker | Slides

F 01 Nov: How to Pitch

No Readings | Slides

F 01 Nov: File:Section10-visualredesign.pdf


M 04 Nov: Interactive Prototype Presentations 1

W 06 Nov: Interactive Prototype Presentations 2

F 08 Nov: Interactive Prototype Presentations 3

F 08 Nov: Section 11: Design Review 1



W 13 Nov: Collaboration and Social Software

Readings | Submit Response | Slides
Assignment: Android Prototype (due 25 Nov)

F 15 Nov: Collaboration and Social Software

No readings | No response | Slides

F 15 Nov: Section 12: Server-side setup for mobile social apps | Slides

Slides for CSCW


M 18 Nov: Design Research

Readings | No Response | Slides

W 20 Nov: Urban Computing

Readings | Submit Response | Slides

F 22 Nov: Sketching in Hardware

Readings | Submit Response | Slides

F 22 Nov: Section 13: Design Review 2


M 25 Nov: Guest Lecture Haakon Faste | Slides

Assignment due: Android Prototype
Assignment: Team Assessment 2 (due 02 Dec)

W 27 Nov: No Class


F 29 Nov: No Section


M 02 Dec: Historical Perspectives | Slides A and Slides B

Assignment due: Team Assessment 2

W 04 Dec: Future Research Trends | Slides

F 06 Dec: Course Summary and Preparing your Final Presentation | Slides

F 06 Dec: Section 15: Producing Your Final Deliverables | Slides


M 09 Dec: Practice Presentations : 11:00 - 2:00 in the 306 Soda

W 11 Dec: Final Presentations : 9:00 - 11:15 and 11:00 - 1:30 in the Woz - EVERYONE MUST BE IN ATTENDANCE 11:00-11:15

F 13 Dec: Final Deliverables: Code, Video, and All Materials due (11:59pm)

Sunday 15 Dec: Final Team Assessment (11:59pm)

W 18 Dec: Return all borrowed hardware to GSI's



Teaching Staff:


  • For all technical questions, use the CS160 Piazza Q&A Site.
  • For private questions, send a private message on Piazza.

Please avoid emailing the Instructors or the GSI directly. You will receive a response much faster if you use Piazza.
You may also choose to send Piazza messages anonymously.


  • Lectures: 306 Soda Hall MWF 11am-12noon
  • Discussion Sections: Fri 1-2pm, 2-3pm, 3-4pm, 4-5pm, 405 Soda

Office Hours:

  • Eric Paulos: Thursday 10-11am and by appointment, 464 Sutardja Dai Hall
  • Valkyrie: Thursday 2-3pm, 141 SDH (Invention Lab)
  • Eric Xiao: Tuesday 2-3pm, 611 Soda

Textbook: There is no required textbook for this class. There will be readings assigned for each lecture. The readings will be available online through this wiki.


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 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. 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. Late comments on the wiki 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 assignments and project assignments. Programming assignments will be 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. Each group member will help to give an oral presentation about your project.
  • There will be a midterm exam.
  • Most assignments will be turned in through this class wiki. Most project assignments will be due before the start of the lecture during which they are due. Design assignments will be due at the beginning of the week.
  • Project assignments may not be turned in late. Programming 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 be 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


  • Class participation (10%)
  • Individual programming & design assignments (25%)
  • Midterm (25%)
  • Project assignments (40%)

Late Policy: Group project assignments may not be turned in late. Individual project and design assignments will lose 33% per 24 hours they are late. If you turn in an assignment late on the wiki, please mark is as (LATE) and add it to the bottom of the submission list so we don't forget to grade it.

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. Submit the regrade request to Professor Paulos office, 464 Sutardja Dai Hall. Staff will regrade the entire assignment; this means that your grade may potentially drop.

Section Attendance: Section attendance is strongly encouraged and is considered in the class participation grade. You are not required to attend Android sections. However, your group must be present for design review sections later on in the semester.

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.


The majority of the homework in this class will be oriented around the project. Many of these homework assignments will be done in with your project group, but some assignments (or parts of assignments) must be completed individually. We provide a rough schedule of the assignments here (the schedule may change over the course of the semester and we may choose to add or drop assignments).

How to use and edit this wiki

New to wikis? Read the Wiki editing guide.

To contribute to this wiki, you'll need to first create an account by signing in with CalNet (The login link is the upper right hand corner). Afterwards, please add some descriptive information about yourself on your personal page -- click your login name (next to the person icon) at the top of the page to access your personal page.


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, 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.

Personal tools