Introduction to numerical methods for variational problems This textbook teaches finite element methods from a computational point of view. It focuses on how to develop flexible computer programs with Python a programming language in which a combination of symbolic and numerical tools is used to achieve an explicit and practical derivation of finite element algorithms. The finite element library FEniCS is used throughout the book but the content is provided in sufficient detail to ensure that students with less mathematical background or mixed programming language experience will equally benefit. All program examples are available on the Internet Preface Quick overview of the finite element method Function approximation by global functions Function approximation by finite elements Variational formulations with global elements Variational formulations with finite elements Time dependent variational forms Variational forms for systems of PDEs Nonlinear Problems Variational forms for linear systems Useful formulas