A unique text integrating numerics, mathematics and applications to provide a hands-on approach to using optimization techniques, this mathematically accessible textbook emphasises conceptual understanding and importance of theorems rather than elaborate proofs. It allows students to develop fundamental optimization methods before delving into MATLAB(R)'s optimization toolbox, and to link MATLAB's results with the results from their own code. Following a practical approach, the text demonstrates several applications, from error-free analytic examples to truss (size) optimization, and 2D and 3D shape optimization, where numerical errors are inevitable. The principle of minimum potential energy is discussed to highlight the deep relationship between engineering and optimization. MATLAB code in every chapter illustrates key concepts and the text demonstrates the coupling between MATLAB and SOLIDWORKS(R) for design optimization. A wide variety of optimization problems are covered including constrained non-linear, linear-programming, least-squares, multi-objective, and global optimization problems.