Course aim
The course introduces a variety of central algorithms and methods essential for performing scientific data analysis using statistical inference and machine learning. Much emphasis is put on practical applications of Bayesian inference in the natural and engineering sciences, i.e. the ability to quantify the strength of inductive inference from facts (such as experimental data) to propositions such as scientific hypotheses and models.
The course is project-based, and the students will be exposed to fundamental research problems through the various projects, with the aim to reproduce state-of-the-art scientific results. The students will use the Python programming language, with relevant open-source libraries, and will learn to develop and structure computer codes for scientific data analysis projects.
Course design
- Lectures with computer demonstrations: background and theory, discussion problems, computer demonstrations using Jupyter notebooks.
- Supervised computational exercises: group work on exercises, problem sets, and numerical projects in the computer lab with supervision.
- Exercise- and project-based learning through work on analytical and numerical exercises and problem sets plus computational projects with written reports.
Computer lab sessions
Should be used for working on projects, exercises and problem sets. You will have the opportunity to discuss with the teaching assistants and with your fellow students. Demonstration or feedback discussion will be led by the teaching assistants.
Concerning which computer to use, you have three options:
- Use one of the Linux computers, e.g., in rooms F-T7203, F-T7204, FT4011. The first two of these rooms are reserved for us on the computer lab sessions, but all computers can be used when available.
- Log in remotely to one of the Chalmers STUdat linux computers. See instructions at https://chalmers.topdesk.net/. Depending on your platform, find the relevant set of instructions for "How do I remotely access a StuDAT Linux computer from my [select platform]". You might want to use the /bin/bash shell rather than the default /bin/sh.
- Use your personal computer.
General recommendations
- See detailed Getting started instructions.
- Weekly reading suggestions and exercises provide hints to solve the projects and problem sets.
- Try to establish a practice where you log your work with the exercises and projects. You may find such a log book very handy at later stages in your work, especially when you don't properly remember what a previous test version of your program did. Here you could also record the time spent on solving the exercise, various algorithms you may have tested, or questions that you would like to discuss further with your lab partner or the supervisor.
- The course assumes a solid background in undergraduate mathematics (multivariate analysis, linear algebra, mathematical statistics). You might have to refresh your knowledge in these subjects by referring to undergraduate mathematics textbooks.
- We will use the Python programming language. In particular, we will use Jupyter notebooks when working on numerical exercises, problems, and projects. The exercises are constructed to help you get started with Jupyter notebooks, for which we also provide suggestions for useful electronic resources. You might have to use these references throughout the course, and you're also encouraged to discuss with the teaching assistants.
- We will briefly discuss version control approaches for code development during this course. The use of such an approach is, however, not an explicit learning outcome in this course and will not be the required practice for your work on numerical projects. Still, you are encouraged to try this approach. The teachers will be happy to discuss implementations and recommended work flows. Version control is the most ethical approach to computational research. All files that are associated with this course are available via a public repository on github that you are welcome to clone.
Changes
Course changes since last year:
- Updated problem sets and projects.
- Reduced number of hand-ins.
- Extended face-to-face discussions and mandatory oral exam
Learning objectives
after completion of the course the student should be able to:
- plan and perform scientific data analysis with methods from Bayesian statistics.
- simulate multivariate probability distributions with MCMC methods.
- quantify and critically assess uncertainties of model parameters via statistical inference.
- understand and numerically implement several probabilistic algorithms used in data analysis and machine learning.
- address open questions in scientific data analysis and perform numerical studies using Python as a programming language.
- write well-structured technical reports where results and conclusions from a scientific data analysis are communicated in a clear way.
- maintain a scientific and ethical conduct in the process of modeling, analyzing data and writing computer programs.
Examination
The final grade is based on the performance on problem sets (performed individually) and projects (performed in groups with two students), one graded project report, and an oral exam. Ethical aspects will be explicitly examined.
General rules for both problem sets and projects
- Students are allowed to discuss together and help each other when solving the problems and working on projects. However, every student must understand their submitted solution in the sense that they should be able to explain and discuss them in detail with a peer or with a teacher.
- While discussions with your peers are allowed (even encouraged), direct plagiarism is not. Every student must reach their own understanding of submitted solutions according to the definition in the previous point.
- The use of coding assistance from generative AI tools is allowed. However, every student must reach their own understanding of submitted solutions (including employed algorithms) according to the definition in the first bullet.
Problem sets
The problem sets are strongly connected to the course material that will be discussed in the lectures.
- Each set contains a number of conceptual problems and a number of extra (often more advanced) ones. Most tasks are computational and it is recommended to work on them during the computer lab sessions.
- General instructions for the submission and examination of problem sets are presented here.
Projects
There are two computational projects. Each project contains a core study and an extra (optional) task.
- The projects are performed in groups of two students. Join a project group via Canvas. You can change group partner between the first and the second project.
- Each group has to hand in their solution code which should include the requested results
- You must write a report (pdf format) for
one of the projects. This report should be written together with your group partner and will be graded. You can choose which project to write your report on. See detailed instructions in the problem formulations. Deadlines are indicated on the corresponding Canvas Assignments.
- General instructions for the submission and examination of projects are presented here.
Grading system
- Pass (grade 3 / G / E)
- In order to pass the course you need to have a minimum number of points per task (see table below).
- Pass with distinction
- In order to pass the course with distinction (high grade) you need a (higher) minimum number of points per task and a certain amount of points in total (see table below).
The final grade, given that the minimum-point requirements per task are fulfilled, is determined according to:
Grade table
| |
Minimum points |
Grade |
| Total points |
per set |
per project |
report |
oral exam |
Chalmers |
GU |
ECTS |
| (max 100) |
(max 20x2) |
(max 10x2) |
(max 20) |
(max 20) |
|
|
|
| ≥ 80 |
12 |
6 |
12 |
12 |
5 |
VG |
A |
| 70 - 79 |
10 |
5 |
10 |
10 |
4 |
VG |
B |
| 60 - 69 |
10 |
5 |
10 |
10 |
4 |
G |
C |
| 50 - 59 |
6 |
4 |
6 |
6 |
3 |
G |
D |
| 32 - 49 |
6 |
4 |
6 |
6 |
3 |
G |
E |
| < 32 |
or < 6 |
or < 4 |
or < 6 |
or < 6 |
U |
U |
F |
Note that ECTS grades are not implemented at Chalmers. The above table just gives an indication of the approximate correspondance.
Chalmers and GU student portals
Links to the course syllabus at the Chalmers and Gothenburg University student portals: