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 | 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: |
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: |
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: |
None | Fall/Winter/Spring | No | Yes |
CS 341 | Algorithms |
All of: |
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: |
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: |
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.