Programming for Physicists - NOFY056
Title: Programování pro fyziky
Guaranteed by: Laboratory of General Physics Education (32-KVOF)
Faculty: Faculty of Mathematics and Physics
Actual: from 2023
Semester: winter
E-Credits: 5
Hours per week, examination: winter s.:2/2, C+Ex [HT]
Capacity: unlimited
Min. number of students: unlimited
4EU+: no
Virtual mobility / capacity: no
State of the course: taught
Language: Czech
Teaching methods: full-time
Additional information: http://utf.troja.mff.cuni.cz/~ledvinka
http://geo.mff.cuni.cz/~lh/NOFY056
Guarantor: RNDr. Ladislav Hanyk, Ph.D.
doc. Mgr. Tomáš Ledvinka, Ph.D.
doc. Mgr. Michal Belda, Ph.D.
Teacher(s): doc. Mgr. Michal Belda, Ph.D.
RNDr. Ladislav Hanyk, Ph.D.
doc. RNDr. Pavel Kocán, Ph.D.
doc. Mgr. Pavel Kudrna, Dr.
doc. Mgr. Tomáš Ledvinka, Ph.D.
RNDr. Peter Matvija, Ph.D.
prof. RNDr. František Němec, Ph.D.
Mgr. Vojtěch Pleskot, Ph.D.
doc. RNDr. Jakub Velímský, Ph.D.
Is incompatible with: NMUE022
In complex pre-requisite: NPRG041, NPRG041, NPRX041
Opinion survey results   Examination dates   WS schedule   Noticeboard   
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.
Last update: Kudrnová Hana, Mgr. (05.05.2023)
Aim of the course -

Students ready to express a thought in a programming language (like Python, C, Fortran).

Last update: Ledvinka Tomáš, doc. Mgr., Ph.D. (03.05.2023)
Course completion requirements - Czech

Pro absolvování předmětu je předepsán zápočet i zkouška.

Pro získání zápočtu je třeba prostřednictvím odevzdané práce prokázat zvládnutí látky uvedené v sylabu. Používá se bodový systém a student si může vybrat, zda na zápočet požadovancýh 80 ze 100 bodů dosáhne prostřednictvím kratších úloh testujících jednotlivé okruhy témat nebo jediné zápočtové úlohy.

Konání zkoušky není podmíněno získáním zápočtu ani účastí na přednáškách.

Last update: Ledvinka Tomáš, doc. Mgr., Ph.D. (28.09.2024)
Literature -

Lecture notes:

  • http://utf.troja.mff.cuni.cz/~ledvinka
  • http://geo.mff.cuni.cz/~lh/NOFY056

and also

  • Pecinovský R., Začínáme programovat v jazyku Python, Grada, 2020
  • Wang J., Wang A., Introduction to Computation in Physical Sciences - Interactive Computing and Visualization with Python, Springer, 2023
  • Documentation: https://www.python.org/doc/, https://numpy.org/doc/, https://docs.scipy.org/doc/scipy/
  • Herout P., Učebnice jazyka C, Kopp, 2010
  • Moler C., Numerical Computing with MATLAB, MathWorks, 2004, https://www.mathworks.com/moler.html
  • Press W. H., Teukolsky S. A., Vetterling W. T., Flannery B. P., Numerical Recipes in C/Fortran: The Art of Scientific Computing, Second Edition, Cambridge University Press, 1992, http://www.nrbook.com/a/bookcpdf.php, http://www.nrbook.com/a/bookfpdf.php

Last update: Ledvinka Tomáš, doc. Mgr., Ph.D. (03.05.2023)
Teaching methods -

Lecture + practicals

Last update: HANYK/MFF.CUNI.CZ (12.04.2008)
Requirements to the exam - Czech

Konání zkoušky není podmíněno získáním zápočtu ani účastí na přednáškách. Zkouška má písemnou a ústní část, student musí úspěšně vykonat obě části. Během písemné části student prokazuje schopnost algoritmizace několika drobnějších úloh pomocí vybraného programovacího jazyka, v ústní části je prověřena studentova znalost látky vyučované na přednáškách.

Last update: Hanyk Ladislav, RNDr., Ph.D. (09.10.2017)
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.

Last update: Ledvinka Tomáš, doc. Mgr., Ph.D. (03.05.2023)