Our faculty members regularly offer both undergrad and grad courses related to HCI. A selection of these courses are described below, along with a list of terms that they have been offered.
CS349/SE382 – User Interfaces
This course teaches the principles of how user interfaces are implemented. Some attention is paid to issues of design and usability, but CS489, HCI, provides more complete treatment of these topics.
More specifically, 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.
Winter 2011 Course Page Wiki
CS489 – Human Computer Interaction
The course is project-focused, and lecture material, group assignments, individual assignments, and exams are all designed to complement your project. The purpose of the course is to encourage you to think about the design of computer programs in a new way, and to engage in a design process that allows you to internalize a set of practices that have been shown effective in software design.
CS889 – Advanced Interaction Design
This course uses a mixture of lectures, student led seminars, and a substantial course project to equip students with the theoretical foundation and practical experience for designing successful advanced interaction techniques.
CS889 – Experimental Methods in HCI
This is a topics course in Human-Computer Interaction. As is typical of topics courses at Waterloo, this course involves a mix of professor-lead and student-lead classes. For the first 2 - 3 weeks of the semester, the professor will present an overview of experimental methods in HCI. For the rest of the semester, the students will present selected papers, drawn, for the most part, from the most recent ACM SIGCHI Conference Proceedings.
CS898 – Advanced Interaction Design
Today, we are blessed with a wealth of technological capability: Processors run at gigahertz speeds, RAM is measured in gigabytes, and long-term storage is quickly moving from the gigabyte range to the terabyte range. At the same time, the fruits of research in computer science and other domains have created plug-and-play libraries that require minimal theoretical knowledge for developers to be able to effectively use. Physics, machine learning, 3D graphics, and computer vision are all now highly accessible via well-documented, robust libraries, lessening the need for domain experts from these specialized fields when one wishes to incorporate this technology in new user interfaces.
Despite all of these advances, human-computer interfaces have remained relatively stable for the past 25 years. WIMP interfaces are still the dominant form of interaction. Web applications have developed slightly different conventions for interaction, but they still assume a keyboard and mouse. Pen input and modern graphics cards have introduced some new interaction possibilities, though pen interaction is still largely a thin layer on WIMP interfaces, while graphics cards tend to add more aesthetic value than functional value in user interfaces.
There are numerous reasons for the slow adoption of new interaction techniques. It can be costly: People need to be trained in the proper use of the technology, the technology itself may be costly (either in terms of hardware or licensing costs), or it simply might not provide enough of an improvement over existing methods to justify its adoption. Or, the technology may simply not be fully developed, tested, or packaged in a form that enables its easy integration into an application. This course deals with these latter three issues.
CS889 – Open Source Usability
Over the past two decades, free/open source software (FOSS) has made a dramatic impact on computing and, more broadly, society at large. While FOSS means many things to many people, there is one, single, unifying factor: It is, at its core, software released under a license that enables individuals to freely modify and redistribute that software. This seemingly simple, innocuous attribute has led to multifaceted sociocultural, political movements; new business models (often at the cost of disrupting existing business models); an outpouring of software; new computing ethoses; new ways of interacting with computers; and clear changes to academic, teaching, research, and government institutions.
Much of the past and current research on FOSS has examined the phenomena through the lens of software development, particularly by volunteers. However, as this software is increasingly used by more "average" computer users, it is critical to consider end-user concerns: The overall usability of the software, how usability issues are perceived and addressed by FOSS developers, current practices and needs related to FOSS usability, and so on. This course will examine these latter issues in depth.