This text teaches finite element methods and basic finite difference methods from a computational point of view. It emphasizes developing flexible computer programs using the numerical library Diffpack, which is detailed for problems including model equations in applied mathematics, heat transfer, elasticity, and viscous fluid flow. This edition offers new applications and projects, and all program examples are available on the Internet.