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 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 or Matlab, 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 or Matlab.



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
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
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