Courses for your Computer Science degree

First-year courses

You may also select advanced-stream courses for algebra, calculus, and computer science if you meet the requirements. Details will be sent during course selection in June.

September to December

  • CS 135 – Designing Functional Programs
  • MATH 135 – Algebra for Honours Mathematics
  • MATH 137 – Calculus 1 for Honours Mathematics
  • One communication skills course
  • One elective

January to April

  • CS 136 – Elementary Algorithm Design and Data Abstraction
  • CS 136L – Tools and Techniques for Software Development
  • MATH 136 – Linear Algebra 1 for Honours Mathematics
  • MATH 138 – Calculus 2 for Honours Mathematics
  • Two electives
 

This is a sample schedule. Courses or when a course is offered may change depending on availability.

After first year

The majority of the required courses you’ll take will be Computer Science courses, with additional courses in the Faculty of Mathematics. With your remaining classes, you can choose electives from many of the 100 subject areas at Waterloo.

Sample upper-year courses

CS 341 – Algorithms
CS 449 – Human-Computer Interaction
CS 459 – Privacy, Cryptography, Network and Data Security
CS 492 – The Social Implications of Computing
CS 486 – Introduction to Artificial Intelligence

 

Advisors are here to help

With so much flexibility, you might have a lot of questions. We're here to help! If you're applying for admission, contact our Faculty of Math recruitment co-ordinator.

Once you're a Waterloo student, you'll have access to academic advisors who can help you

  • choose your courses,
  • select minors and specializations,
  • ensure that you're meeting the requirements for your degree, and more.

Learn more

Overview of Waterloo's Computer Science degree program.