Courses for your Mathematical Optimization degree

First-year courses and beyond

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

 September to December

  • MATH 135 - Algebra 
  • MATH 137 - Calculus 1
  • Choose one of:
    • CS 115 - Introduction to Computer Science
    • CS 135 - Designing Functional Programs
  • One communication skills course
  • One elective

January to April

  • MATH 136 - Linear Algebra 1 
  • MATH 138 - Calculus 2 
  • Choose one of:
    • CS 116 - Introduction to Computer Science 2
    • CS 136 - Algorithm Design and Data Abstraction
  • Two electives

After first year

Most of the required courses you’ll take will be combinatorics and optimization courses, with additional courses in mathematics. With your remaining classes, you can choose electives from many of the 100 subject areas at Waterloo.

Sample upper-year courses

CO 331 - Coding Theory
CO 380 - Mathematical Discovery and Invention
CO 450 - Combinatorial Optimization
CO 471 - Semidefinite Optimization


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 Laura Jane Watkins our Faculty of Mathematics recruitment coordinator.

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