Organisace a pravidla absolvování
TL;DR: Je potřeba udělat dvě domácí úlohy s peer review a k tomu 5/7 miniúloh s neomezeným odevzdáváním do konce května.
Organisace kursu
Tento kurs se zabývá programováním ve funkcionálním jazyce Haskell, a to především z praktického hlediska. Je organisován jako série nahraných přednášek a on-line konsultací s týdenní periodicitou. Přítomnost na konsultaci není povinná, ale rádi se na ní s vámi potkáme.
Samostudium
Ve studijních materiálech a interaktivní osnově budou zveřejněny slajdy a videonahrávky přednášek. Co je hotové z loňska, máte k disposici hned, zbytek připravíme včas na příslušný týden. Doporučujeme každý týden zhlédnout jednu přednášku a pustit se do řešení miniúlohy nebo úlohy.
Ve videích z loňska občas říkáme nějaké organisační pokyny nebo informace k úlohám. Tyto části prosím ignorujte. Řiďte se jen interaktivní osnovou, e-maily a diskusním fórem.
Konsultace
Máme nepříjemný rozvrhový slot v 8.00, konsultace ale uspořádáme až v druhé polovině (tj. od 9.00). Každý týden se budeme věnovat primárně látce příslušného cvičení, očekáváme tedy, že už budete mít video zhlédnuté. Využijte konsultací k vysvětlení nejasností nebo si přijďte pro nápovědu k úloze, jste-li zaseknutí.
Komunikační technologie: E-učebna v ISu.
Mimo to se můžete samozřejmě kdykoli ptát na diskusním fóru, případně využít předmětového Discordu (odkaz se dozvíte e-mailem) nebo kanálu IRC: ##ib016 na Freenode (lze využít webový klient https://lounge.fi.muni.cz s fakultními přihlašovacími údaji). Mezi Discordem a IRCem máme most, nemusíte proto sledovat obojí.
Úlohy a bodování
Během semestru budou zadávány dva typy úloh, které se budou lišit rozsahem, bodováním i způsobem hodnocení. Navíc k větším úlohám budete psát stručnou zpětnou vazbu svým kolegům.
Miniúlohy
Tyto drobné úložky (či spíše příklady) slouží k vyzkoušení/procvičení obsahu jedné přednášky a vlastně nahrazují práci na cviku.
- Počet: 7 za semestr (tj. ne každé cvičení bude mít přiřazenu miniúlohu).
- Forma: Odpovědník s jedním až třemi políčky pro implementaci funkce/instance/výrazu.
- Odevzdání: Neomezeně mnohokrát a kdykoli do konce května.
- Rozsah a náročnost: Přibližně kolem hodiny (při úplném pochopení přednášky tak 15 minut).
- Další požadavky: Typicky budou předepsány techniky ze cvičení, jimiž se má úkol řešit.
- Kontrola: Odpovědníky jsou navázány na automatické testy, jejichž výsledky máte k disposici. Po úspěšných testech řešení zkontroluje ještě vyučující, zda používá předepsané techniky, a případně může dát drobnou zpětnou vazbu. Kontrola vyučujícím bude probíhat pravidelně (upřesníme). Doporučujeme řešit úlohy včas a pravidelně, aby je vyučující stíhali kontrolovat průběžně (= rychle) a vy jste v případě potřeby měli čas napravit nedostatky.
- Bodování: Binární (0 nebo 1); zadává vyučující po kontrole.
- Zveřejnění: Studentská ani vzorová řešení nejsou veřejná.
Větší domácí úlohy
Tyto úkoly slouží k tomu, abyste si vyzkoušeli napsat delší kód v Haskellu.
- Počet: 2 za semestr (ve 3. a 8. týdnu).
- Forma: Jeden soubor vložený do odevzdávárny.
- Odevzdání: Neomezeně mnohokrát, do tří týdnů od zadání.
- Rozsah a náročnost: Přibližně 300 řádků kódu, práce na jednotky hodin (nejvýše víkend :-)).
- Další požadavky: Kód by měl být přeložitelný s přepínačem -Wall bez varování a měl by mít čistý výstup HLintu. Pokud se rozhodnete doporučení HLintu nedodržet, stručně to v komentáři zdůvodněte.
- Kontrola: Soubory v odevzdávárně se pravidelně kontrolují automatickými testy, jejichž výsledky uvidíte v poznámkovém bloku. Po konci odevzdávání kód prohlédne ještě vyučující, který kromě bodů napíše i zpětnou vazbu.
- Bodování: Diskrétní: 0, 1, 3 nebo 4 body podle funkčnosti (primárně), ale také efektivity, elegance a stylu řešení. (Pro zisk jednoho bodu stačí úlohu úplně neodfláknout. :-))
- Zveřejnění: Řešení všech studentů jsou po konci odevzdávání zveřejněna všem studentům předmětu.
Peer review
Kromě psaní kódu je důležité i jeho čtení a pochopení; u větších úloh proto chceme, abyste si kódy navzájem četli a hodnotili.
- Počet: 2×2 za semestr – dvě cizí řešení po skončení každé větší úlohy.
- Forma: Vepisování komentářů přímo do kódu.
- Odevzdání: Týden po konci odevzdávání.
- Rozsah: Ke každému řešení alespoň tři odstavce textu či odrážek:
- Co nefunguje (chová se v rozporu se zadáním) a proč?
- Co se vám líbí? (Které myšlenky řešení se vám zdají elegantní či nadprůměrně dobré a proč?)
- Co byste udělali jinak? (Které myšlenky či části kódu se vám zdají matoucí, nevhodné nebo byste je udělali jinak?)
- Kontrola: Vyučující po konci vyplňování ověří, že review má dostatečný rozsah a přínosnost (tj. zda to není odfláknuté :-)).
- Bodování: Binární (přijato/nepřijato); zadává vyučující po kontrole.
- Zveřejnění: Zpětná vazba od všech hodnotitelů i vyučujícího jsou po konci peer review zveřejněna všem studentům předmětu.
Podmínky získání zápočtu
Pro úspěšné absolvování kursu je zapotřebí splnit následující čtyři podmínky:
- Mít splněno alespoň pět ze sedmi miniúloh.
- Mít obě velké úlohy splněny na nenulový počet bodů.
- Mít za velké úlohy alespoň čtyři body z osmi.
- Poskytnout zpětnou vazbu všem čtyřem cizím řešením.