05-830, Advanced User Interface Software,
Fall, 2004

This is the OLD version of the course -- please see the Spring, 2009 version

Number: 05-830 (offered by the Human Computer Interaction Institute)
Time: Tuesdays and Thursdays, 1:30pm-2:50pm
Room: Wean 4601
12 University Units
Available for CS and HCII PhD credit and MS credit for INI, MSE and HCII Master's
Undergraduates require permission of the instructor

Enrollment limited to 20 students.

Instructor: Brad Myers

Office: Newell-Simon Hall (NSH) 3517
Phone: x8-5150
E-mail: bam@cs.cmu.edu
Office hours: By appointment, or just drop by and see if I'm in.
Secretary: Sue O'Connor
NSH 3526A
TA: None


Course Web Page:

You are looking at the course Web page.  The URL is: http://www.cs.cmu.edu/~bam/uicourse/830fall04/


Here is the schedule of all lecture material, readings, homework and tests:

Schedule

Homeworks


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, MFC, Macintosh Toolbox, MacApp, OpenDoc, X/11, Motif, GTK++, Visual Basic .Net, Director, HyperCard, OLE, 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.

This is primarily a MS and PhD level course but some advanced undergrads may be admitted with permission of the instructor. Students are expected to have taken or be taking other HCI courses. Prerequisites are 15-212 or equivalent and considerable programming experience. Experience with object-oriented programming and/or software engineering is desirable. Prior experience with user interface design is not required. Homeworks will involve extensive programming in Java.

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.

Prerequisites

15-212 and considerable programming experience. Experience with object-oriented programming and/or software engineering is desirable. Prior experience with user interface design is not required.


Required text

None. If you have no prior HCI course, you SHOULD buy the Nielsen Usability Engineering book (referenced as "Nielsen Text" in the schedule)

Readings

Unfortunately, there is no text that covers the bulk of the course, so there will be extensive readings assigned, as listed on the schedule. 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

Individual components of the grading will be weighted approximately as follows (this is tentative and subject to change): 

Assignment Percent of Final Grade
Homework 1 10%
Homework 2 18%
Homework 3 18%
Homework 4 18%
Homework 5 18%
In-Class Presentation 18%

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.  Note that the course load is designed to be relatively uniform during the term, since there is no big project at the end.

Late Policy

Homeworks are due in class on the assigned day. After 5pm on that day, one letter grade (e.g. 10 points out of 100) will be deducted. An additional full letter grade will be deducted for each class period late.