# Previous Courses 2012-2020

## Autumn 2020

### Scientific Computing with Python and Fortran (study period I, 7.5 ECTS)

This course is intended for students with basic knowledge of programming in any language who would like to learn the techniques of scientific programming. The course covers scientific programming in Python, including writing numerical codes with NumPy, data handling, visualisation with Matplotlib and ParaViews, writing user interfaces with Qt, and creating Python environments for scientific applications. It also covers using the compiled language Fortran, stand-alone or via mixed-language programming with Python.

For students without basic programming knowledge in C, C++ or Fortran this course will equip you with the required prerequisites for the course *Parallel programming of HPC systems*, which is scheduled to be given in spring term 2021.

This course will be given entirely online.

#### Schedule

- 15 September 2020 13:00 - 15:00 Introduction to Python
- 18 September 2020 13:00 - 15:00 Tutorial 1
- 22 September 2020 13:00 - 15:00 NumPy
- 25 September 2020 13:00 - 15:00 Tutorial 2
- 29 September 2020 13:00 - 15:00 Plotting with Matplotlib
- 2 October 2020 13:00 - 15:00 Tutorial 3
- 6 October 2020 13:00 - 15:00 Data processing with Python
- 9 October 2020 13:00 - 15:00 Tutorial 4
- 13 October 2020 13:00 - 15:00 Object-oriented programming with Python
- 16 October 2020 13:00 - 15:00 Tutorial 5
- 20 October 2020 13:00 - 15:00 User interfaces with Python
- 23 October 2020 13:00 - 15:00 Tutorial 6
- 27 October 2020 13:00 - 15:00 Visualisation with Python
- 30 October 2020 13:00 - 15:00 Tutorial 7
- 3 November 2020 13:00 - 15:00 Fortran 1
- 6 November 2020 13:00 - 15:00 Tutorial 8
- 17 November 2020 13:00 - 15:00 Fortran II
- 20 November 2020 13:00 - 15:00 Tutorial 9
- 24 November 2020 13:00 - 15:00 Fortran and Python
- 27 November 2020 13:00 - 15:00 Tutorial 10

#### Course coordinator

Jonas Lindemann

### Advanced Material on Stochastic Numerics (3 ECTS)

Stochastic Differential Equations (SDEs) have become a standard tool to model differential equation systems subject to noise. Applications range from Neuroscience or Polymeric Chemistry to Finance or Mechanical Engineering. Treating practical problems requires analytic techniques to understand and investigate properties of SDEs and stochastic numerical methods to compute quantities of interest, where the latter and the former often go hand in hand. During this course we will discuss efficiency of Monte Carlo methods for SDEs and how to improve it by variance reduction techniques and Multi-level Monte Carlo, and we will explore structural properties of SDEs and numerical methods that preserve these properties.

#### Contents

- Recap of SDEs and numerical methods for SDEs.
- Monte Carlo methods for SDEs: Weak approximations for SDEs and their efficiency
- Variance reduction techniques and Multi-level Monte Carlo
- Structural properties for SDEs
- Numerical methods that preserve structural properties, in particular splitting methods

This material will be provided in lectures and exercise classes, which include implementing numerical methods and testing them. The course will take place online.

#### Assumed prior knowledge

Standard analysis and linear algebra, Numerical analysis of ordinary differential equations (including the corresponding programming skills), Basic probability theory, fundamentals of the concepts of SDEs and how to develop and analyse numerical methods for their simulation.

#### Examination format

Written report on a project.

#### Course responsible

Philipp Birken

#### Teacher

Evelyn Buckwar

### Introduction to Deep Learning (4.5 ECTS)

Recent development in machine learning have led to a surge of interest in artificial neural networks (ANN). New efficient algorithms and increasingly powerful hardware has made it possible to create very complex and high-performing ANNs. The process of training such complex networks has become known as deep learning and the complex networks are typically called deep neural networks.

The aim of this course is to introduce students to common deep learnings architectues such as multi-layer perceptrons, convolutional neural networks and recurrent models such as the LSTM. Basic concepts in machine learning till also be introduced. The course consists of a series of lectures and computer exercises. The programming environment will be python (Jupyter notebook) together with the deep learning libraries Keras and Tensorflow.

The course will be given in flipped classroom mode, with students watching recorded lectures and taking part in discussion sessions. Discussion sessions will follow the schedule below and will take place over zoom.

#### Literature

The literature will consist of parts from the online deep learning book and lecture notes.

#### Schedule

- 14/9, 13.15 – 14.00 Introduction to the course
- 18/9, 13.15 – 14.00 The Jupyter notebook and Keras
- 23/9, 13.15 – 15.00 The MLP
- 25/9, 13.15 – 15.00 CNN, part 1
- 1/10, 13.15 – 14.00 CNN, part 2
- 2/10, 13.15 – 14.00 Autoencoder and GAN
- 7/10, 13.15 – 15.00 Recurrent networks
- 15/10, 13.15 – 15.00 Presentations of project work
- 16/10, 13.15 – 15.00 Presentations of project work

#### Course responsible

Mattias Ohlsson

#### Teachers

Mattias Ohlsson, Patrick Edén + additional teachers and guest lecturers

### Introduction to Python (study period II, 7.5 ECTS)

The course gives a basic introduction to programming in Python, assuming no prior programming experience. It has an orientation towards scientific computing. Python is a modern scripting language with ties to Scientific Computing due to powerful scientific libraries like SciPy, NumPy and Matplotlib. The course covers elementary programming concepts (arithmetic expressions, for-loops, logical expressions, if-statements, functions and classes) that are closely connected to mathematical/technical problems and examples, as well as mathematical manipulations and problem solving (e.g.~setting up matrices, solving linear problems, solving differential equations, finding roots), Pandas and GUI programming. A final lecture will cover syntactical differences between Python/SciPy and MATLAB, to facilitate the transition to MATLAB, if needed.

The course uses the flipped classroom concept, where the students watch videos at their own schedule, with a few scheduled joint sessions. There are hand-in assignments and a final project, both to be done in groups.

#### Schedule

Introductory meeting: November 2nd, 2020, 13:15, via Zoom.

#### Course coordinator

Claus Führer

## Spring 2020

### Reproducible and Interactive Data Analysis and Modelling using Jupyter Notebooks (Week 11, 4 ECTS)

The aim of this course is to introduce students to the Jupyter Notebook which is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and explanatory text. Uses include: data cleaning and transformation, numerical simulation, statistical modeling, machine learning and much more. Through the notebooks, research results and the underlying analysis can be transparently reproduced as well as shared.

During three days with alternating video lectures and hands-on exercises, the participants will learn to construct well-documented, electronic notebooks that perform advanced data analysis and produce publication ready plots. While the course is based on Python, this is not a prerequisite, and many other programming languages can be used.

#### Additional information

For more details see the course website on GitHub.

#### Schedule

- 9 March
- 10 March
- 11 March

#### Teachers

Caterina Doglioni, Mikael Lund, and Giulio Tesei

### Introduction to Stochastic Numerics (Week 7, 3 ECTS)

Stochastic Differential Equations (SDEs) have become a quite standard tool to model differential equation systems subject to noise. Applications range from Neuroscience or Polymeric Chemistry to Finance or Mechanical Engineering. Treating practical problems requires analytic techniques to understand and investigate properties of SDEs and stochastic numerical methods to compute quantities of interest, where the latter and the former often go hand in hand. This course provides a basic inroduction to the concepts of SDEs and how to develop and analyse numerical methods for their simulation.

Assumed prior knowledge: Standard analysis and linear algebra, Numerical analysis of ordinary differential equations (including the corresponding programming skills), Basic probability theory.

#### Contents

- Introduction to Brownian motion, the Ito integral and SDEs;
- Basic stochastic simulation;
- Numerical methods for SDEs: what do they compute and what does convergence mean here?
- How to develop numerical methods for SDEs and a few classical examples
- Basic issues in analysing the performance of the methods.

This material will be provided in lectures and exercise classes, which include implementing numerical methods and testing them.

#### Examination format

Written report on a project.

#### Schedule

The course will run during Week 7 (10-14 February). Monday afternoon 2 h lecture, then 2 h exercises. Tuesday to Friday 2 h lecture and exercises mornings and afternoons.

#### Course coordinator

Philipp Birken

### Computational Chemistry (study period I, 7.5 ECTS)

Understanding and rationalizing chemical reactions, their mechanism, and the relation between molecular structure and function is key to today's science. It is a difficult task for experiments alone and computational methods are often used to complement experiment.

This course covers basic theory and practical application of computational methods and programs widely used in chemistry and molecular physics. An additional learning outcome is how to employ the programs in connection with local high-performance (HPC) computing facilities. The course's main focus is on the practical aspects and the methods are introduced through computational exercises, starting with gas-phase reaction for simple molecules. Gradually, we will move to larger systems, calculating thermochemical properties for organic reactions, amino acids solvated in water, as well as optical and magnetic spectroscopy for organic and inorganic molecules (including bio-inorganic systems). Moving the yet larger systems, we will investigate folding of small polypeptides, as well as DNA stability.

#### Schedule

Two classes per week, Wednesday and Thursday (1 h Lecture and 3 h exercise classes). The course runs 5 weeks from week 9 (February 19) to week 13.

- 19 February: Introductory meeting
- 26 February
- 27 February
- 4 March
- 5 March
- 11 March
- 12 March
- 18 March
- 19 March
- 25 March
- 26 March

#### Course responsible

Erik Hedegård

#### Teachers

Erik Hedegård, Ulf Ryde, and Petter Persson

### Parallel Programming of HPC Systems (study period I, 7.5 ECTS)

The course discusses programming techniques required to efficiently utilise parallel computing in a computational research project in science or engineering. The course will discuss shared memory and distributed memory parallelisation in a C, C++ and Fortran context. Widely utilised parts of the application interfaces of OpenMP and MPI will be introduced during the course. The course will discuss commonly encountered issues in parallel programming, such as data-races and dead-lock and show techniques required to avoid these issues.

Common programming tools will be introduced and demonstrated. This includes parallel debuggers to analyse issues concerning code correctness as well parallel profilers which are extremely helpful, when it comes to understanding performance problems in parallel and serial applications.

#### Prerequisites

Participants should be able to write simple programs in one or more of C, C++ or Fortran.

#### Schedule

The course will take place on Tuesdays (10.00–12.00) and Thursdays (10.00–12.00). There will be tutorials on Tuesdays (13:30–15:00). A detailed schedule will be available closer to the time. The introductory meeting is at 10.00 on Tuesday January 21 in the Cassiopeia room, Astronomy building.

#### Teacher

Joachim Hein

## Autumn 2019

### Image Analysis (study period II, 7.5 ECTS)

The aim of the course is to give necessary knowledge of digital image analysis for further research within the area and to be able to use digital image analysis within other research areas such as computer graphics, image coding, video coding and industrial image processing problems. The aim is also to prepare the student for further studies in e.g. computer vision, multispectral image analysis and statistical image analysis.

Participants are assumed to have an interest in Image Analysis for their respective PhD research project. Participants should preferably bring one image analysis problem and data to the class to work on during the course and present progress on this in a presentation on January 15.

#### Additional information

For more details, see the syllabus of FMA105F at the LTH page.

The course is similar to FMAN20 described in Canvas.

#### Schedule

Almost full days (9-15) of lectures on November 6, November 20 and December 4. Work on your own image analysis problem in between and after. Present your project work on January 15 at 13:15.

#### Course coordinator

Kalle Åström

### Introduction to Python (study period II, 7.5 ECTS)

The course gives a basic introduction to programming in Python, assuming no prior programming experience. It has an orientation towards computational mathematics. Python is a modern scripting language with ties to Scientific Computing due to powerful scientific libraries like SciPy, NumPy and Matplotlib. The course covers elementary programming concepts (arithmetic expressions, for-loops, logical expressions, if-statements, functions and classes) that are closely connected to mathematical/technical problems and examples, as well as mathematical manipulations and problem solving (e.g.~setting up matrices, solving linear problems, solving differential equations, finding roots), Pandas and GUI programming. A final lecture will cover syntactical differences between Python/SciPy and MATLAB, to facilitate the transition to MATLAB, if needed.

The course uses the flipped classroom concept, where the students watch videos at their own schedule, with a few scheduled joint sessions. There are hand-in assignments and a final project, both to be done in groups.

#### Schedule

Introductory meeting: 30 October, 2019, 13.15, Lundmarksalen, Astronomy Building

#### Course coordinator

Claus Führer

### Scientific Computing with Python and Fortran (study period I, 7.5 ECTS)

This course is intended for students with basic knowledge of programming in any language who would like to learn the techniques of scientific programming. The course covers scientific programming in Python, including writing numerical codes with NumPy, data handling, visualisation with Matplotlib and ParaViews, writing user interfaces with Qt, and creating Python environments for scientific applications. It also covers using the compiled language Fortran, stand-alone or via mixed-language programming with Python.

For students without basic programming knowledge in C, C++ or Fortran this course will equip you with the required prerequisites for the course *Parallel programming of HPC systems*, which is scheduled to be given in spring term 2020.

#### Schedule

Introductory meeting: 3 September, 2019, 10.00, Andromeda Room, Astronomy Building.

#### Course coordinator

Jonas Lindemann

### Artificial Intelligence in Medicine and Life Sciences – Introduction (study period II, 1.5 ECTS)

Artificial intelligence is rapidly entering medicine and life science research as well as pharmaceutical industry and health care institutions. This introduction course will give an overview over artificial intelligence concepts and methods and over current and future applications of artificial intelligence in medicine and life sciences. Societal, ethical and legal challenges will also be addressed. In addition, students will hear about ongoing research in this area at Lund University and develop a project plan for an artificial intelligence research project in their own research domain. This is the first course in the new course package on "Artificial Intelligence in Medicine and Life Science" and will not have any programming exercises. It will be followed by several in-depth courses with practical exercises, each focusing on different types of data.

LU PhD students have prioritized admission but postdocs and other researchers can be admitted if there are unfilled spaces.

#### Schedule

The schedule and additional information as a document (PDF, 89 kB, new tab).

#### Course coordinator

Sonja Aits

### Philosophy of Research in Computational Science (study period I, 1 ECTS)

The course gives an introduction to different scientific disciplines, including scientific perspectives on computer modelling. The aim of the course is to broaden understanding of multi- and interdisciplinary science and open for reflection on the scientific approach in different types of research. The course consists of lectures and an individual assignment where the student shall make a reflection on how their own research relates to possible epistemological models. Lectures are offered during two days (1 and 2nd of October).

#### Course coordinator

Ullrika Sahlin

## Spring 2019

### Monte Carlo and Molecular Dynamics Tools (study period II, 7.5 ECTS)

The course gives a basic introduction to techniques for simulating complex systems and processes, typically with many coupled degrees of freedom. The main aim of the course is to introduce the students to applications of these techniques. To this end, the course contains five one-week projects in different areas (astronomy, biophysics, elementary particle physics, medical radiation physics and physical/theoretical chemistry).

#### Schedule

Introductory meeting: April 1, Cassiopeia (Astronomy)

The full schedule as a document (PDF, 43 kB, new tab).

#### Course coordinator

Anders Irbäck

#### Teachers

Melvyn B. Davies, Anders Irbäck, Michael Ljungberg, Leif Lönnblad, and Ulf Ryde

### Distributed Computing Concepts and Tools (study period II, 4.5 ECTS)

The course gives introduction into concepts of geographically distributed computing, such as that implemented by research e-infrastructures dealing with large data volumes and high processing rates. The course is a combination of lectures and hands-on tutorials, addressing aspects of security, authentication and authorisation, interfaces to computing services, principles of distributed storage and data handling, resource characterisation and discovery, information representation and monitoring, workload management and scheduling in a distributed environment. It introduces concepts of services, interfaces, resource virtualisation, meta-protocols, non-interactive workloads, digital certificates and trust, Virtual Organisations, information systems and execution environments. Existing tools and services are introduced as well. The students will obtain personal certificates and a temporary access to a distributed computing infrastructure for exercises. Assessment is done on the basis of the course project, during which the students are expected to make use of distributed computing to solve their daily tasks.

#### Course responsible

Oxana Smirnova

#### Teachers

Oxana Smirnova, Balazs Konya, and Florido Paganelli

## Autumn 2018

### Reproducible and Interactive Data Analysis and Modelling Using Jupyter Notebooks (study period II, 4 ECTS)

The aim of this course is to introduce students to the Jupyter Notebook which is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and explanatory text. Uses include: data cleaning and transformation, numerical simulation, statistical modeling, machine learning and much more. Through the notebooks, research results and the underlying analysis can be transparently reproduced as well as shared.

During three days with alternating video lectures and hands-on exercises, the participants will learn to construct well-documented, electronic notebooks that perform advanced data analysis and produce publication ready plots. While the course is based on Python, this is not a prerequisite, and many other programming languages can be used.

#### Additional information

For more details see the course website on GitHub.

#### Schedule

December 3-5, 2018 and January 14-15, 2019

#### Teachers

Caterina Doglioni, Mikael Lund, and Giulio Tesei

### Introduction to Deep Learning (4.5 ECTS)

Recent development in machine learning have led to a surge of interest in artificial neural networks (ANN). New efficient algorithms and increasingly powerful hardware has made it possible to create very complex and high-performing ANNs. The process of training such complex networks has become known as deep learning and the complex networks are typically called deep neural networks.

The aim of this course is to introduce students to common deep learnings architectues such as multi-layer perceptrons, convolutional neural networks and recurrent models such as the LSTM. Basic concepts in machine learning till also be introduced. The course consists of a series of lectures and computer exercises. The programming environment will be python (Jupyter notebook) together with the deep learning libraries Keras and Tensorflow.

#### Literature

The literature will consist of parts from the online deep learning book and lecture notes.

#### Schedule

- 13/9 Introduction to the course + Deep Learning.
- 14/9 Introduction to machine learning
- 20/9 The Jupyter notebook and Keras
- 27/9 The MLP, part 1
- 28/9 The MLP, part 2
- 3/10 CNN, part 1
- 4/10 CNN, part 2
- 5/10 Autoencoder and GAN
- 11/10 Recurrent networks
- 12/10 LSTMs
- 18/10 Presentations of project work
- 19/10 Presentations of project work

All lectures take place between 13:15 - 15:00 in seminar room HUB, Theoretical Physics.

#### Course responsible

Mattias Ohlsson

#### Teachers

Mattias Ohlsson + additional teachers and guest lecturers

### Modelling and Computer Simulation of Particles and Nuclides Passage through Matter and Magnetic Field, with Geant4 as Example (3-7 September 2018, 3 ECTS)

Geant4 is a toolkit for simulating the passage of particles through matter. It is the reference simulation engine in many areas. Geant4 covers all relevant physics processes, electromagnetic, hadronic, decay, optical, for long and short lived particles, for energy range spanning from tens of eV to TeV scale. The transport of low energy neutrons down to thermal energies is also be handled. The software can also simulate remnants of hadronic interactions, including atomic de-excitation and provides extension to low energies down to the DNA scale for biological modelling.

The course concerns the following topics: Introduction to simulation of elementary particles and nuclides passing through and interacting with matter; structure of a simulation program based on object-orientation; definition of realistic geometry including magnetic field; primary particles and interfaces to generators; electromagnetic and strong interaction physics processes; user interfaces; visualization; event biasing; simulation examples from subatomic physics, space science and medical applications.

#### Additional information

More information can be found in the course document (PDF, 243 kB, new tab).

#### Course responsible

Luis Sarmiento

#### Teachers

Makoto Asai (Stanford), to be confirmed: Alberto Ribon (CERN), Marc Verderi (IN2P3/LLR), Vladimir Ivanchenko (CERN)

## Spring 2018

### Virtual Reality in Computational Research (study period II, 7.5 ECTS)

The aim of this course is to introduce students in computational research to Virtual Reality (VR). This is a rapidly evolving, cross-disciplinary and exploratory technology, and this course will showcase its use in a variety of settings. The course consists of a series of lectures, demonstrations, and programming sessions. These will include the basic principles of VR, visit to the VR labs at LTH and Humlab at Lund university, introductory tutorials on the development platform Unity, working with Unity and utilising in-house templates, lectures and demos of VR research done at Humlab and eye-tracking research in VR. In addition to these sessions, the students will, starting in the first couple of weeks, working on their own Virtual Reality model in Unity, based their own research data. In the final week of the course, the students will present and discuss their model, and assessment is done on the basis of this project.

#### Course responsible

Oscar Agertz

#### Teachers

Mattias Wallergård, Joakim Eriksson, Henrik Garde, Stefan Lindgren, Diederick C. Niehorster, and Marcus Nyström

## Autumn 2017

### Reproducible and Interactive Data Analysis and Modelling Using Jupyter Notebooks (study period II, 4 ECTS)

The aim of this course is to introduce students to the Jupyter Notebook which is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and explanatory text. Uses include: data cleaning and transformation, numerical simulation, statistical modeling, machine learning and much more. Through the notebooks, research results and the underlying analysis can be transparently reproduced as well as shared.

During three days with alternating lectures and hands-on exercises, the participants will learn to construct well-documented, electronic notebooks that perform advanced data analysis and produce publication ready plots. While the course is based on Python, this is not a prerequisite, and many other programming languages can be used.

#### Additional information

For more details see the course website on GitHub.

#### Teachers

Caterina Doglioni, Mikael Lund, and Giulio Tesei

### Domain Decomposition Methods (study period I, 7.5 ECTS)

Domain Decomposition is an important concept in the parallelization of numerical methods for partial differential equations (PDEs). Thereby, the spatial domain is decomposed into several parts, which are assigned to different processes, which then communicate over the boundaries of these domains. Naturally the question arises what happens if we modify the data or reduce the amount of communication. For large classes of PDEs, practical answers can be found by mathematical analysis, which turns out to be relevant to other multiphysics problems such as fluid structure interaction as well.

The course will cover the basic theory of domain decomposition methods for model problems like the Poisson and the Heat Equation with finite difference discretizations and then look at the practical issues of implementing these in a Message Passing Interface (MPI) framework.

#### Course responsible

Philipp Birken

## Spring 2017

### Efficient Programming of Modern HPC Architectures (study period I, 7.5 ECTS)

The course discusses programming techniques required to efficiently utilise high performance computing in a PhD-project in computational science and engineering. The course content includes developing modularised software in Fortran 95 and the scripting language Python. You will be taught how to conduct an object-oriented analysis of common problems in science and engineering. Parallel programming will be another focus point of the course. We will discuss shared memory and distributed memory programming. The course will introduce the application interfaces of OpenMP and MPI as well as the concepts behind these.

#### Schedule

The course will take place on Tuesdays (10.00-12.00 and 13.30-15.30) and Fridays (10.00-12.00). A detailed schedule will be available closer to the time. The introductory meeting is at 10.00 on Tuesday January 24 in the Cassiopeia room, Astronomy building.

#### Teachers

Joachim Hein and Jonas Lindemann

### Computational Tools and Recipes (study period II, 7.5 ECTS)

The aim of this course is to equip the participating PhD students with the tools needed to solve advanced numerical problems efficiently in their research. Topics will be taken from the book, "Numerical Recipes" by Press et al., and include root finding, interpolation and extrapolation, integration, ODEs, minimization and maximization of functions, fitting procedures and modeling of data, and Fast Fourier transforms. The course will be a mixture of lectures and hands-on exercise sessions given by experts from a number of departments.

#### Schedule

The schedule as a document (PDF, 25 kB, new tab).

#### Course coordinator

Philipp Birken

#### Teachers

Philipp Birken, Ross Church, Per-Åke Malmqvist, Valera Veryazov, and Chao-Chin Yang

## Autumn 2016

### Interdisciplinary Studies in Computational Research (study period I-II, 2-4 ECTS)

Course description and schedule as a document (PDF, 35 kB, new tab).

#### Course responsible

Melvyn B. Davies and Anders Irbäck

## Spring 2016

### Interdisciplinary Studies in Computational Research (study period I-II, 2-4 ECTS)

Course description and schedule as a document (PDF, 33 kB, new tab).

#### Course responsible

Melvyn B. Davies and Anders Irbäck

## Autumn 2015

### Introduction to R (study period II, 1.5 ECTS)

This course provides an introduction to the programming language R. The first part of the course, giving 1.5 ECTS credits, will take place in week 3 of 2016 (18-22 January). It will be taught by Eric Feigelson, professor at Penn State and author of the book "Modern Statistical Methods for Astronomy with R Applications" available online at the Penn State website. The course is intended for PhD students from any area of physics, although some specific examples will be taken from astronomy research.

An optional second part of the course offers individual consultation on using R in specific research problems, potentially for additional credit.

The course consists of the following modules:

- Astrostatistics: Past, Present & Future
- Getting started with R and CRAN
- Density estimation & local regression
- Fundamentals of statistical inference
- Regression
- Multivariate clustering & classification
- Bayesian inference
- Bayesian computation
- High performance computing in R
- Towards good statistical practices in astronomy

No prior knowledge of R is required to take the course.

## Spring 2015

### Domain Decomposition Methods (study period II, 7.5 ECTS)

Domain Decomposition is an important concept in the parallelization of numerical methods for partial differential equations (PDEs). Thereby, the spatial domain is decomposed into several parts, which are assigned to different processes, which then communicate over the boundaries of these domains. Naturally the question arises what happens if we modify the data or reduce the amount of communication. For large classes of PDEs, practical answers can be found by mathematical analysis, which turns out to be relevant to other multiphysics problems such as fluid structure interaction as well.

The course will cover the basic theory of domain decomposition methods for model problems like the Poisson and the Heat Equation with finite difference discretizations and then look at the practical issues of implementing these in a Message Passing Interface (MPI) framework.

#### Course responsible

Philipp Birken

## Autumn 2014

### Monte Carlo and Molecular Dynamics Tools (study period II, 7.5 ECTS)

The course gives a basic introduction to techniques for simulating complex systems and processes, typically with many coupled degrees of freedom. The main aim of the course is to introduce the students to applications of these techniques. To this end, the course contains five one-week projects in different areas (astronomy, biophysics, elementary particle physics, medical radiation physics and physical/theoretical chemistry).

#### Course coordinator

Anders Irbäck

#### Teachers

Melvyn B. Davies, Anders Irbäck, Per Linse, Michael Ljungberg, and Leif Lönnblad/Torbjörn Sjöstrand

## Spring 2014

### Modelling and Computer Simulation of Particles and Nuclides Passage through Matter and Magnetic Field, with Geant4 as Example (7-11 April 2014, 3 ECTS)

Geant4 is a toolkit for simulating the passage of particles through matter. It is the reference simulation engine in many areas. Geant4 covers all relevant physics processes, electromagnetic, hadronic, decay, optical, for long and short lived particles, for energy range spanning from tens of eV to TeV scale. The transport of low energy neutrons down to thermal energies is also be handled. The software can also simulate remnants of hadronic interactions, including atomic de-excitation and provides extension to low energies down to the DNA scale for biological modelling.

The course concerns the following topics: Introduction to simulation of elementary particles and nuclides passing through and interacting with matter; structure of a simulation program based on object-orientation; definition of realistic geometry including magnetic field; primary particles and interfaces to generators; electromagnetic and strong interaction physics processes; user interfaces; visualization; event biasing; simulation examples from subatomic physics, space science and medical applications.

#### Additional information

More information can be found in the course document (PDF, 158 kB, new tab).

#### Course responsible

Torsten Åkesson

#### Teachers

Alberto Ribon (CERN), Sebastien Incerti (Bordeaux), Makoto Asai (Stanford), and Marc Verderi (École Polytechnique)

### Grid Computing Concepts and Tools (study period II, 4.5 ECTS)

The course gives introduction into concepts of Grid computing, discussing aspects of authentication and authorisation, interfaces to computing services, distributed storage and data handling, resource characterization and discovery, information representation and monitoring, workload management and scheduling in a distributed environment. It will introduce concepts of Grid certificates and trust, Virtual Organisations, Grid jobs, meta-protocols, information systems, brokering and runtime environments. Existing tools and services will be introduced. The students will obtain Grid certificates and a temporary access to a Grid testbed for exercises. The course will be a combination of lectures and hands-on tutorials.

#### Teachers

Oxana Smirnova and Balazs Konya

### Efficient Programming of Modern HPC Architectures (study period I, 7.5 ECTS)

The course discusses programming techniques required to efficiently utilise high performance computing in a PhD-project in computational science and engineering. The course content includes developing modularised software in Fortran 95 and the scripting language Python. You will be taught how to conduct an object-oriented analysis of common problems in science and engineering. Parallel programming will be another focus point of the course. We will discuss shared memory and distributed memory programming. The course will introduce the application interfaces of OpenMP and MPI as well as the concepts behind these.

#### Teachers

Joachim Hein and Jonas Lindemann

## Autumn 2013

### Image Analysis (study period II, 7.5 ECTS)

The main aim of the course is to give a basic introduction to theory and mathematical methods used in image analysis, to an extent that will allow image processing problems to be developed and evaluated. In addition the aim is to help the PhD student develop his or her ability in problem solving, both with and without a computer. Furthermore, the aim is to prepare the student for further studies in computer vision, multispectral image analysis, machine learning and statistical image analysis.

It is assumed that the students following the course selects a project before the course starts.

The course is divided into logical modules:

- Module 1 - Introduction to images and to image analysis systems. Linear algebra for images. The convolution operator and the Fourier transform and their relation to each other. Detection. Understanding of filter types (low-pass, high-pass, band-pass and band-reject), definition of image quality and strategies for image optimization.
- Module 2 - Discretization of continuous signals, and associated errors. Image interpolation. The discrete Fourier transform. Multimodality image registration, Applications
- Module 3 - Image segmentation and voxel classification in general. Thresholding. Segmentation using energy methods, Segmentation using snakes. Level set methods. Tracking. Applications.
- Module 4 - Visualization and screen representation, color coding, alpha channel, contrast, transparency, histogram equalization, Applications.
- Module 5 - Image reconstruction of 3D volumes from 2D projections. Analytical methods, Iterative Methods. Noise models. Applications.
- Module 6 - Image system development and evaluation. Monte Carlo simulations of imaging systems, Observer studies. Applications.
- Module 7 - Machine learning for image classification and clustering. Methods includes neural networks, support vector machines, random forests and self-organizing feature maps. Applications

During the course, homework assignments are made on data specific to the students' individual projects with methods taught in the different modules. The course ends with project presentations.

#### Literature

Suggested reading: l Szeliski, R.: Computer Vision: Algorithms and Applications. Springer, 2010, ISBN: 9781848829343. It is possible to pass the course without owning the book, using material available through the course home page.

#### Course coordinator

Kalle Åström

#### Teachers

Kalle Åström, Katarina Sjögreen Gleisner, Michael Ljungberg, and Mattias Ohlsson.

## Spring 2013

### Computational Tools and Recipes (study period I, 7.5 ECTS)

The aim of this course is to equip the participating PhD students with the tools needed to solve advanced numerical problems efficiently in their research. Topics will be taken from the book, "Numerical Recipes" by Press et al., and include sorting, root finding, interpolation and extrapolation, minimization and maximization of functions, fitting procedures and modeling of data, and Fast Fourier transforms. The course will be a mixture of lectures and hands-on exercise sessions given by experts from a number of departments.

#### Course coordinator

Ross Church

#### Teachers

Ross Church, Eskil Hansen, David Hobbs, Per-Åke Malmqvist, and Valera Veryazov

## Autumn 2012

### Monte Carlo and Molecular Dynamics Tools (study period II)

The course will teach techniques for simulating complex systems and processes, typically with many coupled degrees of freedom. A wide spectrum of problems will be discussed, including examples from astronomy, biophysics, elementary particle physics, medical radiation physics and physical/theoretical chemistry.

#### Schedule

The schedule as a document (PDF, 40 kB, new tab).

#### Course coordinator

Anders Irbäck

#### Teachers

Melvyn B. Davies, Anders Irbäck, Michael Ljungberg, Torbjörn Sjöstrand, and Erik Wernersson

### Efficient Programming of Modern HPC Architectures (study period I, 7.5 ECTS)

The course discusses programming techniques required to efficiently utilise high performance computing in a PhD-project in computational science and engineering. The course content includes developing modularised software in Fortran 95 and the scripting language Python. You will be taught how to conduct an object-oriented analysis of common problems in science and engineering. Parallel programming will be another focus point of the course. We will discuss shared memory and distributed memory programming. The course will introduce the application interfaces of OpenMP and MPI as well as the concepts behind these.

#### Course coordinator

Jonas Lindemann

#### Teachers

Joachim Hein and Jonas Lindemann