See "Academic Program/Plans" for a complete description of joint plan requirements. Students not taking CS 115 or 135 are required to take an additional third or fourth year CS major course. Note that both specialization areas designated in such joint plans must be disciplines within the Faculty of Mathematics.
All of
MATH 239 (or MATH 249) Introduction to Combinatorics
CM 339/CS 341 Algorithms
CS 240 Data Structures and Data Management
CS 241 Foundations of Sequential Programs
CS 245 Logic and Computation
CS 246 Software Abstraction and Specification
CS 251 Computer Organization and Design
CS 350 Operating Systems
One additional CS course chosen from CS 340-398, 440-489.
One additional CS course chosen from CS 440-489.
One additional course chosen from
CO 487/CM 432 Applied Cryptography
CM 461/STAT 440 Computational Inference
CS 440-498
CS 499T Honours Thesis
CS 600- or 700-level courses
(CS 600- or 700-level courses may be taken only if an equivalent 400-level course does not exist and special permission is obtained from the instructor and a CS undergraduate advisor. Courses in this list may be counted as CS 0.5 units.)