Vážení studenti, i tento semestr máte možnost získat bonusové body za řešení tzv. projektů. Seznam zadání je dostupný na této stránce 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:
Ř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 23. 5. 2008 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 jarní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, doba, kterou máte na jeho vyřešení, proto nemusí být tak dlouhá, jak se vám při prvním odhadu může zdát.
Ř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 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 bodu 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 mě č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 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. 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 s tzv. 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í.
Pokud se přesto se syntaktickou analýzou střetnete neúspěšně, ještě pořád máte možnost projekt odevzdat a dostat za něj až 10 bodů. Stačí, když se se mnou domluvíte a sdělíte mi přesný popis vstupu a datového typu, na nějž jej chcete převádět. Já vám pak (po případné domluvě na drobných změnách) tuto část kódu pomůžu vytvořit. Při tomto postupu je ovšem automaticky snížen maximální počet osob v řešící skupině o jednu (část práce přenesete na mě).
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.