In conjunction with the common degree requirements in Table I in "Degree Requirements," this plan requires at least 27 math courses. Students not taking CS 115 or 135 are required to take an additional third or fourth year CS major course. These overall requirements must include the Faculty core courses outlined in Table II in "Degree Requirements" and the following courses:
All of
MATH 237 Calculus 3 for Honours Mathematics or MATH 247 Calculus 3 (Advanced Level)
MATH 239 Introduction to Combinatorics or MATH 249 Introduction to Combinatorics (Advanced Level)
AMATH 341/CM 271/CS 371 Introduction to Computational Mathematics or CS 370 Numerical Computation
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
CS 360 Introduction to the Theory of Computing or CS 365 Models of Computation
One additional CS course chosen from CS 340-398, 440-489.
Two additional CS courses 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.)
Three additional courses labelled ACTSC, AMATH, CO, CM, PMATH, STAT, excluding the following:
- Courses with requisites normally excluding Honours CS students
- Courses cross-listed with a CS course
- Courses explicitly listed in CS major plans as alternatives to CS courses
- Readings and Topics courses
- ACTSC 221, CO 352/CM 340, CO 353/CM 441, CO 380, 480
The 5.0 non-math units must satisfy the same restrictions as specified for the Bachelor of Computer Science (honours).