Professional Documents
Culture Documents
CURRICULUM
Students should take a minimum of two Complementary courses in their first semester and should
complete all four Complementary courses by the end of their second semester. In addition, students
in their first two semesters should take the Seminar courses COMP 602 (Fall) and 603 (Winter).
Here is a brief summary of the requirements of the two M.Sc. programs. Both programs require:
at least 14 credits of COMP (or approved) Complementary courses at the 500 level or
higher, which satisfy a Breadth Requirement (see below)
a thesis with significant scholarly content
at least 28 credits of COMP (or approved) Complementary courses at the 500 level or
higher, which satisfy a Breadth Requirement (see below);
a research project (see guidelines)
Further details on the two programs including the course Breadth Requirement, the Letter of
Understanding agreement between student and supervisor, and the Progress Report are given
below.
Category A: Theory
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)
Category B: Systems
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)
Category C: Applications
COMP 521 Modern Computer Games (4 credits)
COMP 522 Modellin and Simulation (4 credits)
COMP 526 Probabilistic Reasoning and AI (3 credits)
COMP 546 Computational Perception (4 credits)
COMP 550 Natural Language Processing (3 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 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)
Students who have taken any Thesis Research (1-5) courses prior to switching to the Non-Thesis
program and who wish to use these credits (instead of Research Project course credits) toward their
M.Sc. Non-Thesis program should contact the M.Sc. Graduate Program Director.