Charles Explorer logo
🇬🇧

Programming for Physicists

Class at Faculty of Mathematics and Physics |
NOFY056

Syllabus

Structured procedural programming

Programming languages, source code, program execution, command line. Python program structure. Variables, values, types. Programming statements: assignment statement, conditional statement, loop statements, jump statements. Elementary data types. Expressions and evaluation rules. Lists, arrays and other structured data types. Procedures and functions, parameters, returning function results, global and local variables. Using object types, methods and attributes. Libraries, program modularization.

Numerical programming toolbox

Properties of real data types, spreading of numerical error. Standard mathematical functions, random numbers. Data input and output, formatting, text and binary files. Using numerical libraries. Visualization of computed data. Input and output redirection. Debugging.

Numerical algorithms

Algorithm complexity. Integer algorithms: Euclidean algorithm, Eratosthenes sieve. Mini-algorithms: quadratic equation, Horner’s method. Numerical linear algebra: matrix multiplication, Gauss elimination, LU factorization. Polynomial approximation. Numerical quadrature formulas, Monte Carlo method. Root finding: bisection, Newton’s method. Initial-value problem for system of ordinary differential equations: Euler and Runge-Kutta methods.

Non-numerical problems

Dynamic data structures, searching, sorting.

Annotation

An introductory programming course for physics students. Basics of the Python language.

Problem solving using structured procedural programming methodology. Presentation of selected numerical algorithms.

Exercises on computers to acquire practical skills, from data preparation to numerical processing to visualization of results.