Václav Končický

Neprocedurální programování

Cvičení probíhá každou středu od 14:00 do 15:30 po Zoomu. Navíc lze kdykoliv po domluvě přijít (nebo se připojit) na konzultaci.

Pokud máte jakýkoliv dotaz týkající se tohoto cvičení, pište prosím na e-mail koncicky+nprg@kam.mff.cuni.cz.

Požadavky na zápočet

Abyste mohli jít na zkoušku, musíte mít nejprve hotový zápočet. Ten se skládá ze dvou částí.

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 jazycích Prolog a Haskell něco naprogramovat už během semestru a ne až před zkouškou.

Celkem půjde získat 130 bodů. Pro získání zápočtu je potřeba mít alespoň 80 možných bodů ze všech úkolů. Navíc je potřeba mít aspoň 25 bodů z úkolů na každý jazyk zvlášť. Domácí úkoly se budou odevzdávat přes poštovní sovu. Pokud neznáte token pro přístup, ozvěte se.

Z každého programovacího jazyka budou dohromady čtyři domácí úkoly (celkem tedy osm), a to tři malé za 10 bodů a jeden velký za 20 bodů.

Navíc v průběhu semestru dostanete právě jednu malou úlohu na opravování. Stejnou úlohu může opravovat více studentů najednou, v takovém případě můžou mezi sebou a autorem řešení komunikovat, případně se společně dohodnout na postupu či bodovém množství. Za opravení úloh dostanete až 30 bodů, třetina z nich se započítá k příslušnému opravovanému jazyku.

Cílem opravování řešení spolužáků je pochopit programy jiných, a taky se na nich naučit nové triky. Nebojte se opravování, budu na něj dohlížet a v případě problémů budu dodatečně korigovat.

Pokud by vám nevycházel počet bodů, můžete dostat dodatečný domácí úkol, jehož obtížnost se bude odvíjet od množství chybějících bodů.

Zápočtový program

Dále pak budete psát zápočtový program v Prologu nebo Haskellu. Součástí zápočtového programu je i dokumentace a testovací data.

Do konce dubna si vyberte téma a pak se se mnou domluvte, zda je rozumně rozsáhlé. Programy by neměly být triviální, ani byste to s rozsáhlostí neměli přehnat.

Obecně zápočtové programy z Prologu jsou dobré na řešení logických úloh. Haskell je všeobecnější, ale velmi dobře se v něm píšou třeba parsery nebo interprety.

Předvádění zápočtu bude probíhat primárně po Zoomu. Pokud budete chtít předvádět, dostatečně předem se ozvěte.

Proběhlá cvičení

Zdroje

Odkazy k předmětu na Matfyzu:

Prolog:

Haskell: