Optimization is a rich and thriving mathematical discipline. The theory underlying current computational optimization techniques grows ever more sophisticated. The powerful and elegant language of convex analysis unifies much of this theory. The aim of this book is to provide a concise, accessible account of convex analysis and its applications and extensions, for a broad audience. It can serve as a teaching text, at roughly the level of first year graduate students. While the main body of the text is self-contained, each section concludes with an often extensive set of optional exercises. The new edition adds material on semismooth optimization, as well as several new proofs that will make this book even more self-contained.