Vývojová prostředí jazyka, nástroje pro vývoj aplikací - ladění, testování
Pokročilá práce s IDE, pracovní prostředí
Přístupy objektového modelování
Dynamické programování
Vrstvy aplikace, moduly, knihovny - rozhraní knihoven, programování proti rozhraní
Pokročilé (složité) datové struktury, implementace, inicializace a využití
Datové kolekce programovacích jazyků (Python, Java, C#, C++)
Hromadné zpracování dat - metodika, postupy, ošetření chyb, logování, XML
Výjimky (Exceptions), mechanismus vyjímek a jejich praktické využití
Dokumentace kódu, dokumentační komentáře
Refaktoring a generování kódu, čistý kód
Ladění aplikace, krokování, ladící výstupy
Testování jednotek, testy řízený vývoj, druhy testů
Integrační testy, kontinuální integrace
Testování UI, vývoj aplikace s GUI
Návrhové vzory (Design Patterns)
Programování v páru
Doporučená literatura
BECK, Kent. Extrémní programování. Praha: Grada, 2002. Moderní programování. ISBN 80-247-0300-9. (povinná)
BECK, Kent. Programování řízené testy. Praha: Grada, 2004. Moderní programování. ISBN 80-247-0901-5. (povinná)
BECK, K. Extreme programming eXplained: embrace change. Reading, MA: Addison-Wesley, 2000, 190 p. ISBN 02-016-1641-6. (povinná)
ROY, Uttam K. Advanced Java Programming. 1. vyd. India: Oxford Unviersity Press, 2015, ISBN 978-0-19-945550-8. (doporučená)
HEROUT, Pavel Testování pro programátory. České Budějovice: Kopp, 2016. ISBN 978-80-7232-481-1. (doporučená)
STEPHENS, Matt a Doug ROSENBERG. Testování softwaru řízené návrhem. Brno: Computer Press, 2011. ISBN 978-80-251-3607-2. (doporučená)
HEROUT, Pavel Java a XML. České Budějovice: Kopp, 2007. ISBN 978-80-7232-307-4. (doporučená)
Anotace
Předmět se zaměřuje na plné pochopení role programátora ve vývojovém týmu. Student si především ujasní vhodné praktiky a pravidla pro maximalizaci vlastního programátorského výkonu. Od plného využití vlastností vybraného IDE přes pravidla systematické restrukturalizace kódu až k pochopení smyslu kontinuální integrace. Současně s tím budou také nastíněny techniky a postupy pro získání plné kontroly nad vyvíjenou aplikací.
Výuková témata předmětu nejsou vázána na konkrétní programovací jazyk. Především na cvičení jsou řešeny praktické problémy implementované napříč spektrem používaných programovacích jazyků (např. Java, Python, C#, C++). Cvičení předmětu jsou koncipována jako týmová práce a diskuze nad řešením mezi jednotlivými týmy.