Needles Hall, second floor, room 2201
The program information below is valid for the fall 2020 term (September 1, 2020  December 31, 2020).
The Graduate Studies Academic Calendar is updated 3 times per year, at the start of each academic term (January 1, May 1, September 1). Graduate Studies Academic Calendars from previous terms can be found in the archives.
Students are responsible for reviewing the general information and regulations section of the Graduate Studies Academic Calendar.
Graduate research fields
 Algorithms and Complexity
 Artificial Intelligence
 Bioinformatics
 Computer Algebra and Symbolic Computation
 Computer Graphics
 Cryptography, Security and Privacy
 Databases
 Formal Methods
 Health Informatics
 HumanComputer Interaction
 Information Retrieval
 Machine Learning
 Programming Languages
 Quantum Computing
 Scientific Computing
 Software Engineering
 Systems and Networking

Admit term(s)
 Fall
 Winter
 Spring

Delivery mode
 Oncampus

Program type
 Master's
 Research

Registration option(s)
 Fulltime
 Parttime
 Study option(s)

Minimum requirements
 An Honours Bachelor degree in Computer Science or Engineering (or equivalent degree) with at least a 78% standing.
 The Graduate Record Examination (GRE) General test is required of all applicants to the School of Computer Science, who have not completed a 4 year undergraduate degree at a North American University where English is the primary language of instruction.

Application materials
 Résumé
 Supplementary information form
 Transcript(s)

References
 Number of references: 3

Type of references:
at least 2 academic

English language proficiency (ELP) (if applicable)
 Graduate Academic Integrity Module (Graduate AIM)

Courses
 Students must complete 4 oneterm (0.50 unit weight) graduate courses:
 At least 1 course must be at the 800 level
 At most 1 course can be at the 600 level.
 No more than 2 courses can be taken for degree credit in one area.
 Normally, courses need to be selected from the Categories and Areas table but exceptions can be granted by the School of Computer Science.
Category
Area
Computer Science (CS) Courses
Computing Technology
Software Engineering
CS 645, CS 646, CS 647, CS 745, CS 746, CS 846
Programming Languages
CS 642, CS 644, CS 744, CS 842
Hardware and Software Systems
CS 650, CS 651, CS 652, CS 654, CS 655, CS 656, CS 657, CS 658, CS 755, CS 758, CS 854, CS 856, CS 858**,CS 869
Mathematics of Computing
Algorithms and Complexity
CS 662, CS 664, CS 666, CS 758, CS 761, CS 762, CS 763, CS 764, CS 765, CS 767, CS 840, CS 858**, CS 860
Scientific and Symbolic Computing
CS 670, CS 672, CS 675, CS 676, CS 687, CS 770, CS 774, CS 775, CS 778, CS 779, CS 780, CS 870, CS 887
Computational Statistics CS 680, CS 685, CS 786, CS 885 Quantum Information and Computation
CS 766, CS 768, CS 867
Applications
Artificial Intelligence
CS 684, CS 686, CS 784, CS 785, CS 787, CS 886
Databases
CS 640, CS 648, CS 740, CS 741, CS 742, CS 743, CS 848, CS 856*
Graphics and User Interfaces
CS 649, CS 688, CS 781, CS 783, CS 788, CS 789, CS 791, CS 888, CS 889
Bioinformatics
CS 682, CS 782, CS 882
Health Informatics
CS 792
 Note: * The versions of CS 856 entitled "InternetScale Distributed Data Management" and "Web Data Management" can be used as a Databases course.
 Note: ** CS 858 can be used as a Hardware and Software Systems course or as an Algorithms and Complexity course, depending on the course offering.
 Students must complete 4 oneterm (0.50 unit weight) graduate courses:
 Link(s) to courses
 Master’s Thesis
 Students must present their research topic in a publicly announced seminar.

Other requirements
 Fasttrack admission to the PhD in Computer Science: the School of Computer Science offers excellent students an opportunity to transfer from the MMath program to the Doctor of Philosophy (PhD) program. This transfer enables the student to begin doctoral research, bypassing the MMath thesis. To apply for this transfer, a student submits a letter of application to the Associate Director of Graduate Studies, any time after the completion of the second term of registration in the MMath program or earlier in exceptional circumstances. The application must be strongly supported by the student's proposed PhD supervisor. A successful applicant would normally be in the thesis option and have an excellent academic record. Evidence must be available that the student has begun a viable research program. If accepted for transfer to the PhD program, the student is expected to meet the requirements for a PhD student entering directly from a Bachelor's degree.
 Graduate Academic Integrity Module (Graduate AIM)

Courses
 Students must complete 7 oneterm (0.50 unit weight) courses:
 At least 2 of the courses must be at the 800 level.
 At most 3 of the courses can be at the 600 level.
 No more than 3 courses can be taken for degree credit in one area.
 Normally, courses need to be selected from the Categories and Areas table but exceptions can be granted by the School of Computer Science.
Category
Area
Computer Science (CS) Courses
Computing Technology
Software Engineering
CS 645, CS 646, CS 647, CS 745, CS 746, CS 846
Programming Languages
CS 642, CS 644, CS 744, CS 842
Hardware and Software Systems
CS 650, CS 651, CS 652, CS 654, CS 655, CS 656, CS 657, CS 658, CS 755, CS 758, CS 854, CS 856, CS 858**,CS 869
Mathematics of Computing
Algorithms and Complexity
CS 662, CS 664, CS 666, CS 758, CS 761, CS 762, CS 763, CS 764, CS 765, CS 767, CS 840, CS 858**, CS 860
Scientific and Symbolic Computing
CS 670, CS 672, CS 675, CS 676, CS 687, CS 770, CS 774, CS 775, CS 778, CS 779, CS 780, CS 870, CS 887
Computational Statistics CS 680, CS 685, CS 786, CS 885 Quantum Information and Computation
CS 766, CS 768, CS 867
Applications
Artificial Intelligence
CS 684, CS 686, CS 784, CS 785, CS 787, CS 886
Databases
CS 640, CS 648, CS 740, CS 741, CS 742, CS 743, CS 848, CS 856*
Graphics and User Interfaces
CS 649, CS 688, CS 781, CS 783, CS 788, CS 789, CS 791, CS 888, CS 889
Bioinformatics
CS 682, CS 782, CS 882
Health Informatics
CS 792
 Note: * The versions of CS 856 entitled "InternetScale Distributed Data Management" and "Web Data Management" can be used as a Databases course.
 Note: ** CS 858 can be used as a Hardware and Software Systems course or as an Algorithms and Complexity course, depending on the course offering.
 Students must complete 7 oneterm (0.50 unit weight) courses:
 Link(s) to courses
 Master’s Research Paper
 Students must present their research paper topic in a publicly announced seminar.
 Graduate Academic Integrity Module (Graduate AIM)

Courses
 Students must complete 8 oneterm (0.50 unit weight) graduate courses:
 At least 2 courses must be at the 800 level
 At most 3 courses can be at the 600 level.
 No more than 4 courses can be taken for degree credit in one area.
 Normally, courses need to be selected from the Categories and Areas table but exceptions can be granted by the School of Computer Science.
Category
Area
Computer Science (CS) Courses
Computing Technology
Software Engineering
CS 645, CS 646, CS 647, CS 745, CS 746, CS 846
Programming Languages
CS 642, CS 644, CS 744, CS 842
Hardware and Software Systems
CS 650, CS 651, CS 652, CS 654, CS 655, CS 656, CS 657, CS 658, CS 755, CS 758, CS 854, CS 856, CS 858**,CS 869
Mathematics of Computing
Algorithms and Complexity
CS 662, CS 664, CS 666, CS 758, CS 761, CS 762, CS 763, CS 764, CS 765, CS 767, CS 840, CS 858**, CS 860
Scientific and Symbolic Computing
CS 670, CS 672, CS 675, CS 676, CS 687, CS 770, CS 774, CS 775, CS 778, CS 779, CS 780, CS 870, CS 887
Computational Statistics CS 680, CS 685, CS 786, CS 885 Quantum Information and Computation
CS 766, CS 768, CS 867
Applications
Artificial Intelligence
CS 684, CS 686, CS 784, CS 785, CS 787, CS 886
Databases
CS 640, CS 648, CS 740, CS 741, CS 742, CS 743, CS 848, CS 856*
Graphics and User Interfaces
CS 649, CS 688, CS 781, CS 783, CS 788, CS 789, CS 791, CS 888, CS 889
Bioinformatics
CS 682, CS 782, CS 882
Health Informatics
CS 792
 Note: * The versions of CS 856 entitled "InternetScale Distributed Data Management" and "Web Data Management" can be used as a Databases course.
 Note: ** CS 858 can be used as a Hardware and Software Systems course or as an Algorithms and Complexity course, depending on the course offering.
Data Science specialization option
Note: The David R. Cheriton School of Computer Science is not currently accepting applications for the Data Science specialization option.

The requirements for the Data Science specialization option are 8 oneterm graduate courses, in addition to any remedial work. Remedial courses cannot be counted towards this number.

Students should take a minimum of 4 CS courses. At least 2 of the CS courses should be at the 700 or 800 level, at least 1 of which should be at the 800 level. A student may not have more than 4 courses from a single area to meet the degree requirements (see “Areas” table below).
Area
Courses
Hardware and Software Systems
CS 651, CS 654, CS 658, CS 856, CS 858
Algorithms and Complexity
CO 602, CO 650, CO 663
Scientific and Symbolic Computing
CS 870
Computational Statistics
CS 680, CS 685, CS 786, STAT 840, STAT 841, STAT 842, STAT 844, STAT 847, STAT 946
Artificial Intelligence
CS 686, CS 798, CS 886
Databases
CS 648, CS 740, CS 741, CS 743, CS 848
 In addition to the above restrictions, students must satisfy the following course requirements:
 Foundation course:
 STAT 845 Statistical Concepts for Data Science
 Students with a CS major degree are expected to take the foundation course STAT 845. However, CS major students will be exempted from taking STAT 845 if they have a sufficient background in Statistics; instead they will be required to take another STAT course from the elective course list.
 Required core courses:
 CS 651 DataIntensive Distributed Computing
 STAT 847 Exploratory data analysis
 CS major students will be exempted from taking CS 651 if they have taken a course equivalent to CS 651; instead they will be required to take another CS course from the elective course list.
 1 of the following required breadth courses:
 CS 648 Database Systems Implementation
 CS 680 Introduction to Machine Learning
 CS 685 Machine Learning Theory: Statistical and Computational Foundations
 Substitutions of the required breadth courses are possible, subject to the approval of the Graduate Officer.
 4 elective courses from the following list:
 CS 648 Database Systems Implementation
 CS 654 Distributed Systems
 CS 658 Computer Security and Privacy
 CS 680 Introduction to Machine Learning
 CS 685 Machine Learning Theory: Statistical and Computational Foundations
 CS 686 Introduction to Artificial Intelligence
 CS 740 Database Engineering
 CS 741 Parallel and Distributed Database Systems
 CS 743 Principles of Database Management and Use
 CS 786 Probabilistic Inference and Machine Learning
 CS 798 Advanced Research Topics
 CS 848 Advanced Topics in Databases
 CS 856 Advanced Topics in Distributed Computing
 CS 858 Advanced Topics in Cryptography, Security and Privacy
 CS 870 Advanced Topics in Scientific Computing
 CS 886 Advanced Topics in Artificial Intelligence
 STAT 840 Computational Inference
 STAT 841 Statistical Learning: Classification
 STAT 842 Data Visualization
 STAT 844 Statistical Learning: Function estimation
 STAT 946 Topics in Probability and Statistics
 CO 602 Fundamentals of Optimization
 CO 650 Combinatorial Optimization
 CO 663 Convex Optimization and Analysis
 Note: CS 798: CS courses at the 800 level, and STAT courses at the 900 level should be on a topic in Data Science; they are subject to the approval of the Graduate Office.
 Other advanced courses are offered within the Faculty of Mathematics on topics of Data Science on a more irregular basis. These courses may be taken with approval of the Graduate Officer and course instructor. Similarly, courses offered outside the Faculty, in Data Science or in some area of its application may be approved by the Graduate Officer and the course instructor.
 Students must complete 8 oneterm (0.50 unit weight) graduate courses:
 Link(s) to courses
 Data Science Requirement
 Students must complete the course requirements of the Data Science specialization option in order to satisfy the Data Science Requirement milestone.
Thesis option:
Master's Research Paper option:
Note: it is not possible to be admitted directly to the Master’s Research Paper option but students may be able to transfer to it from the other two options.
Coursework option:
The coursework option includes a specialization in Data Science option. Degree requirements for the specialization in Data Science are outlined below in the “Categories and Areas” table.
Note: The David R. Cheriton School of Computer Science is not currently accepting applications for the Data Science specialization option.