The program information below was valid for the spring 2018 term (May 1, 2018 - August 31, 2018). This is the archived version; the most up-to-date program information is available through the current Graduate Studies Academic Calendar.

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
  • Human-Computer Interaction
  • Information Retrieval
  • Machine Learning
  • Programming Languages
  • Quantum Computing
  • Scientific Computing
  • Software Engineering
  • Systems and Networking
  • Admit term(s) 
    • Fall
    • Winter
    • Spring
  • Delivery mode 
    • On-campus
  • Program type 
    • Master's
    • Research
  • Registration option(s) 
    • Full-time
    • Part-time
  • 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)

    Thesis option:

  • Graduate Academic Integrity Module (Graduate AIM)
  • Courses 
    • Students must complete 4 one-term (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 "Internet-Scale 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.
  • Link(s) to courses
  • Master’s Thesis
    • Students must present their research topic in a publicly announced seminar.
  • Other requirements 
    • Fast-track 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.
  • 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.

  • Graduate Academic Integrity Module (Graduate AIM)
  • Courses 
    • Students must complete 7 one-term (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 "Internet-Scale 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.
  • Link(s) to courses
  • Master’s Research Paper
    • Students must present their research paper topic in a publicly announced seminar.

    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.

  • Graduate Academic Integrity Module (Graduate AIM)
  • Courses 
    • Students must complete 8 one-term (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 "Internet-Scale 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

    • The requirements for the Data Science specialization option are 8 one-term 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 Data-Intensive 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.
  • 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.