Students in this academic plan must fulfil all the requirements in Table 1 and Table 2. This must include at least 27 math courses and the following specific requirements:
- One of
- MATH 237 Calculus 3 for Honours Mathematics
- MATH 247 Calculus 3 (Advanced Level)
- One of
- MATH 239 Introduction to Combinatorics
- MATH 249 Introduction to Combinatorics (Advanced Level)
- All of
- CS 240 Data Structures and Data Management or CS 240E Data Structures and Data Management (Enriched)
- CS 241 Foundations of Sequential Programs or CS 241E Foundations of Sequential Programs (Enriched)
- CS 245 Logic and Computation or CS 245E Logic and Computation (Enriched)
- CS 246 Object-Oriented Software Development or CS 246E Object-Oriented Software Development (Enriched)
- CS 251 Computer Organization and Design or CS 251E Computer Organization and Design (Enriched)
- CS 341 Algorithms
- CS 350 Operating Systems
- One of
- One of
- CS 360 Introduction to the Theory of Computing
- CS 365 Models of Computation
- One additional CS course chosen from CS 340-CS 398, CS 440-CS 489
- Two additional CS courses chosen from CS 440-CS 489
- One additional course chosen from
- CO 487 Applied Cryptography
- CS 440-CS 498
- CS 499T Honours Thesis
- STAT 440 Computational Inference
- CS 600- or 700-level courses
- Note: 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 academic advisor. Courses in this list may be counted as CS 0.5 unit.
- Three additional courses with ACTSC, AMATH, CO, PMATH, STAT subject codes, excluding the following:
- Courses with requisites normally excluding Honours Computer Science students
- Courses cross-listed with a CS course
- Courses explicitly listed in Computer Science major academic plans as alternatives to CS courses
- Readings and topics courses
- ACTSC 221, CO 353, CO 380, CO 480
- 5.0 non-math units, which must satisfy the same restrictions as specified for the Bachelor of Computer Science