Talentový program DELTA TopGun jsme založili, abychom dokázali v programátorských dovednostech efektivně posouvat i zkušené programátory.
V rámci programu jsou vyučovány dva kurzy – Praktický projekt) a Teoretická informatika, které jsou pro studenty povinné. Výuka se koná prezenčně každé úterý a to v schématu 2:1 (2 po sobě jdoucí týdny přednáška Teoretické informatiky, 1 týden přednáška Praktického projektu).
Rozvrh prezenční výuky a přednášek v rámci programu DELTA TopGun je dostupný zde.
Kurz Praktický projekt nabízí studentovi příležitost věnovat se realizaci softwarového projektu v konkrétní oblasti vlastního zájmu. Každý student má k dispozici lektora, pod jehož vedením svůj projekt zpracovává. Od každého studenta je očekáván návrh zadání individuálního projektu a jeho následné zpracování. Praktický kurz je rovněž jednou za 3 týdny proložen workshopem (prezenčně ve škole), který je věnován konkrétní problematice z oboru (viz Harmonogram praktických workshopů).
Párování studenta s lektorem je vyhodnoceno na základě průniku zaměření studentova projektu a oblasti zájmu lektora. Párování proběhne v reakci na tzv. Pitch Day – nultou hodinu kurzu, kdy studenti prezentují své projektové záměry a lektoři poskytují zpětnou vazbu. Datum konání Pitch Day je v každém ročníku individuální a bude komunikováno s dostatečným předstihem.
- Odprezentovat svůj projektový záměr (viz Náležitosti projektového záměru)
- Absolvovat úvodní schůzku s přiděleným lektorem
- Každý pracovní den zapisovat svou aktivitu do on-line journalu (viz Náležitosti každodenního zápisu do on-line journalu)
- Vypracovat rámcovou analýzu softwarového projektu (viz Náležitosti rámcové analýzy)
- Vypracovat projektovou roadmapu
- Průběžně (minimálně však jednou za týden) s lektorem konzultovat aktuální stav projektu, řešené problémy a plán dalšího postupu (periodicita konzultací a jejich forma je v kompetenci lektora)
- Před každým praktických workshopem veřejně odprezentovat svůj postup – tzv. status update (viz Náležitosti "status update")
- Pravidelně (minimálně však jednou za týden) lektorovi odeslat pull-request ke code-review (periodicita code-review a jejich forma je v kompetenci lektora)
- Pravidelně (minimálně však jednou za týden) poskytnout code-review projektu spolužáka (bude přihlédnuto k přidruženosti technologického stacku)
- Pravidelně kód praktického projektu verzovat dle lektorem doporučené verzovací strategie
Při opakovaném neplnění Povinnosti zapsaných studentů může být přistoupeno k vyřazení studenta z programu DELTA TopGun. A to zejména v následujích případech:
- Student, bez předchozí omluvy, během školního roku 5x nezapsal aktivitu do on-line journalu (viz Náležitosti každodenního zápisu do on-line journalu)
- Student, bez předchozí omluvy, během školního roku 2x neodprezentoval status update dle náležitostí (viz Náležitosti "status update")
- Student, bez předchozí omluvy, běhěm školního roku 2x neodeslal lektorovi pull-request ke code-review
- Student, bez předchozí omluvy, během školního roku 2x neposkytnul code-review přidruženému projektu
- Student, bez předchozí omluvy, během školního roku 2x nereaguje na výzvu lektora ohledně nenaplnění cíle, který si student sám stanovil během status update
Student volí kategorii realizace svého individuálního projektu a jeho zadání – a to konkrétně jedno z: Realizace vlastního projektu, Realizace projektu pro rozvoj školního ekosystému, Realizace modelového projektu.
Každý projektový záměr musí obsahovat:
- Představení projektu, jeho myšlenky, využití a cíle
- Zmapování konkurenčních projektů: Existují již podobné projekty? V jaké fázi jsou? V čem bude můj jiný?
- Plánovaný rozsah projektu: Co student plánuje v rámci programu TopGun dokončit?
- Technologický stack pro realizaci projektu
V každé rámcové analýze musí být obsaženy následující náležitosti pro zpracování zadání softwarovéh projektu:
- Stručná verze projektového záměru
- Rozsah realizace projektu
- Technologický stack a zdůvodnění výběru daných technologí
- Hrubá časová osa zpracování projektu (milestones)
- Component diagram systému dle notace UML (případně alespoň obdobný diagaram, který zachytí klíčové komponenty analyzovaného systému)
Z rámcové analýzy musí být jinému vývojáří zřejmé "co má vyrábět", "jak to má vyrábět" a "do kdy to má stihnout". Korektnost rámcové analýzy je vyhodnocena lektorem a bez validní ramcové analýzy nelze začít projekt realizovat.
Student každý pracovní den do on-line journalu zapíše, čemu se daný den v rámci svého praktického projektu věnoval. Je naprosto v pořádku, když se student v daném dnu praktickému projektu nevěnoval vůbec, tuto skutečnsot však rovněž musí do on-line journalu zapsat. Zápisy do on-line journalu poskytují lektorům nástroj, jakým dodatečně vyhodnotit aktivitu studentů. Zápisy do on-line journalu probíhají na platformě Discord, kam je každý student před začátku programu přizván.
Během status update student nejprve živě odprezentuje dosavadní výsledek svého softwarového projektu a ukáže jeho historii verzování. Následně stručně odpoví a vyhodnotí následující otázky:
- Splnil jsem cíl, který jsem si na uplynulé 3 týdny stanovil?
- Cíl jsem nesplnil. Jaké chyby jsem udělal? Jak se z nich příště poučím?
- Cíl jsem splnil. Co se mi povedlo a budu v tom nadále pokračovat?
- Jaký cíl plánuji splnit v následujících 3 týdnech? Jaká je jeho hlavní náplň a jak budu postupovat k jeho dosažení?
Každému studentovi je důrazně doporučena realizace vlastního projektu. Student může přijít s libovolným projektovým záměrem z oblasti svého zájmu – je to ideální způsob, jak v rámci kurzu pracovat na něčem, co studenta opravdu zajímá a baví. Za předpokladu splnění veškerých náležitosti projektového záměru je studentovi realizace vlastního tématu vždy umožněna a je podpořena přidělením vhodného lektora. Podpořena je rovněž realizace vlastního projektu v týmu. A to za stejných podmínek, a za dodatečného předpokladu rozumného rozdělení zodpovědností v rámci týmu, které je posouzeno lektorem.
Pro studenty, kteří chtějí pracovat na projektech, které podpoří rozvoj školního ekosystému jsou připravena předem definovaná reálná zadání. Pro studenty realizující projekt pro rozvoj školního ekosystému platí stejné podmínky zpracování projektu (viz Povinnosti zapsaných studentů), a to včetně zpracování a přednesení projektového záměru při Pitch Day dle náležitostí (viz Náležitosti projektového záměru). Podpořena je rovněž realizace vlastního projektu v týmu. A to za stejných podmínek, a za dodatečného předpokladu rozumného rozdělení zodpovědností v rámci týmu, které je posouzeno lektorem. Zde si škola vymezuje právo na výběr studenta, či týmu studentů, kterým bude projekt přidělen.
Aktuálně nabízené projekty pro rozvoj školního ekosystému:
- Motivační informační systém DELTA
- Informační systém „Pardubický IT Draft“
- Systém pro pořádání multioborových soutěží
- Soutěž v programování pro žáky ZŠ "Pardubický Trigger"
V krajních případech je studentům umožněno realizovat projekt v rámci jedné z modelových osnov. Pro studenty realizující projekt dle modelového zadání platí stejné podmínky zpracování projektu (viz Povinnosti zapsaných studentů), a to včetně zpracování a přednesení projektového záměru při Pitch Day dle náležitostí (viz Náležitosti projektového záměru).
# | Fullstack webová aplikace |
---|---|
1 | Rámcový návrh a analýza aplikace |
2 | Databázový model a nastavení databáze |
3 | Realizace REST/GraphQL API (Java/PHP/Node.js) |
4 | Realizace webového frontend rozhraní (JavaScript (vanilla)/React.js/Vue.js) (případně možnost realizovat hybridní mobilní aplikaci) |
5 | Automatizované otestování aplikace (unit, e2e) |
6 | Optimalizace výkonnosti webové aplikace |
7 | Deployment aplikace |
# | Praktické programování v jazyce Java |
---|---|
1 | Základní syntaxe |
2 | Objektově orientovaná analýza a návrh - charakteristika UML, přehled diagramů |
3 | Build a správa závislostí - Maven |
4 | Objektově orientované programování (polymorfismus, rozhraní) |
5 | Datové struktury |
6 | Automatizované unit testy, ladění aplikací (debugging) |
7 | Práce s relační databází, mapování objektů do relačních databází |
8 | Návrhové vzory a principy |
9 | Praktický projekt - REST API/CLI aplikace |
# | Praktické programování v PHP |
---|---|
1 | Základní syntaxe a Xdebug |
2 | Objektově orientované programování v PHP |
3 | Správa externích závislostí – composer |
4 | Persistence dat |
5 | Automatické testování aplikace – unit testy |
6 | Tvorba jednoduchého webu – PHP+HTML+CSS |
7 | Tvorba REST API |
8 | Tvorba modulů a pluginů do existujících projektů |
# | Devops |
---|---|
1 | Containerizace, co to je a k čemu se dá využít |
2 | Docker, docker-compose |
3 | CI |
4 | Clusters, Docker swarm (monitoring, logging) |
5 | Cloud - AWS (alerts, budgets) |
6 | Deployment webové aplikace |
# | Hands-on metody kryptografie |
---|---|
1 | Historické kryprografické systémy |
2 | Zřízení společného klíče |
3 | Hašovací funkce |
4 | Blokové šifrování a operační módy blokových šifer |
5 | Asymetrická kryptografie - kryptografie s veřejným klíčem |
# | Hands-on metody strojového učení |
---|---|
1 | Systémy strojového učení |
2 | Úvod do jazyka Python - práce s realnými daty (předzpracování, vizualizace) |
3 | Vybrané metody strojového učení: Rozhodovací stromy, náhodné lesy |
4 | Evaluace modelů |
5 | Vybrané metody strojového učení: Shlukování |
6 | Vybrané metody strojového učení: Lineární regrese, logistická regrese, metoda největšího spádu |
7 | Vybrané metody strojového učení: Umělé neuronové sítě a jejich architektury |
8 | Recenze vědeckého článku |
9 | End-to-end machine-learning projekt (analýza a předpoklady problému, získání dat, předzpracování dat a vizualizace, selekce modelu, trénování modelu, fine-tuning, deployment) |
# | Datum | Téma | Lektor |
---|---|---|---|
1 | 18. 10. 2022 | Úvod do verzovacího systému git | Michal Havelka |
2 | 08. 11. 2022 | Úvod do verzovacího systému git - pokračování | Michal Havelka |
Kurz Teoretická informatiky nabízí kompilaci vybraných oblastí teoretické informatiky. Důraz je kladen na vybudování intuice při řešení algoritmických problémů a uchopení základních principú počítačové vědy.
- Prezenčně navštěvovat přednášky kurzu Teoretická informatika
- Odevzdávat domácí úlohy v řádném termínu na platformě DOMJudge
Při opakovaném neplnění Povinnosti zapsaných studentů může být přistoupeno k vyřazení studenta z programu DELTA TopGun. A to zejména v následujích případech:
- Student, bez předchozí omluvy, během školního roku 1x prezenčně nenavštívil přednášku kurzu Teoretická informatika
- Student, bez předchozí omluvy, během školního roku 1x v řádném termínu neodevzdal domácí úlohu na platformě DOMJudge