This text provides a modern and mathematically rigorous treatment of semidifferential calculus in the context of optimization. Semidifferentials are a natural tool for solving certain problems in non-differentiable optimization. Classical notions in convex analysis are introduced (convexification, duality, linear and quadratic programming, two-person zero-sum games, Lagrange primal and dual problems, semiconvex and semiconcave functions) and the theory is developed to a sophisticated enough level to tackle finite-dimensional versions of problems in the calculus of variations. This text is designed for a one-term course at the undergraduate level in a wide variety of numerate disciplines and includes sufficient background material in calculus and linear algebra to be self-contained. Additional material beyond the scope of a basic undergraduate course is included to further develop the theory. The theoretical content of the text is enriched by numerous examples and exercises, for which solutions are included.