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.