Computer Science Major (Science Program) - ASMAJ1689

Enrolment Requirements: 

This is a limited enrolment program that can only accommodate a certain number of students. Eligibility is based on the average of a student's grades in CSC148H1 and CSC165H1/​ CSC240H1 (where CSC240H1 grades are adjusted to account for the course's greater difficulty). In addition, students must have completed at least 4.0 FCEs and achieved a minimum grade of 70% in both CSC148H1 and CSC165H1/​ CSC240H1.

It is difficult to predict the minimum average required for admission in any given year. For more information, including some historical data, please visit


  • Students admitted to the program after second or third year will be required to pay retroactive deregulated program fees.
  • 100-level courses repeated as “extra” credits are not considered for program admission if a student has already passed specific 200-level CSC courses. For full details about repeating courses for admission to Computer Science, visit
Completion Requirements: 

(8.0 full course equivalents [FCEs], including at least 0.5 FCE at the 400-level)

First year (2.5 FCEs):
1. CSC108H1, CSC148H1, CSC165H1/​ CSC240H1; MAT137Y1/​ MAT157Y1/​( MAT135H1, MAT136H1)


  1. Students with a strong background in an object-oriented language such as Python, Java or C++ may omit CSC108H1 and proceed directly with CSC148H1. [There is no need to replace the missing half-credit for program completion; however, please base your course choice on what you are ready to take, not on “saving” a half-credit].
  2. CSC240H1 is an accelerated and enriched version of CSC165H1 plus CSC236H1, intended for students with a strong mathematical background, or who develop an interest after taking CSC165H1. If you take CSC240H without CSC165H1, there is no need to replace the missing half-credit for program completion; but please see Note (a).
  3. Consult the Undergraduate Office for advice about choosing among CSC108H1 and CSC148H1, and between CSC165H1 and CSC240H1.
  4. We recommend that students take MAT137Y1 or MAT157Y1, as they have been determined to provide the best preparation for upper-year courses in computer science and benefit students in CSC165H1/​ CSC240H1. Similarly, we recommend MAT223H1 or MAT240H1, if students choose one of these options in their later years.

Second year (2.5 FCEs):

2. CSC207H1, CSC236H1/​ CSC240H1, CSC258H1, CSC263H1/​ CSC265H1; STA247H1/​ STA255H1/​ STA257H1

Later years (3.0 FCEs):
3. 3.0 FCEs from the following:

with at least 0.5 FCE from a 400-level CSC/BCB course, at least 1.0 additional FCE from 300-/400-level CSC/BCB/ECE courses, and at least 0.5 additional FCE from a 300-/400-level course.

No more than 1.0 FCE from CSC490H1, CSC491H1, CSC494H1, CSC495H1, BCB330Y1/​ BCB430Y1 may be used to fulfill program requirements.

The choices in 3 must satisfy the requirement for an integrative, inquiry-based activity by including one of the following half-courses: CSC301H1, CSC318H1, CSC404H1, CSC311H1/​ CSC411H1, CSC418H1, CSC420H1, CSC428H1, CSC454H1, CSC485H1, CSC490H1, CSC491H1, CSC494H1, CSC495H1. This requirement may also be met by participating in the PEY (Professional Experience Year) program. Transfer credits cannot comprise more than 1.0 FCE at the 300-/400-level, and cannot be used to satisfy the requirement for an integrative, inquiry-based activity. In addition, transfer credits cannot be used to satisfy the requirement for 0.5 FCE at the 400-level in CSC/BCB.