This introduction to finite difference and finite element methods is aimed at graduate students who need to solve differential equations. The prerequisites are few (basic calculus, linear algebra, and ODEs) and so the book will be accessible and useful to readers from a range of disciplines across science and engineering. Part I begins with finite difference methods. Finite element methods are then introduced in Part II. In each part, the authors begin with a comprehensive discussion of one-dimensional problems, before proceeding to consider two or higher dimensions. An emphasis is placed on numerical algorithms, related mathematical theory, and essential details in the implementation, while some useful packages are also introduced. The authors also provide well-tested MATLAB® codes, all available online.