Organizační pokyny
Organizace výuky – Přednáška
Přednáška probíhá 2x týdně v časech stanovených rozvrhem FI MU. Obsah obou přednášek konaných v rámci jednoho týdne je identický, tudíž je v pořádku navštívit v rámci daného týdne přednášku pouze jednou. Přednáška je nahrávána, nahrávky budou zpřístupněny studentům kurzu.Organizace výuky – Cvičení
Pro účely organizace cvičení jsou studenti kurzu rozdělení do skupin, číslo své skupiny naleznete v IS MU. Cvičení se konají dle rozvrhu FI, a to tak, že každá skupina má cvičení vždy jednou za 14 dní, výjimkou je první týden semestru, viz níže.
POZOR: První týden mají cvičení všichni studenti, cvičení jsou však zkrácena na jednu vyučovací hodinu. Studenti ze skupin se sudým (párnym) číslem dle IS MU začínají v příslušném čase podle rozvrhu, skupiny s lichým (nepárnym) číslem začínají o jednu vyučovací hodinu později. Druhý týden semestru mají normálně cvičení skupiny s lichým číslem, třetí týden pak skupiny se sudým číslem, atd.
Skupina s nejvyšším číslem je pouze fiktivní, určená studentům, kteří nechtějí na cvičení chodit.
Hodnocení předmětu
Hodnocení předmětu bude u každého studenta stanoveno na základě jím vypracovaných domácích úloh a bodového zisku ze závěrečné písemné zkoušky. Celkem bude zadáno 12 domácích úloh, za které bude možné získat celkem 15 bodů, 9 úloh bude zadáno formou odpovědníků v ISu (po 1 bodu každá), 3 úlohy budou implementačního charakteru (každá úloha za 2 body). Závěrečná zkouška bude písemná, bez možnosti použití počítače, zejména GHCi interpretu. Písemka se bude skládat ze dvou částí. První část, tzv. povinný test minimálních znalostí, bude tvořen úkoly/příklady, o nichž se předpokládá, že je úspěšný absolvent kurzu vyřeší zcela správně (bude prominuta nejvýše jedna drobná chyba). Proto tato část písemky nebude bodována, ale bude hodnocena jako Splněno/Nesplněno. V druhé části písemky pak bude možné získat až 10 bodů za správné řešení zadaných příkladů. Obsahem závěrečné písemné zkoušky budou pouze znalosti související s funkcionálním programovacím paradigmatem a programovacím jazykem Haskell (prvních 9 přednášek, témata probíraná v následujících 3 přednáškách (Prolog a CLP) nebudou předmětem zkoušky). Na písemnou zkoušku je třeba se přihlásit skrze IS MU. Termíny konání zkoušek je možné nalézt tamtéž.
- test minimálních znalostí hodnocen jako "Splněno",
- za řešení domácích úloh získáno alespoň 8 bodů.
V případě splnění obou podmínek bude stanovena známka dle celkového počtu studentem získaných bodů z domácích úloh a druhé části písemky, a to následovně:
- [00,10) bodů = známka F
- [10,12) bodů = známka E
- [12,14) bodů = známka D
- [14,17) bodů = známka C
- [17,20) bodů = známka B
- [20,25] bodů = známka A
V případě získání méně než 8 bodů z domácích úloh bude uděleno hodnocení X. Při tomto hodnocení není možné absolvovat závěrečnou písemku.
V případě nesplnění první části zkoušky bude uděleno hodnocení F bez ohledu na bodový zisk z druhé části písemky.
Při získání 12 a více bodů z DÚ bude po ukončení zkouškového období smazáno jedno hodnocení F z tohoto předmětu (tj. jeden neúspěšný pokus na Splněno/Nesplněno bude prominut) v případě, že se v hodnocení předmětu F u dotyčné osoby vyskytuje.
Používaný software
Všechny používané nástroje jsou již nainstalovány v učebně. Jestli chcete na cvičení používat vlastní notebook, zprovozněte si prosím níže uvedené nástroje ještě před prvním cvičením.
Případné problémy s instalací můžete psát do diskusního fóra.
Standardem pro tento semestr je překladač Glasgow Haskell Compiler (GHC) verze 8.0 nebo vyšší (doporučujeme instalovat nejnovější dostupný pro váš systém).
- Linux: Pokud je
ghc
verze nejméně 8.0 k dispozici v repozitářích vaší distribuce, instalujte přímo z repozitáře. - Windows, Mac OS X: Stáhněte GHC ze stránek GHC.
module add ghc
. Modul je nutné přidávat při každém přihlášení, příp. zanést do vašeho .bashrc. Domácí úlohy
- Každý týden bude zadán domácí úkol, za který bude možné získat 1-2 body.
- Domácí úkoly vypracovávejte samostatně. Spolupráce vícero lidí je zakázána. Viz disciplinární řád FI MU.
- Pokud přebíráte v řešení kód z jiného zdroje (internetový tutoriál, fórum, kniha, …), nezapomeňte příslušnou část kódu označit a uvést zdroj (vydáváte-li ji za svou vlastní práci, dopouštíte se plagiátorství a tím se vystavujete riziku disciplinárního stíhání).
- Většinou budou úlohy realizované formou odpovědníku, třikrát v průběhu semestru bude zadána větší úloha k odevzdání přes odevzdávárnu. V obou případech bude úkol odkazován z interaktivní osnovy.
- Ve všech případech bude úloha/odpovědník dostupný hned v úterý po přednášce a čas na vypracování úlohy bude končit ve středu tři týdny po zadání, abyste měli dostatek času absolvovat svá cvičení a látku si procvičit.
- Při vypracovávání domácích úkolů můžete používat interpret jazyka Haskell.
- Odpovědníky je možné zodpovědět pouze jednou (není-li u konkrétního úkolu uvedeno jinak), s časovým limitem 3 hodiny, a prohlídka odpovědníků je možná až po ukončení období pro odevzdávání. Spadne-li vám připojení v průběhu odpovídání, odpovědník je možné otevírat znovu, dokud neuplynou 3 hodiny od prvního otevření.
- Odpovědníky budou mít více podúloh, každá bude hodnocena samostatně desetinami bodu.
Úlohy typu naprogramujte funkci
- Součástí odpovědníků budou i úlohy typu naprogramujte funkci, v těchto případech se jedná o automaticky opravované úlohy.
- Textové pole v ISu podporuje syntaktickou kontrolu (vyžaduje JavaScript): pod odpovídacím polem byste měli vidět tlačítko pro kontrolu syntaxe. Kontrola syntaxe kontaktuje externí server, a tedy může mít zpoždění v řádu sekund. I přes kontrolu syntaxe je však silně doporučeno řešení vyzkoušet v interpretu, testy běží až po odevzdání.
- Pokud není v otázce řečeno jinak, můžete si definovat libovolně mnoho pomocných funkcí. Není-li uvedeno jinak, předpokládejte načtenou standardní knihovnu, vyhněte se proto jménům funkcí, která by vytvářela kolize (v případě pochybností si to odzkoušejte v interpretru, nebo kontrolou syntaxe).
- V případě špatné odpovědi se v prohlídce odpovědníku dozvíte, co bylo špatně (nešlo zkompilovat, typová chyba, liší se výstup od očekávaného, …). Pokud se jedná o výstup rozdílný od vzorového řešení, naleznete ve výstupu nejprve několik řádků s konkrétními vstupy a na posledním řádku pak konkrétní (lišící se) výstupy. Někdy však netestujeme přímo vaši funkci, ale používáme pomocnou funkci, proto výstupy nemusí úplně sedět; budeme se však snažit zachovat čitelnost.
- Mějte, prosím, trpělivost s ISem, vyhodnocování úloh není okamžité (řádově sekundy na úlohu) a pokud se sejde více úloh v jeden okamžik, tak se úlohy vyhodnocují postupně. Vyhodnocování probíhá i při otevírání prohlídky, takže i to bude mít zpoždění.
- Vyhodnocování úloh je časově omezené. Limity by měly být nastaveny tak aby nevyžadovaly optimální řešení, ale snažte se aby vaše řešení nebylo příliš neoptimální. Například pokud jde úlohu vyřešit snadno v lineárním čase a vaše řešení bude v exponenciálním čase, a kvůli tomu neprojde přes timeout, nemusíte dostat body.
- Pokud narazíte na nějaký problém s touto službou – například když u odpovědi máte, že server neodpovídá, nebo si myslíte, že jsme neuznali správné řešení (které vám v interpretu funguje!), napište do diskusního fóra nebo kontaktujte správce externí služby, kterým je Vladimír Štill.