Setup
What this course assumes
You should be comfortable with matrix multiplication, inner products, eigenvalues of real symmetric matrices, and the distinction between a feasible point and an optimum. You should also be able to read ordinary Julia functions, loops, arrays, and assertions.
Prior knowledge of semidefinite programming, conic duality, JuMP, or an SDP solver is not assumed. SDP-specific Julia appears where the mathematics first needs it.
Install and verify
Install Julia 1.12.7, the version pinned by Manifest.toml, and Quarto. From the project root:
julia --project=. -e 'using Pkg; Pkg.instantiate()'
julia --project=. -e 'using Pkg; Pkg.test()'Run an exercise script with, for example:
julia --project=. learner/00_build_the_problem.jlFor normal editing, start the watched preview:
quarto previewTo render only the page you changed, pass its source path:
quarto render chapters/01-searching-for-a-cut.qmdRun quarto render before deployment or after changing shared navigation, configuration, or styling.
The first solver call compiles several Julia packages and is noticeably slower than subsequent calls. The optimization problems themselves contain only a few rows or columns.