Students in this academic plan must fulfil all the requirements of Table 1 and the following specific requirements:
- One of
- CS 115 Introduction to Computer Science 1
- CS 135 Designing Functional Programs
- CS 145 Designing Functional Programs (Advanced Level)
- One of
- CS 136 Elementary Algorithm Design and Data Abstraction
- CS 146 Elementary Algorithm Design and Data Abstraction (Advanced Level)
- One of
- One of
- One of
- One of
- MATH 136 Linear Algebra 1 for Honours Mathematics
- MATH 146 Linear Algebra 1 (Advanced Level)
- One of
- MATH 239 Introduction to Combinatorics
- MATH 249 Introduction to Combinatorics (Advanced Level)
- One of
- One of
- All of
- CS 136L Tools and Techniques for Software Development
- 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 additional course chosen from CS 340-CS 398, CS 440-CS 489.
- Two additional courses chosen from CS 440-CS 489, CS 499T.
- 5.0 non-math units, which must satisfy the same restrictions as specified for the Bachelor of Computer Science.