Talentový program DELTA TopGun jsme založili pro žáky, kteří se chtějí věnovat programování a informatice do (velké) hloubky.
Je nutné míti základní znalosti programování a být ochoten se učit novým věcem.
V rámci programu jsou vyučovány dva kurzy, které jsou pro žáky povinné
a žáci také musí pracovat na individuálním projektu.
Výuka se koná prezenčně v režimu 2:1. Dva po sobě jdoucí týdny jsou přednášky či cvičení z teoretické informatiky následované jednou hodinou praktického semináře.
Rozvrh prezenční výuky a přednášek je dostupný v kalendáři.
Kurz teoretické informatiky obsahuje některé vybrané oblasti teoretické informatiky a snaží se žákům přiblížit základní principy a algoritmy, které jsou v informatice důležité a využívané.
Kurz je zaměřen na základní znalosti nízkoúrovňového programování a na principy řešení algoritmicky zajímavých problémů a úloh. Důraz je kladen na budování intuice při řešení algoritmických problémů a uchopení základních principú počítačové vědy.
Po dokončení jednotlivých témat teoretické informatiky dostávají žáci programovací úkol na platformě DOMJudge, do které dostanou přístup na začátku programu.
Tyto úlohy jsou zaměřeny na procvičení daného tématu a na získání praktických dovedností s programováním v jazyce C.
Systém automaticky kontroluje správnost řešení a v případě neúspěšného řešení může žák kontaktovat přednášejícího a konzultovat své řešení.
Kurz praktického semináře je zaměřen na praktické využití znalostí programování a informatiky, které si žáci osvojují v rámci vedených hodin ve škole a následně také na vlastním projektu.
Hodiny ve škole jsou věnovány workshopům k aktuálním tématům a technologiím z oblasti vývoje softwaru a praktickému využití těchto znalostí v rámci připravených úkolů a nebo vlastního projektu.
Každý žák pracuje na vlastním projektu, který si může sám zvolit, nebo může využít nabízená témata pro rozvoj školního ekosystému a nebo modelové projekty.
Téma |
---|
Práce s verzovacím systémem Git |
Linux |
Networking |
Docker a kontejnerizace |
Objektově orientované programování |
Ansible |
Testování softwaru |
Autorizace a autentizace |
Microservices a další architektury |
Relační databáze |
NoSQL databáze |
AWS a cloud |
CI/CD |
Monitoring a logování |
... |
Párování žáka s lektorem je vyhodnoceno na základě průniku zaměření žákova projektu a oblasti odbornosti lektora. Párování proběhne na tzv. Pitch Day, kdy žáci 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 různé a bude komunikováno s dostatečným předstihem.
Žák si volí jednu z těchto kategorií pro svůj individuální projekt:
Dale je nutné vytvořit projektový záměr, který bude obashovat:
Jednu z prvních věcí, které přidělený lektor po žákovi bude chtít zpracovat, je rámcová analýza:
Z rámcové analýzy musí být jinému vývojáří zřejmé:
Korektnost rámcové analýzy je vyhodnocena lektorem a bez validní ramcové analýzy nelze začít projekt realizovat.
Zápisy do on-line journalu probíhají na platformě Discord, kam je každý žák na začátku programu přizván.
Žák má povinnost každý školní den zapsat, čemu se daný den v rámci svého praktického projektu věnoval. Je naprosto v pořádku, když se žák v daném dnu praktickému projektu nevěnoval, tuto skutečnsot však rovněž musí zapsat.
Zápisy do on-line journalu poskytují lektorům nástroj, jakým dodatečně vyhodnotit aktivitu žáků.
Během status update žák odprezentuje aktuální stav svého softwarového projektu. Následně stručně odpoví na otázky lektora a ostatních žáků.
Prezentace by měla obsahovat následující body:
Každý žák by měl zvážit realizaci vlastního projektu. Je to ideální způsob, jak v rámci kurzu pracovat na něčem, co žáka opravdu zajímá a baví. Za předpokladu splnění veškerých náležitostí projektu je žákovi realizace vlastního tématu 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. Projekt pohléhá stejným podmínkám jako individuální projekt, ale je nutné zajistit a udržet rozumné rozdělení zodpovědností a práce v týmu.
Žáci mohou pracovat na projektech, které podpoří rozvoj školního ekosystému. Tyto projekty mají předem definované zadání a cíl, který je nutné splnit.
Pro žáky realizující tento typ projektu platí stejné podmínky a povinnosti jako pro vlastní projekt, a to včetně zpracování a přednesení projektového záměru při Pitch Day dle náležitostí.
Podpořena je rovněž realizace projektu v týmu. Projekt pohléhá stejným podmínkám jako individuální projekt, ale je nutné zajistit a udržet rozumné rozdělení zodpovědností a práce v týmu.
Škola si vymezuje právo na výběr žáka, či týmu žáků, kterým bude projekt přidělen.
Žákům je také umožněno pracovat na projektu v rámci jedné z modelových osnov.
Pro žáky realizující tento typ projektu platí stejné podmínky a povinnosti jako pro vlastní projekt, a to včetně zpracování a přednesení projektového záměru při Pitch Day dle náležitostí.
# | 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 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) |
Při opakovaném neplnění povinností zapsaných žáků může být přistoupeno k vyřazení žáka z programu DELTA TopGun.
A to zejména v následujích případech:
Computers are good at following instructions, but not at reading your mind.
-- Donald Knuth
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
-- Martin Fowler
Code is like humor. When you have to explain it, it’s bad.
-- Cory House