|
|
Hlavní nabídka Prohlížení IS/STAG
Nalezené předměty, počet: 1
Stránkování výsledků vyhledávání
Nalezeno 1 záznamů
Export do Xls
Informace o předmětu
KST / NNPTP
:
Popis předmětu
Pracoviště / Zkratka
|
KST
/
NNPTP
|
Akademický rok
|
2023/2024
|
Akademický rok
|
2023/2024
|
Název
|
Pokročilé techniky programování
|
Způsob zakončení
|
Zkouška
|
Způsob zakončení
|
Zkouška
|
Akreditováno / Kredity
|
Ano,
5
Kred.
|
Forma zakončení
|
Kombinovaná
|
Forma zakončení
|
Kombinovaná
|
Rozsah hodin
|
Přednáška
2
[HOD/TYD]
Cvičení
2
[HOD/TYD]
|
Zápočet před zkouškou
|
Ano
|
Zápočet před zkouškou
|
Ano
|
Automatické uznávání zápočtu před zkouškou
|
Ne
|
Počítán do průměru
|
ANO
|
Vyučovací jazyk
|
Čeština
|
Obs/max
|
|
|
|
Automatické uznávání zápočtu před zkouškou
|
Ne
|
Letní semestr
|
0 / -
|
0 / -
|
0 / -
|
Počítán do průměru
|
ANO
|
Zimní semestr
|
18 / -
|
0 / 0
|
1 / 1
|
Opakovaný zápis
|
NE
|
Opakovaný zápis
|
NE
|
Rozvrh
|
Ano
|
Vyučovaný semestr
|
Zimní semestr
|
Vyučovaný semestr
|
Zimní semestr
|
Minimum (B + C) studentů
|
nestanoveno
|
Volně zapisovatelný předmět |
Ano
|
Volně zapisovatelný předmět
|
Ano
|
Vyučovací jazyk
|
Čeština
|
Počet dnů praxe
|
0
|
Počet hodin kontaktní výuky |
0
|
Hodnotící stupnice |
A|B|C|D|E|F |
Periodicita |
každý rok
|
Hodnotící stupnice pro zp. před zk. |
S|N |
Periodicita upřesnění |
|
Základní teoretický předmět |
Ne
|
Profilující předmět |
Ano
|
Základní teoretický předmět |
Ne
|
Hodnotící stupnice |
A|B|C|D|E|F |
Hodnotící stupnice pro zp. před zk. |
S|N |
Nahrazovaný předmět
|
KST/INPTP
|
Vyloučené předměty
|
Nejsou definovány
|
Podmiňující předměty
|
Nejsou definovány
|
Předměty informativně doporučené
|
Nejsou definovány
|
Předměty,které předmět podmiňuje
|
Nejsou definovány
|
Graf četnosti udělených hodnocení studentům napříč roky:
Obrázek PNG
,
XLS
|
Cíle předmětu (anotace):
|
Cílem předmětu je studenty seznámit s pokročilými technikami programování v objektově orientovaných jazycích.
|
Požadavky na studenta
|
Pro zisk zápočtu student vytvoří patch do zadaného projektu, který musí vylepšovat kvalitu a funkcionalitu zdrojového kódu (uplatnění čistého kódu, jednotkových testů, konvencí programovacího jazyka). Patch musí projít schválením v rámci code review. Konkrétní požadavky na počet patchů, zadání projektů a repozitáře se zdrojovými kódy budou upřesněny na začátku semestru.
Zkouška: na zadaném zdrojovém kódu je třeba uplatnit získané znalosti (zahrnuje tvorbu/opravu testů, využití technik čistého kódu, refaktoringu a další), výsledek je dále konzultován se zkoušejícím. V případě distanční formy zkoušky bude realizováno ústní zkoušení zahrnující teoretické otázky a jednoduché praktické (programovací) úkoly.
Distanční forma výuky bude probíhat v prostředí MS Teams ve standardní době dle rozvrhu.
|
Obsah
|
1. Čistý kód - zásady a doporučení pro tvorbu čistého kódu, používání komentářů, tvoření názvů identifikátorů
2. Návrhové vzory - základní návrhové vzory dle Gang of Four (creational, structural, behavioral)
3. Refaktorování zdrojového kódu - metody refaktorování, možnosti IDE
4. Testování - zásady při tvorbě jednotkových a integračních testů, použití mock/stub/fake/spy/dummy objektů
5. Test Driven Development - vývoj řízený testy, cyklus - test, kód, refaktorování
6. Git - distribuovaný verzovací systém, princip, příkazy push, pull, commit, checkout, branch, merge, rebase, spolupráce v týmu, pull/merge request
7. Git, Continuous Integration/Continuous Delivery, Git Hooks - techniky CI/CD, použití Git hooks, využití služeb GitHub/GitLab/BitBucket a Travis/Circle CI, Jenkins
8. Coding kata - praktické cvičení párového/skupinového programování
9. Dependency Injection, Inversion of Control - metody (constructor, setter, method injection), DI/IoC kontejnery
10. Garbage collector - počítání referencí, Mark&Sweep, Mark&Sweep&Compact, generační GC
11. Paralelismus, souběh, asynchronismus - použití vláken, thead pools, async/await a dalších přístupů při asynchronním programování
12. Generické programování - využívání šablon (C++) a genericity (Java - type erasure, C# - reification), vlastnosti jednotlivých technik a jejich implementací
13. Funkcionální programování - prvky funkcionálního programování v OO programovacích jazycích, LINQ (C#), Stream (Java), lambda výrazy, function closure, immutable objects, pure functions
|
Aktivity
|
|
Studijní opory
|
|
Garanti a vyučující
|
-
Garanti:
Ing. Roman Diviš, Ph.D. ,
doc. Ing. František Dušek, CSc. ,
-
Přednášející:
doc. Ing. Michael Bažant, Ph.D. (50%),
Ing. Roman Diviš, Ph.D. (100%),
doc. Ing. František Dušek, CSc. (50%),
-
Cvičící:
doc. Ing. Michael Bažant, Ph.D. (100%),
Ing. Roman Diviš, Ph.D. (100%),
|
Literatura
|
-
Základní:
Robert C. Martin. Clean architecture: a craftsman's guide to software structure and design.. London, England, 2017. ISBN 9780134494326.
-
Doporučená:
Steve McConnell. Code Complete: A Practical Handbook of Software Construction. Redmond, Washington, 2004. ISBN 978-0735619678.
-
Doporučená:
Kent Beck. Test-Driven Development: By Example. 2003. ISBN 978-0321146533.
|
Časová náročnost
|
Prezenční forma studia
|
Aktivity
|
Časová náročnost aktivity [h]
|
Příprava na zkoušku
|
24
|
Domácí příprava na výuku
|
65
|
Kontaktní výuka
|
52
|
Vypracování seminární práce
|
9
|
Celkem
|
150
|
|
Předpoklady - další informace k podmíněnosti studia předmětu |
Předpokládá se znalost algoritmizace, datových struktur a znalost objektově orientovaného programování ve vyšších programovacích jazycích (C++, C#, Java).
|
Získané způsobilosti |
Po absolvování předmětu student ovládá praktiky zahrnující psaní a udržování čistého kódu, používání návrhových vzorů a některých dalších pokročilých technik, TDD a metody pro týmovou spolupráci s využitím verzovacího systému Git. |
Vyučovací metody |
- Monologická (výklad, přednáška, instruktáž)
- Dialogická (diskuze, rozhovor, brainstorming)
- Nácvik dovedností
|
Hodnotící metody |
- Ústní zkouška
- Písemná zkouška
- Posouzení zadané práce
|
|
|
|