Degree Requirements

Students will take one foundation course, five core courses, and three elective courses. Each of these courses has a weight of 0.5 credit. The foundation and core courses allow the students to build breadth and depth in the components that constitute data science.  The electives serve to provide more detailed understanding of a topic, broaden their base, or become more knowledgeable in a given application domain. Table 4 in Section 1.5.a (Structure) outlines the expected course sequence for regular and co-op students.

The degree requirements for this program are as follows:

Foundation

Students are expected to take at most one of the following two courses foundational courses depending on their undergraduate major:

  1. CS 600 Fundamentals of Computer Science for Data Science (designed for non-CS major background students)
  2. STAT 845 Statistical Concepts for Data Science (designed for non-STAT major background students)

Core

All students are required to take common core courses:

  1. STAT 847 Exploratory Data Analysis
  2. One of
    1. CS 651 Data-Intensive Distributed Computing (designed for CS major background students), or
    2. CS 631 Data-Intensive Distributed Analytics (designed for non-CS major background students).
  3. One of
    1. STAT 841 Statistical Learning: Classification
    2. STAT 842 Data Visualization
    3. STAT 844 Statistical Learning: Function estimation
  4. One of
    1. CS 638 Principles of Data Management and Use
    2. CS 648 Database Systems Implementation
    3. CS 680 Introduction to Machine Learning
    4. CS 685 Machine Learning Theory: Statistical and Computational Foundations
  5. One of
    1. CO 602 / CS 795 Fundamentals of Optimization
    2. CO 673 / CS 794 Optimization for Data Science
    3. CO 663 Convex Optimization and Analysis

Elective courses

Students must take enough additional elective courses to fulfill the 9-course requirement. These courses must normally be taken from the following list of selected graduate courses. Courses not on the list are subject to the approval of the Graduate Director.

  • CO 602 / CS 795 Fundamentals of Optimization
  • CO 673 / CS 794 Optimization for Data Science
  • CO 650 Combinatorial Optimization
  • CO 663 Convex Optimization and Analysis
  • CO 769 Topics in Continuous Optimization7
  • CS 638 Principles of Data Management and Use
  • CS 648 Database Systems Implementation
  • CS 654 Distributed Systems
  • 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 Topics7
  • CS 848 Advanced Topics in Databases7
  • CS 856 Advanced Topics in Distributed Computing7
  • CS 885 Advanced Topics in Computational Statistics7
  • CS 886 Advanced Topics in Artificial Intelligence7
  • 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 Statistics7
  • DS 701/702 Data Science Project 1 & 28

            Milestones

  • Additionally, a work-term report will be required for students in the co-op option.
  • Students must also complete the Ethics Milestone.

[footnote 7=CO 769, CS 798, CS courses at the 800 level, and STAT courses at the 900 level should be on a topic in Data Science or Artificial Intelligence; they are subject to the approval of the Graduate Director; remove footnote 8]

The particular foundation courses that students will take may vary depending on the student’s background as determined by the Director. Should students have insufficient background, then the Director will indicate to students in their admission letter whether remedial courses are required, in which case students may be admitted on a probationary basis.

The following summarizes examples of courses that students are exempt from or require to take depending on their background:

  • Students with a Bachelor's degree with a major in Computer Science, equivalent to the University of Waterloo's BMath or BCS (Computer Science), would normally be exempt from CS 600;
  • Students with a Bachelor's degree in Statistics, equivalent to the University of Waterloo's BMath (Statistics), would normally be exempt from STAT 845.
  • Students who have an honours degree equivalent to the University of Waterloo's BMath or BCS (Data Science), would normally be exempt from both foundation courses.
  • Students deemed to have sufficient relevant senior level undergraduate courses in both areas may at the discretion of the Graduate Director be exempted from both foundations course;
  • Exemption from any foundation course does not count as a course taken.