Main Page

From CS 160 User Interfaces Sp10

(Difference between revisions)
Jump to: navigation, search
Line 134: Line 134:
<!--Week 13-->
<!--Week 13-->
'''Apr 12:''' Real-World Web & Mobile Applications (Guest lecture)
'''Apr 12:''' [[Historical Perspectives]] [ [[Historical Perspectives|''Readings'']] |  "Submit Response" |  Slides ]
::'''Assignment''' due before class on '''Apr 19''': [[Team Assessment I]]
::'''Assignment''' due before class on '''Apr 19''': [[Team Assessment I]]
'''Apr 14:''' Ubiquitous Computing (Guest lecture)
'''Apr 14:''' [[Designing Help and Program Flow]] [ [[Designing Help and Program Flow|''Readings'']] |  "Submit Response" |  Slides ]
<!-- Week 14-->
<!-- Week 14-->
'''Apr 19:''' Social Psychology & CSCW
'''Apr 19:''' TBA
::'''Due''': [[Pilot Usability Study]]
::'''Due''': [[Pilot Usability Study]]
::'''Due''': [[Team Assessment I]]
::'''Due''': [[Team Assessment I]]
::'''Assignment''' due before class on '''May 3''': [[Final Presentation and Report]]  
::'''Assignment''' due before class on '''May 3''': [[Final Presentation and Report]]  
'''Apr 21:''' Designing Help & Program Flow
'''Apr 21:''' TBA
<!-- Week 15-->
<!-- Week 15-->
'''Apr 26:''' Historical Perspectives
'''Apr 26:''' TBA
'''Apr 28:''' Research Directions in HCI
'''Apr 28:''' Research Directions in HCI

Revision as of 22:04, 7 April 2010


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., location sensing) and challenges (e.g., input). Your team will be developing applications using Apple's iPhone SDK. You can use your own phone, but we will also have a number of iPod Touch devices you can borrow for the semester.



  • 4/01: Certificates & Provisioning
    • Follow the Apple Documentation on creating a developer certificate:.
    • We are notified by Apple when you upload your certificate request and will try to approve it promptly. You can then download a certificate from the portal.
    • To deploy applications to your (personal or loaner) device, you must email your device serial and UDID strings to cs160@imail. You can find both strings by connecting your device through a USB cable, launching XCode, and opening Window Menu->Organizer. We will add the device to the developer portal database.
    • We then manually add your certificate and your device to the CS160 Provisioning Profile. Download it and install it on your device.
  • 2/25: Midsemester Feedback
    Please take a few minutes to give us (the teaching team) some feedback about the class so far using our online feedback form. Your answers will help us plan for the second half of the semester.
  • Office hours for GSIs are:
    • Kenrick: Mondays 3-4pm in 200 Dai
    • Anuj: Thursdays 3-4pm in BiD (354/360 Hearst Mining Building).
  • The Orchard Mac lab in 200 Dai Hall will be open this Sunday from 3-4:30pm. Kathryn Skorpil, a fellow CS160 student and UCBUGG facilitator, has graciously offered CS160 students access to the lab during her office hours. If additional weekend times become available through UCBUGG, they will be listed at
  • CS160 lab hours in the Orchard Mac Lab in CITRIS are Monday 9am-4pm in Dai 200. See Prof. Garcia's online lab schedule for available other times.
  • You do not need to address the discussion questions posted with the readings in your responses. The questions are there for you to think about as you do the readings.
  • We'd like you do post 1 substantial comment per lecture. For Monday's (1/25) lecture there are two readings but you only need to post 1 comment.


Jan 20: Introduction [ Slides ]

Assignment due by 5pm on Friday Jan 22: Create a Wiki Account
Assignment due by 5pm on Friday Jan 22: Course Petition
Assignment due before class on Jan 27: Individual Project Proposal
Assignment due before class on Feb 1: Individual Programming Assignment 1

Jan 22: No class, but assignments due

Due: Create a Wiki Account
Due: Course Petition

Jan 25: The Design Cycle and Brainstorming [ Readings | Submit Response | Slides ]

Jan 27: Sketching, Storyboarding, and Critique [ Readings | Submit Response | Slides ]

Due: Individual Project Proposal

Feb 1: In Class Group Brainstorming (Wozniak Lounge) [ Readings | Submit Response | Slides ]

Due: Individual Programming Assignment 1
Assignment due before class on Feb 08: Individual Programming Assignment 2
Assignment due before class on Feb 08: Group Brainstorm

Feb 3: Task Analysis and Contextual Inquiry [ Readings | Submit Response | Slides ]

Feb 8: Conceptual Models I [ Readings | Submit Response | Slides ]

Due: Individual Programming Assignment 2
Due: Group Brainstorm
Assignment due before class on Feb 17: Individual Programming Assignment 3
Assignment due before class on Feb 17: Individual Competitive Analysis
Assignment due before class on Feb 22: Contextual Inquiry and Task Analysis (new due date)

Feb 10: Conceptual Models II [ Readings | Submit Response | Slides ]

Feb 15: President's Day - No Class

Feb 17: Input Devices, Multi-touch, Mobile vs. Desktop Applications [ Readings | Submit Response | Slides]

Due: Individual Programming Assignment 3
Due: Individual Competitive Analysis
Assignment due before class on Mar 03: Individual Programming Assignment 4

Feb 22: Model-View-Controller, Event-driven UIs [ Readings | Submit Response | Slides]

Due: Contextual Inquiry and Task Analysis (new due date)

Feb 24: Lo-Fidelity Prototyping [ Readings | Submit Response | Slides ]

Assignment due before class on Mar 15: Low-Fidelity Prototype

Mar 1: Human Information Processing (Perception) [ Readings | Submit Response | Slides ]

Mar 3: Human Information Processing (KLM, GOMS, Fitts' Law) [ Readings | Submit Response | Slides ]

Due: Individual Programming Assignment 4

Mar 8: Qualitative Evaluation [ Readings | "Submit Response" | Slides ]

Assignment due before class on Mar 15: Heuristic Evaluation of Programming Assignment 4

Mar 10: Quantitative Evaluation [ Readings | "Submit Response" | Slides ]

Mar 15: Midterm Review [ No Readings | Slides]

Due: Heuristic Evaluation of Programming Assignment 4
Due: Low-Fidelity Prototype

Mar 17: Midterm Exam

Assignment due before class on Apr 05: Interactive Prototype

Mar 22: Spring Break - No class

Mar 24: Spring Break - No class

Mar 29: Graphic Design and Gestalt Principles [ Readings | "Submit Response" | Slides]

Mar 31: Visual Information Design [ Readings | "Submit Response" | Slides ]

Apr 5: Interactive Prototype Presentations I

Due: Interactive Prototype

Apr 7: Interactive Prototype Presentations II

Assignment due before class on Apr 19: Pilot Usability Study

Note: The schedule below is likely to change - take it as a rough indication of where we are headed.

Apr 12: Historical Perspectives [ Readings | "Submit Response" | Slides ]

Assignment due before class on Apr 19: Team Assessment I

Apr 14: Designing Help and Program Flow [ Readings | "Submit Response" | Slides ]

Apr 19: TBA

Due: Pilot Usability Study
Due: Team Assessment I
Assignment due before class on May 3: Final Presentation and Report

Apr 21: TBA

Apr 26: TBA

Apr 28: Research Directions in HCI

Assignment due before presentations on May 5: Final Team Assessment

May 3: Final Project Presentations to Instructors

Due: Final Presentation and Report

May 5: Public Presentations & Poster Session

Due: Final Team Assessment




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

  • Please avoid emailing the Instructors or the GSI 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 MW 6:00-7:30pm
  • Discussion Sections: TBD

Office Hours:

  • Maneesh: 635 Soda Hall, Time Tue 11-12noon and by appointment
  • Bjoern: 629 Soda Hall, Time Wed 1-2pm and by appointment
  • Kenrick: 200 Dai, Time Mon 3-4pm and by appointment
  • Anuj: BiD, Time Thu 3-4pm and by appointment (354/360 Hearst Mining Building)

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, 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 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. More on the class participation component can be found here.
  • 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.


  • Class participation (10%)
  • Individual programming assignments (20%)
  • Project assignments (50%)
  • Midterm (20%)

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 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 provide your assignment and a written description of why you believe the grade was unsatisfactory within two weeks of reception of the grade. We will then regrade the entire assignment; this means that your grade may potentially drop.

Section Attendance: Section attendance is mandatory 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.

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

Individual Assignments

  • Create Wiki Account (due 1/25)
  • Course Petition (1/25)
  • Individual Project Proposal (1/27)
  • Individual Programming Project 1 (1/27)
  • Individual Programming Project 2 (2/8)
  • Individual Programming Project 3 (2/17)
  • Competitive Analysis (2/17)
  • Individual Programming Project 4 (3/3)
  • Heuristic Evaluation (3/3)
  • Team Assessment (4/19)

Group Assignments

  • Group Brainstorm (2/8)
  • Contextual Inquiry and Task Analysis (2/17)
  • Lo-Fi Prototype (3/15)
  • Interactive Prototype (4/5)
  • Pilot Usability Study (4/19)
  • Final Presentation and Report (5/3)

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.

Personal tools