Ph.D. Courses

  • Nominally, students in the Ph.D. program must successfully complete eight graduate courses, of which at least five are computer science courses.
  • Graduate-level courses taken in the past, however, may count towards this requirement. Course reduction requests are considered only in the first few weeks of the beginning of the fall and winter terms and require the student to submit a course reduction request form well in advance. The forms must be sent to the graduate secretary.
  • Regardless of the result of the course reduction request, every Ph.D. student must take at least two courses from the School of Computer Science at McGill.
  • According to a GPS rule, no more than one-third of the McGill program formal coursework can be credited with courses from another university.
  • While the students can use the course reduction request to reduce their course requirement to only two courses, we strongly recommend the students view the possibility of taking several courses during their Ph.D. as an opportunity. The students should take advantage of the many graduate courses that are offered in the department and build a solid and broad foundation for their knowledge of computer science.
  • Courses are divided into two broad categories. The students who do not have an undergraduate degree in computer science or computer engineering must have course credit for at least two courses from each category. Note that this is not an exhaustive (or well maintained) list, and students should consult their supervisor or the graduate program director if in doubt.

Category A: Theory and applications

COMP 523 Language-based Security (3 credits)
COMP 524 Theoretical Foundations of Programming Languages (3 credits)
COMP 525 Formal Verification (3 credits)
COMP 527 Logic and Computation
COMP 531 Advanced Theory of Computation (3 credits)
COMP 540 Matrix Computations (4 credits)
COMP 547 Cryptography and Data Security (4 credits)
COMP 552 Combinatorial Optimization (4 credits)
COMP 553 Algorithmic Game Theory (4 credits)
COMP 554 Approximation Algorithms (4 credits)
COMP 560 Graph Algorithms and Applications (3 credits)
COMP 566 Discrete Optimization 1 (3 credits)
COMP 567 Discrete Optimization 2 (3 credits)
COMP 610 Information Structures 1 (4 credits)
COMP 627 Theoretical Programming Languages (4 credits)
COMP 642 Numerical Estimation Methods (4 credits)
COMP 647 Advanced Cryptography (4 credits)
COMP 649 Quantum Cryptography (4 credits)
COMP 690 Probabilistic Analysis of Algorithms (4 credits)
COMP 760 Advanced Topics Theory 1 (4 credits)
COMP 761 Advanced Topics Theory 2 (4 credits)
COMP 526 Probabilistic Reasoning and AI (3 credits)
COMP 550 Natural Language Processing (3 credits)
COMP 561 Computational Biology Methods and Research (4 credits)
COMP 564 Advanced Computational Biology Methods and Research (3 credits)
COMP 579 Reinforcement Learning (4 credits)
COMP 618 Bioinformatics: Functional Genomics (3 credits)
COMP 680 Mining Biological Sequences (4 credits)
COMP 652 Machine Learning (4 credits)
COMP 611 Mathematical Tools for Computer Science (4 credits)
COMP 588 Probabilistic Graphical Models (4 credits)

Category B: Systems and applications

COMP 512 Distributed Systems (4 credits)
COMP 520 Compiler Design (4 credits)
COMP 529 Software Architecture (4 credits)
COMP 533 Model-Driven Software Development (3 credits)
COMP 535 Computer Networks 1 (4 credits)
COMP 575 Fundamentals of Distributed Algorithms (3 credits)
COMP 612 Database Programming Principles (4 credits)
COMP 614 Distributed Data Management (4 credits)
COMP 621 Program Analysis and Transformations (4 credits)
COMP 655 Distributed Simulation (4 credits)
COMP 667 Software Fault Tolerance (4 credits)
COMP 762 Advanced Topics Programming 1 (4 credits)
COMP 763 Advanced Topics Programming 2 (4 credits)
COMP 764 Advanced Topics Systems 1 (4 credits)
COMP 765 Advanced Topics Systems 2 (4 credits)
COMP 521 Modern Computer Games (4 credits)
COMP 522 Modelling and Simulation (4 credits)
COMP 546 Computational Perception (4 credits)
COMP 551 Applied Machine Learning (4 credits)
COMP 557 Fundamentals of Computer Graphics (4 credits)
COMP 558 Fundamentals of Computer Vision (4 credits)
COMP 559 Fundamentals of Computer Animation (4 credits)
COMP 514 Applied Robotics (4 credits)

Category A or B depending on the topic:A

COMP 766 Advanced Topics Applications 1 (4 credits)
COMP 767 Advanced Topics: Applications 2 (4 credits)
COMP 597 Topics in Computer Science 4 (4 credits)

Detailed course descriptions may be found elsewhere on the website.