This course offers a comprehensive exploration into the numerical solution of Partial Differential Equations (PDEs), with a special emphasis on Finite Element Methods (FEMs). It begins by revisiting crucial concepts from Sobolev spaces theory and from numerical analysis.

The curriculum will delve into the construction of Finite Element Spaces, underpinned by polynomial approximation theory in Sobolev Spaces, to establish convergence theorems for various scenarios. Additionally, the course will cover "variational crimes" and mixed methods, expanding the theory's applicability to a wider range of PDEs. To bridge the theory with practice, flipped classrooms laboratories will be held, working on implementations based on python and on C++.

Key principles such as consistency, stability, convergence, and adaptivity will be examined in detail, offering guidelines for the selection and implementation of numerical methods suitable for a broad spectrum of problems. Through this approach, the course not only focuses on FEMs but also offers insights into the broader landscape of numerical methods for PDE solutions, ensuring a well-rounded understanding of the field.