The Joint Honours Computer Science and "Z" academic plan, in conjunction with the common degree requirements in Table I in "Degree Requirements," requires a total of 40 courses (20 units), including the courses listed below and the joint honours requirements of "Z." Students not taking CS 115 or 135 are required to take an additional third or fourth year CS major course. The requirements on overall average of the Math Faculty and major averages for both plans must be met at the time of declaration of joint honours and must be maintained. It may take more than eight terms to complete a joint honours degree.
One of
CS 115 Introduction to Computer Science 1
CS 135 Designing Functional Programs
A 300- or 400-level CS major course in addition to those required below
One of
CS 136 Elementary Algorithm Design and Data Abstraction
CS 145 Design, Abstraction, and Implementation
All of
MATH 127 Calculus 1 for the Sciences or MATH 137 Calculus 1 for Honours Mathematics or MATH 147 Calculus 1 (Advanced Level)
MATH 128 Calculus 2 for the Sciences or MATH 138 Calculus 2 for Honours Mathematics or MATH 148 Calculus 2 (Advanced Level)
MATH 135 Algebra for Honours Mathematics or MATH 145 Algebra (Advanced Level)
MATH 136 Linear Algebra 1 for Honours Mathematics or MATH 146 Linear Algebra 1 (Advanced Level)
MATH 239 Introduction to Combinatorics or MATH 249 Introduction to Combinatorics (Advanced Level)
STAT 230 Probability or STAT 240 Probability (Advanced Level)
STAT 231 Statistics or STAT 241 Statistics (Advanced Level)
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 course chosen from CS 340-398, 440-489.
Two additional CS courses chosen from CS 440-489.