SubjectsSubjects(version: 945)
Course, academic year 2023/2024
   Login via CAS
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
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.
Mgr. Michal Belda, Ph.D.
Is incompatible with: NMUE022
In complex pre-requisite: NPRG041, NPRG041, NPRX041
Annotation -
Last update: Mgr. Hana Kudrnová (05.05.2023)
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.
Aim of the course -
Last update: doc. Mgr. Tomáš Ledvinka, Ph.D. (03.05.2023)

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

Course completion requirements - Czech
Last update: RNDr. Ladislav Hanyk, Ph.D. (09.10.2017)

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 zpracovat v požadovaném rozsahu práci zadanou vyučujícím (tj. vedoucím cvičení), obvykle jednu rozsáhlejší zápočtovou úlohu a/nebo několik průběžně zadávaných jednodušších úloh. Součástí hodnocení může být i ocenění účasti na cvičeních, splnit zápočet je však možné odevzdáním požadované práce i bez účasti na cvičeních. Vyučující může stanovit bodový systém, se kterým seznámí studenty na začátku semestru.

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

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

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

Teaching methods -
Last update: HANYK/MFF.CUNI.CZ (12.04.2008)

Lecture + practicals

Requirements to the exam - Czech
Last update: RNDr. Ladislav Hanyk, Ph.D. (09.10.2017)

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.

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

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.

 
Charles University | Information system of Charles University | http://www.cuni.cz/UKEN-329.html