(12.0 full course equivalents [FCEs], including at least 1.5 FCEs at the 400-level)
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 CSC240H1 without CSC165H1, there is no need to replace the missing half-credit for program completion; but please see Note 1.
3. Consult the Undergraduate Office for advice about choosing among CSC108H1 and CSC148H1, and between CSC165H1 and CSC240H1.
4. 5.0 FCEs from the following:
- Any 300-/400-level CSC course;
- BCB410H1, BCB420H1, BCB430Y1;
- ECE385H1, ECE489H1;
- MAT224H1, MAT235Y1/MAT237Y1/MAT257Y1, any 300-/400-level MAT course except MAT329Y1, MAT390H1, MAT391H1;
- STA248H1/STA261H1, any 300-/400-level STA course
with at most 2.0 FCEs from MAT or STA courses, and at least 1.5 FCEs from 400-level CSC, BCB, or ECE courses.
The choices in 4 must satisfy the requirement for an integrative, inquiry-based activity by including one of the following half-courses: CSC301H1, CSC318H1, CSC404H1, 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.
Preparing for graduate study in Computer Science
Strong students should consider the option of further study in graduate school (where the degrees offered are typically M.Sc. and Ph.D.). If you find yourself frequently receiving marks in the B+ range or better, you should consult with faculty members to learn more about graduate school and whether it would be a good option for you. You will want to ask for advice on your particular interestsand you will find faculty members are happy to talk to youbut there are also some course choices that should be considered by all students thinking of graduate study in Computer Science.
The focuses can help you further refine your areas of interest, but you should not take courses exclusively in one area. You will benefit by having taken an advanced course requiring considerable software development and a theory course.
It will be especially beneficial to have done a project course (CSC494H1/CSC495H1), a capstone course (CSC490H1/CSC491H1), and/or a summer research project. It is good if this individual work is in the area where you eventually decide you'd like to do your own research, but that is not essential; what you need most is some experience doing work on your own, under the mentorship of an experienced researcher.
This program offers considerable freedom to choose courses at the 300-/400-level, and you are free to make those choices on your own. We are eager to offer guidance, however, and both our Undergraduate Office and individual faculty members are a rich source of advice.