Based on courses taught to advanced undergraduate students, this book offers a broad introduction to the methods of numerical linear algebra and optimization. The prerequisites are familiarity with the basic properties of matrices, finite-dimensional vector spaces and advanced calculus, and some exposure to fundamental notions from functional analysis. The book is divided into two parts. The first part deals with numerical linear algebra (numerical analysis of matrices, direct and indirect methods for solving linear systems, calculation of eigenvalues and eigenvectors) and the second, optimizations (general algorithms, linear and nonlinear programming). Summaries of basic mathematics are provided, proof of theorems are complete yet kept as simple as possible, applications from physics and mechanics are discussed, a great many exercises are included, and there is a useful guide to further reading.