Computer Science (Thesis) (M.Sc.) (45 credits)
Offered by: Computer Science (Faculty of Science)
Degree: Master of Science
Program credit weight: 45
Program Description
The M.Sc. in Computer Science; Thesis program explores advanced topics in computer science and offers training in performing cutting-edge research.
Note: For information about Fall 2025 and Winter 2026 course offerings, please check back on May 8, 2025. Until then, the "Terms offered" field will appear blank for most courses while the class schedule is being finalized.
Thesis Courses (29 credits)
29 credits selected from:
Course | Title | Credits |
---|---|---|
COMP 691 | Thesis Research 1. | 3 |
Thesis Research 1. Terms offered: Summer 2025 Ongoing research pertaining to thesis. | ||
COMP 696 | Thesis Research 2. | 3 |
Thesis Research 2. Terms offered: Summer 2025 Ongoing research pertaining to thesis. | ||
COMP 697 | Thesis Research 3. | 4 |
Thesis Research 3. Terms offered: Summer 2025 Ongoing research pertaining to thesis. | ||
COMP 698 | Thesis Research 4. | 10 |
Thesis Research 4. Terms offered: Summer 2025 Ongoing research pertaining to thesis. | ||
COMP 699 | Thesis Research 5. | 12 |
Thesis Research 5. Terms offered: Summer 2025 Ongoing research pertaining to thesis. |
Required Courses (2 credits)
Course | Title | Credits |
---|---|---|
COMP 602 | Computer Science Seminar 1. | 1 |
Computer Science Seminar 1. Terms offered: this course is not currently offered. Exposure to ongoing research directions in computer science through regular attendance of the research colloquium organized by the School of Computer Science. | ||
COMP 603 | Computer Science Seminar 2. | 1 |
Computer Science Seminar 2. Terms offered: this course is not currently offered. Exposure to ongoing research directions in computer science through regular attendance of the research colloquium organized by the School of Computer Science. |
Complementary Courses (14 credits)
14 credits of COMP (or approved) courses at the 500-, 600-, or 700-level.
Complementary courses must satisfy a Computer Science breadth requirement, with at least one course in two of the Theory, Systems, and Application areas. Areas covered by specific courses are determined by the Computer Science graduate program director.
Category A: Theory
Course | Title | Credits |
---|---|---|
COMP 523 | Language-based Security. | 3 |
Language-based Security. Terms offered: this course is not currently offered. State-of-the-art language-based techniques for enforcing security policies in distributed computing environments. Static techniques (such as type- and proof-checking technology), verification of security policies and applications such as proof-carrying code, certifying compilers, and proof-carrying authentication. | ||
COMP 525 | Formal Verification. | 3 |
Formal Verification. Terms offered: this course is not currently offered. Propositional logic - syntax and semantics, temporal logic, other modal logics, model checking, symbolic model checking, binary decision diagrams, other approaches to formal verification. | ||
COMP 527 | Logic and Computation. | 3 |
Logic and Computation. Terms offered: this course is not currently offered. Introduction to modern constructive logic, its mathematical properties, and its numerous applications in computer science. | ||
COMP 531 | Advanced Theory of Computation. | 3 |
Advanced Theory of Computation. Terms offered: this course is not currently offered. Models for sequential and parallel computations: Turing machines, boolean circuits. The equivalence of various models and the Church-Turing thesis. Unsolvable problems. Model dependent measures of computational complexity. Abstract complexity theory. Exponentially and super-exponentially difficult problems. Complete problems. | ||
COMP 540 | Matrix Computations. | 4 |
Matrix Computations. Terms offered: this course is not currently offered. Designing and programming reliable numerical algorithms. Stability of algorithms and condition of problems. Reliable and efficient algorithms for solution of equations, linear least squares problems, the singular value decomposition, the eigenproblem and related problems. Perturbation analysis of problems. Algorithms for structured matrices. | ||
COMP 547 | Cryptography and Data Security. | 4 |
Cryptography and Data Security. Terms offered: this course is not currently offered. This course presents an in-depth study of modern cryptography and data security. The basic information theoretic and computational properties of classical and modern cryptographic systems are presented, followed by a cryptanalytic examination of several important systems. We will study the applications of cryptography to the security of systems. | ||
COMP 552 | Combinatorial Optimization. | 4 |
Combinatorial Optimization. Terms offered: this course is not currently offered. Algorithmic and structural approaches in combinatorial optimization with a focus upon theory and applications. Topics include: polyhedral methods, network optimization, the ellipsoid method, graph algorithms, matroid theory and submodular functions. | ||
COMP 553 | Algorithmic Game Theory. | 4 |
Algorithmic Game Theory. Terms offered: this course is not currently offered. Foundations of game theory. Computation aspects of equilibria. Theory of auctions and modern auction design. General equilibrium theory and welfare economics. Algorithmic mechanism design. Dynamic games. | ||
COMP 554 | Approximation Algorithms. | 4 |
Approximation Algorithms. Terms offered: this course is not currently offered. The theory and application of approximation algorithms. Topics include: randomized algorithms, network optimization, linear programming and semi definite programming techniques, the game theoretic method, the primal-dual method, and metric embeddings. | ||
COMP 562 | Theory of Machine Learning. | 4 |
Theory of Machine Learning. Terms offered: this course is not currently offered. Concentration inequalities, PAC model, VC dimension, Rademacher complexity, convex optimization, gradient descent, boosting, kernels, support vector machines, regression and learning bounds. Further topics selected from: Gaussian processes, online learning, regret bounds, basic neural network theory. | ||
COMP 566 | Discrete Optimization 1. | 3 |
Discrete Optimization 1. Terms offered: this course is not currently offered. Use of computer in solving problems in discrete optimization. Linear programming and extensions. Network simplex method. Applications of linear programming. Vertex enumeration. Geometry of linear programming. Implementation issues and robustness. Students will do a project on an application of their choice. | ||
COMP 567 | Discrete Optimization 2. | 3 |
Discrete Optimization 2. Terms offered: this course is not currently offered. Formulation, solution and applications of integer programs. Branch and bound, cutting plane, and column generation algorithms. Combinatorial optimization. Polyhedral methods. A large emphasis will be placed on modelling. Students will select and present a case study of an application of integer programming in an area of their choice. | ||
COMP 594 | Topics in CS: Theory 1 | 4 |
Topics in CS: Theory 1 Terms offered: this course is not currently offered. Topics in theoretical computer science. | ||
COMP 595 | Topics in CS: Theory 2 | 4 |
Topics in CS: Theory 2 Terms offered: this course is not currently offered. Topics in theoretical computer science. | ||
COMP 610 | Information Structures 1. | 4 |
Information Structures 1. Terms offered: this course is not currently offered. Study of elementary data structures: lists, stacks, queues, trees, hash tables, binary search trees, red-black trees, heaps. Augmenting data structures. Sorting and selection, Recursive algorithms. Advanced data structures including binomial heaps, Fibonacci heaps, disjoint set structures, and splay trees. Amortizing. String algorithms. Huffman trees and suffix trees. Graph algorithms. | ||
COMP 611 | Mathematical Tools for Computer Science. | 4 |
Mathematical Tools for Computer Science. Terms offered: this course is not currently offered. Introduction to mathematical concepts important across computer science, how to think mathematically, and how to write proofs. Proof techniques such as induction, contradiction, and monovariants; topics in combinatorics, graph theory, algebra, analysis, and probability; mathematical analysis of algorithms, data structures, and computational complexity. Emphasis on the mathematical explanations for useful concepts. | ||
COMP 642 | Numerical Estimation Methods. | 4 |
Numerical Estimation Methods. Terms offered: this course is not currently offered. Efficient and reliable numerical algorithms in estimation and their applications. Linear models and least squares estimation. Maximum-likelihood estimation. Kalman filtering. Adaptive estimation, GPS measurements and mathematical models for positioning. Position estimation. Fault detection and exclusion. | ||
COMP 647 | Advanced Cryptography. | 4 |
Advanced Cryptography. Terms offered: this course is not currently offered. Information theoretic definitions of security, zero-knowledge protocols, secure function evaluation protocols, cryptographic primitives, privacy amplification, error correction, quantum cryptography, quantum cryptanalysis. | ||
COMP 649 | Quantum Cryptography. | 4 |
Quantum Cryptography. Terms offered: this course is not currently offered. Review of the basic notions of cryptography and quantum information theory. Quantum key distribution and its proof of security. Quantum encryption, error-correcting codes and authentication. Quantum bit commitment, zero-knowledge and oblivious transfer. Multiparty quantum computations. | ||
COMP 690 | Probabilistic Analysis of Algorithms. | 4 |
Probabilistic Analysis of Algorithms. Terms offered: this course is not currently offered. Probabilistic analysis of algorithms and data structures under random input. Expected behaviour of search trees, tries, heaps, bucket structures and multidimensional data structures. Random sampling, divide-and-conquer, grid methods. Applications in computational geometry and in game tree searching. Combinatorial search problems. Algorithms on random graphs. | ||
COMP 760 | Advanced Topics Theory 1. | 4 |
Advanced Topics Theory 1. Terms offered: this course is not currently offered. Advanced topics in theory related to computer science. | ||
COMP 761 | Advanced Topics Theory 2. | 4 |
Advanced Topics Theory 2. Terms offered: this course is not currently offered. Advanced topics in theory related to computer science. |
Category B: Systems
Course | Title | Credits |
---|---|---|
COMP 512 | Distributed Systems. | 4 |
Distributed Systems. Terms offered: this course is not currently offered. Models and Architectures. Application-oriented communication paradigms (e.g. remote method invocation, group communication). Naming services. Synchronization (e.g. mutual exclusion, concurrency control). Fault-tolerance (e.g. process and replication, agreement protocols). Distributed file systems. Security. Examples of distributed systems (e.g. Web, CORBA). Advanced Topics. | ||
COMP 513 | Advanced Computer Systems. | 4 |
Advanced Computer Systems. Terms offered: this course is not currently offered. Selected topics in computer systems, including modularity and abstraction, layering, advanced operating systems design, performance measurements, fault tolerance, energy efficiency, and data center systems. Methods include class discussions, critique of classic and state-of-the-art papers, oral presentations and a group project. Emphasis on methods and practices for design of real systems. | ||
COMP 520 | Compiler Design. | 4 |
Compiler Design. Terms offered: this course is not currently offered. The structure of a compiler. Lexical analysis. Parsing techniques. Syntax directed translation. Run-time implementation of various programming language constructs. Introduction to code generation for an idealized machine. Students will implement parts of a compiler. | ||
COMP 529 | Software Architecture. | 4 |
Software Architecture. Terms offered: this course is not currently offered. Development, analysis, and maintenance of software architectures, with special focus on modular decomposition and reverse engineering. | ||
COMP 533 | Model-Driven Software Development. | 3 |
Model-Driven Software Development. Terms offered: this course is not currently offered. Model-driven software development; requirements engineering based on use cases and scenarios; object-oriented modelling using UML and OCL to establish complete and precise analysis and design documents; mapping to Java. Introduction to meta-modelling and model transformations, use of modelling tools. | ||
COMP 535 | Computer Networks 1. | 4 |
Computer Networks 1. Terms offered: this course is not currently offered. Fundamental design principles, elements, and protocols of computer networks, focusing on the current Internet. Topics include: layered architecture, direct link networks, switching and forwarding, bridge routing, congestion control, end-to-end protocols application of DNS, HTTP, P2P, fair queuing, performance modeling and analysis. | ||
COMP 555 | Information Privacy. | 4 |
Information Privacy. Terms offered: this course is not currently offered. Conceptual foundations of information privacy: security and cryptography, privacy by design, privacy threats. Technical controls for supporting privacy: authorization, authentication, access control, malware and intrusion detection. Application-specific privacy concerns of databases, web and mobile applications, cloud storage. | ||
COMP 596 | Topics in CS: Systems and Programming 1 | 4 |
Topics in CS: Systems and Programming 1 Terms offered: this course is not currently offered. Topics in computer systems and programming. | ||
COMP 597 | Topics in CS: Systems and Programming 2 | 4 |
Topics in CS: Systems and Programming 2 Terms offered: this course is not currently offered. Topics in computer systems and programming. | ||
COMP 614 | Distributed Data Management. | 4 |
Distributed Data Management. Terms offered: this course is not currently offered. Architecture and examples of distributed information systems (e.g., federated databases, component systems, web databases). Data consistency (consistency models, advanced transaction models, advanced concurrency control, distributed recovery). Data replication and caching. Distribution queries, Schema Integration. Advanced Topics. | ||
COMP 621 | Program Analysis and Transformations. | 4 |
Program Analysis and Transformations. Terms offered: this course is not currently offered. Program analysis and transformations are used in optimizing compilers and other automatic tools such as bug-finders, verification tools and software engineering applications. Course topics include the design of intermediate representations, control flow analysis, data flow analysis at both the intra- and inter-procedural level and program transformations for performance improvement. | ||
COMP 762 | Advanced Topics Programming 1. | 4 |
Advanced Topics Programming 1. Terms offered: this course is not currently offered. Advanced topics in programming. | ||
COMP 763 | Advanced Topics Programming 2. | 4 |
Advanced Topics Programming 2. Terms offered: this course is not currently offered. Advanced topics in programming. | ||
COMP 764 | Advanced Topics Systems 1. | 4 |
Advanced Topics Systems 1. Terms offered: this course is not currently offered. Advanced topics in computing systems. | ||
COMP 765 | Advanced Topics Systems 2. | 4 |
Advanced Topics Systems 2. Terms offered: this course is not currently offered. Advanced topics in computing systems. |
Category C: Applications
Course | Title | Credits |
---|---|---|
COMP 511 | Network Science. | 4 |
Network Science. Terms offered: this course is not currently offered. Selected topics in Network Science, Graph Mining and Graph Learning, including patterns in real world networks, ranking and similarity measures for graphs, graph clustering and community mining techniques, and node classification and link prediction methods. | ||
COMP 514 | Applied Robotics. | 4 |
Applied Robotics. Terms offered: this course is not currently offered. The approach and the challenges in the key components of manipulators and locomotors: representations, kinematics, dynamics, rigid-body chains, redundant systems, under-actuated systems, control, planning, and perception. Practical aspects of robotics: collisions, integrating sensory feedback, and real-time software development. | ||
COMP 521 | Modern Computer Games. | 4 |
Modern Computer Games. Terms offered: this course is not currently offered. Genre and history of games, basic game design, storytelling and narrative analysis, game engines, design of virtual worlds, real-time 2D graphics, game physics and physical simulation, pathfinding and game AI, content generation, 3D game concerns, multiplayer and distributed games, social issues. | ||
COMP 545 | Natural Language Understanding with Deep Learning . | 4 |
Natural Language Understanding with Deep Learning . Terms offered: this course is not currently offered. Neural network-based methods for natural language understanding (NLU) and computational semantics. Continuous representations for words, phrases, sentences, and discourse, and their connection to formal semantics. Practical and ethical considerations in applications such as text classification, question answering, and conversational assistants. | ||
COMP 546 | Computational Perception. | 4 |
Computational Perception. Terms offered: this course is not currently offered. Computational models of visual perception and audition. Vision problems include stereopsis, motion, focus, perspective, color. Audition problems include source localization and recognition. Emphasis on physics of image formation, sensory signal processing, neural pathways and computation, psychophysical methods. | ||
COMP 549 | Brain-Inspired Artificial Intelligence. | 3 |
Brain-Inspired Artificial Intelligence. Terms offered: this course is not currently offered. Overview of the influence of neuroscience and psychology on Artificial Intelligence (AI). Historical topics: perceptrons, the PDP framework, Hopfield nets, Boltzmann and Helmholtz machines, and the behaviourist origins of reinforcement learning. Modern topics: deep learning, attention, memory and consciousness. Emphasis on understanding the interdisciplinary foundations of modern AI. | ||
COMP 550 | Natural Language Processing. | 3 |
Natural Language Processing. Terms offered: this course is not currently offered. An introduction to the computational modelling of natural language, including algorithms, formalisms, and applications. Computational morphology, language modelling, syntactic parsing, lexical and compositional semantics, and discourse analysis. Selected applications such as automatic summarization, machine translation, and speech processing. Machine learning techniques for natural language processing. | ||
COMP 551 | Applied Machine Learning. | 4 |
Applied Machine Learning. Terms offered: this course is not currently offered. Selected topics in machine learning and data mining, including clustering, neural networks, support vector machines, decision trees. Methods include feature selection and dimensionality reduction, error estimation and empirical validation, algorithm design and parallelization, and handling of large data sets. Emphasis on good methods and practices for deployment of real systems. | ||
COMP 557 | Fundamentals of Computer Graphics. | 4 |
Fundamentals of Computer Graphics. Terms offered: this course is not currently offered. Fundamental mathematical, algorithmic and representational issues in computer graphics: overview of graphics pipeline, homogeneous coordinates, projective transformations, line-drawing and rasterization, hidden surface removal, surface modelling (quadrics, bicubics, meshes), rendering (lighting, reflectance models, ray tracing, texture mapping), compositing colour perception, and other selected topics. | ||
COMP 558 | Fundamentals of Computer Vision. | 4 |
Fundamentals of Computer Vision. Terms offered: this course is not currently offered. Image filtering, edge detection, image features and histograms, image segmentation, image motion and tracking, projective geometry, camera calibration, homographies, epipolar geometry and stereo, point clouds and 3D registration. Applications in computer graphics and robotics. | ||
COMP 559 | Fundamentals of Computer Animation. | 4 |
Fundamentals of Computer Animation. Terms offered: this course is not currently offered. Fundamental mathematical and computational issues in computer animation with a focus on physics based simulation: overview of numerical integration methods, accuracy and absolute stability, stiff systems and constraints, rigid body motion, collision detection and response, friction, deformation, stable fluid simulation, use of motion capture, and other selected topics. | ||
COMP 561 | Computational Biology Methods and Research. | 4 |
Computational Biology Methods and Research. Terms offered: this course is not currently offered. Application of computer science techniques to problems arising in biology and medicine, techniques for modeling evolution, aligning molecular sequences, predicting structure of a molecule and other problems from computational biology. An in-depth exploration of key research areas. | ||
COMP 564 | Advanced Computational Biology Methods and Research. | 0-3 |
Advanced Computational Biology Methods and Research. Terms offered: this course is not currently offered. Fundamental concepts and techniques in computational structural biology, system biology. Techniques include dynamic programming algorithms for RNA structure analysis, molecular dynamics and machine learning techniques for protein structure prediction, and graphical models for gene regulatory and protein-protein interaction networks analysis. Practical sessions with state-of-the-art software. | ||
COMP 565 | Machine Learning in Genomics and Healthcare. | 4 |
Machine Learning in Genomics and Healthcare. Terms offered: this course is not currently offered. Linear models in statistical genetics, causal inference, single-cell genomics, multi-omic learning, electronic health record mining. Applications of machine learning techniques: linear regression, latent factor models, variational Bayesian inference, neural networks, model interpretation. | ||
COMP 579 | Reinforcement Learning. | 4 |
Reinforcement Learning. Terms offered: this course is not currently offered. Bandit algorithms, finite Markov decision processes, dynamic programming, Monte-Carlo Methods, temporal-difference learning, bootstrapping, planning, approximation methods, on versus off policy learning, policy gradient methods temporal abstraction and inverse reinforcement learning. | ||
COMP 585 | Intelligent Software Systems . | 4 |
Intelligent Software Systems . Terms offered: this course is not currently offered. Practical aspects of building software systems with machine learning components: requirements, design, delivery, quality assessment, and collaboration. Consideration of a user-centered mindset in development; integration of design and development considerations relevant to artificial intelligence, such as security, privacy, and fairness. | ||
COMP 588 | Probabilistic Graphical Models. | 4 |
Probabilistic Graphical Models. Terms offered: this course is not currently offered. Representation, inference and learning with graphical models; directed and undirected graphical models; exact inference; approximate inference using deterministic optimization based methods, stochastic sampling based methods; learning with complete and partial observations. | ||
COMP 598 | Topics in CS: Applications 1 | 4 |
Topics in CS: Applications 1 Terms offered: this course is not currently offered. Topics in applied computer science. | ||
COMP 599 | Topics in CS: Applications 2 | 4 |
Topics in CS: Applications 2 Terms offered: this course is not currently offered. Topics in applied computer science. | ||
COMP 618 | Bioinformatics: Functional Genomics. | 3 |
Bioinformatics: Functional Genomics. Terms offered: this course is not currently offered. Techniques related to microarrays (normalization, differential expression, class prediction, class discovery), the analysis of non-coding sequence data (identification of transcription factor binding sites), single nucleotide polymorphisms, the inference of biological networks, and integrative Bioinformatics approaches. | ||
COMP 654 | Graph Representation Learning. | 4 |
Graph Representation Learning. Terms offered: this course is not currently offered. Machine learning with graph-structured data. Introductions to spectral graph theory, graph signal processing, graph convolutions, graph neural networks, and the logic of graphs. | ||
COMP 680 | Mining Biological Sequences. | 4 |
Mining Biological Sequences. Terms offered: this course is not currently offered. Advanced algorithms for the annotation of biological sequences. Algorithms and heuristics for pair-wise and multiple sequence alignment. Gene-finding with hidden Markov models and variants. Motifs discovery techniques: over representation and phylogenetic footprinting approaches. RNA secondary structure prediction. Detection of repetitive elements. Representation and annotation of protein domains. | ||
COMP 766 | Advanced Topics Applications 1. | 4 |
Advanced Topics Applications 1. Terms offered: this course is not currently offered. Advanced topics in computing systems. | ||
COMP 767 | Advanced Topics: Applications 2. | 4 |
Advanced Topics: Applications 2. Terms offered: this course is not currently offered. Advanced topics in computing systems. |