Computational Optimization

CPSC 406 Term 2 of 2023/24

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.

Lectures

See Piazza (via UBC Canvas) for times and locations.

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 and these two books:

Discussion board and announcements

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

Grade distribution

  • Assignments (8): 30% (including up to 5% for clicker participation)
  • Midterm exam: 30%
  • Final exam: 40%

Policies

  • No makeup exam for the midterm or final. If you missed the midterm exam you must document a justification.
  • To pass the course you must do the assigned coursework, write the midterm and final exams, pass the final exam, and obtain an overall pass average according to the grading scheme.
  • The instructors reserve the right to modify the grading scheme at any time.