Detail předmětu

Python v aplikované vědě

FSI-T0PAk. rok: 2020/2021

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

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.

Základní literatura

Burris, E.: Programming in the Large with Design Patterns, Pretty Print Press, 2012 (CS)
Scipy lecture notes: http://www.scipy-lectures.org/ (CS)
Summerfield, M.: Python 3 - Výukový kurz, COMPUTER PRESS, 2012 (CS)

Zařazení předmětu ve studijních plánech

  • Program B3A-P bakalářský

    obor B-FIN , 3 ročník, letní semestr, volitelný

Typ (způsob) výuky

 

Přednáška

13 hod., nepovinná

Vyučující / Lektor

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á

Vyučující / Lektor

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