ICS 105: Project in Human-Computer Interaction

Spring 2001


Instructor: Paul Dourish (jpd@ics.uci.edu)
TA: Doshi Shreyas (doshi@acm.org)
Lectures: Tu Th 12:30--2, PSCB 120
Discussions: As scheduled
Syllabus: Syllabus.pdf (inc. project timetable).


This project class is designed to give you practical experience in prototyping, designing and evaluating user interfaces. User interface design is more than simply buttons and slides; it's about the entire design of a system that allows people to make use of it. As more and more devices and objects that we deal with have computer technology embedded in them, the problems of designing good models for interaction becomes increasingly important.

Most project classes in our curriculum follow other classes that expose you to the basic approaches, theories and models that you'll use in practical projects. Unfotunately, that's not currently the case for 105 (although it will be in future). The result is that the current design of 105 involves both practical project work and background lecture material. That makes this a fairly intensive class. You will be evaluated primary on your project, but there will also be exams on the lecture material; you need to pass both to pass the class.


Wed Apr 11: I've made my decisions about whom I will add. Remember -- I will not allow drops after this Friday.

Fri Apr 13: Check this page for details about arranging meetings with Doshi next week.

Fri Apr 13: If you're being added to the class, and you didn't collect your add card from me on Thursday, you can collect it from me at my office (ICS2 206). I'll also bring them to class on Tuesday.

Tue May 1: We're doing paper prototyping sessions this week (Wednesday and Friday, 2-3pm, IERF B011). See the session assignments.


Projects will be carried out in groups of four people. The groups assembled so far are listed here.

I have a list of suggested project topics, but if you have another topic that you can persuade me is suitable, then you can work on that. (If you want to persuade me, please start early). The project will be broken down into a number of phases to make sure that you experience all the relevant parts of the design lifecycle -- principally prototyping, development and evaluation. The syllabus has a breakdown of the project timetable. The first stage is to form groups and projects, which should be finalised by the end of week two.

We'll do development in Java, with the Swing toolkit. We'll cover the design of Swing in the class, but we won't be doing any remedial Java programming classes. If you're not proficient in Java, you won't pass this class; and the instructor and the TA won't be answering basic Java questions.


The primary text for this class is "Human-Computer Interaction" by Preece, Rogers, Sharp, Benyon, Holland and Carey. This book attempts to be comprehensive; we'll be reading from it more selectively.

You'll probably want a book on programming with Swing (aka Java Foundation Classes, JFC) as well. There are many, and I haven't specified a particular one. "Java Foundation Classes in a Nutshell" is a concise overview of the APIs, and useful as a reference; if you want something more detailed that explains more of what's going on, then there are plenty of books to choose from. I happen to use the O'Reilly book (Java Swing, by Eckstein, Loy and Wood); other books include Core Java Foundational Classes (by Topley). Whatever book you get, make sure it's for Java 2 (JDK 1.2 and up).

Useful Resources

Here are links to web pages and resources that are useful or interesting (and hopefully both!)


Apr 4

Course overview

Apr 6

Intro to HCI

Apr 10

No lecture

Apr 12

Engineering for usability

Apr 17

Techniques I

Apr 19

Techniques II

Apr 24

Techniques III

Apr 26

Comparing Techniques & Review

May 3


If you can't print that version, try this one.

May 8

Programming with Swing and JFC

May 10

Programming with Swing and JFC (contd.)

Some example code from the lecture.

May 15

Visual Design

May 15

Hot Research Topics

See video links in "Resources" above.