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.
Další postup je předpokládán takto:
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
- Turtle graphics (import turtle,...),
- TkInter,
- myšlenky událostmi řízeného programování.
29. listopadu TkInter podruhé
- Jednotlivé widgety (a jejich používání),
- využití událostmi řízeného programování.
- Slidy.
6. prosince Objektové programování III, testy.
- 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.
13. 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.
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
3. ledna
- Matplotlib,
- pokračování teorie her, tedy AND-OR-strom, Minimax, Negamax jakožto algoritmy využívající rekurze.
- Slidy.
- Zdrojaky z hodiny.
10. ledna
- 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.
- Využití Pythonu v Raspbianu, anebo využití Raspbianu při znalosti Pythonu.
- Slidy. Ale zážitek z hodiny tentokrát nejspíše nenahradí. :-)