Watch a video introduction to the course on YouTube.
This course provides an introduction to contemporary user interfaces, including the basics of human-computer interaction, the user interface design/evaluation process, and the architectures within which user interfaces are developed. Students implement and evaluate portions of typical user interfaces in a series of programming assignments.
Computer Science students interested in modern user interfaces.
Prerequisites: (CS 240 or SE 240) and (CS 246 or 247) and (MATH 115 or 136/146); Computer Science students only.
Building Interactive Systems Author: Dan Olsen 2010
3 hours of lectures per week. Normally available in Winter and Spring.
An overview of the user interface design process. Practical solutions to design problems, `good enough' solutions that can be discovered at low cost. Users. Scenarios. Functional design.
Survey of devices on which graphical user interfaces are provided. Programming models for simple output, elementary graphics and text.
Abstractions for user input, focussing on the event abstraction. The lowest level user interface control structure, the event loop, is described in the context of the model-view-controller interface architecture.
How interfaces are constructed from components. Constructing an interface from interacting components. Layout. "Look and feel."
Two methods for describing the behaviour of user interfaces: state diagrams and production systems.
The architecture of interfaces constructed using scripting languages. Interface prototyping. Retrofitting interfaces to existing application programs.
Learning and evaluating an unusual interface that changes from term to term. Geometry-based interfaces. Interworking. Programmers' interfaces.

David R. Cheriton School of Computer Science
University of Waterloo
Waterloo, Ontario, Canada N2L 3G1
Tel: 519-888-4567 x33293
Fax: 519-885-1208
Contact | Feedback: cs-uops@cs.uwaterloo.ca | David R. Cheriton School of Computer Science | Faculty of Mathematics