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.
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)
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
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
DAT120 Introduction to Programming, MAF310 Numerical Modeling, STA100 Probability and Statistics 1
Form of assessment
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.
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.