Master program in Computational Science at the University of Oslo

Program Structure


Planned start: Fall 2018


Thesis directions

The program has the following study directions/options

Structure and courses

The table here is an example of a suggested path for a Master of Science project, with course work the first year and thesis work the last year.

10 ECTS 10 ECTS 10 ECTS
4th semester Master thesis Master Thesis Master Thesis
3rd semester Master thesis Master Thesis Master Thesis
2nd semester Master courses Master courses Master courses
1st semester Master courses Master courses Master courses

The program is very flexible in its structure and students may opt for starting with their thesis work from the first semester and scatter the respective course load across all four semesters. Depending on interests and specializations, there are many courses on computational science which can make up the required curriculum of course work.

Presently available courses at UiO

The University of Oslo offers the following courses in Computational Science, split here according to main disciplines/fields. All Master of Science courses will require a revision of their descriptions. This revision will include the addition of professional competences. In this process, one could think of reshaping some of the existing courses below and rename them in order to align them closely with the present program.

New Courses

In order to build a common study program and identity as a Computational Science student, the students will have to choose two out of three compulsory courses that aim at providing topics of common and broad interest. Both courses have a workload of 10 ECTS each. These three new courses (final label to be determined, only tentative name here) are

Summary: This will be a new 10-credit course to be offered at MAT-NAT. The course is first and foremost designed as one basic ingredient of the curriculum for the "Master program in Computational Science". However, this course should also be useful for other students, as well as scientific staff at UiO, who want to learn about statistical data analysis, Monte Carlo methods and machine learning.

The content of this course focuses on three main topics

  1. Monte Carlo methods, statistical data analysis, information theory and Bayesian statistics. Methods like bootstrapping and blocking to analyse data will be discussed
  2. Optimization of data and algorithms for handling large data sets.
  3. Machine learning with a focus on topics such as decision tree learning, maximum entropy model, support vector machine and kernel methods, graphic models, Bayesian learning methods, dimension reduction, neural networks and genetic algorithms.
  4. CS-MATH2: Mathematical modeling in Science, (10 ECTS)
    1. Central algorithms in mathematics applied to various fields in the Sciences
    2. Applications to physical systems
  5. CS-INF1: High-Performance Computing and Numerical projects, (10 ECTS
    1. This course teaches you to develop and structure large numerical projects, from code writing to finalizing a report
    2. Topics which are included are parallelization and vectorization
    3. Machine architecture and GPU-CPU programming
    4. Optimization of code and benchmarking
    5. Numerical methods from linear algebra will be discussed as well as examples from life science.
Summary: This will be a new 10-credit course to be offered at MAT-NAT. The course is first and foremost designed as one basic ingredient of the curriculum for the "Master program in Computational Science". However, this course should also be useful for other students, as well as scientific staff at UiO, who want to learn the fundamental knowledge about efficiently applying modern computer architectures to solving computation-heavy scientific problems.

Overlap: 5 credit points of overlap with INF3380.

Replacing INF3380 altogether? Probably yes.

Pre-requirement of students: basic knowledge about programming and numerical methods.

Learning outcome:

  1. capable of effectively using laptop/desktop, as well as with thread-based parallelism and OpenMP programming, for solving simple numerical problems;
  2. capable of extending numerical calculations (that fit for a distributed memory model) to a computer cluster with the help of basic MPI programming;
  3. be informed about cutting-edge hardware (such as GPUs) and programming tools (such as OpenMP v4, OpenACC, CUDA, MPI v3);
  4. ready to learn more about advanced parallel computing.
Content: The course's content can be roughly divided into two big parts: Mandatory assignment/project:
  1. one mandatory assignment (a prescribed numerical problem, intended for using a shared-memory computer system)
  2. one project (with the possibility of configuring an individual project for each student, in the numerical problem, target parallel hardware, programming language)
Exam form: This needs a thorough discussion. However, there are readily two possibilities: (1) a standard 4-hour written or digital exam (2) An oral presentation by each student of her/his project and follow-up questions. The second possibility will have a challenge for the teacher(s) when the number of students is large.

Grade: A-F or pass/no pass Needs a discussion together with the exam form.

Suggested textbook (the so-far best textbook): Introduction to High Performance Computing for Scientists and Engineers (Chapman & Hall/CRC Computational Science) Paperback – 7 Jul 2010 by Georg Hager (Author), Gerhard Wellein (Author)

Revising existing courses

Some of these courses could incorporate (or base themselves upon) existing ones. The courses here are organized according to their corresponding disciplines. NOTE: These are suggestions for the discussions within each working group.

Graduate Certificates

The program plans to offer graduate certificates in

Dual Degrees

The program plans to offer dual degrees (more text to come)