UBC CPSC 406 2022-T2

Computational Optimization

CPSC 406 ∙ Term 2 of 2022/23 ∙ 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.

  1. Lectures
  2. Teaching staff
  3. Course requirements
  4. Required reading
  5. Discussion board and announcements
  6. Grade distribution
  7. Collaboration
  8. Policies


Teaching staff

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.

Grade distribution


Most homeworks involve programming tasks. You may collaborate and consult with other students in the course, but you must hand in your own assignments. If you have collaborated or consulted with someone while working on your assignment, you must acknowledge this explicitly in your submitted assignment. If you are unsure about any of these rules, consult with one of the teaching staff or visit the departmental webpage on Collaboration and Plagiarism.