CPSC 406: Computational optimization