Advanced programming and technologies of programming - AP409011
Anglický název: Advanced programming and technologies of programming
Zajišťuje: Ústav chemického inženýrství (409)
Fakulta: Fakulta chemicko-inženýrská
Platnost: od 2019
Semestr: oba
Body: 0
E-Kredity: 0
Způsob provedení zkoušky:
Rozsah, examinace: 3/0, Jiné [HT]
Počet míst: zimní:neurčen / neurčen (neurčen)
letní:neurčen / neurčen (neurčen)
Minimální obsazenost: neomezen
Jazyk výuky: angličtina
Způsob výuky: prezenční
Způsob výuky: prezenční
Úroveň:  
Pro druh: doktorské
Poznámka: předmět je určen pouze pro doktorandy
student může plnit i v dalších letech
předmět lze zapsat v ZS i LS
Garant: Zubov Alexandr Ing. Ph.D.
Grof Zdeněk doc. Ing. Ph.D.
Záměnnost : P409011
Termíny zkoušek   
Anotace -
Poslední úprava: Grof Zdeněk doc. Ing. Ph.D. (08.07.2021)
*** Výuka bude probíhat formou nepravidelných seminářů v období říjen - duben. Prosíme všechny zájemce o tento předmět, aby se nejpozději do začátku zimního semestru ozvali garantům předmětu. Termíny seminářů budou se zájemci domluveny následně. *** Seznámit se základními programovacími technologiemi, datovými strukturami a algoritmy. Naučit se vytvářet přehledné a snadno udržovatelné programy. Důraz bude kladen na programovací jazyk Fortran 90/95 i jeho novější varianty (Fortran 2003/2018). Rámcově se seznámit s charakteristikami a možnostmi použití dalších jazyků (C/C++, Python) a jejich vzájemného propojení. Seznámit se s technikami pro paralelizaci programů (MPI, OpenMP).
Výstupy studia předmětu -
Poslední úprava: Grof Zdeněk doc. Ing. Ph.D. (21.06.2022)

Student bude umět

  • orientovat se v nejdůležitějších programovacích technologiích

  • vytvářet přehledné a snadno udržovatelné programy a používat programátorský rukopis

  • používat jazyk Fortran v jeho moderní formě

  • číst programy v jazycích C, C++ a Python

  • používat a navrhovat složitější datové struktury

  • teorii a implementaci algoritmů pro různé účely

  • základy paralelizace programů pomocí MPI

Literatura -
Poslední úprava: Grof Zdeněk doc. Ing. Ph.D. (21.06.2022)
  • Curcic M: Modern Fortran - Building efficient parallel applications, Manning, 2020.

  • Metcalf M, Reid J, Cohen M: Modern Fortran explained: icorporating Fortran 2018, Oxford University Press, 2018.

  • Clerman N S, Spector W: Modern Fortran: style and usage, Cambridge University Press, 2012.

  • Ray S, Fortran 2018 with parallel programming, CRC Press, 2020.

  • Horton I: Ivor Horton's Beginning Visual C++ 2013, Willey, 2014.

  • Hubbard J R: Programming with C++, Schaum's outline series, McGraw-Hill, 1996.

  • Chacon S, Straub B, Pro Git, Apres, 2014. [open source, dostupné z https://git-scm.com/book]

  • Vaněk T.: Přednášky pro předmět PPPT, 2017. [elektronická forma, dostupné na e-learningu]

  • Další literatura z internetových zdrojů (programovací jazyky: manuály, tutoriály, apod.)

Sylabus -
Poslední úprava: Grof Zdeněk doc. Ing. Ph.D. (26.04.2023)

1. Úvod, reprezentace dat v paměti, základy programováni ve Fortranu I.

2. Základy programování ve Fortranu II.

3. Odvozené datové typy ve Fortranu, ukazatele (pointery), pole a seznamy (linked-lists).

4. Abstraktní datové struktury (queue, stack), základní prvky objektově orientovaného programování.

5. Rekurze, řadící algoritmy.

6. Binární stromy, procházení a hledání cesty v grafech.

7. Čtení a zápis dat ve Fortranu (Fortran I/O).

8. Paralelizace programů pomocí MPI I.

9. Paralelizace programů pomocí MPI II.

10. Programátorský styl. Spolupráce při tvorbě programů a správa verzí (git a github).

11. Programovací jazyk Python (úvod, propojení s programy ve Fortranu).

12. Programovací jazyk C (jak číst programy napsané v C a jejich propojení s Fortranem).

Studijní prerekvizity -
Poslední úprava: Grof Zdeněk doc. Ing. Ph.D. (21.06.2022)

Základní zkušenosti s programováním (například v jazycích Fortran, C, Matlab, Python) a obecné povědomí o programovacích technologiích a algoritmech budou výhodou, ale ne nezbytnou.

Předpokládáme, že v průběhu kurzu budou mít studenti dostatek času doplnit si připadné mezery samostudiem nebo konzultacemi.

Podmínky zakončení předmětu (Další požadavky na studenta) -
Poslední úprava: Grof Zdeněk doc. Ing. Ph.D. (08.07.2021)

Vypracování průběžně zadávaných projektů.

Závěrečný pohovor nad odevzdanými projekty.