Overview | How to enrol into courses | What courses should you take and when | CS major program requirements | BCS vs BMath CS | Add an option, minor, joint or double major | Add a specialization | BCS Data science | Related plans
The David R. Cheriton School of Computer Science at the University of Waterloo is part of one of the largest mathematics and computing centres in the world. 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.
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 sequences: 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
Undergraduate course description for CS courses: Contains brief descriptions of CS courses and may help you determine whether a course is interesting to you
Detailed course description: Provides more detailed description, learning objectives, and links to course website for each CS course
Undergraduate course description: Contains brief descriptions of all the courses offered at UW, which may help you determine whether a course is interesting to you
The official degree requirements are in the University Calendar, but can also be found as checklists.
Plan requirement 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. Please go the plan requirement checklists page for a list of specific courses you may need for each specialization. Note below that some specializations have limited capacity and may be competitive.
Bioinformatics, Business, Human Computer Interaction, and Software Engineering
Computational Fine Arts
If you want to add the Computational Fine Arts option, then you need to complete FINE 100 and a portfolio review. Complete a Math plan modification form and have both a CS advisor and the Fine Arts advisor sign off on the form.
If you want to add the Digital Hardware option, then you will need to apply during your 1A term in the Fall. Enrolment is limited and competitive.
The Artificial Intelligence (AI) option/specialization is available beginning with the 2018/2019 calendar, which comes into effect as of September 1, 2018. Please note that any student adding the option/specialization will need to be mindful that they have to follow all requirements starting with the 2018/2019 option/specialization (in particular, the two Communication Skills courses and restrictions on how these courses do or do not count as Humanities courses for breadth requirements).
The AI option/specialization is a limited enrolment plan meaning that Computer Science students will have to apply so that they are able to add the option/specialization to their academic plan. The option/specialization will have an annual cap of 15 students. Applicants will be informed of the transfer results at the beginning of the Fall term. Students are not able to combine the BCS Data Science plan with the AI option/specialization.
For students interested in adding the AI option/specialization, applications must be submitted here during the Spring term. Late applications will not be accepted and we anticipate that it will be competitive.
To be eligible, students should have taken or be in the process of taking CS 245 and 246 before they are considered for the AI option/specialization.
Please note that you must complete the appropriate prerequisites in order to take the engineering courses required for AI option/specialization. In some cases, you may be required to take more courses beyond what is noted on the checklist. For ECE380 and SE380 in particular, AMATH250, AMATH251, and MATH213, are acceptable alternatives for its noted prerequisites.
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.
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.