Neprocedurální programování
Požadavky na zápočet
- Domácí úkoly
- Během semestru dostanete několik domácích úkolů na témata, která budeme probírat na cvičení. Jejich cílem je hlavně to, abyste si zkusili v Prologu a Haskellu něco naprogramovat už během semestru a ne až před zkouškou.
- Pro získání zápočtu je potřeba mít na konci semestru alespoň 420 bodů z úkolů. Navíc je potřeba mít aspoň 150 bodů z úkolů na Prolog a alespoň 150 bodů z úkolů na Haskell.
- Úkoly v ReCoDexu: Na každý jazyk dostanete vždy dva malé úkoly po 25 bodech a jeden trochu větší úkol za 50 bodů s termínem do dalších cvičení. Tyto úkoly budou zadané v ReCoDexu.
- Úkoly v Moodle: Dále dostanete dva složitější úkoly v Moodle po 100 bodech. Termín pro odevzdání úkolu v Moodle je také do dalších cvičení. Následně vám Moodle přidělí 4 úkoly vašich spolužáků k ohodnocení. Úkoly se hodnotí ve třech kritériích - správnost řešení, efektivita řešení a dokumentace/komentáře/pochopitelnost kódu. Nejvyšší váhu (10) má správnost řešení, efektivita má váhu 7 a dokumentace 3. Na ohodnocení máte opět týden. Za úkol samotný můžete získat max. 80 bodů, za ohodnocení úkolů ostatních max. 20 bodů (dohromady za všechny čtyři).
- Hodnocení spolužáků se nebojte, budu na to dohlížet, a kdybyste někomu dali málo nebo moc bodů, tak to budu korigovat. Cílem hodnocení je hlavně to, abyste viděli i jiná řešení než to vaše a naučili se z nich třeba nové triky.
- Bonusové úkoly: Během semestru vám navíc zadám v ReCodexu 5 bonusových úkolů na Prolog a 5 na Haskell. Tyto mají sloužit hlavně jako další příklady k procvičení, ale jako motivaci můžete za každý získat 8 bodů. Termín budou mít tyto úkoly nastavený až na konce zkouškového, abyste je mohli využít i jako přípravu na zkoušku (nebo jako způsob, jak dohnat několik chybějících bodů).
- Úkoly odevzdávejte do ReCoDexu a do Moodle předmětu. Klíč pro zápis vám říkal Tomáš Dvořák na první přednášce a já na prvním cvičení, jestli ho nevíte, ozvěte se.
- Zápočtový program v Prologu nebo Haskellu
- Nápady na vhodná témata můžete najít např. na stránkách Jana Hrice, Tomáše Dvořáka nebo Jiřího Beneše.
- Téma si vyberte a dohodněte se mnou do konce dubna (může být později, pokud chcete dělat zápočtový program v Haskellu, ale dejte mi vědět včas)
- Je doporučené mít zápočet hotový ještě před zkouškou. Z reakcí studentů v předchozích letech vím, že až napsání zápočtového programu pro řadu z vás znamená skutečné seznámení se s jazykem.
- S programem je potřeba odevzdat i rozumnou dokumentaci a testovací data (buď přímo jako testovací dotazy připravené v programu, nebo zvlášť v textovém souboru).
- Zápočtové programy bude možné předvádět osobně na Malé straně nebo v odůvodněných případech online.
Průběh cvičení
Toto je předběžný plán cvičení podle minulého roku. Je možné (pravděpodobné), že nebude dodržen. Odkazované texty a zdrojové kódy se také pravděpodobně budou mírně měnit.
Zdrojové kódy vytvořené na cvičeních najdete na Githubu.
Datum | Téma |
---|---|
21. 2. 2024 | Prolog - rodinné vztahy, Zdrojový kód |
28. 2. 2024 | Prolog - seznamy, Zdrojový kód |
6. 3. 2024 | Prolog - seznamy II, aritmetika, Zdrojový kód |
13. 3. 2024 | Prolog - prohledávání, rozdílové seznamy, Zdrojový kód |
20. 3. 2024 | Prolog - stromy, Zdrojový kód |
27. 3. 2024 | Prolog - grafy, prohledávání prostoru stavů, Zdrojový kód, Prolog - ..=, řešič SAT, Zdrojový kód |
3. 4. 2024 | Haskell - typy, základní funkce, Zdrojový kód |
10. 4. 2024 | Haskell - seznamy, skládání funkcí, Zdrojový kód |
17. 4. 2024 | Haskell - vlastní typy, Zdrojový kód |
24. 4. 2024 | Haskell - stromy, obecný fold, Zdrojový kód |
1. 5. 2024 | Státní svátek |
8. 5. 2024 | Státní svátek |
15. 5. 2024 | Haskell - monády, Zdrojový kód |
22. 5. 2024 | Haskell - State, IO, record syntaxe, zipper, Zdrojový kód |