SE 382: Human Computer Interaction (User Interfaces)


This course teaches the principles of constructing user interfaces. In this course you will learn how to actually implement user interfaces. Some attention is paid to issues of design and usability, but CS 489, HCI, provides more complete treatment of these topics.


SE 382

Professor Michael Terry (
Office: DC 2118
Office hours: Thursdays, 11:30-12:30

Christine Szentgyorgyi
Office: DC 3591
Office hours: Mondays, 2:30-3:30

Farheen Omar
Office: DC 3523
Office hours: Wednesdays, 2:30-3:30

Meeting Time and Location

RCH 306
MWF 10:30-11:20 AM

Primary Text

Supplementary Text

Class, Assignments, and Exams

Lecture notes are not made available before lecture. You will need to take notes during lecture. There is significant evidence that the process of taking notes aids in comprehension and retention, so this is a good thing. The lecture notes will be posted after lecture, at which point you can integrate with your own notes.

There will be 4-5 assignments. The assignments are largely programming oriented and require significant time to complete. A common mistake people make (in this course and the real world) is to underestimate the time required to create a truly interactive application: Interactive applications are complex and require developers and designers to attend to numerous details before the application can be easy-to-use, intuitive, and useful. However, if done well, you will construct applications that others will find entertaining and enjoyable to use.

Unless otherwise specified, all assignments are individual assignments. You are expected to do your own work. If you use code from a third party (such as code examples from the web, but not code from another student in the course, past or present), you must properly attribute this use in your code. While it is expected that you will incorporate and modify code from external sources, it is expected that such code reuse will constitute a significantly small portion of your final code. If there are any doubts, contact the prof.

Your mark will be determined based on these weights:

You must show sufficient mastery of the material to pass this course. What this means in practice is that if you fail any component of the course (assignments or exams), this is grounds for failing the course.

Course Resources

The course resource page will be of help to you when doing assignments.


The following is a tentative syllabus. Specific lecture topics may vary.



Lecture Slides


January 7

Introduction + Overview


January 9

History, basic parts of user interface


Olsen, Chapter 1

January 11

Drawing and handling basic events in X

Intro to X

Olsen, Chapter 2





January 14

Graphic output devices

Graphic output

Olsen, Chapter 3

January 16

Graphic output abstractions

Graphic abstractions

January 18

Input devices

Input devices





January 21



January 23


Responding to Events

Olsen, Chapter 3

January 25

Interactive components

Interactive Components

Anonymous inner class example code

Olsen, Chapter 4

Assignment 1 due





January 28



Olsen, Chapter 6

Wikipedia entry on MVC

January 30

UI design patterns

Design Patterns

Olsen, Chapter 7

February 1

Class canceled due to weather!






February 4


Layout Managers


February 6

Custom components


February 8


Custom Components

Assignment 2 due

Note the updates added on January 30th





February 11



Olsen, Chapter 5

February 13

Visual design

Visual Design

Olsen, Chapter 8

February 13 Midterm Exam   19:00-20:30, MC 4020/4041/4045

February 15

Models of interaction

Actual: Visual Design (see link above)


February 18 Reading Week    





February 25


Models of Interaction

Required readings:

February 29

Interaction guidelines

HIGs and the Anti-Mac Interface

Required readings:

March 1

Design process

User-Centered Design






March 3



March 5

Specifying interaction

Formal languages

March 7

Production systems

Production systems

Olsen, Chapter 11

Assignment 3 due





March 10

Timers, threading, and handling long tasks

Actual: Experimentation

March 12

Drag and drop and the clipboard

Actual: Affine Transforms

Affine demo code

Olsen, Chapter 15

March 14

2D graphics, affine transforms, and scene graphs


Olsen, Chapters 12, 13, 14





March 17

Affine transforms and scene graphs

Actual: Long Tasks


March 19


Actual: Clipboard

Olsen, Chapter 10

March 21

UI development environments

(Focus on scripting)

Actual: Good Friday

Olsen, Chapter 9





March 24

UI frameworks

Actual: Internationalization

March 26

Application Interoperability

Actual: Accessibility

March 28


Actual: Scripting and Jython

Assignment 4 due





March 31

Topic TBA

Guest lecture by Christine Szentgyorgyi

April 2

Topic TBA

Bias in UI Design


April 4

Topic TBA

Guest lecture by Adam Fourney





April 7

Last lecture


Assignment 5 due