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.
- Forma výuky
- Rozvrh výuky
- Teoretická informatika
- Praktický seminář
- Individuální projekt
- Povinnosti zapsaných žáků
- Neplnění povinností
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:
- 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 žák plánuje v rámci programu TopGun dokončit?
- Technologický stack
Jednu z prvních věcí, které přidělený lektor po žákovi bude chtít zpracovat, je rámcová analýza:
- Stručná verze projektového záměru
- Rozsah 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
- Do kdy to má stihnout
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:
- Splnil jsem cíl, který jsem si na uplynulé období 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ím období? Jaká je jeho hlavní náplň a jak budu postupovat k jeho dosažení?
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.
- Soutěž v programování pro žáky ZŠ Pardubický hacker
- Motivační informační systém DELTA
- Informační systém „Pardubický IT Draft“
- Systém pro pořádání multioborových soutěží
Žá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
# | 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
# | 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
# | 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
# | 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í
# | 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) |
- Odevzdávat domácí úlohy v řádném termínu na platformě DOMJudge
- Odprezentovat svůj projektový záměr na Pitch Day
- Absolvovat úvodní schůzku s přiděleným lektorem
- Každý školní den zapisovat svou aktivitu do on-line journalu
- Vypracovat rámcovou analýzu softwarového projektu
- Vypracovat projektovou roadmapu
- Průběžně, minimálně však jednou za dva týdny, s lektorem konzultovat:
- Aktuální stav projektu
- Řešené problémy
- Plán dalšího postupu
- Prezentovat svůj status update ve škole na hodině praktického semináře (přibližně 3x za pololetí)
- Pravidelně lektorovi odesílat pull requesty ke code-review
- Pravidelně kód projektu verzovat dle lektorem doporučené verzovací strategie
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:
- Žák, bez předchozí omluvy, během školního roku neodevzdal 2 domácí úlohy na platformě DOMJudge
- Žák, bez předchozí omluvy, během školního roku 10x nezapsal aktivitu do on-line journalu
- Žák, bez předchozí omluvy, během školního roku 2x neodprezentoval status update
- Žák, bez předchozí omluvy, během školního roku 2x nereaguje na výzvu lektora ohledně nenaplnění cíle, který si žák sám stanovil během status update
- Žák, bez předchozí omluvy, chyběl na 2 hodinách teoretické informatiky nebo praktického semináře
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