The program information below was valid for the spring 2016 term (May 1, 2016 - August 31, 2016). 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.

Fields (areas of research)

  • 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 
    • Doctoral
    • Research
  • Registration option(s) 
    • Full-time
    • Part-time
  • Study option(s) 
  • Minimum requirements 
    • A Master's degree in Computer Science with a 78% average.
    • 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.
    • Student with an undergraduate degree in Computer Science may apply for admission directly to the PhD program. Successful applicants will have an outstanding academic record, breadth of knowledge in computer science, and strong letters of recommendation.
    • PhD applicants may be admitted into the Master of Mathematics (MMath) program. Like all MMath students, they will have the option to transfer into the PhD program before completing the master's thesis if their performance warrants.
  • 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 who already have a Master's degree must take 4 additional one-term Computer Science graduate courses after the Master's degree. At least 1 of these courses must be at the 800 level, and at most 1 can be at the 600 level.
    • Students who enter the PhD program directly from a bachelor's degree must take 8 additional one-term Computer Science graduate courses after the bachelor's degree. At least 3 of these courses must be at the 800 level, and at most 3 can be at the 600 level.
    • Note: courses need to be selected from the Categories and Areas table but exceptions can be granted by the School of Computer Science.
  • Link(s) to courses
  • PhD Comprehensive Examination I
    • The Comprehensive I requirement ("breadth requirement") ensures that a student has sufficient breadth of knowledge to undertake research at the PhD level. A student meets the requirement by taking a number of advanced courses in a broad range of categories and areas. The courses used must all have a minimum mark of 78% (or equivalent).
    • Categories and Areas for Breadth Requirement: the breadth requirement divides the subject matter of computer science into three broad categories. Each category is subdivided into areas that represent a range of the fields of computer science, as given in the table below. The table also indicates where computer science courses at the University of Waterloo fit in these categories and areas. A student must have at least 1 advanced course in six of the eleven areas, including at least one area from each category:



    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 652, CS 654, CS 655, CS 656, CS 657, CS 658, CS 758, CS 854, CS 856, CS 858**,CS 869

    Mathematics of Computing

    Algorithms and Complexity

    CS 662, CS 664, CS 666, 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 673, CS 675, CS 676, CS 687, CS 770, CS 774, CS 775, CS 778, CS 779, CS 780, CS 870, CS 887

    Quantum Information and Computation

    CS 766, CS 768, CS 867


    Artificial Intelligence

    CS 684, CS 685, CS 686, CS 784, CS 785, CS 786, CS 787, CS 886


    CS 640, CS 648, CS 740, CS 741, CS 742, 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


    CS 682, CS 683, CS 782, CS 882

    Health Informatics

    CS 792, CS 793

    • 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.
    • Advanced courses taken in an undergraduate program as well as graduate courses can be used to meet the breadth requirement in each of the categories and areas. For example, at the University of Waterloo many of the 600-level graduate courses hold lectures in common with 400-level undergraduate courses. For the purposes of meeting the breadth requirement, the 400-level course is considered to be equivalent to the 600-level course. Although courses from other universities may not cover exactly the same material as the University of Waterloo courses, they will be evaluated by the Graduate Committee to determine if the topics covered and the depth of the material is appropriate. Offerings of CS 690B, CS 698, CS 798, CS 898 or equivalent may also count in an appropriate area. Courses offered by other departments may also have assigned areas.
    • Procedure: within a month of entering a PhD program, a new student submits a document to the Graduate Committee detailing their relevant past courses and future plans. Written in consultation with the student's supervisor, it should indicate:
      • Courses or equivalent (including theses) already taken by the student that fulfil part of the breadth requirement.
      • A proposed program of study (including the terms during which the courses will be taken), which the student intends to complete in order to fulfil the remaining part of the breadth requirement.
    • The Graduate Committee must be able to determine the content, level and mark for courses used to fulfil the requirement as compared to courses at Waterloo. The student must provide sufficient evidence to convince the Committee that a course (or courses) listed does indeed fulfil an area requirement. Pertinent information includes course syllabi, textbooks used, descriptions of prerequisites or co-requisites, and references to university catalogues (web-based or otherwise accessible). The Graduate Committee will ask the student for more information or certification in cases of doubt and will consult with experts in the Department as it deems appropriate. The Graduate Committee will be the final arbiter of whether courses taken and marks obtained satisfy the requirements.
    • By the end of the student's first term in the program, the Committee will inform the student which categories and areas the submitted courses have satisfied and whether the submitted plan will suffice to complete the breadth requirement.
    • A student must complete the breadth requirement by the end of their fourth term.
  • PhD Comprehensive Examination II
    • The Comprehensive II requirement ensures that a student has sufficient depth of knowledge in the chosen area of research. It comprises an oral presentation of a research proposal (not a thesis proposal) together with questioning by the Advisory Committee. The presentation and questioning are held in closed session. The Committee will determine whether the chosen research area is suitable for a thesis topic and whether the student has demonstrated an appropriate depth of knowledge of the chosen area and is capable of undertaking such a thesis. The Committee reports its decision to the student and to the Graduate Committee: either "pass" or "fail and re-take later". In the latter case, the report details the reasons for the decision and what needs to be done to satisfy the Committee.
    • An Advisory Committee is struck for each PhD student. It consists of the student's supervisor, co-supervisor (if any) and at least two other faculty members in the David R. Cheriton School of Computer Science chosen by the mutual agreement of the Committee, the student and the Director of Graduate Studies. Normally, this committee forms the basis of the student's PhD thesis defence committee.
    • PhD students are normally expected to complete the Comprehensive II requirement within the first six terms of their program. If the student changes research area, they should pass a new Comprehensive II examination in the new area.
  • PhD Seminar
    • Students must present at least 3 publicly announced seminars during the program. The purpose of this requirement is twofold: first, it ensures that each student participates in the academic life of the Department and, second, it provides an opportunity for students to hone their presentational skills. Each seminar should be attended by at least the student's supervisor and one other faculty member of the David R. Cheriton School of Computer Science, who will be required to assess and approve the quality of the presentation.
  • PhD Thesis
    • Students must submit a thesis embodying the results of their own original research. Upon completion of the thesis, the student defends the final document before an examination board consisting of the supervisor, co-supervisor (if any), two faculty members from the David R. Cheriton School of Computer Science, one University of Waterloo faculty member external to the School of Computer Science and an external examiner. The examination exposes the student's work to scholarly criticism and gives the student the opportunity to defend it.