F5698 Ultimátní příručka mladého budovatele v Pythonu

Přírodovědecká fakulta
podzim 2022
Rozsah
0/2/0. 2 kr. Ukončení: z.
Vyučující
Mgr. Andrej Roštek (cvičící)
Dr. Martin Topinka, PhD. (cvičící)
Mgr. Petr Zikán, Ph.D. (cvičící)
Garance
Dr. Martin Topinka, PhD.
Ústav teoretické fyziky a astrofyziky – Fyzikální sekce – Přírodovědecká fakulta
Kontaktní osoba: Dr. Martin Topinka, PhD.
Dodavatelské pracoviště: Ústav teoretické fyziky a astrofyziky – Fyzikální sekce – Přírodovědecká fakulta
Rozvrh
Po 16:00–17:50 Fcom,01034
Předpoklady
Předmět volným způsobem navazuje na F1420 Programování v jazyce Python a F4500 Python pro fyziky. Předpokládá se základní znalost jazyka Python (základní syntaxe a datové struktury, funkce, moduly).
Omezení zápisu do předmětu
Předmět je nabízen i studentům mimo mateřské obory.
Mateřské obory/plány
předmět má 6 mateřských oborů, zobrazit
Cíle předmětu
Cílem předmětu je seznámit mladého budovatele s postupy a nástroji používanými při tvorbě složitějších programů v jazyce Python. V průběhu kurzu si též ukážeme některé pokročilejší koncepty a možnosti Pythonu, hojně využívané při práci na složitějších problémech.
Výstupy z učení
Na konci kurzu by mladý budovatel měl být schopen uplatnit v praxi následující:

* Základní využití objektů a tříd
* Manipulaci se slovníky a konfiguraci programů
* Základní porozumění a práci s databázemi
* Verzování kódu nástrojem Git a práci v IDE (VS Code)
* Využití některých pokročilých balíčků (loggování, CLI, ...)
* Návrh komplexnějších programů a jejich testování
Osnova
  • Git a verzování kódu, IDE prostředí (VS Code), GitLab
  • Moduly, balíčky, instalace (pip a ostatní)
  • Třídy a objekty
  • Slovníky, lehký úvod do databází, konfigurace programů
  • Vybrané pokročilé koncepty jazyka (dekorátory, paralelní programování, ...)
  • Loggování, Command Line Interface (CLI)
  • Návrh programů, doménové modelování a testování
Literatura
    doporučená literatura
  • Bob Gregory. Architecture Patterns with Python. O'Reilly Media, Inc. 2020. https://www.cosmicpython.com/
  • Scopatz, Anthony, and Kathryn D. Huff. Effective computation in physics: Field guide to research with python. " O'Reilly Media, Inc.", 2015.
  • LUTZ, Mark. Learning Python. 4th ed. Beijing: O'Reilly, 2009, xlix, 1162. ISBN 9780596158064. info
Výukové metody
Výuka bude probíhat formou seminářů. Frontální výuku budou střídat ukázky programovacích technik, které může student souběžně s vyučujícím programovat na vlastním počítači. Jeden ze základních programovacích principů zní: "do not reinvent the wheel". V souladu s tímto principem budou v průběhu kurzu promítány různé videolekce (typicky v anglickém jazyce), po kterých bude následovat společná diskuse.
Metody hodnocení
Předmět bude ukončen na základě dokončení semestrální práce. Jedná se o netriviální program, který bude splňovat následující kritéria: funkční Python balíček nahraný na GitLab, jehož funkcionalitu půjde spustit přes CLI a bude obsahovat netriviální testy této funkcionality.
Informace učitele
Je vhodné, aby student měl při výuce vlastní počítač. Výuka bude primárně probíhat na operačním systému Linux, nicméně ostatní operační systémy (Windows, iOS) by neměly být překážkou. Je však možné, že na těchto OS vyučující nebude schopen poskytnout plnou podporu mladému budovateli.
Další komentáře
Studijní materiály
Předmět je dovoleno ukončit i mimo zkouškové období.
Předmět je vyučován každoročně.
Předmět je zařazen také v obdobích podzim 2021, podzim 2023, podzim 2024.