Applied Computational Modelling (MOD300)

In this course you will improve your coding and modelling skills through practical work on larger coding projects. You will learn how Python libraries and numerical methods introduced in previous courses such as DAT 120, MAF 310, as well as methods taught in this course, can be applied to real problems. Through group work, you will learn to code models that describe the real world and how we can use models to gain better insight into physical processes and optimize them. The models we work with will be relevant to different engineering disciplines: models of different physical systems, including models where uncertainty plays a central role, data-driven models such as machine learning models, and models with regulation (regulation engineering). Central to the course are applications, you will work with data, development of models, comparing model and data, as well as reporting and communicating the results in written reports.

After completing the course, you will be well prepared to use Python to streamline your workflow both as a student and as an employee. You will also be well prepared to carry out larger project tasks such as a bachelor's thesis, know how to best construct a project report and present the results in a good and clear way.

Course description for study year 2023-2024


Course code




Credits (ECTS)


Semester tution start


Number of semesters


Exam semester


Language of instruction



The subject is divided into four parts: i) Introduction to good coding practice and report writing: how to code in such a way that the code can be reused and extended. How to write a good report. ii) Regulation technique: how to model systems that need satisfactory regulation, iii) Monte Carlo techniques for modelling processes with uncertainty, iv) Machine learning models for creating data-driven models of complex systems.

Examples of models and methods that can be taught: Ordinary differential equations and common solution methods, sensitivity analyses, filtering of data, application of integral and derivative (PID) controls, Monte Carlo integration, Markov chains, Simulated annealing, machine learning (artificial neural network)

Learning outcome


Have knowledge of how to use ordinary differential equations to model various processes

Have knowledge of how control theory can be applied to different systems

Have knowledge of how to create machine learning models using only data

Have knowledge of how uncertainty can be modelled


Be able to construct mathematical models of various systems and solve these using appropriate solution methods

Using models to analyze realistic systems

Be able to write code that is modular and can be more easily extended

General competence:

Write project reports, and present results in a clear manner

Python programming, both functional and object-oriented programming

Experience with the most common Python libraries

Required prerequisite knowledge


Recommended prerequisites

DAT120 Introduction to Programming, MAF310 Numerical Modeling, STA100 Probability and Statistics 1


Form of assessment Weight Duration Marks Aid
Prosjektoppgave 1/1 Letter grades

Portfolio assessment: 4 project assignments with reports, one report pass/fail and three reports weighted equally. The projects last for about 2 weeks. No written or oral exam. If a student fails or wants to improve his or her grade, he or she must take the course again.

Course teacher(s)

Course coordinator:

Aksel Hiorth

Course coordinator:

Alejandro Escalona Varela

Method of work

Lectures and practical programming exercises. Students will be encouraged to work in groups of up to 3 people, but can also choose to work individually.

4 hours lecture with exercises

Open for

Energy and Petroleum Engineering - Bachelor in Engineering Admission to Single Courses at the Faculty of Science and Technology

Course assessment

There must be an early dialogue between the course coordinator, the student representative and the students. The purpose is feedback from the students for changes and adjustments in the course for the current semester.In addition, a digital course evaluation must be carried out at least every three years. Its purpose is to gather the students experiences with the course.


The syllabus can be found in Leganto