Top

List of Approved Courses Eligible for Fulfilling the Breadth Requirements 20242025

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

Course CodeCourse TitleGroup MethodologyResearch Area
CSC2221HIntroduction to the Theory of Distributed Computing1M1RA9
CSC2240HGraphs, Matrices and Optimization1M2RA1
CSC2332HIntroduction to Quantum Computing1M2RA1
CSC2401HIntroduction to Computational Complexity1M1RA2
CSC2404HComputability and Logic1M1RA2
CSC2405HAutomata Theory1M1RA2
CSC2410HIntroduction to Graph Theory1M1RA1
CSC2412HAlgorithms for Private Data Analysis1M1RA1
CSC2414HAdvanced topics in complexity theory: Algebraic Gems in Math & CS1M1RA2
CSC2415HAdvanced Topics in the Theory of Distributed Computing1M1RA9
CSC2419HTopics in Cryptography1M1RA1
CSC2420HAlgorithm Design, Analysis, and Theory1M1RA1
CSC2421HTopics in Algorithms1M2RA1
CSC2426HFundamentals of Cryptography1M1RA2
CSC2427HTopics in Graph Theory: The Probabilistic Method1M1RA1
CSC2429HTopics in the Theory of Computation: Pseudorandomness & Expanders1M1RA2
CSC2451HQuantum Computing, Foundations to Frontier1M4RA15
CSC2556HAlgorithms for Collective Decision Making1M1RA15
CSC2417HAlgorithms for Genome Sequence Analysis2M4RA3
CSC2431HTopics in Computational Biology and Medicine2M4RA3
CSC2501HComputational Linguistics2M4RA4
CSC2502HKnowledge Representation and Reasoning2M1RA11
CSC2503HFoundations of Computer Vision2M2RA7
CSC2506HProbabilistic Learning and Reasoning2M2RA12
CSC2511HNatural Language Computing2M2RA4
CSC2512HAdvanced Propositional Reasoning2M1RA11
CSC2515HIntroduction to Machine Learning2M2RA12
CSC2516HNeural Networks and Deep Learning2M2RA12
CSC2517HDiscrete Mathematical Models of Sentence Structure2M1RA4
CSC2518HSpoken Language Processing2M4RA4
CSC2523HObject Modelling and Recognition2M1RA7
CSC2527HThe Business Software2M4RA15
CSC2528HAdvanced Computational Linguistics2M4RA4
CSC2529HComputational Imaging2 M2RA7
CSC2530HComputer Vision for Advanced Digital Photography2M2RA5/RA7
CSC2539HTopics in Computer Vision: Physics-Informed Neural Representations for Visual Computing2M2RA7
CSC2540HComputational Cognitive Models of Language2M1RA4
CSC2541HTopics in Machine Learning: Generative AI2M2RA12
CSC2541HTopics in Machine Learning: Large Models2M2RA12
CSC2542HTopics in Knowledge Representation and Reasoning2M1RA11
CSC2545HAdvanced Topics in Machine Learning: Geometric Deep Learning2M2RA12
CSC2546HComputational Neuroscience2M4RA15
CSC2547HCurrent Topics in Machine Learning2M2RA12
CSC2548HMachine Learning in Computer Vision2M2RA7
CSC2559HTrustworthy Machine Learning2M2R12
CSC2606HIntroduction to Continuum Robotics2M3RA16
CSC2611HComputational Models of Semantic Change2M2RA4
CSC2621HTopics in Robotics2M3RA16
CSC2626HImitation Learning for Robotics2M3 RA16
CSC2630HIntroduction to Mobile Robotics2M3RA16
CSC2103HSoftware Testing and Verification3M1R14
CSC2104HFormal Methods of Program Design3M1RA14
CSC2107HCompilers and Interpreters3M3RA14
CSC2108H Automated Reasoning with Machine Learning3M1RA14
CSC2125HTopics in Software Engineering: Software Engineering for ML-Enabled Systems (SE4AI) 3M1RA14
CSC2125HTopics in Software Engineering: Blockchain Technology and Engineering3M1RA14
CSC2126HTopics in Programming Languages: Types and Effects3M1RA14
CSC2130HEmpirical Research Methods in Software Engineering3M3RA14
CSC2206HComputer Systems Modeling 3M2RA6
CSC2208HAdvanced Operating Systems3M3RA6
CSC2209HComputer Networks3M3RA6
CSC2210HVisual and Mobile Computing Systems3M3RA6
CSC2222HApplications of Parallel and Distributed Computing3M3RA6
CSC2224HParallel Computer Architecture and Programming3M3RA6
CSC2226HTopics in Verification3M1RA14
CSC2227HTopics in the Design and Implementation of Operating Systems3M3RA6
CSC2228HTopics in Mobile, Pervasive and Cloud Computing3M3RA6
CSC2229HTopics in Computer Networks: Computer Networks for Machine Learning3M3RA6
CSC2231HTopics in Computer Systems: Secure Computer Systems and Hardware3M3RA6
CSC2233HTopics in Storage Systems3M3RA6
CSC2234HDatabase System Technology 3M3RA8
CSC2235HCloud-native Data Management Systems3M3RA8
CSC2302HNumerical Solutions of Initial Value Problems for Ordinary Differential Equations3M2RA13
CSC2305HNumerical Methods for Optimization Problems3M2RA13
CSC2306HHigh Performance Scientific Computing3M2RA13
CSC2310HComputational Methods for Partial Differential Equations3M2RA13
CSC2321HMatrix Calculations3M2RA13
CSC2326HTopics in Numerical Analysis3 M2RA13 
CSC2508HAdvanced Data Systems3M3RA8
CSC2525HResearch Topics in Database Management: Bigger, Faster, and Stronger Systems 3M3RA8
CSC2504HComputer Graphics4M2RA5
CSC2513HCritical Thinking for Human Computer Interaction4M4RA10
CSC2514HHuman-Computer Interaction4M4RA10
CSC2521HTopics in Computer Graphics: Seminar in Physics-based Animation                 4M2RA5
CSC2521HTopics in Computer Graphics: Seminar in Geometry and Animation4M2RA5
CSC2524HTopics in Interactive Computing4M4RA10
CSC2526HHCI: Topics in Ubiquitous Computing: Using LLMs & GPTs for Ubiquitous Computing4M4RA10
CSC2536HTopics in Computer Science and Education4M4RA10
CSC2537HInformation Visualization 4M4RA10
CSC2549HPhysics-Based Animation4M2RA5
CSC2552HTopics in Computational Social Science4M4RA15
CSC2557HAdaptive Experimentation for Intelligent Interventions 4M4RA10
CSC2558HTopics in Multidisciplinary HCI4M4RA10
CSC2604HTopics in Human-Centred and Interdisciplinary Computing: Seminar on User Interfaces and Intellectual Property4M4RA10
CSC2612HComputing and Global Development4M4RA15
CSC2615HEthical Aspects of Artificial Intelligence4M4RA15
CSC2631HMobile and Digital Health 4M4RA10
CSC2720HSystems Thinking for Global Problems4M4RA15
 

Eligible Courses offered by other departments

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

Course CodeCourse Title Group MethodologyResearch AreaNotes
ECE1502HInformation Theory1M2RA6
MAT1304HTopics in Combinatorics1M1RA2Cross-listed with CSC2414H for 2024-2025
MAT1306HTopics in the Theory of Computation: Pseudorandomness & Expanders1M1RA2Cross-listed with CSC2429H for 2024-2025
MAT1500HApplied Analysis1M1RA1Cross-listed with CSC2427H for 2024-2025
ECE1512HDigital Image Processing and Applications2M2RA7
ECE1513HIntroduction to Machine Learning2M2RA12
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
STA2104HStatistical Methods for Machine Learning and Data Mining2M2RA12
STA2163HOnline Learning and Sequential Decision Theory2M2RA12
STA4273HTopics Stats Machine Learning: Modern Learning Theory2M2RA12
STA4519HOptimal Transport: Theory & Algorithms2M2RA12
ECE1754HCompilation Techniques for Parallel Processors 3M3RA6
ECE1755HParallel Computer Architecture and Programming3M3RA6
ECE1776HComputer Security, Cryptography & Privacy3M3RA6
ECE1779HIntroduction to Cloud Computing3M3RA6
ECE1782HProgramming Massively Parallel Multiprocessors and Heterogeneous Systems3M3RA6
ECE1785HEmpirical Software Engineering3M3RA14Cross-listed with CSC2130H for 2024-2025
ECE552H1Computer Architecture 3M3RA6
STA2006HApplied Stochastic Processes3M3RA6
ECE1778HCreative Applications for Mobile Devices4M4RA10
ETH1000HEthics of AI and Context4M4RA15
STA2555HInformation Visualization4M4RA10Cross-listed with CSC2537H