Information for CS major students

Overview | How to enrol into coursesWhat courses should you take and when | CS major program requirementsBCS vs BMath CS | Add an option, minor, joint or double major | Add a specialization | BCS Data science | Related plans


Overview

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. 


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

Step one

Course selection for a future term: Participating in course selection/pre-enrollment is vital to better your chances of enrolling into your preferred courses

Course enrollment

Step two

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

 

 What courses should you take and when

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 sequence

    Suggested course sequences: Term-by-term list of courses most students should take

    CS prerequ chart

    CS prerequisite chart: Shows you the prerequisite course(s) you must pass before you can take the next CS course

    Math prerequ chart

    Math prerequisite chart: Shows you the prerequisite course(s) you must pass before you can take the next Math course

     

    University Course CalendarUndergraduate course description for CS courses: Contains brief descriptions of CS courses and may help you determine whether a course is interesting to you

    Course descriptionDetailed course description: Provides more detailed description, learning objectives, and links to course website for each CS course

    CoursesUndergraduate course description: Contains brief descriptions of all the courses offered at UW, which may help you determine whether a course is interesting to you

     

    Requirements

    The official degree requirements are in the University Calendar, but can also be found as checklists.

    Checklist

    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

    University calendar plan requirements: Official description of each degree's requirements

     

    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:

    BCS vs Bmath CS

    Courses BCS BMath CS
    Computer Science

    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
    Notes

    Can not be combined with other Math major programs

    More flexible

    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. 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

    Complete a Math plan modification form and send the form to a CS advisor to sign off.

    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.

    Digital Hardware 

    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.

    Artificial Intelligence 

    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.


    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.

    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.


    Related plans