Theory and computational methods of non-linear optimization. Convex sets, convex and concave functions. Unconstrained and Constrained Optimization. Quadratic Programming. Optimality conditions and convergence results. Karush-Kuhn-Tucker conditions. Introduction to penalty and barrier methods. Duality in nonlinear programming.