A comprehensive, rigorous, and self-contained development of the central topics in nonlinear programming. Organized into three major sections: convex analysis, optimality conditions and duality, and algorithms and their convergence. Precise statements of the algorithms are given, along with convergence analysis. Among the topics covered are convex sets and functions, Fritz John and Kuhn Tucker optimality conditions, Lagrangian duality, Saddle Point...