Finite difference methods for hyperbolic, parabolic and elliptic PDEs, with application to problems in science and engineering. Convergence, consistency, order and stability of finite difference methods. Dissipation and dispersion. Finite volume methods. Software design and adaptivity. Recommended preparation: Students should be proficient in basic numerical methods, linear algebra, mathematically rigorous proofs, and some programming language.