See the undergraduate calendar for the name of the instructor and the exact times and locations of each course.

See the graduate calendar for the name of the instructor and the exact times and locations of each course. Some courses may not be offered every year.


314 Computer Graphics

314 is the first course in computer graphics at UBC, and is the prerequisite for 424 and 426. Topics include the 3D graphics pipeline, transformations, projections, shading, hidden surface removal, and texture mapping. The coursework includes both mathematical written assignments and significant programming projects.

424 Geometric Modelling

424 is an advanced undergraduate computer graphics course introducing students to the foundations of geometric modeling: curves and surfaces, principles and mathematical foundations for representing complex geometry for computer graphics and numerical simulations, and practical applications of different modeling techniques.

426 Computer Animation

Motion in computer graphics for characters and their environments. Keyframing, inverse kinematics, particle systems, rigid body dynamics, contact and collision, controller-based active motion, motion capture.

427 Video Game Programming

This course provides an introduction to video game programming. Students learn to plan, manage and implement from scratch a video game over the course term. They will apply theoretical knowledge in a practical, real-life setting and acquire hands-on problem solving skills.

Grad courses

524 Computer Graphics: Modeling

By Alla Sheffer

This graduate level course on geometric modeling focusing on modern geometry representations, and in particular polygonal meshes. The course teaches data structures and algorithms for creating, manipulating, editing and analyzing digital (discrete) geometry models.

532R Visual AI

By Helge Rhodin

This course explores the recent trend of using Deep Learning (DL) for photorealistic rendering, parametrizing the shape and appearance of objects, and making these digital models accessible to the artist. It covers diverse visual computing topics from computer graphics and computer vision.

533V Learning to Move

By Michiel van de Panne

This course is about learning to control the movement of humans, animals, and robots, with application to character animation, robotics, and biological motor control. Roughly half the course focuses on (deep) reinforcement learning.

535P Digital Humans

By Dinesh Pai

This course covers recent advances in building digital representations of humans for a variety of applications, such as product design, character animation, and medicine. The focus is on building realistic models of real humans based on measurements, and on numerical simulation of human body models and clothing using finite element methods.

Human Centered Technologies

344 Introduction to Human-computer Interaction Methods

344 is the introductory course in human-computer interaction (HCI) and is a prerequisite for 444. In this hands-on project-based course, students learn and apply HCI techniques for designing and evaluating human-computer interfaces.

444 Advanced Methods for Human-computer Interaction

This course builds directly on the design process learned in 344 and is typically taken by students looking for more in-depth HCI knowledge. It covers advanced design and evaluation methodologies, including laboratory experiments and field studies; formal models of the user including visual, motor, and information processing; and HCI research frontiers. There is a large team project that allows students to deeply apply the material they've been taught.

Grad Coursees

544 Fundamentals in Designing Interactive Computational Technology for People (HCI)

This graduate course teaches the design of interactive computational technologies using a highly iterative process called design thinking. It draws heavily on human-computer interaction methods. This course is designed for students with a range of backgrounds and is the first of two core course required by those in the DFP (Designing for People) graduate program.

544K Topics in HCI: Designing for People Project

In this course interdisciplinary student teams collaborate closely with project partners drawn from industry and non-profits, learning to understand and frame a real design situation, develop a design concept, evaluate their design, and communicate it to others for feedback. Students integrate end users and research activities into their design process synthesizing appropriate techniques within the context of iterative and reflective practice.

543 Physical User Interface Design

By Karon MacLean

This project-based introduction to the creation of physical and multimodal human-computer interfaces is for students from CS, engineering and psychology. We cover the foundations of multimodal perception and attention, and human-system communication through the sense of touch via control of haptic and multimodal devices. Projects frequently result in publishable papers.

554M Topics in Human-computer Interaction

By Joanna McGrenere

This graduate course is for students who have already taken an introductory HCI course. Topics covered vary year to year and have recently included: Universal Usability, Computer-Supported Cooperative Work (CSCW), and Personalization.

554X Machine Learning and Signal Processing

By Robert Xiao

This course is a graduate-level introduction to the theory and practice of applying machine learning and signal processing techniques to real-world signals, especially 1-D signals (e.g. acoustic, electromagnetic) and 2-D signals (e.g. images).

554Y Designing Augmented and Virtual Reality Experiences

By Dongwook Yoon

This course introduces students to AR and VR interactions in the context of HCI topics and methods. It covers (1) methods for designing immersive interaction techniques not covered in the intro-level HCI courses, (2) emerging research areas and real-world applications, and (3) core theories and concepts applicable and practice brought from cognitive science, computer mediated-communication, and computer-supported cooperative work.


436V Topics in Computer Science: Information Visualization

This course provides an undergraduate-level introduction to visualization, with D3.js tooling that provides practice with modern web-based development environments. It trains CS majors in visualization for data exploration and presentation; these foundational skills are a crucial cornerstone of data science and are increasingly required in many other areas ranging from business to data journalism.

Grad Courses

547 Information Visualization

By Tamara Munzner

Computer-based visualization systems provide visual representations of datasets intended to help people carry out some task more effectively. This graduate course is an introduction to the process, principles and techniques of designing and evaluating such systems. This interdisciplinary course is designed to be accessible to students outside of computer science. Previous coursework in human-computer interaction, computer graphics, or cognitive psychology is helpful but not required.

532E Visual Display Design

By Ron Rensink

This course discusses (i) how knowledge of vision science can be applied to the design of advanced visual displays, and (ii) how knowledge of visual design can form the basis of investigations in vision science. Some applications to computer graphics (e.g., rendering and animation) are also discussed.