Level of education
Bachelor's degree
ECTS
3 credits
Training structure
Faculty of Science
Hours per week
27h
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 present the use of numerical methods relevant to simulation and the resolution of physical problems.
Objectives
Learn to program at an advanced level with Python and know how to apply your knowledge of scientific programming. Understand and know how to implement common numerical methods for modeling physical problems based on solving linear algebra problems or ordinary differential equations.
Teaching hours
- Programming for Physics - Practical WorkPractical Work3 p.m.
- Programming for Physics - LectureLecture12 p.m.
Mandatory prerequisites
Programming concepts (an imperative language, ideally Python); proficiency in vector and matrix calculations and mathematical analysis tools (limits, differentiation, integrals, differential equations).
Recommended prerequisites: Good working knowledge of Python 3 and its modules, particularly NumPy. Training in programming and Python (imperative programming); familiarity with a Linux system.
Knowledge assessment
CCI
Syllabus
Reminders and additions to the Python language (instructions, variables and data types, control structures, etc.)
- Introduction to algorithms: finding the zeros of a function, sorting a list
- Concepts of object-oriented programming (concepts of classes, objects, attributes, etc.)
- NumPy and matplotlib libraries (array manipulation, data visualization)
- Methods of numerical linear algebra (Gauss algorithm, LU decomposition, QR algorithm)
- SciPy library, the Jupyter interface, and an exemplary application in computational physics
- Method for solving ordinary differential equations (Euler method, Runge-Kutta method, etc.)
Additional information
CM: 12 p.m.
Practical work: 15 hours