This book covers the fundamental principles of optimization in finite dimensions. It develops the necessary material in multivariable calculus both with coordinates and coordinate-free, so recent developments such as semidefinite programming can be dealt with.