CURSO: OPTIMALITY CONDITIONS AND ALGORITHMS IN NONLINEAR OPTIMIZATION