Předmět: Pokročilé programování

» Seznam fakult » FAI » AUIUI
Název předmětu Pokročilé programování
Kód předmětu AUIUI/AE8PO
Organizační forma výuky Cvičení
Úroveň předmětu Magisterský
Rok studia nespecifikován
Semestr Letní
Počet ECTS kreditů 3
Vyučovací jazyk Čeština, Angličtina
Statut předmětu nespecifikováno
Způsob výuky Kontaktní
Studijní praxe Nejedná se o pracovní stáž
Doporučené volitelné součásti programu Není
Dostupnost předmětu Předmět je nabízen přijíždějícím studentům
Vyučující
  • Vařacha Pavel, Ing. Bc. Ph.D.
Obsah předmětu
V oblasti čistého kódu předmět probírá následující koncepty: Smysluplná jména Funkce Komentáře Formátování Objekty a datové struktury Zpracování chyb Hranice Jednotkové testy Třídy Systémy Vývoj Souběžnost Postupné vylepšování V oblasti profesionalismu předmět probírá následující koncepty: Saying No Saying Yes Coding Test Driven Development Practicing Accptance Testing Testing Strategies Time Management Estimation Pressure Collaboration Teams and Projects V oblasti aplikovaných návrhových vzorů předmět probírá především: Command Flyweight Observer Prototype Singleton State Double Buffer Game Loop Update Method Bytecode Subclass Sandbox Type Object Component Event Queue Service Locator V oblasti open-source engine Godot si studenti prakticky osvojují práci s následujícími koncepty: Základní architektura engine Godot editor GDScript Signály Scény Animace Široká rodina uzlů používaných pro vývoj 2D aplikací Závěrečný projekt Studenti řeší závěrečný projekt na zadané téma, které je unikátní pro každá ročník. Pomocí praktického programování v prostředí Godot engine a jazyků GDSript nebo C#. Při této práci studenti prakticky aplikují teoretické poznatky obsažené v předchozích čtyřech sekcích.

Studijní aktivity a metody výuky
Cvičení na počítači
  • Účast na výuce - 42 hodin za semestr
Předpoklady
Odborné znalosti
Předpokladem je znalost algoritmizace, programování a orientace v jazycích C++, C# a Python. Očekává se, že student získal zápočet z odborné angličtiny na úrovni předmětu AP7A1 a je schopen se běžne orientovat v anglicky psaných textech. Další znalosti a dovednosti studenta musí odpovídat minimální úrovní nezbytné pro zvládnutí předmětů: AP1PA Programování a algoritmizace AP1DS Databázové systémy AP1VS Nástroje pro vývoj softwarových projektů AP2OP Objektové programování a návrhové vzory AP3AF Aplikační frameworky AP4TS Testování software
Předpokladem je znalost algoritmizace, programování a orientace v jazycích C++, C# a Python. Očekává se, že student získal zápočet z odborné angličtiny na úrovni předmětu AP7A1 a je schopen se běžne orientovat v anglicky psaných textech. Další znalosti a dovednosti studenta musí odpovídat minimální úrovní nezbytné pro zvládnutí předmětů: AP1PA Programování a algoritmizace AP1DS Databázové systémy AP1VS Nástroje pro vývoj softwarových projektů AP2OP Objektové programování a návrhové vzory AP3AF Aplikační frameworky AP4TS Testování software
Výsledky učení
Vysvětlit pravidla psaní čistého kódu.
Vysvětlit pravidla psaní čistého kódu.
Popsat architekturu open-source engine Godot.
Popsat architekturu open-source engine Godot.
Charakterizovat skriptovací jazyk GDScript.
Charakterizovat skriptovací jazyk GDScript.
Vysvětlit pravidla profesní etiky programátora.
Vysvětlit pravidla profesní etiky programátora.
Popsat návrhové vzory aplikované v počítačových hrách.
Popsat návrhové vzory aplikované v počítačových hrách.
Odborné dovednosti
Psát software odolný vůči změnám dle pravidel čistého kódu.
Psát software odolný vůči změnám dle pravidel čistého kódu.
Programovat 2D aplikaci s využitím open-source engine Godot.
Programovat 2D aplikaci s využitím open-source engine Godot.
Vytvářet skripty v jazyce GDSrcipt.
Vytvářet skripty v jazyce GDSrcipt.
Aplikovat návrhové vzory v praktických situacích.
Aplikovat návrhové vzory v praktických situacích.
Přejímat legacy kód do vlastního týmového projektu.
Přejímat legacy kód do vlastního týmového projektu.
Vyučovací metody
Odborné znalosti
Analýza prezentace
Analýza prezentace
Individuální práce studentů
Individuální práce studentů
Práce studentů ve dvojicích
Práce studentů ve dvojicích
Odborné dovednosti
Práce studentů ve dvojicích
Práce studentů ve dvojicích
Cvičení na počítači
Cvičení na počítači
Týmová práce
Týmová práce
Hodnotící metody
Odborné znalosti
Analýza prezentace studenta
Analýza prezentace studenta
Analýza výkonů studenta
Analýza výkonů studenta
Známkou
Známkou
Doporučená literatura
  • Erich GAMMA, Richard HELM, Ralph JOHNSON, John VLISSIDES. Design Patterns: Elements of Reusable Object-Oriented Software. 1994. ISBN 0201633612.
  • Michael C. FEATHERS. Working Effectively with Legacy Code. 2004. ISBN 9780131177055.
  • Robert C. MARTIN. Clean Agile: back to basics.. Boston, 2020. ISBN 978-0-13-578186-9.
  • Robert C. MARTIN. Clean architecture: a craftsman's guide to software structure and design.. London, 2018. ISBN 978-0-13-449416-6.
  • Robert C. MARTIN. Clean Code: A handbook of agile software craftsmanship.. Upper Saddle River, 2009. ISBN 9780132350884.
  • Robert C. MARTIN. The clean coder: a code of conduct for professional programmers.. Upper Saddle River, 2011. ISBN 978-0-13-708107-3.
  • Robert NYSTROM. Game Programming Patterns Autor Robert Nystrom. 2014. ISBN 0990582906.


Studijní plány, ve kterých se předmět nachází
Fakulta Studijní plán (Verze) Kategorie studijního oboru/specializace Doporučený ročník Doporučený semestr