SE 382: Human Computer Interaction (User Interfaces)

Overview

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.

Instructors

SE 382

Professor Michael Terry (mterry@cs.uwaterloo.ca)
Office: DC 2118
Office hours: Thursdays, 11:30-12:30

TAs
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.

Syllabus

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

Date

Topic

Lecture Slides

Assignments

January 7

Introduction + Overview

Intro

January 9

History, basic parts of user interface

History

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

Events

Events

January 23

Events

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

MVC

MVC

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

Undo

Layout Managers

 

February 6

Custom components

Undo

February 8

Users

Custom Components

Assignment 2 due

Note the updates added on January 30th

 

 

 

 

February 11

Layout

Users

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

Interaction

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

Typography

Typography

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

Internationalization

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

Accessibility

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