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:
How to enrol into courses
You can use Quest to enrol into courses. If you have difficulty enrolling into CS courses, then please review our course selection and enrolment pages.
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
To graduate with a BCS, BMath CS, or the BCS DS (see below for more information), students must compete the following:
- Complete the degree requirements as outlined in the relevant Undergraduate Calendar. Your requirements include completing the Math Undergraduate Communication Requirement, breadth and depth, graduating in good standing, etc.
- The official degree requirements are in the University Calendar, but there are handy CS checklists that you can use below, which summarizes your requirements. Please refer to the Co-op Math Advisors for more information on co-op requirements.
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: Official description of each degree's requirements
Academic Progression and Standings
Two weeks after each academic term, an academic advisor reviews your entire academic performance after your grades are released and determines your academic standing using your CS major average (CS MAV or MAV) and your cumulative average (CAV). You can review your academic standing for your most recent term by going to Quest and then your unofficial transcript.
There are several academic standings you can be assigned (see table below). Ideally, you would want to be in Excellent or Good academic standing; otherwise, you need to speak to an academic advisor ASAP. Please go to the Math academic standings page for more information on standings, including DEF, NAPP, and CNDR.
If you are in co-op, some of the concerning standings may also lead to the suspension of your co-op. For more information about maintaining your co-op eligibility, please refer to the Co-op Math Advisors.
|Standings and Requirements|
|Standing||Excellent||Good||Conditional*||Probation*||Must change plan*|
|Coding||EXCL||GOOD||CNDP||PRB(C/O)||FLM(P/C/A), FLP(P), FRW|
|Criteria||MAV > 60%
CAV > 80%
|MAV > 60%
|MAV < 60%
CAV > 60%
|CAV < 60%||
MAV < 60%
*If your standing is one of the above, you should contact a CS advisor ASAP.
BCS vs Bmath CS
Download "What is the difference between a BCS and a BMath (CS) degree?"
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 switch from BCS to BMath CS and vice versa, complete and submit a Math plan modification form to a CS Advisor for approval.
How can I add an option, minor, joint, or double major to my CS major?
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.
How to add a specialization
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.
If you are in the AI specialization, please follow the specific instructions on how to get into an ECE, MTE, or SYDE course.
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). Complete a plan modification form and then bring it to a CS advisor to sign off.
Note, most FINE 3XX and 4XX courses are only available to Fine Arts major students. If you wanted to complete your depth in FINE, then you may want to consider taking FINE/VCULT 101 (Winter), FINE 209 (Fall), and FINE 319 (Winter) to complete your depth.
For more information on FINE courses, their prerequisites, and their availability, then please contact the Fine Arts Advisor: Brett Roberts.
If you want to add the Digital Hardware specialization, then you will need to apply during your 1A term in the Fall and have a minimum cumulative average of 75%. Enrolment is limited and competitive.
BCS Data science
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 Data Science 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.
- Software Engineering: Applying engineering principles to software
- Computing and Financial Management: Applying computers to financial management
- Business Administration and Computer Science: Two degrees (CS from Waterloo and business from Laurier)