Akademický rok 2019/2020 |
Garant: | Ing. Matěj Týč, Ph.D. | |||
Garantující pracoviště: | ÚFI | |||
Jazyk výuky: | čeština | |||
Cíle předmětu: | ||||
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. |
||||
Výstupy studia a kompetence: | ||||
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ů. |
||||
Obsah předmětu (anotace): | ||||
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). | ||||
Metody vyučování: | ||||
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í. |
||||
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. |
||||
Typ (způsob) výuky: | ||||
Přednáška | 13 × 1 hod. | nepovinná | ||
Cvičení s počítačovou podporou | 13 × 1 hod. | povinná | ||
Osnova: | ||||
Přednáška | 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 | 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 |
|||
Literatura - základní: | ||||
1. Summerfield, M.: Python 3 - Výukový kurz, COMPUTER PRESS, 2012 | ||||
2. Burris, E.: Programming in the Large with Design Patterns, Pretty Print Press, 2012 | ||||
3. Scipy lecture notes: http://www.scipy-lectures.org/ |
Zařazení předmětu ve studijních programech: | |||||||||
Program | Forma | Obor | Spec. | Typ ukončení | Kredity | Povinnost | St. | Roč. | Semestr |
B3A-P | prezenční studium | B-FIN Fyzikální inženýrství a nanotechnologie | -- | zá | 2 | Volitelný (nepovinný) | 1 | 3 | L |
Vysoké učení technické v Brně
Fakulta strojního inženýrství
Technická 2896/2,
616 69 Brno
IČ 00216305
DIČ CZ00216305
+420 541 141 111
+420 726 811 111 – GSM O2
+420 604 071 111 – GSM T-mobile