Scientific Computing

Course content

This course teaches numerical computational techniques that are used universally throughout all branches of natural sciences and engineering. We teach the fundamental principles and derive central computational methods from scratch. Students will see how such algorithms can be invented using simple principles, and will themselves program them and apply them to problems from biology, physics, nanoscience, and chemistry. 

Rather than simply teaching how to use or write down numerical algorithms in a formulaic manner, the course teaches how and why they work from the ground up, and how to understand and bound their errors. The goal is to provide students with the tools they need to understand the modern computational methods they will need for solving problems in their respective scientific fields.


MSc Programme in Climate Change

MSc Programme in Nanoscience

MSc Programme in Physics

MSc Programme in Physics with minor subject

Learning outcome

At course completion, the student should be able to:

  • Choose an appropriate numerical method for the solution of the problem or sub-problem. The numerical method is selected among the methods presented in the course and it should be chosen with respect to the requirements of the model.
  • Evaluate the numerical method with respect to potential accuracy, computational efficiency, robustness and memory requirements.
  • Understand and program the numerical method from scratch in Python/Numpy, and solve the problem using their own programs.
  • Calculate the quality of the solution with respect to the accuracy obtained and the sensitivity to model parameter variations.
  • Estimate whether the quality of the solution is adequate relative to the desired use of the model.
  • Analyse the reasons of a possible total failure of a method applied to a concrete problem.


The student will be able to use the methods presented in the course to perform numerical analysis for concrete problems in science, choose and program computational methods to solve them, and quantitatively bound the errors of the results obtained.

The solutions will be programmed in Python/Numpy.



The student will know about

  • ideas behind and motivation for fundamental numerical methods for the solution of: linear and nonlinear equations, linear and nonlinear optimization, eigenvalue problems, initial value problems for ordinary differential equations, partial differential equations and the fast Fourier transform.
  • simple mathematical models from science and numerical analysis of them.
  • methods for expressing mathematical models concisely as efficient, correct program code. 


Lectures, exercises and 4 small projects. Duration 9 weeks.

See Absalon for final course material. The following is an example of expected course literature.

Michael T. Heath: Scientific computing. An introductory survey (SIAM Classics in Applied Mathematics),

It can be purchased from Academic Books here:

The course assumes programming experience in a language like Python/NumPy, Matlab, Julia, or C/C++.

It is recommended that the student has knowledge of mathematics corresponding to the contents of the B.Sc. in physics, chemistry, mathematics, nanoscience, or computer science. In particular, linear algebra and calculus is used extensively in the course.

Academic qualifications equivalent to a BSc degree is recommended.

It is expected that the student brings a laptop with the appropriate software installed.

Necessary software:
Linux is the recommended work environment for code development.
Windows or Mac will work with extra software installed.

See how at http:/​/​​~avery/​teaching/​scicomp/​how-to-prepare.html

Continuous feedback during the course of the semester
7,5 ECTS
Type of assessment
Continuous assessment, during course
Type of assessment details
Independent evaluation of 4 projects. The final grade is the average of the grades of each of the 4 projects.
All aids allowed
Marking scale
7-point grading scale
Censorship form
No external censorship
More internal examiners

Oral examination, 30 minutes.

Criteria for exam assessment

See learning outcome

Single subject courses (day)

  • Category
  • Hours
  • Lectures
  • 40
  • Preparation
  • 58
  • Practical exercises
  • 16
  • Project work
  • 100
  • English
  • 214


Course number
7,5 ECTS
Programme level
Full Degree Master

1 block

Block 1
No restriction
The number of seats may be reduced in the late registration period
Study Board of Physics, Chemistry and Nanoscience
Contracting department
  • The Niels Bohr Institute
  • Department of Chemistry
Contracting faculty
  • Faculty of Science
Course Coordinators
  • Johan Georg Mulvad Samsing   (8-737c6a767c72777049776b7237747e376d74)
  • Gabriel Brammer   (15-6c6667776e6a713367776672726a774573676e33707a336970)

Kurt Mikkelsen, e-mail:, 3532 0251
Johan Georg Mulvad Samsing, e-mail:
Gabriel Brammer, e-mail:

Saved on the 30-05-2023

Are you BA- or KA-student?

Are you bachelor- or kandidat-student, then find the course in the course catalog for students:

Courseinformation of students