CS prerequisite chart

Disclaimer

This page is intended for convenience for students/advisors to determine suitable courses for degree requirements. Please note that the table is updated manually and irregularly.

If there is a question of interpretation or a discrepancy, the Undergraduate Calendar always takes precedence.

Last updated July 22, 2024
Course Title Pre-requisites / Co-requisites1 Successors2 Terms offered3 Open to CS majors4 Open to non-CS majors4
CS 100 Introduction to Computing Through Applications None   Fall/Winter/Spring No Yes
CS 105 Introduction to Computer Programming 1 None CS 106, CS 330 Fall/Winter No Yes
CS 106 Introduction to Computer Programming 2 CS 105 CS 330 Winter No Yes
CS 114 Principles of Computer Science None CS 115, CS 116, CS 135, CS 230, CS 231, CS 234, CS 330, CS 335 Winter/Fall No Yes
CS 115 Introduction to Computer Science 1 None CS 116, CS 136, CS 230, CS 231, CS 234, CS 330, CS 335 Fall/Winter/Spring Yes Yes
CS 116 Introduction to Computer Science 2

One of CS 115/135/145

CS 136, CS 230, CS 231, CS 234, CS 330, CS 335, CS 371 Fall/Winter/Spring Yes Yes
CS 135 Designing Functional Programs None CS 116, CS 136, CS 230, CS 231, CS 234, CS 330, CS 335 Fall/Winter Yes Yes
CS 136 Elementary Algorithm Design and Data Abstraction One of:
i. 90% in CS 115
ii. 70% in CS 116
iii. 60% in CS 135
iv. CS 145

Co-requisite: CS136L
CS 230, CS 231, CS 234, CS 241, CS 245, CS 246, CS 251, CS 330, CS 335, CS 371 Fall/Winter/Spring Yes Yes
CS 136L Tools and Techniques for Software Development One of:
i. 90% in CS 115
ii. 70% in CS 116
iii. 60% in CS 135
iv. CS 145

Co-requisites: CS136/146
CS 230, CS 231, CS 234, CS 241, CS 245, CS 246, CS 251, CS 330, CS 335, CS 371 Fall/Winter/Spring Yes Yes
CS 137 Programming Principles None CS 138 Fall No No
CS 138 Introduction to Data Abstraction and Implementation CS 137 CS 230, CS 231, CS 234, CS 241, CS 245, CS 246, CS 251, CS 330, CS 335, CS 371 Winter No No
CS 145 Designing Functional Programs (Advanced Level) Department Consent  CS 136, CS 146, CS 230, CS 231, CS 234, CS 330 Fall Yes Yes
CS 146 Elementary Algorithm Design and Data Abstraction (Advanced Level) 75% in CS 145

Co-requisite: CS136L
CS 230, CS 231, CS 234, CS 245, CS 246, CS 251, CS 330, CS 335, CS 371 Winter Yes Yes
CS 200 Concepts for Advanced Computer Usage None   Winter/Spring No Yes
CS 230 Introduction to Computers and Computer Systems One of:
i. CS 116/136/138/146 
ii. (60%+ in CS 114) and CS 115/135/145
CS 338, CS 436 Winter/Spring No Yes
CS 231 Algorithmic Problem Solving One of:
i. CS 116/136/138/146 
ii. (60%+ in CS 114) and CS 115/135/145
CS 338, CS 370, CS 431, CS 487 Spring No Yes
CS 234 Data Types and Structures One of:
i. CS 116/136/138/146 
ii. (60%+ in CS 114) and CS 115/135/145

CS 338, CS 370, CS 487

Fall/Spring No Yes
CS 240 Data Structures and Data Management All of:
i. CS 245/245E or SE 212
ii. CS 241/241E/246/246E
iii. STAT 206/230/240
CS 341, CS 348, CS 350, CS 360, CS 365, CS 383, CS 398, CS 399, CS 442, CS 449, CS 487, CS 492 Fall/Winter/Spring Yes No
CS 240E Data Structures and Data Management (Enriched) 85%+ in CS 136/138/146

Co-requisite: STAT 206/230/240

CS 341, CS 348, CS 350, CS 360, CS 365, CS 383, CS 398, CS 399, CS 442, CS 449, CS 487, CS 492

Winter/Spring as permitted by demand and available resources Yes No
CS 241 Foundations of Sequential Programs

CS 138/246/246E or (85%+ in CS 136/146)
 

CS 240, CS 247, CS 349, CS 350, CS 360, CS 365, CS 370, CS 436, CS 449

Fall/Winter/Spring Yes No
CS 241E Foundations of Sequential Programs (Enriched) CS 138 or (85%+ in CS 136/146) CS 240, CS 247, CS 349, CS 350, CS 360, CS 365, CS 370, CS 436, CS 449 Fall as permitted by demand and available resources Yes No
CS 245 Logic and Computation CS 136/138/146 and MATH 135/145 CS 240, CS 341, CS 450 Fall/Winter/Spring Yes Yes
CS 245E Logic and Computation  (Enriched) 85%+ in CS 136/146 CS 240, CS 341, CS 450 Fall as permitted by demand and available resources Yes No
CS 246 Object-Oriented Software Development

One of:
i. 60%+ in CS 136/138
ii. CS 146

CS 240, CS 241, CS 338, CS 350, CS 370, CS 398, CS 399, CS 436, CS 457 Fall/winter/spring Yes Yes
CS 246E Object-Oriented Software Development (Enriched) 85%+ in CS 136/146 CS 240, CS 241, CS 338, CS 350, CS 370, CS 398, CS 399, CS 436, CS 457 Fall as permitted by demand and available resources Yes No
CS 247 Software Engineering Principles CS 241/241E CS 346 Spring No No
CS 251 Computer Organization and Design CS 136/138/146 CS 350, CS 431, CS 436 Fall/Winter/Spring Yes No
CS 251E Computer Organization and Design (Enriched) 85%+ in CS 136/146 CS 350, CS 431, CS 436 As permitted by demand and available resources Yes No
CS 330 Management Information Systems

​Level 2B and one of:
i. CS 106/116/136/138/146
ii. (60%+ in CS 114) and CS 115/135/145

CS 338, CS 430, CS 431, CS 432 Fall/Winter/Spring No Yes
CS 335 Computational Methods in Business and Finance All of:
i. One of CS 106/116/136/138/146 or (60%+ in CS 114) and CS 115/135/145
ii. (70%+ in MATH 106) or MATH 136/146
iii. MATH 237/247
iv. STAT 206/231/241
None Fall/Winter No Yes
CS 338 Computer Applications in Business: Databases

One of:
i. CS 230/231/234/246/246E/330
ii. CS 116/136/146 and AFM 341

None Fall/Winter/Spring No Yes
CS 341 Algorithms

All of:
i. CS 240/240E
ii. CS 245/245E or SE 212
iii. MATH 239/249
iv. STAT 206/230/240

CS 431, CS 445, CS 451, CS 466, CS 480, CS 482, CS 485, CS 486, CS 488, CS 493 Fall/Winter/Spring Yes No
CS 343 Concurrent and Parallel Programming CS 350 or SE 350 None Fall/Winter Yes No
CS 346 Application Development CS 246/246E/247 None Fall/Winter Yes No
CS 348 Introduction to Database Management Co-requisite: CS240 CS 448, CS 451 Fall/Winter/Spring Yes No
CS 349 User Interfaces

CS 241/241E and MATH 115/136/146

None Fall/Winter/Spring Yes No
CS 350 Operating Systems

All of:
i. CS 240/240E
ii. CS 241/241E
iii. CS 246/246E
iv. CS 251/251E or ECE 222

CS 343, CS 444, CS 445, CS 446, CS 447, CS 448, CS 450, CS 451, CS 452, CS 453, CS 454, CS 456, CS 458, CS 459, CS 488, CS 490, CS 493 Fall/Winter/Spring Yes No
CS 360 Introduction to the Theory of Computing All of:
i. CS 240/240E
ii. CS 241/241E
iii. MATH 239/249
CS 462 Fall/Winter/Spring Yes No
CS 365 Models of Computation All of:
i. CS 240/240E
ii. CS 241/241E
iii. MATH 239/249
CS 462 Winter Yes No
CS 370 Numerical Computation All of:
i. MATH 106/114/115/136/146
ii. MATH 118/119/128/138/148
iii. CS 231/234/241/241E/246/246E
CS 475,  CS 476,  CS 484,  CS 488 Fall/Winter/Spring Yes Yes
CS 371 Introduction to Computational Mathematics All of:
i. CS 116/136/138/146
ii. MATH 235/245
iii. MATH 237/247
CS 475,  CS 476,  CS 484,  CS 488 Winter/Spring Yes Yes
CS 383 Computational Digital Art Studio CS 240/240E and FINE 228/247 None Winter Yes Yes
CS 398 Topics in Computer Science CS 240/240E and CS 246/246E/247 None On demand Yes No
CS 399 Readings in Computer Science CS 240/240E and CS 246/246E/247 None On demand Yes No
CS 430 Applications Software Engineering Level 3A and CS 330 None Fall/Winter No Yes
CS 431 Data-Intensive Distributed Analytics CS 231/234/341 and CS 251/251E/330 None Winter/Spring No Yes
CS 432 Business Systems Analysis -- -- Currently not offered. -- --
CS 436 Networks and Distributed Computer Systems CS 230/241/241E/246/246E/251/251E None Winter No Yes
CS 442 Principles of Programming Languages CS 240/240E None Winter Yes No
CS 444 Compiler Construction CS 350 or SE 350 None Winter Yes No
CS 445 Software Requirements Specification and Analysis CS 341/350 None Fall/Winter/Spring Yes No
CS 446 Software Design and Architectures CS 350 None Winter/Spring Yes No
CS 447 Software Testing, Quality Assurance and Maintenance CS 350 None Winter Yes No
CS 448 Database Systems Implementation CS 350 None Winter Yes No
CS 449 Human-Computer Interaction Level 3B, CS 240/240E, and CS 241/241E None Fall/Spring Yes No
CS 450 Computer Architecture All of:
i. CS 245/245E or SE 212
ii. CS 350 or SE 350
None Winter Yes No
CS 451 Data-Intensive Distributed Computing CS 341, CS 348, and (CS 350 or SE 350) None Winter/Spring Yes No
CS 452 Real-Time Programming CS 350 or SE 350 None Winter/Spring Yes No
CS 453 Software and Systems Security CS 350 or SE 350 None Fall Yes No
CS 454 Distributed Systems CS 350 or SE 350 None Winter/Spring Yes No
CS 456 Computer Networks CS 350 or SE 350 None Fall/Winter/Spring Yes No
CS 457 System Performance Evaluation CS 246/246E/247 and STAT 206/231/241 None No term specified Yes No
CS 458 Computer Security and Privacy -- -- Currently not offered. -- --
CS 459 Privacy, Cryptography, Network and Data Security (CS 350 or SE 350) and MATH 135/145 None Fall Yes No
CS 462 Formal Languages and Parsing CS 360/365 None Currently not offered. Yes No
CS 466 Algorithm Design and Analysis CS 341 None Fall/Spring Yes No
CS 467 Introduction to Quantum Information Processing Level 3A and 80% in MATH 235/245 None Winter Yes Yes
CS 475 Computational Linear Algebra CS 370/371 or AMATH 242 None Spring Yes Yes
CS 476 Numeric Computation for Financial Modeling

All of:
i. CS 370/371 or AMATH 242
ii. (60%+ in STAT 206) or STAT 231/241

None Winter Yes Yes
CS 479 Neural Networks All of:
i. CS 335/370/371 or AMATH 242
ii. (60%+ in STAT 206) or STAT 230/240
None Winter Yes Yes
CS 480 Introduction to Machine Learning CS 341 and STAT 206/231/241 None Fall/Winter/Spring No No
CS 482 Computational Techniques in Biological Sequence Analysis CS 341 and one of:
i. 70%+ in STAT 206
ii. 60%+ in STAT 231
iii. STAT 241
None Winter   Yes
CS 484 Computational Vision All of:
i. CS 370/371 or AMATH 242 or MATH 235/245
ii. STAT 206/230/240
None Fall/Winter Yes No
CS 485 Statistical and Computational Foundations of Machine Learning CS 341 and STAT 206/230/240 None Fall Yes No
CS 486 Introduction to Artificial Intelligence CS 341

Co-requisite: STAT 206/231/241
None Fall/Winter/Spring Yes No
CS 487 Introduction to Symbolic Computation CS 231/234/240/240E None Winter Yes Yes
CS 488 Introduction to Computer Graphics All of:
i. CS 341
ii. CS 350 or SE 350
iii. CS 370/371
None Fall/Winter/Spring Yes No
CS 489 Advanced Topics in Computer Science Level at least 3B None Fall/Winter/Spring Yes No
CS 490 Information Systems Management CS 350 or SE 350 None Winter/Spring Yes No
CS 492 The Social Implications of Computing CS 240/240E None Winter/Spring Yes No
CS 493 Team Project 1 CS 341 and CS 350 CS 494 Fall Yes No
CS 494 Team Project 2 CS 493 None Winter Yes No
CS 497 Multidisciplinary Studies in Computer Science Level at least 3B None No term specified Yes No
CS 499R Readings in Computer Science Level at least 3B None On demand Yes No
CS 499T Honours Thesis Department Consent None On demand Yes No

1. Co-requisite indicates that the course must be taken in the same term or must have been taken prior (like a pre-requisite). 

2. Successors are purely based on the calendar requirements. Some courses are recommended to take in a certain sequence, but are not required in the same way as pre-requisite courses behave for their successors.

3. Terms offered is not a guarantee that it will be offered. Some enriched courses and certain 300-/400-level courses are only offered if the School has sufficient resources to teach and support enrollment. Please connect with a CS advisor to verify if a course you plan to take in the future has uncertainty of it being offered when you need it. 

4. Please consult with the course's calendar description to ensure there are no other restrictions.
a. CS majors are defined to be students enrolled in one of the following plans: BCS Computer Science, BMath Computer Science, BBA/BCS Double Degree, Joint Computer Science (BCS), Joint Computer Science (BMath), Computing & Financial Management (CFM), BCS Data Science, and Software Engineering. 
b. CS non-majors are defined to be students enrolled in plans other than those listed above. This includes "Honour Mathematics students", which includes any Bachelor of Math program. 
d. It is possible that a courses are only offered to specific programs such as CS 137/138 which are only available to Software Engineering Students. These courses should be noted as unavailable for both CS majors and non-CS majors.

Back to top