Detail předmětu
Python v aplikované vědě
FSI-T0P Ak. rok: 2019/2020 Letní semestr
Obsahem kursu je řešení modelových úloh, na kterých budou ilustrovány postupy softwarového inženýrství vedoucí k jejich řešení. Studenti budou seznámeni s principy technik test-driven development, code review a naučí se, jak strukturovat a dokumentovat svůj kód tak, aby se vzrůstající složitostí neztrácel na použitelnosti. Studenti mohou pro práci využívat grafické prostředí Enthought Canopy (k dispozici pro MS Windows, Mac OSX i Linux).
Jazyk výuky
čeština
Počet kreditů
2
Garant předmětu
Zajišťuje ústav
Výsledky učení předmětu
Studenti budou v rámci kurzu řešit dílčí úlohy reprezentující typické problémy týkající se zpracování dat a pracovat na závěrečném projektu. Na základě tohoto budou schopni efektivně využít rozvíjející se ekosystém okolo programovacího jazyka Python k řešení reálných úkolů.
Prerekvizity
Základní pojmy procedurálního programování – proměnná, funkce (parametr, návratová hodnota, předávání hodnotou vs předávání odkazem), datové typy, koncept práce se soubory (otevírání, zápis, kódování), znalost formátování řetězců.
Plánované vzdělávací činnosti a výukové metody
Předmět je vyučován formou přednášek, které mají charakter výkladu základních principů a teorie dané disciplíny. Cvičení je zaměřeno na praktické zvládnutí látky probrané na přednáškách.
Způsob a kritéria hodnocení
Podmínkou udělení zápočtu je vypracování samostatného závěrečnoho projektu. Téma projektu je zadáno v průběhu semestru po vzájemné dohodě. Výsledky řešení zadaných příkladů budou předány v elektronické formě. Při udělení zápočtu musí student prokázat porozumění a zdůvodnit použitý způsob řešení.
Učební cíle
Cílem kursu je seznámit studenty s programováním v jazyce Python s využitím ekosystému svobodného software. Po jeho absolvování budou studenti schopni psát programy pomocí moderních postupů, mezi něž patří využití návrhových vzorů, softwarové testování a tvorba dokumentace. Studenti budou připraveni na řešení typických fyzikálně-inženýrských úloh zahrnující zpracování a vizualizaci dat.
Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky
Přítomnost na cvičení je povinná a je sledována vyučujícím. Způsob nahrazení zmeškané výuky ve cvičení bude stanovena vyučujícím na základě rozsahu a obsahu zmeškané výuky.
Použití předmětu ve studijních plánech
Program B3A-P: Aplikované vědy v inženýrství, bakalářský
obor B-FIN: Fyzikální inženýrství a nanotechnologie, volitelný (nepovinný)
Typ (způsob) výuky
Přednáška
13 hod., nepovinná
Osnova
Seznámení s koncepty jazyka Python a s ekosystémem okolo něj
Struktura softwarového projektu v Pythonu, struktura modulů a balíčků.
Proměnné, základní datové typy, funkce, předávání hodnotou / odkazem
Úvod do oběktově orientovaného programování (OOP)
Úvod do návrhových vzorů, použití vzoru "strategie".
Úvod to testování a do vizualizace dat
Prohloubení znalostí OOP, návrhové vzory "továrna", "dekorátor"
Tvorba dokumentace, návrhové vzory "fasáda" a "adaptér".
Použití modulů třetích stran.
Tvorba grafických (GUI) aplikací, návrhové vzory "pozorovatel" a MVC
Tvorba GUI aplikací, návrhový vzory "stav".
Záludnosti jazyka Python
Cvičení s počítačovou podporou
13 hod., povinná
Osnova
Cvičný projekt Hello World
Praktická tvorba formálně správného Python projektu
Cvičný projekt Vrhací kostka
Vrhací kostka – objektové rozhraní
Vrhací kostka – tvorba falešné kostky
Vrhací kostka – testování funkčnosti, odhalení falešných kostek
Vrhací kostka – zobecnění
Simulace deskové hry
Používáme Google Deep Dream
GUI projekt
GUI projekt
praktické ukázky