Main Page

From Cs160-sp08

Revision as of 22:07, 24 August 2008 by Maneesh Agrawala (Talk | contribs)
(diff) ←Older revision | Current revision (diff) | Newer revision→ (diff)
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 with a group of three other 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 should be targeted towards mobile phone applications. Android is a new open development kit for mobile applications from Google. You will be building your project using the Android SDK. Unfortunately, Android is so new that physical mobile phones supporting the SDK are not yet available (though some will come on the market later in the year). So for this course you will be expected to work with the software phone emulators that come with the Android system.


Final Projects

Visit our final poster session, Tuesday May 6th from 3:30-5:00pm in the Woz lounge (430 Soda). Projects on display include:
  • My Story (Eric Cheung, Alex Choy, Hsiu-Fan Wang, Glen Wong)
  • Statter (Jonathan Liu, Richard Lo, Katy Tsai, Jeffrey Wang)
  • Group Your Life (Hannah Hu, Gerard Sunga, Cole Lodge, Max Preston)
  • Flashlight Application (Jonathan Chow, Ravi Dharawat, Randy Pang, Brian Tran)
  • BorgTV (David Jacobs, Roseanne Wincek, Lita Cho, Benjamin Sussman, Tam La)
  • Been There, Done That! (Jiahan Jiang, Harendra Guturu, Diane Ko, Khoa Phung)
  • Cops & Robbers (Siyu Song, Reid Hironaga)
  • Mobile Transit Scheduling (Scott Crawford, Pavel Borokho, Paul Mans, Jeff Bowman)
  • Alarm Buddy (Jessica Fitzgerald, Daniel Gallagher, Andry Jong, Mike Ross)
  • The Price Fisher (Nir Ackner, Michelle Au, Johnny Tran, Jerry Zhang)
  • PinMap (Megan Marquardt, Ilya Landa, Kai Man Jim)
  • Real Deal (Zhou Li, Jason Wu, Yang Wang, Bo Niu)
  • GroupSync (Yunfei Zong, Dan Markovich, Gordon Mei)
  • Mobile Translator (Eric Chung, Michael So, Henry Su, Jeremy Syn)
  • Trippen (Robert Glickman, Raymond Planthold, Adam Singer, Andrew Wan)
  • Friend Finder (Joe Cancilla, William Tseng, Chris Myers, Alex Pretzlav)
  • NutriTrak160 (Benjamin Lau, Brandon Lewis, Bruno Mehech, Fan Yang)
  • Address Book 2.0 (Brian Taylor, Ed Chen, Gary Miguel, Timothy Edgar)


  • The Final Presentation Schedule signup page is now accessible. Sign up for a presentation time slot ASAP.
  • Interactive Prototype Presentation dates have been assigned for all groups. See the assignment page.
  • Subversion repositories are available now. Note: access to these is now controlled with username/passwords.
  • There is a newsgroup to which you can post questions. The GSIs will try to periodically check up on the newsgroup, but this is mainly a place to discuss questions with your classmates. The group is ucb.class.cs160 on which you can access from any newsreader (like Mozilla Thunderbird), or you may use the rather poor web interface provided by Instructional Computing at ucb.class.cs160
  • The individual Android programming assignment has been posted: Android Intro Application. The assignment is due next Tuesday, February 26.
  • More complete information on Getting Started with Android has been posted.
  • The Group Brainstorm assignment has been posted. It is due Thursday Feb 7.
  • The Project Groups have been posted. Please update the page with your team name (if you choose one) and create the team page following the model.


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

Jan 22: Introduction [ Readings | Slides]

Assignments (due Jan 24): Create a Wiki Account, Course Petition

Jan 24: The Design Cycle and Brainstorming [ Readings | Slides ]

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

Jan 29: The Affordances of Mobile Devices [ Readings | Slides]

Jan 31: Conceptual Models I [ Readings | Slides]

Due (before class): Individual Project Proposal
Assignment (due before class on Feb 7): Group Brainstorm

Feb 5: In Class Group Brainstorming [No Readings | No Slides]

Feb 7: Task Analysis and Contextual Inquiry [ Readings | Slides]

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

Feb 12: Conceptual Models II [ Readings | Slides]

Feb 14: Sketching and Storyboarding [ Readings | Slides]

Feb 19: Model View Controller and Event Driven UI in Android [ Readings | Slides]

Due (before class): Contextual Inquiry and Task Analysis
Assignment (due before class on Feb 26): Android Intro Application

Feb 21: Low-Fidelity Prototyping [ Readings | Slides]

Feb 26: Human Information Processing (Perception) [ Readings | Slides]

Due (before class): Android Intro Application
Assignment (due before class on Mar 11): Low-Fidelity Prototype

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

Mar 4: Qualitative Evaluation [ Readings | Slides]

Mar 6: Quantitative Evaluation [ Readings | Slides]

Mar 11: Graphic Design and Gestalt Principles [ Readings | Slides]

Due (before class): Low-Fidelity Prototype

Mar 13: Midterm Review [No Readings | Slides]

Assignment (due on Apr 1): Interactive Prototype

Mar 18: Midterm Exam

Mar 20: Designing Help, Program Flow, and the Web [ Readings | Slides]

Mar 25: Spring Break - No Class

Mar 27: Spring Break - No Class

Apr 1: Interactive Prototype Presentations

Due: Interactive Prototype
Assignment (due before class on Apr 8): Team Assessment
Assignment (due before class on Apr 15): Pilot Usability Study

Apr 3: Interactive Prototype Presentations

Apr 8: Interactive Prototype Presentations

Due (before class): Team Assessment

Apr 10: Designing Search Interfaces (Guest lecture by Marti Hearst)

Apr 15: Visual Information Design [ Readings | Slides]

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

Apr 17: Historical Perspective [ Readings | Slides]

Apr 22: User Experience Design of Ubiquitous Computing Devices (Guest lecture by Mike Kuniavsky) [ Readings ]

Apr 24: User Experience Research: waste of time? No! competitive advantage? Absolutely! (Guest lecture by Nancy van House) [ Readings ]

Apr 29: Final Project Presentations

Due (before 3:30pm): Final Presentation and Report
Assignment: Final Team Assessment

May 1: No class, prepare for poster session.

May 6: Poster Session

May 8: Current Directions in HCI [ Slides]

Due (before class): Final Team Assessment


Instructor: Maneesh Agrawala

Teaching Assistants: Wesley Willett, Seth Horrigan

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

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


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

Office Hours:

  • Maneesh: 635 Soda Hall TR 5:00-6:00pm
  • Wesley: 511 Soda Hall, Friday 10:00-11:00 am
  • Seth: 551 Soda Hall, Monday 9:00-10:00 ante meridiem

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.

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 1 substantive comment to the discussion on this wiki about the readings 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.
  • 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 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.


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