Main Page

From CS160: User Interface Design Sp12

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 applications of Microsoft's Kinect 3D camera. The Kinect is a unique sensor that offers new opportunities and challenges in interface design. Your team will be developing applications using the Microsoft Kinect SDK. While we will provide access to a Windows-based programming environment, we encourage you to buy a personal Kinect device for this course. We may have a few Kinect devices to loan to students, but it will be easier for you to complete the assignments if you can obtain one for yourself. Note that this course does not use a textbook and the price of a Kinect is roughly equivalent to the price of a high-end textbook.



San Francisco artist and entrepreneur Scott Snibbe will present selections from twenty years of interactive exhibits, interactive art, and interactive music. He will show many examples of interactive media with technologies including computer vision, haptics, multitouch, and iPads, including recent work creating the first app album with Björk: Biophilia; and the recent interactive exhibits for James Cameron's movie Avatar. He will discuss the educational and societal benefits of interactivity; and the joys, challenges, and research involved in the creation and distribution of interactive media on the cutting edge of interactive technology.


Week 1

W Jan 18: Introduction [ Slides ]

Assignment due by midnight on Friday Jan 20: Create a Wiki Account
Assignment due by midnight on Friday Jan 20: Course Petition (5 points)
Assignment due before class on Jan 30: Individual Design Exercise
Assignment due before class on Jan 30: Individual Programming Assignment 1

Th Jan 19: Nick will be in 405 Soda from 1-3 PM to help with setting up your development environment.

F Jan 20: No class, but assignments due by midnight

Due: Create a Wiki Account
Due: Course Petition (5 points)

Week 2

M Jan 23: The Design Cycle and Brainstorming [ Slides | Readings | Submit Response (by 9am)]

W Jan 25: Sketching, Storyboarding, and Critique [ Readings | Submit Response (by 9am) ]

Natural User Interfaces (guest lecture from John Tang) [ Slides ]
Sketching and Storyboarding (guest lecture from Lora Oehlberg)

Section 1: WPF.

Week 3

M Jan 30: In Class Group Brainstorming [ Slides | Readings | Submit Response (by 9am) ]

Due: Individual Design Exercise
Due: Individual Programming Assignment 1
Assignment: due before class on Feb 06: Group Brainstorm
Assignment: due before class on Feb 13: Individual Programming Assignment 2

W Feb 1: Task Analysis and Contextual Inquiry [ Slides | Readings | Submit Response (by 9am) ]

Section 2: Kinect SDK

Week 4

M Feb 6: Conceptual Models I [ Slides | Readings | Submit Response (by 9am) ]

Due: Group Brainstorm
Assignment: due before class on Feb 22: Contextual Inquiry, Task Analysis, Competitive Analysis

W Feb 8: Conceptual Models II [ Slides | Readings | Submit Response (by 9am) ]

Section 3: Locus of Attention + Kinect SDK 1.0 Walkthrough

Week 5

M Feb 13: Human Information Processing [ Slides | Readings | Submit Response (by 9am) ]

Due: Individual Programming Assignment 2
Assignment: due before class on Feb 22: Individual Heuristic Evaluation
Assignment: due before class on Feb 27: Individual Programming Assignment 3

W Feb 15: Input Devices and Input Models [ Slides | Readings | Submit Response (by 9am) ]

Section 4: Direct Manipulation Interfaces

Week 6

M Feb 20: No Class. President's Day Holiday.

W Feb 22: Prototyping [ Slides | Readings | Submit Response (by 9am) ]

Due: Contextual Inquiry, Task Analysis, Competitive Analysis
Due: Individual Heuristic Evaluation
Assignment: due before class on Mar 5: Low-Fidelity Prototype Video

Section 5: Balsamiq

Week 7

M Feb 27: Engineering Interfaces I: Layout, Widgets and Events [ Slides | Readings | Submit Response (by 9am) ]

Due: Individual Programming Assignment 3

W Feb 29: Engineering Interfaces II: MVC, Multithreading [ Slides | Readings | Submit Response (by 9am) ]

Section 6: WPF events

Week 8

M Mar 5: Usability Testing [ Slides | Readings | Submit Response (by 9am) ]

Due: Low-Fidelity Prototype Video
Assignment: due before class on Mar 12: Low-Fidelity Test and Iteration

W Mar 7: Statistical Analysis [ Slides | Statistical Analysis | Submit Response (by 9am) ]

Section 7: Speech with Kinect

Week 9

M Mar 12: Midterm Review [ Slides | No Readings - come with questions]

Due: Low-Fidelity Test and Iteration
Assignment: due before class on Apr 9: Interactive Prototype

W Mar 14: Midterm Exam

Section 8: No section due to midterm

Week 10

M Mar 19: Graphic Design and Gestalt Principles [ Slides | Readings | Submit Response (by 9am) ]

Assignment: due by 9am on Mar 21: Midsemester Feedback
Assignment: due by 2pm on Mar 21: Individual Team Assessment I

W Mar 21: Visual Information Design [ Slides | Readings | Submit Response (by 9am) ]

Due: by 9am: Midsemester Feedback
Due: by 2pm: Individual Team Assessment I

Section 9: Midterm Post-Mortem

Week 11

M Mar 26: Spring Break - No Class

W Mar 28: Spring Break - No Class

Section 10: Spring Break - No Section

Week 12

M Apr 2: Collaboration and Social Software [ Slides | Readings | Submit Response (by 9am) ]

W Apr 4: Physical and Physiological Computing [ Slides | Readings | Submit Response (by 9am) ]

Section 11: UI Design Critiques

Week 13

M Apr 9: Interactive Prototype Presentations I [ No Slides | No Readings ]

Due: Interactive Prototype
Assignment: due before class on Apr 23: Pilot Usability Study

W Apr 11: Interactive Prototype Presentations II [ No Slides | No Readings ]

Section 12: Project feedback and assistance

Week 14

M Apr 16: Designing Help and Program Flow [ Slides | Readings | Submit Response (by 9am) ]

W Apr 18: Historical Perspectives [ Slides | Readings | Submit Response (by 9am) ]

Section 13: ??

Week 15

M Apr 23: Research Directions in HCI [ Slides | No Readings ]

Due: Pilot Usability Study
Assignment: due May 4: Final Poster Presentation
Assignment: due May 4: Individual Team Assessment II

W Apr 25: Course Summary [ Slides | No Readings ]

Section 14: ??

Week 16

F May 4: Poster and Demo Session 2-4pm Visual Computing Lab - 5th Floor Soda Hall

Due: Final Poster Presentation
Due Individual Team Assessment II
Please return all equipment you have borrowed by 6pm




A working knowledge of programming is required. CS61A/B are one way to satisfy this requirement. If you have not taken these courses but are comfortable with Java, you will be fine. If you don't know Java but are confident you can learn another programming language quickly you will be fine as well.


Please avoid emailing the Instructor or the GSI directly. You will receive a response much faster if you use Piazza or the email address above.
You may also choose to email us anonymously.


Office Hours:

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.

Kinect Devices
The course project this semester will be based on Microsoft's Kinect 3D Camera. Although we are hoping to obtain a few Kinect devices -- enough to supply one per project group -- we strongly recommend buying your own personal device. Owning the device will facilitate completion of the individual projects and also make it easier to work on the group project in parallel. Your best bet is to buy the Kinect online where we have been able to find it on sale for about $110-150.


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


Late Policy:
Group project assignments may not be turned in late. Individual assignments will lose 33% per 24 hours they are late. If you turn in an assignment late on the wiki, please send an e-mail to the class e-mail address (cs160(at) so that we know 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 within two weeks of reception of the grade. Submit the regrade request to Prof. Agrawala's office, 535 Soda Hall. We 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. However, you are allowed to miss up to two sections; this is to accommodate both planned and unplanned absences.

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

Individual Assignments

Individual Feedback (No points)

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

[add comment]
Personal tools