Courses for your Computer Science degree

First-year courses and beyond*

You can choose advanced-stream courses for algebra, calculus, and computer science if you meet the requirements. 

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

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 or CS 458 – Computer Security and Privacy
CS 492 – The Social Implications of Computing
CS 486 – Introduction to Artificial Intelligence

*This is a sample schedule. Courses are subject to change depending on availability each term.

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.

Next steps