Courses

Graduate courses

Graduate courses assume a background of at least third-year honours Computer Science at the University of Waterloo and a similar level of mathematical maturity. Students lacking this background will be asked to acquire this material in addition to the other requirements of the program.

Course calendar

Graduate courses are classified into three levels:

  • 600-level courses are basic graduate courses
  • 700-level courses are intermediate graduate courses, and
  • 800-level courses are research-oriented courses

More information on these courses.

Graduate course offerings

In general it may be assumed that 600-level courses will be offered in each of the next few years, but that the 700 and 800-level offerings will vary greatly from year to year.

For information about instructors and time tabling of 600-level courses for the current term, please see the UW course schedule. For 700 and 800 class times, see term schedule.

Current course offerings

Enrolling in Computer Science graduate courses

Starting several weeks before the start of the term and ending at the course drop/add deadline (about three weeks after the start of the term), graduate students can enroll in CS graduate courses using Quest, the University of Waterloo's student information system. Students are advised to consult with their supervisor prior to enrolling in courses online.

Enrolling in courses

Enrolling in non-CS graduate courses

Students are permitted to use non-CS graduate courses and count these towards their course requirements if pre-approved. Students can consult a table of non-CS courses to determine if a non-CS course has previously been pre-approved and the course area and level indicated. If the proposed course is not on this table, the student must consult with the Director of Graduate Studies to get approval.
The number of non-CS courses permitted in the course requirement for each program is limited, unless an exception is made after consultation with the CS Director of Graduate Studies.
  • MMath thesis 1 out of 4 courses
  • MMath research paper 2 out of 7 courses
  • MMath coursework 2 out of 8 courses
  • PhD from master's 1 out of 4 courses
  • PhD from bachelor's 2 out of 8 courses

Enrolment in a non-CS course is done using a Drop/Add Form.

Non-CS students enrolling in CS graduate courses

Graduate students from other departments cannot enroll on Quest for CS graduate courses which are reserved for CS graduate students only.

Non-CS graduate students are advised to check the prerequisites for the course they are interested in to ensure they meet the minimum requirements. They can then request a permission # for that particular course by sending the course instructor an email with their

  • Student full name
  • Student ID #
  • Student home department registered in
  • Course # with section #

Non-CS graduate students are welcome to attend a CS graduate class in the first week of lectures if seating permits. Permission numbers will be assigned to the selected students after the first week of classes if space allows.


Students may not request a place in more than 1 course.