Benchmarks

Abstract:

This course will cover the research and implementation of user interface
software. The students will get a comprehensive understanding of all the
approaches that have been investigated by researchers and commercial systems
for user interface software. This will be of value to people planning to
be user interface researchers or implementers. After a quick overview of
the design of user interfaces, we will concentrate on how to implement the
chosen design. Particular emphasis will be placed on user interface software
tools, such as windowing systems, toolkits, interface builders, prototypers,
and advanced user interface development environments. In particular, the
course will cover MS Windows, OLE, MFC, Macintosh Toolbox, MacApp, OpenDoc,
X/11, Motif, Visual Basic, Director, HyperCard, Java Swing, Java Beans, and
various research systems like Amulet, InterViews, and subArctic. Lectures
will discuss the fundamental principles behind all of these systems, while
showing the historical progression of the ideas from research prototypes
to commercial systems. Today's research topics and open issues in user interface
software will be emphasized throughout. Homeworks will primarily consist
of each student implementing a small project on at least 4 different user
interface tools during the semester, in order to experience first-hand the
breadth of techniques used in modern tools. Students will all use an interactive
prototyping tool first, like HyperCard, Director, Visual Basic or Delphi.
Then each student will implement the same interface in three other "high-level"
tools, which will be chosen so that the full range of tools is covered by
members of the class. Students will compare and evaluate the various tools for
ease of learning and effectiveness.

This is primarily a MS and PhD level course but some advanced undergrads
may be admitted with permission of the instructor. No prior HCI experience
is required.

Why Study This?

Surveys show that over half of all programming time is spent on the user
interface portion across a wide variety of application types, and this percentage
is increasing as requirements for more complex interfaces grows. In addition,
the tools and methods available for building user interfaces continually
change and improve. Therefore, it is vital for software engineers to be familiar
with user interface design and user interface software.

Readings

Unfortunately, there is no text that covers the bulk of the course, so there
will be extensive readings handed out. In order to prioritize your work,
I have marked all readings as "required" or "optional." The tests will not
include material from the optional group (unless it was also covered in class),
but they are interesting and/or important articles that a
user-interface-software-expert should be familiar with.

Grades

The grades will be based on:

Benchmark task description and presentation

5%

UI Examples Presentation

5%

4 Implementation Homeworks (14% each)

56%

Participation In Class

4%

MidTerm

10%

Final Exam

20%

In-class presentations

All class members will be giving a number of in-class presentations. In
particular, each class member will be presenting their benchmarks in class,
and discussing each of their implementations throughout the term.

Handouts

Extra copies of the readings, homework assignments and other handouts will
be available in the bins outside my office. The lecture notes will
be available on the web the day before the lecture, linked from the course's
schedule page, and will not be handed out in class--you can make a
hardcopy if you want.

Attendance

There will be material covered in class that is not available in the readings,
so attendance at all lectures is highly recommended.

Homework

All homework must be typed. No handwritten assignments please.

Missed Tests

Make up tests will not ordinarily be given. If you know you are going to
have to miss a test for valid reasons, discuss it with me and you can take
the test early. If you miss a test due to a medical emergency, you must notify
me or my secretary before the exam.

Incompletes

It is the policy of this class not to give incompletes. All of the
assignments end with an in-class presentation of your work, so you will need
to have each one finished on time. Note that the course load is designed
to be quite uniform during the term, since there is no big project at the
end.

Programming Environments

You will be implementing a benchmark program four times using four different
user interface tool. The first one will be a "prototyping tool," such
as:

Visual Basic

Delphi

HyperCard

MacroMedia's Director

Visio

JavaScript or VBScript (for the Web)

... or another tool of your choice, with permission of the instructor.

Next, you will implement the benchmark in two other toolkits of your
choice. Options include:

... or another tool of your choice, with permission of the instructor.

The final (fourth) implementation of the benchmark will be using my
Amulettoolkit. Amulet
includes many innovations designed to make most types of interfaces significantly
easier.

The goal is that everyone will have a good understanding of different toolkits
and their strengths and weaknesses. Another goal is to develop and
test a set of benchmark tasks to see if they can reveal any interesting
information about the toolkits.