• Level of education

    Bachelor's degree

  • ECTS

    5 credits

  • Training structure

    Faculty of Science

  • Hours per week

    42h

Description

This course includes an upgrade and deepening of programming techniques as well as an introduction to computational physics. We will begin with a review of procedural programming using the Python 3 language. We will then take an in-depth look at numerical methods relevant to physics, studying a selection of classic algorithms from numerical analysis and applying them to physical problems.

Read more

Objectives

Learn to program at an advanced level with Python and know how to apply your knowledge of scientific programming. Understand the concepts of numerical error, numerical stability, and algorithmic complexity. Know and be able to implement selected methods for numerical integration, solving ordinary and partial differential equations, and Monte Carlo sampling.

Read more

Mandatory prerequisites

Basic programming skills. Knowledge of computer science, physics, and mathematics at the bachelor's degree level in physics.

Recommended prerequisites

Proficiency in Python 3 and its modules, particularly NumPy. Bachelor's degree in programming and computational physics, specifically either "Programming for Physics" or "Simulation Tools" in L3 or equivalent.

Read more

Knowledge assessment

Continuous assessment

Read more

Syllabus

Procedural programming with Python 3 (revisions and in-depth study)

Scientific programming, the NumPy library

Graphics with Matplotlib

Concepts of numerical error, stability, and algorithmic complexity

Numerical quadrature methods: Newton-Cotes methods, adaptive methods, Gaussian quadrature

Ordinary differential equations: Runge-Kutta methods, implicit methods, adaptive methods

Finite difference methods for partial differential equations

Monte Carlo sampling and integration

Read more