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:
4. ří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.
11. října
- Příklady jednoduchých programů (převod do dvojkové soustavy, rozklad na prvočísla),
- seznamy,
- cyklus
for
a některá jeho specifika.
- funkce.
- Slidy.
18. ří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
25. října Imatrikulace
1. listopadu Objekty
- Třídy a objekty,
- definice tříd a objektů,
- metody a atributy.
- Slidy.
8. 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.
15. listopadu Objekty II
- Dědičnost, násobná dědičnost, diamantový problém,
- classmethod, staticmethod, statické atributy,
- konstruktory a destruktory,...
- Slidy.
22. listopadu Kreslení, formulářové aplikace
TkInter
- Jednotlivé widgety (a jejich používání),
- využití událostmi řízeného programování.
- Slidy.
29. 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.
6. 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.
13. prosince Zbývající položky
- jednotkové testy - knihovna
unittest
,
- klíčové slovo with a manažery kontextu (context-manager),
- iterátory,
- slidy.
20. 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
10. ledna
- Matplotlib,
- pokračování teorie her, tedy AND-OR-strom, Minimax, Negamax jakožto algoritmy využívající rekurze.
- Slidy.
- Zdrojaky z hodiny.
3. ledna
- 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í. :-)