Computational Optimization

CPSC 406 ∙ Department of Computer ScienceUBC

This course covers the main algorithms for continuous optimization, including unconstrained and constrained problems, and duality theory and sensitivity. Because linear algebra is central to the subject, the course also covers the main numerical linear algebra operations needed in optimization.


  • Mondays, Wednesdays, and Fridays, 2-3 pm

  • Online via Zoom until further notice (see Piazza for Zoom link)

Teaching staff

  • Instructor: Michael P. Friedlander

    • Office hours: Mondays 3-4 pm (see Piazza for Zoom link)

  • Teaching Assistants:

    • Curtis Fox, office hours: Tuesday 4pm-5pm

    • Naomi Graham, office hours: Wednesday 11am-12pm

    • Hamed Shirzad, office hours: Thursday 3:30pm-4:30pm

Course requirements

One of the following courses are required: CPSC 302 (Numerical Computation for Algebraic Problems), CPSC 303 (Numerical Approximation and Discretization), or MATH 307 (Applied Linear Algebra). You should be comfortable with an the main topics in applied linear algebra, multivariate calculus, and have experience in a numerical computing using a language such as Julia, Matlab, or Python.

This courses uses Julia exclusively.

Required reading

The course is based on a variety of sources, including lecture notes provided on these pages, which also provide links to supplementary reading materials.

Discussion board and announcements

A student discussion board is hosted on Piazza. All course announcements, including upcoming exams and homework deadlines, will appear on Piazza. Set your Piazza notifications appropriately.

⚠ Note
Register for the Piazza board.