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.

Course outlines

For more detailed information about how a course is delivered, including textbooks, assessments, grading scheme, etc. we recommend that students search for a previous Course Outline on the University's outline repository.

The most recent offering can give you an idea of what you can expect if you were to enroll but the delivery of a course is subject to change based on the term it is offered and the instructors who are teaching it.

Last updated Aug 9, 2024
Course Title / Calendar Description Pre-requisites / Co-requisites1 Successors2 Terms offered3 Open to CS majors4 Open to non-CS majors4
CS 100 Introduction to Computing Through Applications None None Fall/Winter/Spring No Yes
CS 105 Introduction to Computer Programming 1 None CS106, CS330 Fall/Winter No Yes
CS 106 Introduction to Computer Programming 2 CS 105 CS330 Winter No Yes
CS 114 Principles of Computer Science None CS115, CS116, CS135, CS230, CS231, CS234, CS330, CS335 Winter/Fall No Yes
CS 115 Introduction to Computer Science 1 None CS116, CS136, CS230, CS231, CS234, CS330, CS335 Fall/Winter/Spring Yes Yes
CS 116 Introduction to Computer Science 2 One of CS 115/135/145 CS136, CS230, CS231, CS234, CS330, CS335, CS371 Fall/Winter/Spring Yes Yes
CS 135 Designing Functional Programs None CS116, CS136, CS230, CS231, CS234, CS330, CS335 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
CS230, CS231, CS234, CS241, CS245, CS246, CS251, CS330, CS335, CS371 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
CS230, CS231, CS234, CS241, CS245, CS246, CS251, CS330, CS335, CS371 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 CS230, CS231, CS234, CS241, CS245, CS246, CS251, CS330, CS335, CS371 Winter No No
CS 145 Designing Functional Programs (Advanced Level) Department Consent CS116, CS136, CS230, CS231, CS234, CS330 Fall Yes Yes
CS 146 Elementary Algorithm Design and Data Abstraction (Advanced Level) 75% in CS 145

Co-requisite: CS136L
CS230, CS231, CS234, CS241, CS245, CS246, CS251, CS330, CS335, CS371 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
CS338, CS436 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
CS338, CS370, CS431, CS487 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
CS338, CS370, CS487 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
CS341, CS348, CS350, CS360, CS365, CS383, CS398, CS399, CS442, CS449, CS487, CS492 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
CS341, CS348, CS350, CS360, CS365, CS383, CS398, CS399, CS442, CS449, CS487, CS492 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) CS240, CS247, CS349, CS350, CS360, CS365, CS370, CS436, CS449 Fall/Winter/Spring Yes No
CS 241E Foundations of Sequential Programs (Enriched) CS 138 or (85%+ in CS 136/146) CS240, CS247, CS349, CS350, CS360, CS365, CS370, CS436, CS449 Fall, as permitted by demand and available resources Yes No
CS 245 Logic and Computation CS 136/138/146 and MATH 135/145 CS240, CS341, CS450 Fall/Winter/Spring Yes Yes
CS 245E Logic and Computation  (Enriched) 85%+ in CS 136/146 CS240, CS341, CS450 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
CS240, CS241, CS338, CS350, CS370, CS398, CS399, CS436, CS457 Fall/Winter/Spring Yes Yes
CS 246E Object-Oriented Software Development (Enriched) 85%+ in CS 136/146 CS240, CS241, CS338, CS350, CS370, CS398, CS399, CS436, CS457 Fall, as permitted by demand and available resources Yes No
CS 247 Software Engineering Principles CS 241/241E CS346 Spring No No
CS 251 Computer Organization and Design CS 136/138/146 CS350, CS431, CS436 Fall/Winter/Spring Yes No
CS 251E Computer Organization and Design (Enriched) 85%+ in CS 136/146 CS350, CS431, CS436 No term specified 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
CS338, CS430, CS431, CS432 Fall/Winter/Spring No Yes
CS 335 Computational Methods in Business and Finance All of:
i. (60%+ in CS 114) and CS 115/135/145 or CS 106/116/136/138/146
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
CS431, CS445, CS451, CS466, CS480, CS482, CS485, CS486, CS488, CS493 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: CS 240 CS448, CS451 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
CS343, CS444, CS445, CS446 CS447, CS448, CS450, CS451, CS452, CS453, CS454, CS456, CS458, CS459, CS488, CS490, CS493 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
CS462 Fall/Winter/Spring Yes No
CS 365 Models of Computation All of:
i. CS 240/240E
ii. CS 241/241E
iii. MATH 239/249
CS462 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
CS475, CS476, CS484, CS488 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

Cross-listed: AMATH 242
CS475, CS476, CS484, CS488 Winter/Spring Yes Yes
CS 383 Computational Digital Art Studio CS 240/240E and FINE 228/247

Cross-listed: FINE 383
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 All of:
i. CS 240/240E
ii. CS 246/246E/247
iii. Completion of CS399 Agreement Form (PDF)
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

Cross-listed: ECE 451
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 All of:
i. Level 3B
ii. CS 240/240E
iii. 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 Yes
CS 484 Computational Vision STAT 206/230/240 and one of:
i. CS 370/371
ii. AMATH 242
iii. MATH 235/245
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 CS494 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 and completion of CS499R Agreement Form (PDF) None On demand Yes No
CS 499T Honours Thesis Department Consent, i.e. completion of CS499T Agreement Form (PDF) 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. 

c. 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