Detail předmětu
Programování v Python
FSI-9PVP Ak. rok: 2027/2028 Letní semestr
Předmět se zaměřuje na pokročilé programování v jazyce Python s důrazem na vývoj podpůrných vědeckých a výzkumných aplikací. Zahrnuje pokročilé programovací techniky, návrh softwarové architektury, automatizaci výpočetních úloh, paralelní a asynchronní programování, optimalizaci výkonu a testování softwaru. Pozornost je věnována také moderním postupům vývoje, distribuce a diagnostiky aplikací a zajištění reprodukovatelnosti vědeckých výpočtů.
Vše se děje s podporou AI.
Jazyk výuky
čeština
Garant předmětu
Zajišťuje ústav
Vstupní znalosti
Základy programování na úrovni kurzu 1IN (Informatika) a základní přehled v použití jazyka Python ve svém oboru.
Způsob zakončení předmětu a pravidla hodnocení studentů
Aktivní účast a zvládnutí zadaného problému v požadované kvalitě.
Výuka běží podle týdenních plánů. Účast na cvičeních je povinná. Způsob nahrazení zameškaných cvičení je plně v kompetenci vyučujícího.
Učební cíle
Cílem předmětu je rozvinout schopnosti studentů v oblasti pokročilého programování v jazyce Python se zaměřením na návrh, implementaci a správu podpůrných vědeckých a výzkumných aplikací. Studenti se naučí využívat pokročilé programovací techniky, navrhovat modulární a udržovatelný software, automatizovat výpočetní úlohy, optimalizovat výkon aplikací a zajišťovat jejich spolehlivost, testovatelnost a reprodukovatelnost výsledků, včetně vývoje s AI.
Použití předmětu ve studijních plánech
Program D-FIN-P: Fyzikální inženýrství a nanotechnologie, doktorský, povinně volitelný
Program D-APM-P: Aplikovaná matematika, doktorský, povinně volitelný
Typ (způsob) výuky
Přednáška
20 hod., nepovinná
Osnova
Všechna výuka využívá v různé míře podporu AI.
Pokročilé programovací techniky v Pythonu. Dekorátory, generátory, iterátory, kontextové manažery, funkcionální programování, typové anotace, generické typy a reflexe.
Návrh a architektura softwarových aplikací. Objektově orientovaný návrh, návrhové vzory, abstraktní rozhraní, modularizace, správa závislostí, tvorba vlastních knihoven a refaktorizace kódu.
Automatizace a řízení běhu programů. Metaprogramování, dynamické načítání modulů, tvorba CLI nástrojů, parametrizace aplikací, řízení výpočetních úloh a automatizace pracovních postupů.
Výkonné a spolehlivé programování. Paralelní a asynchronní programování, optimalizace paměti, profilování, zpracování výjimek, automatizované testování a ladění aplikací.
Vývoj a provoz vědeckého softwaru. Verzování, balíčkování a distribuce aplikací, automatizace sestavení a testování, logování, diagnostika a reprodukovatelnost výpočetních experimentů.