Pravidla
Vážení studenti, i tento semestr máte možnost získat bonusové body za řešení tzv. projektů. Seznam zadání je dostupný v této interaktivní osnově níže a může být průběžně doplňován o nová zadání. Pokud přijdete sami s dobrým zadáním, může vám být rovněž uznáno jako projekt. Řešení projektů je nepovinné.
Projekty se řeší ve skupinách. U každého zadání je uvedeno, kolik nejvýše řešitelů v jedné skupině se může na projektu podílet. Jedno zadání však může být řešeno několika skupinami, máte tedy kdykoli možnost zvolit si zadání dle své chuti.
Spolupráce uvnitř skupiny je nezbytná, spolupráce mezi skupinami a zejména s cvičícími a přednášejícím (formou debat na cvičení, konzultací a diskuzí na ISu) vítaná. Přesto trváme na tom, aby odevzdané projekty byly výhradním autorským dílem odevzdávající skupiny. Řešení vykazující přílišnou podobnost mohou být z tohoto důvodu neuznána jako vyhovující.
Zadán je vždy algoritmický problém a jeho řešením je program implemetnující příslušný algoritmus. Není-li v zadání projektu napsáno jinak, povinné součásti odevzdávaného řešení jsou:
- dokumentace ve formě textu (plain text) či v jiném otevřeném formátu (HTML, PDF, …) obsahující alespoň
- popis algoritmu (nikoli detailů programu),
- stručný popis zdrojového kódu, tj. která část co dělá (u dobře komentovaného kódu možno vynechat),
- popis formátu vstupních dat;
- zdrojový kód programu — snažte se o přehlednost, využívejte moduly;
- ukázková vstupní data s popisem, jak program nad nimi spustit;
- seznam řešitelů včetně popisu, kdo co dělal.
Řešení prosím odevzdávejte do složky Projekty v Odevzdávárně. Každý, kdo odevzdává, nechť vytvoří podsložku s vhodným pojmenováním, například obsahujícím název vybraného tématu. Identifikaci odevzdávajícího doplní IS. Můžete to udělat do 20. 12. 2010 včetně. Odevzdávejte pouze nezbytné soubory, a to ve funkční verzi. Za skupinku odevzdává řešení jeden z řešitelů. V Poskytovně máte k dispozici vzorový projekt.
Na řešení projektů je vyhrazena doba výuky v podzimním semestru 2008, na opravení odevzdaných řešení pak zkouškové období. Řešení projektů vyžaduje průběžné znalosti načerpané nejen na přednáškách, ale i při samostudiu (u každého projektu, kde je to potřeba, najdete odkazy na informační zdroje) a diskuzích s vyučujícími, nelze tedy doporučit ponechání řešení na poslední chvíli.
Řešení může být ohodnoceno 0 až 10 body. Zejména při nesplnění části zadání můžete při pečlivém vypracování zbytku obdržet aspoň část bodů (záleží na kvalitě provedení a na obtížnosti vyřešených částí). Každý člen řešitelské skupiny obdrží stejný počet bodů, jako jeho kolegové, tj. když je například projekt řešený třemi lidmi ohodnocen na 8 bodů, obdrží každý z řešitelů 8 bodů. Tyto body se vám započtou do celkového hodnocení (vedle bodů z obou písemek a ze cvičení) a mohou vám tak zlepšit známku. Po zkušenostech z minula upozorňujeme, že pokud budou projekt řešit například tři lidé a jen dva z nich se na řešení budou skutečně podílet, postihne dle výše uvedeného ztráta třetiny bodů všechny tři řešitele. Sami se proto snažte, aby se na řešení projektu podíleli rovným dílem všichni řešitelé.
S obecnými otázkami k projektům se prosím obracejte na Mateje Kollára či Libora Škarvadu nebo svého cvičícího. S konkrétními projekty vám nejlépe poradí autor zadání (kde není uveden, obracejte se prosím opět na Mateje Kollára). Konzultování projektu je silně doporučováno, předejdete tak zbytečným bodovým srážkám.
U většiny projektů je nutné naprogramovat zpracování vstupu, tj. převod vstupních řetězců na vhodnou datovou strukturu. Uvítáme, když se s tímto problémem budete zabývat sami. Haskell podporuje elegantní zacházení se vstupem, viz například funkce read. V případě nutnosti načítání složitějších struktur, doporučuji věnovat čas nastudování základů syntaktické analýzy. Vaše obzory a schopnosti to jistě rozšíří a nemusíte se bát, že byste se tím učili něco zbytečného — během studia na fakultě se se syntaktickou analýzou určitě dřív či později setkáte. Nejde o nic složitého, od Vás to vyžaduje jen trochu času věnovanou samostudiu. Připravil jsem pro vás krátké pojednání o syntaktické analýze ve kterém najdete úvod do problému a odkazy na další literaturu. Kromě toho můžete přijít na konzultace, nebo se mě na případné nejasnosti a problémy zeptat na cvičení.
Přeji vám tímto hodně štěstí nejen při řešení projektů, ale i při studiu funkcionálního programování.
V.B.