This course covers nonlinear programming, i.e. the numerical minimization of functions with or without equality and inequality constraints. Topics: necessary and sufficient optimality conditions, gradient descent and Newton's method, globalization with line search and trust regions, augmented Lagrangian and barrier methods, optimization with ordinary differential equations (optimal control), convergence and error estimates.