1. understand the basic theory of nonlinear programming
2. learn important nonlinear programming algorithms
3. gain an appropriate background to carry out research involving nonlinear programming applications
4. recognize convex optimization problems and solve them using an optimization solver
5. understand second-order cone programming