The David R. Cheriton School of Computer Science is part of North America’s only dedicated Faculty of Mathematics. As a CS major student (BCS or BMath CS), you have the opportunity to build a strong foundation in computer science and math. In addition to the CS programs, there are many other fields of study you can explore.
This page will guide you through your academic journey as a CS major student. It includes how, when, and what courses to take; the programs available and its requirements; how to enhance your degree, etc. Click on the links below to quickly access major sections of this page:
For non-CS courses, you will need to go to the appropriate person/office to enrol:
- For first year Math courses, go to the Math Undergrad Office or to the First Year Advising Office (MC 4023).
- For other Math courses, go to either the instructor or the advisor of the department offering the course.
- For courses in other Faculties, you'll most likely need to see the instructor. Some courses may require you to see their advisor instead.
Course selection for a future term: Participating in course selection/pre-enrollment is vital to better your chances of enrolling into your preferred courses
Enrolling into CS courses during the add/drop period: Information and process about how to enrol into CS courses during the add/drop period and policy on CS courses
Below are links that will guide you on which courses to take and when. The top three links will direct you to which courses are typically taken together in the first two or three years in CS and includes a visual map of the CS and Math courses you need to progress in your academic career. The last three links below provide you a list of courses available here at UW, including their description and terms of offering, to help you find courses and plan you degree.
Suggested Course Schedule: Term-by-term list of courses most students should take
CS prerequisite chart: Shows you the prerequisite course(s) you must pass before you can take the next CS course
Math prerequisite chart: Shows you the prerequisite course(s) you must pass before you can take the next Math course
CS course - calendar description: Contains brief descriptions of CS courses and may help you determine whether a course is interesting to you
CS course - detailed description: Provides more detailed description, learning objectives, and links to course website for each CS course
All courses: Not sure what to take for your electives? Explore the University Calendar which contains brief descriptions of all the courses offered at UW
The official degree requirements are in the University Calendar, but can also be found as checklists.
CS checklists: A easy-to-fill checklist that summarizes the requirements for your degree and help you figure out which courses you need to take
University calendar plan requirements: Official description of each degree's requirements
As a CS major student, you can easily change your program from BCS to BMath CS (and vice versa); both are excellent degrees. Choosing BCS or BMath CS is based on how you see your future unfold, which depends on your interests and the courses you decide to take.
This table highlights the difference in program requirements:
15 CS courses required (two from CS 340-398; 440-489)
15 CS courses required (must take CS 360/365 and CS 370/371
|Math||7 math courses||12 math courses (requires Math 235, Math 237, and 3 other math courses)|
|Non-Math Electives||10 non-math electives||10 non-math electives|
|Electives||8 electives||3 electives|
Can not be combined with other Math major programs
Can be combined with other Math majors programs
Provides a stronger background in Math
If you'd like to have the flexibility of combining CS with another area of study (for example, by taking one or two minors) or you'd like to broaden your knowledge by taking courses in interesting subject areas, consider a BCS. With a BCS degree, you also have the freedom to take extra CS courses to increase your CS knowledge even more. If you believe your future will include lots of math (graphics of any sort, crunching numbers, probability, stats, etc.) or grad school in a wide range of subject areas, then consider a BMath CS degree.
To add an option, minor, joint or double major program in Math to your CS program, you'll need to fill out a Math plan modification form. You must have the advisor from each department/school sign off on the form. Note that you must be in the BMath CS program to add a second Math major.
If the option, minor, joint program is not offered by the Faculty of Math, then you will need to complete the Registrar's plan modification form. You must have the advisor from each department/school sign off on the form.
Specializations (previously "options") are special designations attached to a specific degree. In CS, we have seven different specializations that you can add to either your BCS or your BMath CS. Adding specializations is an option and not a requirement for you to graduate from either BCS or BMath CS.
If you do decide to pursue a specialization, then you should should carefully review courses, their prerequisites, and when courses are offered to ensure that you are able to meet the requirements for the specialization in a timely manner. You may find the list of specific courses required for each specialization on our plan requirement checklists page (or the undergraduate calendar).
Note below that some specializations have limited capacity and may be competitive (please see below).
Artificial Intelligence, Bioinformatics, Business, Human Computer Interaction, and Software Engineering
To add a specialization, complete a plan modification form and send the form to a CS advisor to sign off. You can add a specialization any time from when you start in CS until you are ready to graduate. However, we only recommend adding a specialization once you are committed to completing it and second year is usually a good time to declare your plans.
In some cases, there are courses needed for the specialization that requires you to take its prerequisites, but the prerequisite is not noted on the checklist. For this reason, you may be required to take more courses beyond what is noted on the checklist. As an example, if you decide to take ECE380 and SE380 for the AI specialization, then you may want to take MATH213 which is an acceptable alternative for its noted prerequisites.
Computational Fine Arts
To enrol in the Computational Fine Arts specialization, you need to complete a first year art studio course (either FINE 100 or FINE 130) and a portfolio review with a Fine Arts advisor. Complete a Math plan modification form, have the Fine Arts advisor sign off after your portfolio review, and then bring it to a CS advisor for final sign-off.
Beginning in September 2017, the University of Waterloo introduced two Data Science programs: the BCS (Data Science) and the BMath (Data Science). The BCS (Data Science) is administered by the School of Computer Science. The BMath (Data Science) is administered by Statistics and any questions about this program should be referred to the Statistics advisors.
The BCS DS is a stand alone program and cannot be combined with any of the specializations offered to the BCS or BMath CS programs.
How to apply for BCS DS
To be eligible to apply to the BCS (Data Science), students must be 1) already enrolled in a Computer Science program and 2) have completed or be in the process of taking STAT 231.
Applications must be submitted here. Late applications will not be accepted. Students are not able to combine the BCS Data Science plan with the AI option/specialization.