Top

Completing second-year courses

Second-year courses in the Computer Science program create a common foundation for CS students, and give you an opportunity to build a cohort and community. All 200-level CSC courses are required for the CS Specialist, and all but one (CSC209H) is also required for the Major. Students in the Minor might also want to take additional 200-level courses, to complete pre-requisites for upper-level courses and to build skills in some key areas of CS. 

A special 200-level course, JSC270H, is restricted to students in the Data Science Specialist. 

In addition to CSC courses, you’ll need to complete a course in linear algebra (for the CS Specialist) and in statistics (for the CS Specialist and Major). Check the Calendar for these and other 200-level course requirements for your program, and review Courseography to see a visual map of CS courses.

200-level CSC Courses

Enriched course options: CSC240H & CSC265H

Two 200-level courses are offered in an enriched format. CSC240H is an enriched version of CSC236H, and CSC265H is an enriched version of CSC263H. Enriched courses are more theoretical, move at a faster pace, and assume different prerequisite knowledge. These are courses for students with strong mathematical skills who like a mathematical approach to learning. Topics will be studied in greater depth and assignments will be more conceptually challenging.

These courses are good preparation for students who are also studying Mathematics, or who wish to take additional upper-level Theory courses (such as CSC373H, CSC463H, and CSC473H.)

While it is sometimes possible to move from an enriched to a regular offering of the course after the start of the term, you'll benefit most from starting in the course that is the best match for your interests and skills. To help you decide which course is right for you, you can review the syllabi from previous offerings of the courses alongside the Calendar course descriptions and prerequisite listings.

Watch a short video by Professor Faith Ellen about CSC240H to help you decide if this course is right for you.

Explore each course overview below to see what students and instructors have to say about:

  • How course content will prepare you for future CS studies and CS careers

  • How course assignments are structured to help you learn

  • Tips for success from instructors and students

(The information below supplements course descriptions in the Calendar, but you should always treat the Calendar as the definitive source for course and program requirements!)

Required for:CS Specialist CS Major CS Minor ✅ DS Specialist

JSC270H1: Data Science I

Coming soon!

Looking ahead: Focuses and upper-level courses

In addition to courses required for your program, you should plan to take any 200-level courses that are prerequisites for upper-level courses of interest. Some suggestions:

  • Are there any 300- or 400-level courses that look especially interesting to you? Check the Calendar for full course offerings and pre-requisites, along with the course pathways illustrated on Courseography, to help you plan.

  • Consider whether you’d like to complete a Focus, and whether you need to take any 200-level courses as prerequisites or requirements for that Focus.

What is a Focus?

Focuses are optional ways to explore CS subfields as part of a Specialist or Major program (you can complete zero, one, or multiple Focuses), and consist of about 2.0 full credits of mostly upper-level courses that help you build expertise in the Focus area. Most of the courses that make up a Focus will count towards your program requirements, but you might need to complete an additional course or two to complete the Focus requirements. Even if you don’t want to complete a full Focus, or if you’re interested in a Focus that’s not available in your program, a Focus can be helpful in selecting upper-year courses, as it will point you towards the courses most relevant to your particular interest. Focus descriptions and requirements are in the Calendar. Focus areas include: 

  • Artificial Intelligence
  • Computational Linguistics and Natural Language Processing
  • Computer Systems
  • Computer Vision
  • Game Design
  • Human-Computer Interaction
  • Scientific Computing
  • Theory of Computation
  • Web and Internet Technologies