Courses and Breadth Areas
For a list and scheduling of the currently offered graduate courses, please refer to the course schedule page.
For a list of homepages and mailing lists for the current course offerings, please refer to the index of course homepages and mailing lists.
See below for graduate courses offered by the School of Computing Science. The courses are organized into two tables. Table 1 contains courses in five specific breadth areas. Table 2 contains more general topic courses, e.g., directed reading. There are also courses designated for various degree programs. For completing the breadth requirement, please download the "Breadth Evaluation Request Form" from the forms page:
AREA I - Algorithms and Complexity Theory
Computability and Logic
Deep connections between logic and computation have been evident since early work in both areas. More recently, logic-based methods have led to important progress in diverse areas of computing science. This course will provide a foundation in logic and computability suitable for students who wish to understand the application of logic in various areas of CS, or as preparation for more advanced study in logic or theoretical CS.
Design and Analysis of Algorithms
The objective of this course is to expose students to basic techniques in algorithm design and analysis. Topics will include greedy algorithms, dynamic programming, advanced data structures, network flows, randomized algorithms. Students with credit for CMPT 706 may not take this course for further credit.
This course provides a broad view of theoretical computing science with an emphasis on complexity theory. Topics will include a review of formal models of computation, language classes, and basic complexity theory; design and analysis of efficient algorithms; survey of structural complexity including complexity hierarchies, NP-completeness, and oracles; approximation techniques for discrete problems. Equivalent Courses: CMPT810
Fundamental algorithmic techniques used to solve computational problems encountered in molecular biology. This area is usually referred to as Bioinformatics or Computational Biology. Students who have taken CMPT 881 (Bioinformatics) in 2007 or earlier may not take CMPT 711 for further credit.
This course covers recent developments in discrete, combinatorial, and algorithmic geometry. Emphasis is placed on both developing general geometric techniques and solving specific problems. Open problems and applications will be discussed.
Algorithmic Graph Theory
Algorithm design often stresses universal approaches for general problem instances. If the instances possess a special structure, more efficient algorithms are possible. This course will examine graphs and networks with special structure, such as chordal, interval, and permutation graphs, which allows the development of efficient algorithms for hard computational problems.
Algorithms of Optimization
This course will cover a variety of optimization models, that naturally arise in the area of management science and operations research, which can be formulated as mathematical programming problems. Equivalent Courses: CMPT860
Special Topics in Theoretical Computing Science
AREA II - Networks, Software Engineering, and Systems
This course examines fundamental principles of software engineering and state-of-the-art techniques for improving the quality of software designs. With an emphasis on methodological aspects and mathematical foundations, the specification, design and test of concurrent and reactive systems is addressed in depth. Students learn how to use formal techniques as a practical tool for the analysis and validation of key system properties in early design stages. Applications focus on high level design of distributed and embedded systems.
Internet Architecture and Protocols
Investigates the design and operation of the global network of networks: the Internet. This course studies the structure of the Internet and the TCP/IP protocol suit that enables it to scale to millions of hosts. The focus is on design principles, performance modelling, and services offered by the Internet.
The goal of formal verification is to prove correctness or to find mistakes in software and other systems. This course introduces, at an accessible level, a formal framework for symbolic model checking, one of the most important verification methods. The techniques are illustrated with examples of verification of reactive systems and communication protocols. Students learn to work with a model checking tool such as NuSMV.
Theory of Communication Networks
This course investigates the design, classification, modelling, analysis, and efficient use of communication networks such as telephone networks, interconnection networks in parallel processing systems, and special-purpose networks. Equivalent Courses: CMPT881
Special Topics in Computer Architecture
Special Topics in Operating Systems
AREA III - Artificial Intelligence
Knowledge Representation and Reasoning
Knowledge representation is the area of Artificial Intelligence concerned with how knowledge can be represented symbolically and manipulated by reasoning programs. This course addresses problems dealing with the design of languages for representing knowledge, the formal interpretation of these languages and the design of computational mechanisms for making inferences. Since much of Artificial Intelligence requires the specification of a large body of domain-specific knowledge, this area lies at the core of AI. Prerequisite: CMPT 310/710 recommended. Cross-listed course with CMPT 411.
Machine Learning is the study of computer algorithms that improve automatically through experience. Provides students who conduct research in machine learning, or use it in their research, with a grounding in both the theoretical justification for, and practical application of, machine learning algorithms. Covers techniques in supervised and unsupervised learning, the graphical model formalism, and algorithms for combining models. Students who have taken CMPT 882 (Machine Learning) in 2007 or earlier may not take CMPT 726 for further credit.
Formal Topics - Knowledge Representation
This course surveys current research in formal aspects of knowledge representation. Topics covered in the course will centre on various features and characteristics of encodings of knowledge, including incomplete knowledge, non monotonic reasoning, inexact and imprecise reasoning, meta-reasoning, etc. Suggested preparation: a course in formal logic and a previous course in artificial intelligence.
Natural Language Processing
In this course, theoretical and applied issues related to the development of natural language processing systems and specific applications are examined. Investigations into parsing issues, different computational linguistic formalisms, natural language syntax, semantics, and discourse related phenomena will be considered and an actual natural language processor will be developed.
Intelligent systems are knowledge-based computer programs which emulate the reasoning abilities of human experts. This introductory course will analyze the underlying artificial intelligence methodology and survey advances in rule-based systems, constraint solving, incremental reasoning, intelligent backtracking and heuristic local search methods. We will look specifically at research applications in intelligent scheduling, configuration and planning. The course is intended for graduate students with a reasonable background in symbolic programming.
Special Topics in Artificial Intelligence
AREA IV - Databases, Data Mining, and Computational Biology
Introduction to advanced database system concepts, including query processing, transaction processing, distributed and heterogeneous databases, object-oriented and object-relational databases, data mining and data warehousing, spatial and multimedia systems and Internet information systems.
The student will learn basic concepts and techniques of data mining. Unlike data management required in traditional database applications, data analysis aims to extract useful patterns, trends and knowledge from raw data for decision support. Such information are implicit in the data and must be mined to be useful.
Database and Knowledge-base Systems
An advanced course on database systems which focuses on data mining and data warehousing, including their principles, designs, implementations, and applications. It may cover some additional topics on advanced database system concepts, including deductive and object-oriented database systems, spatial and multimedia databases, and database-oriented Web technology.
Special Topics in Bioinformatics
Examination of recent literature and problems in bioinformatics. Within the CIHR graduate bioinformatics training program, this course will be offered alternatively as the problem-based learning course and the advanced graduate seminar in bioinformatics (both concurrent with MBB 829). Prerequisite: Permission of the instructor.
Special Topics in Database Systems
AREA V - Graphics, HCI, Vision, and Visualization
Geometric Modelling in Computer Graphics
Advanced topics in geometric modelling and processing for computer graphics, such as Bezier and B-spline techniques, subdivision curves and surfaces, solid modelling, implicit representation, surface reconstruction, multi-resolution modelling, digital geometry processing (e.g., mesh smoothing, compression, and parameterization), point-based representation, and procedural modelling. Students with credit for CMPT 464 or equivalent may not take this course for further credit. Prerequisite: CMPT 361, MACM 316.
Advanced topics in the field of scientific and information visualization are presented. Topics may include: an introduction to visualization (importance, basic approaches and existing tools), abstract visualization concepts, human perception, visualization methodology, 2D and 3D display and interaction and their use in medical, scientific, and business applications. Students with credit for CMPT 878 or 775 may not take this course for further credit. Prerequisite: CMPT 316, 461or equivalent (by permission of instructor).
This seminar course covers current research in the field of multimedia computing. Topics include multimedia data representation, compression, retrieval, network communications and multimedia systems. Computing science graduate student or permission of instructor. Equivalent Courses: CMPT880
A seminar based on the artificial intelligence approach to vision. Computational vision has the goal of discovering the algorithms and heuristics which allow a two dimensional array of light intensities to be interpreted as a three dimensional scene. By reading and discussing research papers - starting with the original work on the analysis of line drawings, and ending with the most recent work in the field - participants begin to develop a general overview of computational vision, and an understanding of the current research problems.
Illumination in Images and Video
Explores current research in the field of imaging, computer vision, and smart cameras that aims at identifying, eliminating, and re-lighting the effects of illumination in natural scenes. One salient direction in this research is the identification and elimination of shadows in imagery. The topics touched on in the endeavour include physics-based image understanding, image processing, and information theory. Students in vision and in graphics should be interested in the material in this course.
Special Topics in Computer Graphics, HCI, Vision and Visualization
Examines current research topics in computer graphics, human computer interaction (including audio), computer vision and visualization.
CMPT 626 Graduate Co-op Practicum I
CMPT 627 Graduate Co-op Practicum II
CMPT 628 Graduate Co-op Practicum III
CMPT 880 Special Topics in Computing Science
CMPT 889-3 Special Topics in Interdisciplinary Computing
This course may be offered as Computers in Medicine, Computers in Music, Computers in Biology etc.
CMPT 894-3 Directed Reading
CMPT 896 M.Sc. Course Option Extended Document
CMPT 897 M.Sc. Project
CMPT 898 M.Sc. Thesis