Algoritmizace: Řešení domácích úloh. Vzorové úlohy ze zkoušky.
Programování: Zápočtový test.
Algoritmizace: Prohledávání. Hledání nejkratší cesty, prohledávání grafu. Materiály na cvičení: prohledávání (pseudokód) , grafy .
Programování: Zadán domácí úkol.
Algoritmizace: Rekurze – typové úlohy. Krabičky. Zadán domácí úkol (poslední).
Programování: Slovník, množina. Práce se soubory. Zadán domácí úkol.
Algoritmizace: Prohledávání stavového prostoru – Přelévání vody. Zadán domácí úkol.
Programování: Binární stromy – výpočet výšky, symetričnost. Zadán domácí úkol.
Algoritmizace: Rekurze – faktoriál, Fibonacciho čísla. Hanojská věž – počet tahů.
Programování: Generování variací bez opakování a permutací, vkládání operátorů mezi čísla. Zadán domácí úkol.
Algoritmizace: Řešení úlohy počet jedniček v podmatici. Datové struktury – zásobník, fronta, prioritní fronta. Binární halda – operace Odstraň prvek, Změň prioritu. Zadán domácí úkol.
Programování: Řešení úloh Průnik a sjednocení spojových seznamů. Zásobník – objektová implementace, použití v jiném programu (import
). Zadán domácí úkol.
Výuka zrušena – státní svátek.
V případě nějakých otázek nebo nejasností (k DÚ, látce z přednášek, ...) mi napište e-mail, možnost konzultace.
Algoritmizace: Počet jedniček v podposloupnosti – prefixové součty. Binární vyhledávání – nejlevější a nejpravější výskyt. Zadán domácí úkol.
Programování: Spojové seznamy. Zadán domácí úkol.
Algoritmizace: Řešení úlohy Prostřední z pěti. Třídící algoritmy. Halda.
Programování: Spojové seznamy - [šablona]. Zadán domácí úkol.
Výuka zrušena – imatrikulace.
V případě nějakých otázek nebo nejasností (k DÚ, látce z přednášek, ...) mi napište e-mail, možnost konzultace.
Algoritmizace: Poznámky k domácímu úkolu. Invariant cyklu. Algoritmické řešení úloh z Programování.
Programování: Terminál, čtení vstupu ze souboru, zápis výstupu do souboru. Úlohy na práci s list
. Zadán domácí úkol.
Algoritmizace: O notace – důkazy tvrzení. Vážení kuliček – domácí úkol (do 27. 10., viz ReCodEx–Algoritmizace).
Programování: Diskuse o řešeních úlohy Maximum. list
, slicing, for cyklus. Debugging – breakpointy, krokování.
Algoritmizace: Je číslo v posloupnosti? – zápis algoritmu, správnost, složitost. O notace.
Programování: Seznámení s VS Code a ReCodExem. If-else, while, výpis a čtení vstupu. Domácí úkoly – viz ReCodEx
Zápočtový program je větší software, který naprogramujete doma během semestru. Téma si vymyslíte sami, jakmile jej budete mít rozmyšlené (nejpozději však do 15. 12.), sepište specifikaci – krátký (1–2 odstavce) popis tématu (tj. co váš program bude dělat) – a pošlete mi ji ke schválení.
Až budete mít program hotový, zašlete mi ho ke kontrole, a to takovým způsobem, abych jej mohl spustit a vyzkoušet, ale také se podívat na zdrojový kód. (Pokud by to bylo problematické, můžeme se domluvit na osobním předvedení.)
Součástí odevzdávaného programu musí být také dokumentace, a to uživatelská (vysvětující, jak se program ovládá) a programátorská (ta popisuje, jak program uvnitř funguje; nemá smysl popisovat každou funkci nebo proměnnou, zaměřte se na celkový návrh programu a použité algoritmy). Program odevzdejte ideálně do konce zkouškového, nejpozději však do 28. 2.Zápočtový program nemusí být nutně napsán v Pythonu, můžete použít jiný jazyk, který dobře znáte nebo se hodí pro vybranou úlohu. Pokud ale budete chtít použít jiný jazyk než Python, domluvte se na tom se mnou předem (= uveďte to ve specifikaci).
Pěkný seznam možných témat má na svém webu Martin Mareš, další návrhy a informace k zápočtovému programu sepsal i Jirka Mayer. Návod a rady k psaní dokumentace najdete na webu Rudolfa Kryla. Dokumentaci můžete psát česky, slovensky, nebo anglicky.Programovací úkoly vám ReCodEx ihned zkontroluje a oboduje. Pokud vaše řešení nebude 100%, můžete odevzdat nové. Počet pokusů bude omezen na 50, počítat se bude ten nejlepší. Teoretické úkoly (z Algoritmizace) budu opravovat ručně, tudíž budete mít obvykle jen jeden pokus.
Jak ReCodEx zprovoznit:
Používat můžete cokoliv, já budu na cvičeních používat Visual Studio Code.
Instalace:
Pokud máte soubory uložené na Studentském
úložišti (disk (su.mff.cuni.cz)
), dostane se k nim například přes webové
rozhraní https://su.mff.cuni.cz/.
Pokud máte soubory na afs (ve škole disk Z:
), dostanete se k nim skrze
vzdálený přístup na nějaký počítač v počítačové laboratoři Rotunda (co dalšího tam
můžete dělat zde):
ssh login@u-plXX.ms.mff.cuni.cz
, místo XX
zadejte
číslo z rozsahu 1–29, login a heslo jako do SISuu-plXX.ms.mff.cuni.cz
, místo XX
zadejte
číslo z rozsahu 1–29, např. u-pl21.ms.mff.cuni.cz