Kolegové a kolegyně, obecné informace o přednášce Programování 1 (vztahující se k oběma skupinám) najdete i na stránce kolegy
Holana.
Jelikož informace platí pro obě skupiny, bylo by kontraproduktivní zveřejňovat je dvakrát (jelikož, jak kolega rád říká, kopírování je častým zdrojem chyb).
Obsah přednášek:
1., 8. října:
- Organizační informace, informace o zápočtu a technických aspektech (účty, které je třeba zařídit).
- Pojem algoritmu a jeho správnosti, příklady snadných algoritmů, které budeme programovat.
- Ukázka vývojových prostředí v Pythonu (samotný interpret, IDLE, Visual Studio 2019/2022, používat budeme to poslední, ač pro vlastní práci si může každý vybrat své prostředí).
- Základní syntaktické kontrukce jazyka: Proměnné a práce s nimi, výrazy, podmmínky, základní řídicí struktury if, while.
- Slidy.
15. října- Příklady jednoduchých programů (převod do dvojkové soustavy, rozklad na prvočísla),
- seznamy,
- cyklus fora některá jeho specifika.
- funkce.
- Slidy.
22. října Funkce:
-  Volání funkcí již známe,
-  definice funkce,
-  parametry, lokální a globální proměnné
-  implicitní parametry a explicitní přiřazení hodnoty implicitního parametru,
-  sběrný parametr (prefixní operátor hvězdičky),
-  vnořené funkce, scope resolution, lokální, globální a nelokální proměnné.
-  Slidy
29. října Objekty
-  Třídy a objekty,
-  definice tříd a objektů,
-  metody a atributy.
-  Slidy.
5. listopadu Spojové seznamy jako aplikace objektů
- Princip fungování, kdy si jeden objekt obsahující data ukazuje na následníka,
- implementace základních funkcí (přidání na začátek/konec, odebrání prvního prvku seznamu, vymazání prvku v seznamu),
- vytvořený zdroják.
12.  listopadu Objekty II
-  Dědičnost, násobná dědičnost, diamantový problém,
-  classmethod, staticmethod, statické atributy,
-  konstruktory a destruktory,...
-  Slidy.
19. listopadu Kreslení, formulářové aplikace
 TkInter- Jednotlivé widgety (a jejich používání),
- využití událostmi řízeného programování.
- Slidy.
26. listopadu Gitlab, virtualni environmenty, balicky, assert (a jeho vyuziti k testovani).- Výjimky - klíčová slova try, except, finally, raise a jejich využití
- Balíčky (jakožto další prostředky dekompozice programu a jejich využití).
-  Klíčové slovo assert a jeho aplikace.
- Jednotkové testy, integrační testy, využití jména modulu __name__ a assertu při návrhu jednotkových testů.
- Slidy.
3. prosince
- Aritmetické notace a jejich souvislosti se stromy (bylo převážně na Algoritmizaci), příklad: Vyhodnocení výrazu v infixové notaci s využitím rekurze.
- Slidy.
10. prosince Zbývající položky- jednotkové testy - knihovna unittest,
- klíčové slovo with a manažery kontextu (context-manager),
- iterátory,
- slidy.
17. prosince Prohledávání a jeho aplikace v programování
- Théseus a Minotaurus,
- kam král nemůže (implementace),
- vysvětlení, že jde o totožné problémy,
- komentář o možnosti implementace prohledání do hloubky s využitím rekurze.
- Definice kombinatorických her
- Slidy.
- Zdrojak z hodiny
7.  ledna
- Matplotlib,
- pokračování teorie her, tedy AND-OR-strom, Minimax, Negamax jakožto algoritmy využívající rekurze.
- Slidy.
- Zdrojaky z hodiny.
- Dlouha cisla, dokončení teorie her jakožto aplikace rekurze v programování. Tedy příklad hry o štrůdlu, alfa-beta prořezávání, horizont, statická ohodnocovací funkce, komentář k programování běžných her.
10. ledna
- Využití Pythonu v Raspbianu, anebo využití Raspbianu při znalosti Pythonu.
- Slidy. Ale zážitek z hodiny tentokrát nejspíše nenahradí. :-)