User Interfaces

Professor Jonathan Amsterdam

Course Information

Subject Matter

Theory and practice of graphical user interfaces. Practice will involve programming in Java.


Proficiency in Java or C++.


No required text. Recommended: Cooper's About Face.

Lecture Notes

Most notes should be available on the web site. The Java notes are an exception; you will have to buy them from the Unique Copy center on Greene St. south of 8th. I will announce in class when they are available.

Mailing List

Please subscribe to the course mailing list. To do so, send email to with the following body (not subject):
subscribe g22_2280_001_sp98

Coursework and Grading

There will be 5 or 6 homeworks. Most homeworks will be graded on a 10-point scale. Homework is always due before class. Homework handed in up to one week late will receive a 10% penalty. Homework handed in up to two weeks late will receive a 30% penalty. Homework submitted after two weeks will receive a zero. Submit your homework by mailing it to the TA.

Cheating Policy

For the purposes of this class, cheating is defined as: The penalty for cheating is failure of the course.

To protect your files from being read by others, change their protection by executing the following command:

chmod go-rx *
You can make sure that all files you create are automatically protected by putting the following in your .cshrc or .profile file:
umask 077

Course Outline

This is very approximate. The order may change without notice.

LectureEstimated Topic
1 Introduction: Design of Interactive Systems
2 More Design Theory
3 Java for UI 1
4 Java for UI 2
5 Java for UI 3
6 Java for UI 4
7 Widgets
8 Screen Layout
9 Graphic design
10 Application Design
11 Web site design
12 Data Visualization
13 Tcl/Tk
14 The Future