INF5680 – Introduction to Finite Element Methods

Schedule, syllabus and examination date

Choose semester

Course content

Finite element methods provide a general and powerful framework for solving ordinary and partial differential equations. In this course, we study the analysis, implementation and application of finite element methods. The following topics are studied in this course: piecewise polynomial approximation, quadrature and triangulation in one, two and three space dimensions, variational principles, energy minimization, Galerkin's method, Petrov-Galerkin, bilinear forms and linear forms, abstract formulation, Sobolev spaces, V-ellipticity, Lax-Milgram, Cea's lemma, error estimates in the energy norm, examples of finite elements including standard continuous and discontinuous Lagrange elements, BDM elements, RT elements, Nedelec elements and Crouzeix-Raviart elements, Dirichlet, Neumann and Robin boundary conditions, affine mapping from a reference element, the local-to-global mapping, assembling the linear system, efficient implementation of finite element methods, application to Poisson's equation, convection-diffusion, linear elasticity and ordinary differential equations.

In the companion course INF5690: Advanced Finite Element Methods, we continue the study of the finite element method with focus on its automation, adaptivity and stabilization.

Learning outcome

Students will learn the mathematical formulation of the finite element method and how to apply it to basic (linear) ordinary and partial differential equations. Students will also learn how to implement the finite element method efficiently in order to solve a particular equation.


Students who are admitted to study programmes at UiO must each semester register which courses and exams they wish to sign up for in Studentweb.

If you are not already enrolled as a student at UiO, please see our information about admission requirements and procedures.


Recommended previous knowledge

It is assumed that the student has knowledge about basic calculus and differential equations.

It is also assumed that the student has some experience with Python (or is willing to learn).


The course runs over eight weeks. Each week a lecture is given and at each lecture (except the last) an assignment is given to be handed in at the following week's lecture. Assignments will contain a mix of theory, implementation and application.

Assignments should be implemented in Python. We will also make limiteduse of FEniCS ( to generate finite element meshes.

Note that the first and last lectures are mandatory.


Seven assignments (counts 10% each). Written exam (counts 30%). All parts must be completed in the same semester.

Grading scale

Grades are awarded on a scale from A to F, where A is the best grade and F is a fail. Read more about the grading system.

Resit an examination

This subject does not offer new examination in the beginning of the subsequent term for candidates who withdraw during an ordinary examination or fail an ordinary examination. For general information about new examination, see /studier/admin/eksamen/sykdom-utsatt/mn/index.html and


Note that the first and last lectures are mandatory.

Facts about this course






Every spring

The course has been replaced by INF5681 – Introduction to finite element methods (discontinued).


Every spring

Teaching language