* Strukturované procedurální programování
Programovací jazyky, zdrojový text, spouštění programu, příkazový řádek. Struktura programu v jazyce Python. Proměnné, hodnoty, typy. Příkazy a příkazové konstrukce: přiřazovací příkaz, podmíněné příkazy, příkazy cyklu, příkazy skoku. Základní datové typy. Výrazy a pravidla jejich vyhodnocování. Seznamy, pole a jiné strukturované datové typy. Procedury a funkce, předávání a druhy argumentů, způsoby vracení výsledku funkce, globální data, lokalita. Použití objektového přístupu, metody a atributy. Knihovny, modularizace programů.
* Výbava numerického programátora
Vlastnosti reálných datových typů, šíření numerických chyb. Standardní matematické funkce, náhodná čísla. Vstup a výstup dat, formátování dat, textové a binární soubory. Použití numerických knihoven. Vizualizace výsledků. Přesměrování standardního vstupu a výstupu. Ladění.
* Numerické algoritmy
Časová a paměťová složitost algoritmů. Celočíselné algoritmy: Eukleidův algoritmus, Eratosthenovo síto. Mini-algoritmy: řešení kvadratické rovnice, Hornerovo schéma. Numerická lineární algebra: maticové násobení, Gaussova eliminace, LU faktorizace. Polynomická aproximace. Numerické integrování: kvadraturní vzorce, Monte Carlo. Hledání kořenů: bisekce, Newtonova metoda tečen. Počáteční úloha pro soustavy obyčejných diferenciálních rovnic: Eulerova metoda, Rungeovy-Kuttovy metody.
* Nenumerické problémy
Dynamické datové struktury, vyhledávání, třídění.
Výchozí kurz programování pro studenty fyziky. Základy jazyka Python. Řešení problémů za použití metodiky strukturovaného procedurálního programování.
Předvedení vybraných numerických algoritmů. Cvičení nad počítači pro nabývání praktických dovedností, od přípravy dat přes jejich numerické zpracování po vizualizaci výsledků.