Algoritmizace: Řešení domácích úloh, prohledávání grafu.
Programování: Zápočtový test.
Algoritmizace: Aritmetické výrazy. Úloha Krabičky.
Programování: Unittesty - vzor.
Prohledávání stavového prostoru – dokončení rozboru z minula [pseudokódy].
Slovník, množina – vlastní typy. Práce se soubory [soubory.zip]
Binární stromy – prohledávání do šířky. Prohledávání stavového prostoru – Přelévání vody.
Algoritmizace: Rekurze, rekurzivní generování.
Algoritmizace: Využití datových struktur pro efektivní řešení úlohy.
Programování: Informace o zápočtových programech. Spojové seznamy (prakticky).
Algoritmizace: Datové struktury – zásobník, fronta. Binární halda.
Programování: Spojové seznamy.
Algoritmizace: Nejčastější číslo v posloupnosti – různé přístupy.
Programování: Funkce, dekompozice.
Výuka zrušena – imatrikulace.
V případě jakýchkoli otázek nebo nejasností (k DÚ, látce z přednášek, ...) mi napište e-mail, možnost konzultací.
Algoritmizace: O notace – důkazy tvrzení. Binární vyhledávání.
Programování: list
(matice, list comprehension), cykly, funkce.
Algoritmizace: Asymptotická složitost a O notace (příště v tom ještě budeme pokračovat).
Programování: list
, cykly.
Úvodní informace.
Úlohy z algoritmizace.
Seznámení s VS Code a ReCodExem, If-else, výpis a čtení vstupu.
První domácí úkoly, v ReCodExu.
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 31. 12.), sepište specifikaci – stručný (1–2 odstavce) popis, co váš program bude dělat – a pošlete mi ji ke schválení (e-mailem).
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). Pokud plánujete používat nějaké knihovny či frameworky třetích stran (mimo standardní knihovnu zvoleného programovacího jazyka), uveďte je ve specifikaci také.
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.
Program se odevzdává skrz fakultní Gitlab, kde budete mít připraven repozitář
(asi si založíte repozitář, do kterého nahrajete váš program. Postup a základní práci s Gitlabem se naučíte na cvičení (DÚ - samostudium). Jakmile bude mít program hotový, pošlete mi e-mail s odkazem na váš repozitář. Já se na program podívám a ohodnotím ho./teaching/nprg030/2425-winter/student-LOGIN_DO_SISU
, upřesním později)
docs
a v ní mít několik souborů ve formátu Markdown (.md
). Do souboru README.md
pak vložte rozcestník (odkazy) na jednotlivé části dokumentace.
Dokumentaci můžete psát česky, slovensky, nebo anglicky.
Návod a rady k psaní dokumentace najdete na webu Rudolfa Kryla. Příklady dokumentací (pouze pro představu a inspiraci, určitě je tam značný prostor pro zlepšení) [1], [2], [3].
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, 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:
), můžete se k nim připojit vzdáleně pomocí OpenAFS, návod na wiki laboratoře Rotunda.
Jiný způsob, je 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-pl01.ms.mff.cuni.cz