Main Page

From CS160 User Interfaces Fa06

Jump to: navigation, search

Welcome to the CS 160: User Interfaces Wiki.

Image:prototype2.png Image:humaninfoprocessor.png Image:PAPER_anoto_bluetooth.png

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 with a group of three or four other students in this project-based course. The project topic will be proposed individually by you, and your topic will be used to assign you to a group. Your final project should 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 should be targeted towards pen-and-paper-based interactions. The Anoto digital pen is a recent technology for capturing pen strokes as they are drawn on paper and converting them into a digital format. Thus, these pens provide a bridge between the physical world of ink and paper, and the digital world of the computer. Each group will later be given an Anoto pen system for the duration of the semester and groups will required to implement their project on the Anoto system.




Get readings and post your comments to the discussion page for lecture. (follow link from lecture title)

Aug 28: Introduction [ Readings | Slides ]

Assignments (due Aug 30): Create a Wiki Account, Course Petition

Aug 30: The Design Cycle and Brainstorming [ Readings | Slides ]

Due: Create a Wiki Account, Course Petition
Assignment (due before class on Sep 11): Individual Project Proposal

Sep 4: Labor Day - No Class

Sep 6: The Affordances of Pens and Paper [ Readings | Slides ]

Sep 11: Conceptual Models I [ Readings | Slides ]

Due (before class): Individual Project Proposal
Assignment (due before class on Sep 18): Group Brainstorm

Sep 13: In Class Group Brainstorming [ Readings | No Slides ]

Sep 18: Task Analysis and Contextual Inquiry [ Readings | Slides ]

Due (before class): Group Brainstorm
Assignment (due before class on Sep 27): Contextual Inquiry and Task Analysis

Sep 20: Conceptual Models II [ Readings | Slides ]

Sep 25: Sketching and Storyboarding [ Readings | Slides ]

Sep 27: Low-Fidelity Prototyping [ Readings | Slides ]

Due (before class): Contextual Inquiry and Task Analysis
Assignment (due before class on Oct 11): Low-Fidelity Prototype

Oct 2: Human Information Processing (Perception) [ Readings | Slides ]

Oct 4: The R3 Paper Application Toolkit (Guest lecture from Ron Yeh) [ Readings |Slides (pdf) ]

Assignment (due on Oct 18): Hello World Map

Oct 9: Human Information Processing (KLM, GOMS, Fitts' Law) [ Readings | Slides ]

Oct 11: GOMS, KLM and Midterm Review [ No Readings | Slides ]

Due (before class): Low-Fidelity Prototype
Assignment (due on Oct 30): Interactive Prototype

Oct 16: Midterm Exam

Oct 18: In Class Project Work

Due (before class): Hello World Map

Oct 23: Model View Controller and Event Driven UI [ Readings | Slides ]

Oct 25: Qualitative Evaluation [ Readings | Slides ]

Oct 30: Interactive Prototype Presentations [ Schedule ]

Due: Interactive Prototype
Assignment (due before class on Nov 6): Team Assessment
Assignment (due before class on Nov 13): Pilot Usability Study

Nov 1: Interactive Prototype Presentations [ Schedule ]

Nov 6: Quantitative Evaluation [ Readings | Slides ]

Due (before class): Team Assessment

Nov 8: Graphic Design and Gestalt Principles [ Readings | Slides ]

Nov 13: Visual Information Design [ Readings | Slides ]

Due (before class): Pilot Usability Study
Assignment (due before class on Nov 27): Final Presentation and Report

Nov 15: Historical Perspective [ Readings | Slides ]

Nov 20: Getting a Grip on Ubiquitous Computing Through Prototyping (Guest lecture from Scott Klemmer) [ Readings ]

Nov 22: Activity Monitoring and Mobile Interfaces (Guest lecture from Ryan Aipperspach and Jingtao Wang) [ Readings | Slides ]

Nov 27: Final Project Presentations

Due (before class): Final Presentation and Report

Nov 29: Final Project Presentations

Dec 4: Poster Session - 12:30-2:30pm 6th Floor Hallway of Soda Hall

Dec 6: Course Summary [ No Readings | Slides ]

Due (before class): Final Team Assessment

Dec 15 (5-8pm) in 277 Cory: Final Exam



Instructor: Maneesh Agrawala

Teaching Assistants: David Sun and Jerry Yu

Email (for all class related issues): cs160(at)

  • Please avoid emailing the TAs and the Instructor directly. You are likely to receive a reponse much faster if you use this email address.
  • You may also choose to email us anonymously.


  • Lectures: 306 Soda Hall MW 1:00-2:30pm
  • Discussion Sections: T 11:00-12:00pm 320 Soda, T 2:00-3:00pm 320 Soda, T 5:00-6:00pm 310 Soda

Office Hours:

  • Maneesh: 615 Soda Hall, W 2:30-4pm, F 5-6pm, and by appointment
  • David: Brewed Awakening (Euclid Ave.) F 11:00-1:00pm, and by appointment (AIM: cs160ds)
  • Jerry: 330 Soda Hall, M 11:30-12:30pm, and by appointment (AIM: cs160jerry)

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. If you are interested in reading further take a look at the recommended reading list.


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. We will assume that you are familiar with either Java or C++ and are comfortable coding a large-scale project.

You will be expected to actively participate in lectures, complete readings ahead of time, 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.

  • You are expected to read the assigned readings and post 1 substantive comment to the discussion on this wiki on each reading before class. There will be plenty of opportunities in class to apply that knowledge and in-class participation will be part of your grade.
  • You will be expected to turn in written documentation at each stage of your group project. You will also turn in working code. Each group member will help to give an oral presentation about your project.
  • There will be two exams (a midterm and a final).
  • Most assignments should will be turned in thorugh this class wiki. Most assignments will be due before the start of the lecture during which they are due.
  • Group assignments may not be turned in late. Individual assignments will lose 20% 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 one of the TAs. You can come to the professor if the issue cannot be resolved with the TA's help.
  • Cheating will not be tolerated, and will get you an F in the class.


  • Class participation (15%)
  • Individual assignments (15%)
  • Group project (40%)
  • Midterm (15%)
  • Final (15%)

Late Policy: Group assignments may not be turned in late. Individual assignments will lose 20% per 24 hours they are late.

Note: This is largely a design class. Unlike most other CS classes there is not always a single "correct" design soution. Usually there are many possible designs with different advantages and disadvantages. In this class you will learn to both design new interfaces and evalaute 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.

Assignments and Project

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. Please use your full name as your user name as in this example. 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.

To facilitate discussion we have created the [add comment] button that appears at the bottom of each page. Clicking on the button will allow you to add a comments, ideas or question to the current page. The comments will include your user name and the date in the section heading. Try adding a comment to the discussion page for a lecture.


This lectures, format and syllabus of this class are based on HCI classes taught by Ben Bederson, John Canny, 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.

Scott Klemmer, Francois Guimbretiere, Ron Yeh and Brian Lee have provided a great deal of advice and support in developing the project theme around the Anoto digital pen.

[add comment]
Personal tools