PředmětyPředměty(verze: 873)
Předmět, akademický rok 2020/2021
  
Programování pro fyziky - NOFY056
Anglický název: Programming for Physicists
Zajišťuje: Kabinet výuky obecné fyziky (32-KVOF)
Fakulta: Matematicko-fyzikální fakulta
Platnost: od 2019
Semestr: zimní
E-Kredity: 5
Rozsah, examinace: zimní s.:2/2 Z+Zk [hodiny/týden]
Počet míst: neomezen
Minimální obsazenost: neomezen
Stav předmětu: vyučován
Jazyk výuky: čeština
Způsob výuky: prezenční
Garant: RNDr. Ladislav Hanyk, Ph.D.
Mgr. Tomáš Ledvinka, Ph.D.
XP//Ve slož. prerekvizitě: NPRG041, NPRX041
Výsledky anket   Termíny zkoušek   Rozvrh   Nástěnka   
Anotace -
Poslední úprava: doc. RNDr. Helena Valentová, Ph.D. (19.01.2018)
Výchozí kurz programování pro studenty fyziky. Ř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ů.
Cíl předmětu -
Poslední úprava: HANYK/MFF.CUNI.CZ (12.04.2008)

Student schopný vyjádřit myšlenku pomocí programovacího jazyka (např. Pascal, C, Fortran).

Podmínky zakončení předmětu
Poslední úprava: 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.

Literatura -
Poslední úprava: doc. RNDr. Helena Valentová, Ph.D. (19.01.2018)
  • Poznámky k přednáškám: http://utf.troja.mff.cuni.cz/~ledvinka, http://geo.mff.cuni.cz/~lh/NOFY056
  • Virius M., Pascal - programování pro začátečníky, Grada, 2012
  • Herout P., Učebnice jazyka C, Kopp, 2010
  • Moler C., Numerical Computing with MATLAB, MathWorks, 2004, https://www.mathworks.com/moler.html
  • Langtangen H. P., A Primer on Scientific Programming with Python, Springer, 2011
  • Töpfer P., Algoritmy a programovací techniky, Prometheus, 1995
  • 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

Metody výuky -
Poslední úprava: HANYK/MFF.CUNI.CZ (12.04.2008)

Přednáška + praktická cvičení

Požadavky ke zkoušce
Poslední úprava: 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.

Sylabus -
Poslední úprava: doc. RNDr. Helena Valentová, Ph.D. (19.01.2018)
Strukturované procedurální programování
Programovací jazyky, zdrojový text, spouštění programu, vývojové prostředí, příkazový řádek. Struktura programu. Proměnné a konstanty. Příkazy a příkazové konstrukce: přiřazovací příkaz, podmíněné příkazy, příkazy cyklu, příkazy skoku. Standardní datové typy. Výrazy a pravidla jejich vyhodnocování. Ukazatele. Pole, řetězce a jiné strukturované datové typy. Procedury a funkce, předávání argumentů, způsoby vracení výsledku funkce, globální data, lokalita. 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, Rungovy-Kuttovy metody.

Nenumerické problémy
Dynamické datové struktury, vyhledávání, třídění.

 
Univerzita Karlova | Informační systém UK