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 get an introduction to how we process, analyze data so that they can be used in machine learning models (feature engineering), compare models and data, development and implementation of simulation models to gain more insight into different processes, 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 2024-2025
Course code
MOD300
Version
1
Credits (ECTS)
10
Semester tution start
Autumn
Number of semesters
1
Language of instruction
English, Norwegian
Content
NB! This is an elective course and may be cancelled if fewer than 10 students are enrolled by August 20th.
The course 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) Modeling of systems governed by the laws of nature, 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, random walk, Markov chains, simulated annealing, machine learning (artificial neural network)
Learning outcome
Knowledge:
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
Skills:
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
Exam
Portfolio
Form of assessment | Weight | Duration | Marks | Aid |
---|---|---|---|---|
Report 1 | 1/10 | Letter grades | All | |
Report 2 | 3/10 | Letter grades | All | |
Report 3 | 3/10 | Letter grades | All | |
Report 4 | 3/10 | Letter grades | All |
The portfolio consists of four project reports. The first project report count for 1/10 of the grade, and the following three project reports count for 3/10 of the grade. The portfolio is not graded until all work has been submitted and the portfolio as a whole is graded.Resit options are not offered on the portfolio. Students who fail can complete portfolio assessment the next time the course is regular teaching.
Course teacher(s)
Course teacher:
Mesfin Belayneh AgonafirCourse teacher:
Kjell Kåre FjeldeCourse coordinator:
Aksel HiorthCourse teacher:
Aksel HiorthHead of Department:
Alejandro Escalona VarelaMethod 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 lectures with exercises. Throughout the semester there is a weekly lab 12:15-20:00, where students can work individually or in groups and get help from a lecturer or student assistant for the project assignments.