Neprocedurální programování

Požadavky na zápočet

  1. 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ň 60 % možných bodů ze všech úkolů. Navíc je potřeba mít aspoň 50 % z úkolů na Prolog a alespoň 50 % z úkolů na Haskell. Na každých druhých cvičeních dostanete úkol, na jeho odevzdání budete mít týden (do začátku dalších cvičení). Po konci těchto cvičení vám systém přidělí úkoly pěti vašich spolužáků, které ohodnotíte. Ú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 můžete získat max. 80 bodů, za ohodnocení úkolů ostatních max. 20 bodů (dohromady za všech pět).
    • 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.
    • Úkoly odevzdávejte 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.
  2. 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.
    • 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 buď online přes MS Teams, nebo osobně na Malé straně (pokud to situace dovolí).

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.

Datum Téma
3. 3. 2021 Prolog - rodinné vztahy, Zdrojový kód
10. 3. 2021 Prolog - seznamy, Zdrojový kód
17. 3. 2021 Prolog - seznamy II, aritmetika, Zdrojový kód
24. 3. 2021 Prolog - prohledávání, rozdílové seznamy, Zdrojový kód
31. 3. 2021 Prolog - stromy, Zdrojový kód
7. 4. 2021 Prolog - grafy, prohledávání prostoru stavů, Zdrojový kód, Prolog - ..=, řešič SAT, Zdrojový kód
14. 4. 2021 Haskell - typy, základní funkce, Zdrojový kód
21. 4. 2021 Haskell - seznamy, skládání funkcí, Zdrojový kód
28. 4. 2021 Haskell - vlastní typy, Zdrojový kód
5. 5. 2021 Haskell - stromy, obecný fold, Zdrojový kód
12. 5. 2021 Rektorský den - cvičení odpadá
19. 5. 2021 Haskell - monády, Zdrojový kód
26. 5. 2021 Haskell - State, IO, record syntaxe, zipper, Zdrojový kód
2. 6. 2021 ???