Neprocedurální programování > Neprocedurální programování

Neprocedurální programování

Published on 28. září 2016 22:26

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 omylem málo nebo moc bodů, tak to budu korigovat.
    • Úkoly odevzdávejte do Moodle předmětu. Klíč pro zápis vám říkal Tomáš Dvořák na první přednášce, 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 započtový program v Haskellu, ale dejte mi vědět včas)
    • Počítejte s tím, že zápočet potřebujete ještě před zkouškou.
    • 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).
    • Programy budete předvádět nejspíš v labu na ms po domluvě, každopádně mi je napřed včas pošlete mailem, ať se na ně stihnu podívat.

Průběh cvičení

Datum Út Datum St Téma
20. 2. 2018 21. 2. 2018 Prolog - rodinné vztahy, Zdrojový kód
27. 2. 2018 28. 2. 2018 Prolog - seznamy, Zdrojový kód
6. 3. 2018 7. 3. 2018 Prolog - seznamy II, aritmetika, Zdrojový kód
13. 3. 2018 14. 3. 2018 Prolog - prohledávání, rozdílové seznamy, Zdrojový kód
20. 3. 2018 21. 3. 2018 Prolog - stromy, Zdrojový kód
27. 3. 2018 28. 3. 2018 Prolog - grafy, prohledávání prostoru stavů, Zdrojový kód
3. 4. 2018 11. 4. 2018 Haskell - typy, základní funkce, Zdrojový kód
10. 4. 2018 18. 4. 2018 Haskell - seznamy, skládání funkcí, Zdrojový kód
17. 4. 2018 25. 4. 2018 Haskell - vlastní typy, Zdrojový kód
24. 4. 2018 2. 5. 2018 Haskell - stromy, obecný fold, Zdrojový kód
15. 5. 2017 9. 5. 2017 Haskell - monády, Zdrojový kód
22. 5. 2017 23. 5. 2017 Haskell - State, IO, record syntaxe, zipper, Zdrojový kód

Bonus

Letos jsme na cvičení nestihli ukázat implementaci SAT solveru v Prologu, ale můžete se na ní podívat alespoň tady. Prolog - ..=, řešič SAT, Zdrojový kód