FYSS5120 Efficient Numerical Programming (4 cr)

Study level:
Advanced studies
Grading scale:
Pass - fail
English, Finnish
Responsible organisation:
Department of Physics
Curriculum periods:
2020-2021, 2021-2022, 2022-2023, 2023-2024


  • Python and Julia

  • Keras and TensorFlow libraries

  • Efficient C++ programming for applications in science and in mathematics

  • Calling C++ functions in Python code

  • Usage of libraries, such as GSL and Boost

  • Computationally efficient data structures

  • Pros and cons in operator overloading

  • Code debugging and identifying of memory leaks 

Learning outcomes

At the end of the course students will be able to:

  • Combine programming with Python and C++

  • Write C++ code that uses libraries for solving mathematical and physical problems

  • Understand the layout and inner workings of a C++ code

  • Keep C++ code and the underlying mathematics in close unison

  • Hide uninteresting or already well-tested programming details from daily view

  • Write a machine learning algorithm for data analysis in Python 

Description of prerequisites

Programming experience with Python, C++ or some other programming language.

Completion methods

Method 1

Given every year starting in autumn 2022.
Evaluation criteria:
Accepted solutions to programming assignments.
Time of teaching:
Period 1
Select all marked parts
Parts of the completion methods

Teaching (4 cr)

Participation in teaching
Grading scale:
Pass - fail
Evaluation criteria:
Accepted solutions to programming assignments.
Study methods:

Lectures, programming workshops, assignments.