ICS 105: Project in Human-Computer Interaction

Spring 2004


Instructor: Paul Dourish (jpd at ics dot uci dot edu)
TA: Alex Baker (akaber at uci dot edu)
Lectures: Tu Th 11:00-12:20, ET 204
Discussions: Fr 1:00-1:50, ICF 101

Overview: see here.


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.

I will be strictly enforcing the ICS 104 prerequisite; I assume that you all understand how to evaluate interfaces according to cognitive princples as laid out in that class. That's material we'll draw upon and that you'll need to know; however, this is a project class and we'll mainly be focussed on building software systems.

We'll mainly be building systems using Java and Swing, Java's UI framework. I assure you're all comfortable programming in Java. Alex will cover Swing and the basics of its operation in the early discussion sections. but we're not going to cover that in detail in the lectures; there are plenty of good books. "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).


Tue Apr 8: Web page installed.

Tue Apr 8: First assignment is to get a login at one of the social networking sites (such as friendster.com, tribe.net, linkedin.com, or orkut.com). Login and explore. Think about how its design is connected to the tasks that users need to perform. What kinds of problems arise, and what sorts of solution strategies is the system trying to follow? We'll talk about these on Tuesday.

Wed May 5: I've put up some photos from yesterday's paper prototyping exercise.

Wed May 5: Here's a Java jar file and some documentation for classes that will provide some simple storage for you. The data is held on a database on my research server. Note: you'll also need pg73jdbc3.jar, which contains the JDBC drivers.

Thu May 13: New code -- a corrected Java JAR file and a version in PHP.

Sun May 23: Ooops! Another bug uncovered. New version of JAR file available.

Mon May 24: Added some new methods in response to requests. New JAR file and new Javadoc.

Thu Jun 17: Added photos from the evaluation sessions. Thanks for all your work, and have a good summer.


I'll discuss the projects in the early lectures. The theme for this offering of ICS 105 is that all the projects will be based around "social software." We'll provide some basic infrastructure software upon which you can build applications.

Projects will be carried out in groups of (generally) four people. Please email me proposals for groups.

Textbook and Readings

The text for this class will be "Interaction Design: Beyond Human-Computer Interaction," by Preece, Rogers, and Sharp. This is a relatively new book, with a modern approach that focuses on the design process rather than specific technologies.

Some other readings along the way: