CS 66.460
Introduction to Graphical Human-Machine Interfaces
Spring 1997
Monday, January 13, 1997

Course Details

Class meets Mon/Wed 9:30-10:50 am  CC 239

Instructor: Bowden Wise
Office: Amos Eaton 205
Office Hours: Mon Wed  2:00-3:30 pm (or e-mail for an appointment)
E-Mail: wiseb@cs.rpi.edu
Phone: 276-2930

Teaching Assistant: Rick Kline
Office: Amos Eaton 206
Office Hours: Tue  10:30 am - noon,Thu  1:30-3:00 pm (or e-mail for an appointment)
E-Mail: kliner@cs.rpi.edu
Phone: 276-8275

Course Description and Prerequisites

This course is an introduction to the design, implementation, and evaluation of human-computer interfaces. Good interfaces are developed by understanding the relationship between user interface design and human-computer interaction. The course begins with an examination of how poorly designed ``everyday'' devices, such as doors, VCRs, and telephones can lead to devices which are unusable by humans. Many of the design principles for everyday things are also applicable to the design of computer devices and user interfaces. After a brief examination of the design of user interfaces, we will concentrate on how to implement a particular design. We will examine a variety of user interface development environments which are used on today's computing platforms. Students will study and use a ``user-centered'' design methodology which will enable them to evaluate their user interface implementation to uncover problems which can be solved by revising their initial design, thus completing an iterative cycle. The final segment of the course will consist of student presentations of current research in human-computer interaction.

Several programming projects will be assigned to enable each student to implement user interfaces using a variety of user interface tools (at least 4), so that the students will get a better appreciation of the differences among the tools.

In addition, there will be several in-class, group projects, where students can apply design, prototyping, and evaluation techniques.

Participants are also expected to write a research paper and give an in-class presentation based on one or more relevant scientific papers.

Prerequisites: Students should be proficient with the use of common data structures and algorithms (courses 66-230 or 66-436) and have a working knowledge of the C++ or C language. Familiarity with HTML is also desirable.

Course Objectives

On completion of this course you will have theoretical and practical experiences in the fundamental aspects of designing, implementing, and evaluating user interfaces.

Course Text

There are two required text books for this course:

Other reading materials may also be handed out or otherwise made available as needed to supplement the two text books.

Course Structure

This course will not simply be a ``lecture'' course, instead, you will be expected to participate in a variety of activities, both inside and outside the classroom, to make the learning experience interactive and entertaining.

In class, there will be:

Outside of class, you are expected to:

Newsgroup and Web Site

In order to provide a more interactive experience as we learn the material in the course, a Usenet newsgroup and Web site have been established so that we may share our experiences with others outside of the classroom.


There will be no exams for this course.

Your grade will be determined (roughly) from the following grading scheme:

   30%   Programming projects.
   30%   Research paper and oral presentation.
   15%   In-Class exercises.
   15%   Active participation inside and outside the classroom.
   10%   Video lab reports.

How your work will be graded. All evaluations, whether of homeworks, programming projects, or in-class exercises/presentations, are first and foremost on the basis of overall effort and creativity displayed.

All work turned in is due on the date specified on the assignment sheet. No exceptions! Late assignments will be accepted only with prior notification, and will be penalized one letter grade for each day the assignment is late. A late assignment turned in without prior notification to the instructor or TA will get no credit.

Programming projects are graded on the basis of the quality of the human-machine interface and the breadth/variety of features provided for interaction with the system on the part of the user. Your grade will also be based on how well your system demonstrates your proficiency in utilizing the user interface tool being used for the underlying implementation.

Programming projects will be due on midnight on the date specified, unless otherwise noted. Although, your source code will not be examined to determine your grade, you will be required to submit your source code by the project due date. Sign-up sheets for scheduling a live demo (either with the instructor or the TA) of your system will be made available around each deadline. Since you will have to demonstrate your program to us, your program must run! Programs that fail to run will receive zero credit.

Research papers will be graded on the overall quality and effectiveness of the writing. In addition, we will be looking for your own thoughts and comments on the systems you discuss, not just a reiteration of what is presented in the scientific papers you have read.

For group write-ups please include the names of all participants. All participants in a group activity, whether it be an in-class exercise or a research paper/presentation, will get the same grade for that activity. Remember, it is important that everyone in the group participate. If you find that someone in the group is not making a contribution, please let me or the TA know.

Academic Integrity

It is expected that each student will do his or her own work on individual assignments and projects (those not part of a group activity). For group activities, the work should be done by the participants of each group only. Copying another person's or another group's work is considered cheating.


Your feedback is important to us! As the course evolves, please feel free to send e-mail to either the instructor or the TA about any aspect of the course. Let us know what you think of the lectures, readings, exercises, projects, etc. Your input will help us to ensure that the course is an educational and enjoyable experience for everyone.

Tentative Syllabus

The following is a tentative list of topics that are to be covered in the course. The actual topics and order of presentation of the topics may differ from that shown below. A more detailed syllabus and schedule can befound on the course Web site.

        Course overview and Introduction to Human-Computer Interaction
        History of human-computer interaction
        Human factors and cognitive psychology

        The design of everyday things
        Designing with the user 
        - user-centered design
        - participatory design 
        - prototyping
        - wizard-of-oz
        - storyboards
        Designing without the user
        - task centered design
        - models of human behavior
        - design guidelines
        - usability heuristics

        What is usability?
        Usability engineering lifecycle
        Usability testing
        Usability inspection methods

        Model-View Controller
        Event handling
        User interface software tools
        - windowing systems/GUIs
        - toolkits
        - application frameworks
        - higher order tools
        - prototyping tools
        - interface builders
        Examination of many systems

        Evaluation with user testing
        Evaluation with usability inspection methods
        - heuristic evaluation
        - cognitive walk-through

        Will be drawn from recent conference proceedings

Bowden Wise
Mon Jan 13 18:02:23 EST 1997