This book, the second in a series of three on Convexity and Optimization, presents classical mathematical results for linear and convex optimization with an emphasis on the important concept of duality. Equivalent ways of formulating an optimization problem are presented, the Lagrange function and the dual problem are introduced, and conditions for strong duality are given. The general results are then specialized to the linear case, i.e. to linear programming, and the simplex algorithm is described in detail.