Computing Science
The school offers both a master of science program with a thesis option, or with a project option, or with a course option.
¶¡ÏãÔ°AV Requirements
To qualify for master of science (MSc) program admission, a student must satisfy the University admission requirements stated in section 1.3 of the graduate general regulations and must have a bachelor’s degree or the equivalent in computing science or a related field.
Students who are enrolled in the MSc program may apply to transfer to the doctor of philosophy (PhD) program after two terms in the MSc program. The school's evaluation procedure for such applications is the same as that used for outside applicants.
Program Requirements
Students complete 30 units of graduate work in one of three options chosen at the time of admission: thesis option, project option or course option. Each option consists of graduate course and optional practicum work satisfying certain breadth requirements plus a depth requirement consisting of a thesis, project or portfolio document. Any change to a student's program option must be approved by the school's graduate program committee.
Breadth Requirement
For purposes of defining breadth requirements, courses are grouped into the five major areas shown in Table 1 (below). Courses not related to the breadth requirements are shown in Table 2 (below). Any courses completed outside the School of Computing Science must be approved by the student’s senior supervisor and the director of the graduate program.
Only two special topics courses (two of CMPT 829, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889) may be used toward satisfaction of breadth requirements, except with permission of the graduate program breadth committee.
The courses used to satisfy the breadth requirements must include either CMPT 705 or 710, unless the student already has credit for one of these courses (or equivalent) from a previous degree as determined by the graduate program breadth committee
Any 700 division course used to satisfy the breadth requirement might be waived and replaced by an 800 division course. Students must produce convincing evidence to the graduate program committee that they have completed a comparable course or have comparable training in industry.
Thesis MSc students complete a breadth requirement of 15 units of graduate course or practicum work. At least 12 units must be completed through four courses drawn from Table 1 (below) so that at least one course must be from Area I - Algorithms and Complexity Theory and two of the four courses must be from two other Areas. Students may use one 3-unit practicum towards the 15 units of required course work.
Project MSc students complete a breadth requirement consisting, 24 units of graduate course or practicum work. At least 18 units must be completed through six courses drawn from Table 1 (below) so that at least one course must be from Area I - Algorithms and Complexity Theory and so that the six courses cover at least three different Areas. Students may use up to two 3-unit practicums towards the 24 unit requirement.
Course MSc students complete a breadth requirement consisting of 30 units of graduate course or practicum work. At least 18 units must be completed through six courses drawn from Table 1 (below) so that at least one course must be from Area I - Algorithms and Complexity Theory and so that the six courses cover at least three different Areas. Students may use up to three 3-unit practicums towards the 30 unit requirement.
Table 1
Area I – Algorithms and Complexity Theory
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.
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.
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.
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.
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.
Area II – Networks, Software 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.
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.
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.
Area III – Artificial Intelligence
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.
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.
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.
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.
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.
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.
Area V – Graphics, HCI, Vision and Visualization
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. Prerequisite: CMPT 361, MACM 316. Students with credit for CMPT 464 or equivalent may not take this course for further credit.
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. Prerequisite: CMPT 316, 461 or equivalent (by permission of instructor). Students with credit for CMPT 878 or 775 may not take this course for further credit.
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.
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.
Examines current research topics in computer graphics, human computer interaction (including audio), computer vision and visualization.
Table 2
This course is the first term of work experience in the School of Computing Science Co-operative Education Program for graduate students. Units of this course do not count towards computing science breadth requirements. Graded on a satisfactory/unsatisfactory basis. Prerequisite: 12 units of CMPT coursework at the 700-level or higher with a CGPA of at least 3.0.
Section | Instructor | Day/Time | Location |
---|---|---|---|
May 6 – Aug 2, 2019: Mon, Tue, Wed, Thu, Fri, 7:00 a.m.–7:50 p.m.
|
|
||
May 6 – Aug 2, 2019: Mon, Tue, Wed, Thu, Fri, 7:00 a.m.–7:50 p.m.
|
|
||
May 6 – Aug 2, 2019: Mon, Tue, Wed, Thu, Fri, 7:00 a.m.–7:50 p.m.
|
|
||
May 6 – Aug 2, 2019: Mon, Tue, Wed, Thu, Fri, 7:00 a.m.–7:50 p.m.
|
|
||
May 6 – Aug 2, 2019: Mon, Tue, Wed, Thu, Fri, 7:00 a.m.–7:50 p.m.
|
|
||
May 6 – Aug 2, 2019: Mon, Tue, Wed, Thu, Fri, 7:00 a.m.–7:50 p.m.
|
|
||
May 6 – Aug 2, 2019: Mon, Tue, Wed, Thu, Fri, 7:00 a.m.–7:50 p.m.
|
|
||
May 6 – Aug 2, 2019: Mon, Tue, Wed, Thu, Fri, 7:00 a.m.–7:50 p.m.
|
|
This course is the second term of work experience in the School of Computing Science Co-operative Education Program for graduate students. Units of this course do not count towards computing science breadth requirements. Graded on a satisfactory/unsatisfactory basis. Prerequisite: CMPT 626 and a CGPA of at least 3.0.
Section | Instructor | Day/Time | Location |
---|---|---|---|
May 6 – Aug 2, 2019: Mon, Tue, Wed, Thu, Fri, 7:00 a.m.–7:50 p.m.
|
|
||
May 6 – Aug 2, 2019: Mon, Tue, Wed, Thu, Fri, 7:00 a.m.–7:50 p.m.
|
|
||
May 6 – Aug 2, 2019: Mon, Tue, Wed, Thu, Fri, 7:00 a.m.–7:50 p.m.
|
|
||
May 6 – Aug 2, 2019: Mon, Tue, Wed, Thu, Fri, 7:00 a.m.–7:50 p.m.
|
|
||
May 6 – Aug 2, 2019: Mon, Tue, Wed, Thu, Fri, 7:00 a.m.–7:50 p.m.
|
|
||
May 6 – Aug 2, 2019: Mon, Tue, Wed, Thu, Fri, 7:00 a.m.–7:50 p.m.
|
|
||
May 6 – Aug 2, 2019: Mon, Tue, Wed, Thu, Fri, 7:00 a.m.–7:50 p.m.
|
|
||
May 6 – Aug 2, 2019: Mon, Tue, Wed, Thu, Fri, 7:00 a.m.–7:50 p.m.
|
|
This course is the third term of work experience in the School of Computing Science Co-operative Education Program for graduate students. Units of this course do not count towards computing science breadth requirements. Graded on a satisfactory/unsatisfactory basis. Prerequisite: CMPT 627 and a CGPA of at least 3.0.
Section | Instructor | Day/Time | Location |
---|---|---|---|
May 6 – Aug 2, 2019: Mon, Tue, Wed, Thu, Fri, 7:00 a.m.–7:50 p.m.
|
|
||
May 6 – Aug 2, 2019: Mon, Tue, Wed, Thu, Fri, 7:00 a.m.–7:50 p.m.
|
|
||
May 6 – Aug 2, 2019: Mon, Tue, Wed, Thu, Fri, 7:00 a.m.–7:50 p.m.
|
|
||
May 6 – Aug 2, 2019: Mon, Tue, Wed, Thu, Fri, 7:00 a.m.–7:50 p.m.
|
|
||
May 6 – Aug 2, 2019: Mon, Tue, Wed, Thu, Fri, 7:00 a.m.–7:50 p.m.
|
|
This course aims to give students experience to emerging important areas of computing science. Prerequisite: Instructor discretion.
The course requirements have a distribution requirement to ensure breadth across the major areas that are defined in Table 1 (above). This requirement specifies the number of courses selected from each of the five major Areas.
Depth Requirement
Students who choose the thesis option will demonstrate depth of knowledge in their research area through a thesis defence based on their independent work. Students should consult with their supervisory committee members, and formulate and submit a written thesis proposal for approval no later than the third term. Thesis students register in CMPT 898 during the terms in which they are conducting thesis research.
Students who choose the project option will choose an area of specialization and submit a project report. Project topics may include a comprehensive survey of the literature of some computing science related research areas; implementation and evaluation of existing techniques/algorithms; development of interesting software/hardware applications. Project students register in CMPT 897 during the terms in which they are conducting project work.
Regulations specifying the examining committee’s composition and procedures for the thesis or project exam appear in the graduate general regulations.
Students who choose the course option will submit a brief portfolio document that describes their selection of graduate courses and explains how this set of courses contributes to their areas of expertise. Course students are required to register in their chosen courses each term and will be registrered by the department in CMPT 896 during their final term only.
Supervisory Committees
A supervisory committee consists of the student’s senior supervisor, at least one other computing science faculty member, and others (typically faculty) as appropriate. The choice of senior supervisor should be made by mutual consent of the graduate student and faculty member based on commonality of research interests. The student and senior supervisor should consult on the remainder of the committee members.
Graduate general regulation 1.6 specifies that a senior supervisor be appointed normally no later than the beginning of the student’s third term in the program, and that the remainder of the supervisory committee be chosen normally in the same term in which the senior supervisor is appointed.
Accelerated Master's Program in Computing Science
Students in a Bachelor's degree program at ¶¡ÏãÔ°AV are qualified to be admitted into the Accelerated Master's program in Computing Science provided that they have satisfactorily completed at least 90 credits of undergraduate work with a CGPA of at least 3.67/4.33 including at least 24 credits of upper division CMPT course work. To be admitted to the program, the student must submit evidence, usually reference letters, from qualified referees of the student's ability to undertake advanced work in the area of interest, and must satisfy typical admission requirements set by the graduate program committee.
Students in the Accelerated Master's programs must fulfill the degree requirements of both the bachelor's program and the master's program in Computing Science. A minimum CGPA of 3.0 should be maintained while in the graduate portion of the program. The culmination of the Accelerated program is the master's degree. Students are expected to complete the master's degree within 12 months of completion of the bachelor's degree for a course-based, non-thesis master's degree, and within 18 months for a master's program requiring a thesis.
Students admitted into the Accelerated Master's program may take up to 9 units of graduate courses (the "Accelerated courses") that may be counted towards both the bachelor's degree and the master's degree subject to the following conditions:
- Only courses listed in the five breadth areas of Table I above may be taken as Accelerated courses.
- At most two courses from any one area may be used.
- At most one course numbered 800 or above may be used.
- The Accelerated courses may be used towards the master's program requirements of the thesis option only if all other requirements are met within 18 months of completion of the bachelor's degree requirements.
- The Accelerated courses may be used towards master's program requirements of a non-thesis option only if all other requirements are met within 12 months of completion of the bachelor's degree requirements.
Transferring from the Accelerated program to the regular program is possible. A student may withdraw at any time from an approved Accelerated Master's program by informing the Chairs of the Undergraduate and Graduate Programs and the Dean of Graduate Studies in writing.
Academic Requirements within the Graduate General Regulations
All graduate students must satisfy the academic requirements that are specified in the Graduate General Regulations, as well as the specific requirements for the program in which they are enrolled.