Program | Degrees | Co-op|Regular | Specializations | First year courses | Graduate studies
Program
Computer Science focuses on the study of software, algorithms, programming, and the limits of computation. Using a combination of theory and application, you will learn how to describe problems in a formal, precise way so that machines can solve them. You will also learn about managing large scale programs, and about understanding the power, limitations, and organization of computer software and hardware.
Degrees
With our program, you have the choice to study one of two degrees:
- The Bachelor of Computer Science (BCS) will allow you to develop a solid understanding of computer science with the flexibility to choose from a wide range courses in this area. If you are admitted to the BCS, you'll start off in this program right away.
- The Bachelor of Mathematics - Major in Computer Science (BMath/CS) will allow you to study computer science with a larger combination of math courses to satisfy your degree. If you are admitted to the BMath program, you will need to declare a major in Computer Science starting in second year. You'll need to speak with an advisor to modify your plan as well as satisfy our requirements.
Both degrees are accredited by the Computer Science Accreditation Council of the Canadian Information Processing Society.
Co-op and regular
Computer Science is available as a co-op or regular program.
As a co-op student, you will have the choice to choose between four co-op sequences before your first year.
Year 1 | Year 2 | Year 3 | Year 4 | Year 5 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
F | W | S | F | W | S | F | W | S | F | W | S | F | W | S | |
A | 1A | 1B | * | 2A | * | 2B | * | 3A | * | 3B | * | 4A | * | 4B | |
B | 1A | 1B | * | 2A | 2B | * | 3A | * | 3B | * | 4A | * | * | 4B | |
C | 1A | 1B | Off | 2A | * | 2B | * | 3A | * | 3B | * | 4A | * | * | 4B |
D | 1A | 1B | 2A | * | 2B | * | 3A | * | 3B | * | 4A | * | * | 4B | |
Reg | 1A | 1B | Off | 2A | 2B | Off | 3A | 3B | Off | 4A | 4B | Off |
F = Fall | W = Winter | S = Spring | * = Work term | Reg = Regular
Specialization
You can explore additional areas of interest with your Computer Science studies by adding a specialization in second year to customize your degree.
Specialization |
Courses (available on our Undergraduate Calendar) |
---|---|
Artificial Intelligence | Undergraduate Calendar |
Bioinformatics | Undergraduate Calendar |
Business | Undergraduate Calendar |
Computational Fine Arts | Undergraduate Calendar |
Computing | Undergraduate Calendar |
Digital Hardware | Undergraduate Calendar |
Human-Computer Interaction | Undergraduate Calendar |
Software Engineering | Undergraduate Calendar |
First year courses
Course | Course code |
---|---|
Introduction to Computer Science/Designing Functional Programs | CS 115, CS 135 or CS 145 |
Elementary Algorithm Design and Data Abstraction | CS 136 or CS 146 |
Calculus 1 | MATH 127, MATH 137 or MATH 147 |
Calculus 2 | MATH 128, MATH 138 or MATH 148 |
Algebra | MATH 135 or MATH 145 |
Linear Algebra | MATH 136 or MATH 146 |
Course descriptions are available on our Undergraduate Calendar.
For more information on upper year classes, take a look at our suggested academic plans under our "current students" section.
Graduate studies
Following your undergraduate degree, you can continue your studies in Computer Science through our graduate studies program. At Waterloo, you can pursue a Master of Mathematics (MMath) with a specialization in Computer Science.
Our third year students can apply for our accelerated master's option to fast track their program.
Try your hand at research by enrolling in one of our Undergraduate Research Assistantship (URA) positions as a current student. You can work with a professor during your academic or co-op term.