Top

List of Approved Courses Eligible for Fulfilling the Breadth Requirements 20262027

The breadth requirement for the MSc and PhD degree programs ensures that students complete courses from a sufficiently wide range of topics within Computer Science. Only courses that are on the List of Approved Courses Eligible for Fulfilling Breadth Requirements when they are taken can be used to satisfy the breadth requirement. This list is updated annually by the Graduate Affairs Committee.  It includes almost all graduate courses taught in our department and a small number of courses offered by other departments on topics that have substantial Computer Science content.

The courses on this list are divided into 4 groups, depending on their subject area:

• Group 1: Algorithms, Complexity, Cryptography, Theory of Distributed Computing

• Group 2: Artificial Intelligence, Machine Learning, Knowledge Representation, Computational Linguistics, Computational Biology and Medicine, Robotics, Vision

• Group 3: Systems, Networks, Databases, Security, Programming Languages, Compilers, Software Engineering, Scientific Computing

• Group 4: Human Computer Interaction, Computational Social Science, Visualization, Graphics, Sustainability Computing, Computer Science Education

Breadth Requirements Pre-2024

CS courses are classified on the basis of their content into four methodologies and sixteen research areas. Methodologies are core problem-solving approaches and/or techniques and general tools emphasized in the course material, while research areas are aligned with the activities of the various research groups in the department.

Eligible Courses offered by the Department of Computer Science

Eligible Courses offered by other departments

Eligible Courses offered by the Department of Computer Science 2026-2027

Course CodeCourse TitleGroupMethodologyResearch Area
CSC1500HFundamentals of Teaching Computer Science in Higher EducationN/AN/AN/A
CSC2103HSoftware Testing and Verification3M1RA14
CSC2104HFormal Methods of Program Design3M1RA14
CSC2108HAutomated Reasoning with Machine Learning3M1RA14
CSC2125HTopics in Software Engineering: Software Engineering for Machine Learning3M1RA14
CSC2126HTopics in Programming Languages: Advanced Functional Programming3M1RA14
CSC2208HAdvanced Operating Systems3M3RA6
CSC2209HComputer Networking Systems3M3RA6
CSC2221HIntroduction to the Theory of Distributed Computing1M1RA9
CSC2222HApplications of Parallel and Distributed Computing3M3RA6
CSC2229HTopics in Computer Networks: Computer Networks and Machine Learning3M3RA6
CSC2229HTopics in Computer Networks: Privacy-Enhancing Technologies3M3RA6
CSC2234HDatabase System Technology3M3RA8
CSC2235HCloud-Native Data Management Systems3M3RA8
CSC2236HData Structures in the Wild3M3RA8
CSC2237HSecure Computer Hardware Systems3M3RA6
CSC2305HNumerical Methods for Optimization Problems3M2RA13
CSC2321HMatrix Calculations3M2RA13
CSC2405HAutomata Theory1M1RA2
CSC2407HMathematical Methods in the Theory of Computation1M1RA1/RA2
CSC2410HIntroduction to Graph Theory1M1RA1
CSC2414HAdvanced Topics in Complexity Theory: Quantum Algorithms and Complexity Theory1M1RA2
CSC2414HAdvanced Topics in Complexity Theory: Applications of High-Dimensional Expanders1M1RA2
CSC2419HTopics in Cryptography: Zero-Knowledge Proofs1M1RA2
CSC2421HTopics in Algorithms: Online and Other Myopic Algorithms1M1RA1
CSC2421HTopics in Algorithms: Algorithmic Discrepancy Theory1M1RA1
CSC2429HTopics in the Theory of Computation: Algebraic Gems in Discrete Math and Theoretical Computer Science1M1RA2
CSC2431HTopics in Computational Biology and Medicine: Building and Deploying AI in Medicine2M4RA3
CSC2501HComputational Linguistics2M4RA4
CSC2502HKnowledge Representation and Reasoning2M1RA11
CSC2506HProbabilistic Learning and Reasoning2M2RA12
CSC2506HProbabilistic Learning and Reasoning2M2RA12
CSC2508HAdvanced Data Systems3M3RA8
CSC2511HNatural Language Computing2M2RA4
CSC2512HAdvanced Propositional Reasoning2M1RA11
CSC2514HHuman-Computer Interaction4M4RA10
CSC2514HHuman-Computer Interaction4M4RA10
CSC2515HIntroduction to Machine Learning2M2RA12
CSC2516HNeural Networks and Deep Learning2M2RA12
CSC2518HSpoken Language Processing2M4RA4
CSC2524HTopics in Interactive Computing: Human-Centered Artificial Intelligence4M4RA10
CSC2526HHCI: Topics in Ubiquitous Computing: Context-Aware Computing4M4RA10
CSC2527HThe Business of Software4M4RA15
CSC2529HComputational Imaging2M2RA7
CSC2530HComputational Imaging and 3D Sensing2M2RA5/RA7
CSC2532HStatistical Learning Theory2M2RA12
CSC2537HInformation Visualization4M4RA10
CSC2539HTopics in Computer Vision: Physics-Informed Neural Representations for Visual Computing2M2RA7
CSC2541HTopics in Machine Learning: Learning Theory2M2RA12
CSC2545HAdvanced Topics in Machine Learning: Geometric Deep Learning2M2RA12
CSC2555HMathematical Foundations of Algorithmic Fairness1M4RA15
CSC2558HTopics in Multidisciplinary HCI: Technology Abuse in Interpersonal Contexts4M4RA15
CSC2600HTopics in Computer Science: Capstone Project for the Business of SoftwareN/AN/AN/A
CSC2600H Topics in Computer Science: Algorithmic Social Systems4M2RA15
CSC2611HComputational Models of Semantic Change2M2RA4
CSC2626HImitation Learning for Robotics2M3RA16
CSC2631HMobile and Digital Health4M4RA10
 

Eligible Courses offered by other departments 2026-2027

The following courses have been approved for breadth in 2026—2027. Future offerings of these courses may or may not be approved for breadth. Courses on this list may not be available for enrolment for 2026—2027. Please see the course’s home unit for enrolment dates and availability.

Course CodeCourse TitleGroupMethodologyResearch AreaNotes
ECE1502HInformation Theory1M2RA6
ECE1512HDigital Image Processing and Applications2M2RA7
ECE1513HIntroduction to Machine Learning2M2RA12
ECE1754HCompilation Techniques for Parallel Processors3M3RA6
ECE1755HParallel Computer Architecture and Programming3M3RA6
ECE1776HComputer Security, Cryptography & Privacy3M3RA6
ECE1778HCreative Applications for Mobile Devices4M4RA10
ECE1779HIntroduction to Cloud Computing3M3RA6
ECE1782HProgramming Massively Parallel Multiprocessors and Heterogeneous Systems3M3RA6
ECE552H1Computer Architecture3M3RA6
ETH1000HEthics of AI and Context4M4RA15
MAT1304HTopics in the Theory of Computation1M1RA2Cross-lised with CSC2429H starting Winter 2027
MAT1307HMathematical Methods in the Theory of Computation1M1RA1/RA2Cross-lised with CSC2407H starting Fall 2026
MAT1501HGraph Theory1M1RA1Cross-lised with CSC2410H starting Winter 2027
MIE1501HKnowledge Modelling and Management2M1RA11
MIE1510HFormal Techniques in Ontology Engineering2M1RA11
MIE1513HDecision Support Systems2M1RA11
MIE1520HLearning with Graphs and Sequences2M1RA12
MIE1619HConstraint Programming and Hybrid Optimization2M2RA12
MIE1666HMachine Learning for Mathematical Optimization2M1RA12
ROB501H1Computer Vision for Robotics2M2RA7
ROB502H1Programming for Robotics2M2RA16
ROB521H1Mobile Robotics and Perception2M2RA16
STA2006HApplied Stochastic Processes3M3RA6
STA2104HStatistical Methods for Machine Learning and Data Mining2M2RA12
STA2162HStatistical Inference I2M2RA12New as of 2026-2027
STA2163HOnline Learning and Sequential Decision Theory2M2RA12
STA2555HInformation Visualization4M4RA10Cross-listed with CSC2537H Winter 2027
STA4273HTopics Stats Machine Learning: Modern Learning Theory2M2RA12
STA4519HOptimal Transport: Theory & Algorithms2M2RA12