⚔️ PyQuest – kurz programování

Python + Streamlit · 12–15 let · VIA IT 2026

O kurzu

Celoroční kurz programování v Pythonu pro věk 12–15 let. Postavený na principu „nejdřív výsledek, pak teorie": už první hodinu vzniká webová aplikace, kterou děti vidí v prohlížeči, a každá další hodina do ní přidává nový programátorský koncept.

Výsledkem je hra PyQuest — webová RPG hra s postavou, inventářem, souboji, místnostmi a ukládáním postupu.

Jak bude vypadat hotová hra

Jak je hodina postavená

Každá stránka má čtyři části:

  1. Pro učitele — technický i netechnický výklad, analogie, časté chyby
  2. Ukázky — hotový kód k promítání, píše se živě před dětmi
  3. Cvičení — 4–5 úloh s podrobným zadáním a třemi úrovněmi obtížnosti
  4. Řešení — hotový kód pouze pro učitele

Časové rozvržení

Ze tří hodin IT se programování věnují dvě. Doporučené tempo jedné dvouhodiny:

Část Čas
Motivace a co dnes vytvoříme 5 min
Výklad a živá ukázka 15–20 min
Společné experimenty „co když" 10 min
Samostatná cvičení 30–40 min
Přírůstek do projektu PyQuest 20 min
Umíme informatiku (rychlejší studenti) 10 min
Reflexe a zadání domácího úkolu 5 min

Práce se smíšenou skupinou

Každé cvičení má tři úrovně. Začátečník odchází s funkčním programem, pokročilý má co dělat.

Nástroje

Python 3.10+, VS Code s rozšířením Python, knihovny streamlit a pillow. Instalace probíhá na první hodině.

python -m pip install streamlit pillow
streamlit run app.py

Kód ke stažení

Veškerý kód z těchto stránek je zároveň uložený jako spustitelné soubory ve složce kod/hodinaNN/. Struktura:

Jednotlivé hodiny

Hodina 01
UI a první aplikace
Instalace nástrojů, první webová stránka v Pythonu, barvy, rozložení, kreslení po souřadnicích.
Hotovo
▶ živý kód
Hodina 02
Proměnné a datové typy
Krabička se štítkem. Text, čísla, ano/ne. Proč nejde sečíst text s číslem.
Hotovo
▶ živý kód
Hodina 03
Vstupy od uživatele
Widgety jako zdroj dat. text_input, slider, selectbox, checkbox, number_input. Aplikace reaguje na uživatele.
Hotovo
▶ živý kód
Hodina 04
Podmínky a pravidla hry
if, elif, else. Porovnávání, and/or/not. Program se konečně rozhoduje sám.
Hotovo
▶ živý kód
Hodina 05
Paměť aplikace a první souboj
session_state, tlačítka a to, proč se webová aplikace pořád restartuje.
Hotovo
▶ živý kód
Hodina 06
Seznamy a inventář
Seznam, index, přidávání a mazání. Inventář hrdiny konečně funguje.
Hotovo
▶ živý kód
Hodina 07
Řetězce, popisy a hlášky
f-string, metody řetězců, formátování textu. Hra začne mluvit.
Hotovo
▶ živý kód
Hodina 08
Slovníky a data hry
Klíč a hodnota. Jak popsat jednu příšeru jedním objektem.
Hotovo
▶ živý kód
Hodina 09
Cykly — počítač dělá opakovanou práci
for, while, range, enumerate. Přestaneme kopírovat kód.
Hotovo
▶ živý kód
Hodina 10
Funkce — úklid v kódu
def, parametry, return. Přestaneme opisovat stejné bloky.
Hotovo
▶ živý kód
Hodina 11
Náhoda — kostky, souboj a loot
Modul random. Hra přestane být předvídatelná.
Hotovo
▶ živý kód
Hodina 12
Hledání nejkratší cesty v bludišti
Naivní síla vs chytré algoritmy: brute-force, BFS a Dijkstra.
Hotovo
▶ živý kód
Hodina 13
Řadicí algoritmy — od bublin po chytré řazení
Jak počítač řadí čísla a předměty. Bubble sort vs. chytré algoritmy.
Hotovo
▶ živý kód
Hodina 14
Soubory a JSON — ukládání hry
Zápis a čtení souborů, formát JSON, stahování a nahrávání ve Streamlitu.
Hotovo
▶ živý kód
Hodina 15
Třídy a objekty
class, __init__, self, metody. Data a chování konečně na jednom místě.
Hotovo
▶ živý kód
Hodina 16
Dědičnost — bestiář na třídách
Rodičovská a odvozená třída, super(), přepsání metody, polymorfismus.
Hotovo
▶ živý kód
Hodina 17
Úklid kódu — moduly, importy a vlastní knihovna
Rozdělení aplikace do více souborů, vlastní moduly, import, to_dict a from_dict.
Hotovo
▶ živý kód
Hodina 18
Finále — dokončení hry, nasazení na internet a prezentace
Vícestránková aplikace, ladění, vlastní vzhled, nasazení na Streamlit Cloud a obhajoba projektu.
Hotovo
▶ živý kód