Finite-dimensional optimization problems occur throughout the mathematical sciences. The majority of these problems cannot be solved analytically. This introduction to optimization attempts to strike a balance between presentation of mathematical theory and development of numerical algorithms. Building on students’ skills in calculus and linear algebra, the text provides a rigorous exposition without undue abstraction. Its stress on convexity serves as bridge between linear and nonlinear programming and makes it possible to give a modern exposition of linear programming based on the interior point method rather than the simplex method.