Tato stránka popisuje, jak celý předmět vypadá a co od něj máte čekat.

Prosím, přečtěte si tento text pozorně.

Cvičení a přednáška

Protože předmět je zaměřen na praktické dovednosti, těžištěm výuky jsou cvičení. Každé cvičení ale potřebuje určité základy: vysvětlit základní koncepty a jejich pozadí.

Protože je těžké udržet synchronizaci mezi přednáškou a cvičením (přednáška je ob týden atd.) tak jsme se rozhodli nahradit obsah přednášky samostudiem.

Takže nejsou žádné přednášky a místo nich si přečtete dodané materiály před každým cvičením.

Před cvičením

Příprava před cvičením se skládá z přečtení dodaného textu a poté zodpovězení několika otázek. Text se bude zaměřovat na potřebné koncepty ze cvičení.

Pro každé cvičení bude kvíz, který musíte vyplnit před vlastním cvičením. Kvíz bude znám dopředu ale i tak důrazně doporučujeme, abyste si text přečetli celý. Průlet textem jen abyste našli odpovědi může postačovat k vyplnění kvízu ale pravděpodobně zanechá určité mezery, které mohou zkomplikovat chápání navazujících témat v průběhu semestru.

Prosím, pište vaše odpovědi stručně, zaměřte se na důležité body. Pokud budete vybírat odpověď z připraveného seznamu, vždy si zkontrolujte, jestli je odpověď jediná nebo je více možných odpovědí.

První kvíz bude pro Cvičení 02, tj. nikoliv pro úplně první cvičení v týdnu od 14. února.

Cvičení

Cvičení probíhají v počítačových laboratořích v IMPAKTu. Klidně si ale přineste váš vlastní notebook. Pokusíme se vám pomoci na něj nainstalovat Linux abyste mohli studovat, experimentovat a hrát si i doma.

Nejdůležitější pravidlo je: pokud si nevíte rady, ptejte se. Doopravdy. Jsme tu abychom vám pomohli, abychom vás navedli správným směrem. Nebojte se ptát.

Účast na cvičeních není povinná: pokud se neplánujete vůbec účastnit, prosím, zapište se do virtuálního cvičení.

Obsah cvičení bude na webu – pokud cvičení prošvihnete, všechny informace ke cvičení vždy na webu najdete.

Pro každé cvičení budou k dispozici učební výstupy abyste si mohli sami vyzkoušet, zda rozumíte všem důležitým částem cvičení. Ty budou vždy rozděleny do dvou skupin – znalost konceptů a praktické dovednosti. První se týká věcí, které byste měli umět vysvětlit nebo o nich hovořit (např. vysvětlit, co je to překladač). Druhé se týká věcí, které byste měli umět používat (např. vědět, jak spustit překladač).

Z každého cvičení také bude sada krátkých praktických úloh na vyřešení. Termín je 2 týdny po cvičení.

Jak kvíz před cvičením tak i krátké úlohy jsou povinné i v případ, že jste zapsáni na virtuální cvičení.

Hodnocení

Věříme, že nejdůležitější částí libovolného předmětu je naučit se něco nového a prozkoumat, jak věci fungují. Ale abychom vám mohli zapsat známku, musíme Vás taky vyzkoušet, abychom ověřili, co umíte.

Celkové hodnocení je složeno s následujících skupin.

  1. Kvízy před cvičením (každé cvičení).
  2. Krátké praktické úlohy (každé cvičení).
  3. Větší úloha na shellové skriptování.
  4. Větší úloha zaměřená na síťování a správu systému.
  5. Větší úloha na vývojářské nástroje.

První dvě budou zadávány a řešeny během semestru, poslední tři pak během zkouškového období.

Za každou skupinu obdržíte body, pro celkovou známku je pak budeme normalizovat na procenta (tj. každá skupina má stejnou váhu).

Abyste předmět úspěšně dokončili, musíte mít alespoň 50% z každé skupiny, výsledná známka je pak spočtena jako průměr těchto pěti skupin. Známka dobře bude zapsána za alespoň 50%, známka velmi dobře za 70 a více procent a výborně za více jak 85%.

Snažíme se udržet informace o hodnocení stručné a k věci. Pokusy o obcházení – např. přehnaně formalistickou interpretací pravidel – budeme penalizovat.

Odevzdávání kvízů a úloh

Všechny kvízy a úlohy musí být odevzdané skrz fakultní GitLab. Budete mít přístup k projektu v podstromu NSWI177 kam budete nahrávat vaše řešení.

Na řešení nahraná po termínu nebude brán zřetel.

Prosím, odpovídejte na kvízy česky, slovensky nebo anglicky.

Podrobnosti k odevzdávání budou vysvětleny na prvním cvičení.

Hodnocení kvízů a úloh

Většina úloh budou programovací úkoly: odevzdáte funkční program, který zkontrolujeme. Pro tyto úlohy budete od nás mít vždy sadu automatických testů která zkontroluje vaše řešení.

Tyto testy ale neslouží jako náhrada za přečtení zadání a napsání řádného řešení.

Tyto testy budou automaticky spouštěny GitLabem a je na vás, abyste si zkontrolovali jejich výsledky. Za pár týdnů také budete umět tyto testy pustit u sebe na počítači aniž byste museli čekat, až je za vás spustí Gitlab.

Pro většinu testů také dodáme hrubé bodové ohodnocení abychom vám pomohli lépe rozlišit, která část úkolu je ta důležitější. Takže budete vědět, že úloha je za X bodů a testy tyto body dále rozdělí.

Až budeme skutečně hodnotit vaše řešení, použijeme stejnou sadu testů jako je na GitLabu, ale také budeme hodnotit vaše řešení ručně.

Budeme dávat bonusové body za hezká řešení a budeme penalizovat řešení, která nejsou optimální i když procházejí testy. Typicky se to bude týkat řešení s kryptickými názvy proměnných, provádějící nadbytečné operace apod. V extrémních případech můžeme ohodnotit 0 body dokud není řešení přepracováno.

Budeme též penalizovat pokusy o obcházení testů.

U kvízů automatické testy jen kontrolují přítomnost odpovědi a základní formát (tj. že jste zadali číslo když bylo číslo očekáváno, nikoliv že je číslo skutečně správně).

Kontakt

Pokud se chcete na něco zeptat, nejlepší čas a místo je pochopitelně během cvičení.

Technické dotazy

Pokud máte dotaz k některému z probíraných témat nebo příkladů, otevřete prosím issue v tomto projektu na GitLabu.

Nepište e-mail přímo vašemu cvičícímu. Nebudeme na tyto e-maily reagovat.

Pokud se váš dotaz týká některé z hodnocených úloh a máte pocit, že byste sdělovali řešení, označte issue jako confidential.

Důvody pro tento přístup jsou dva. Budete alespoň více používat GitLab a navíc je to efektivní způsob jak sdílet odpovědi. Čili, nejdříve projděte existující dotazy a pak se ptejte.

Ostatní dotazy

Obecně preferujeme, pokud používáte GitLab Issues na vše, protože je to pro nás jednodušší. Označením issue jako confidential zajistí, že ji uvidí jen vyučující.

Můžete se samozřejmě ozvat i přímo svému cvičícímu, ale otevřením issue se typicky zkrátí čas na odpověď.

Pokud potřebujete poslat e-mail všem vyučujícím, e-mailový alias teachers-nswi177@d3s.mff.cuni.cz je tu pro vás.

Zvláštní případy (pozdní odevzdání apod.)

Nebudeme brát zřetel na pozdě odevzdané kvízy ani jiné úlohy. Zdůvodnění: pokud prošvihnete kvízy z jednoho nebo dvou týdnů, nemělo by to nijak ovlivnit celkovou známku a ušetří to všem spousty času, že se nebudeme muset domlouvat na nových termínech atd. Na splnění velkých úloh bude pět až šest týdnů takže to by mělo být dost času pro naplánování s koncem semestru.

Ale víme, že ne vždy je možné vše dopředu naplánovat. Pokud máte pocit, že vaše situace vyžaduje speciální přístup, prosím, ozvěte se nám co nejdříve a domluvíme podrobnosti.

Buďte sví …

… a neopisujte.

Cílem tohoto předmětu je seznámit vás s Linuxem a naučit vás jak v něm efektivně pracovat. Odevzdávání řešení opsaných z Internetu tento cíl nesplní. Tohle také není týmový předmět – diskuze nad možnostmi řešení je v pořádku, odevzdání společného kódu není.

Cizí kód musí být jasně označen, použití cizího kódu bez citace (URL ale obvykle stačí) je považováno za podvod. Pokud se rozhodnete zkopírovat cizí kód, uveďte, kterou část jste zkopírovali a proč. Pokud se rozhodnete cizí kód upravit na své řešení, označte, které části jste upravovali a proč.

Pokud budete kopírovat z cizího řešení, uvažte, proč tak děláte. Každá úloha po vás chce prokázat určité dovednosti, ale může taky vyžadovat extra práci, jen abyste mohli vůbec začít úlohu řešit. Pokud vám existující kód pomůže jen s tím druhým, je to v pořádku. Prokazování dovedností někoho jiného není.

Zde je drobný příklad pro úlohu, kdy máte naimplementovat program, který určí, zda je číslo zadané uživatelem prvočíslem.

Pokud zkopírujete kód z této stránky, nesplnili jste cíl úlohy: naprogramovat daný algoritmus. Budete to také znamenat okamžité nesplnění předmětu.

Pokud zkopírujete kód z této stránky a přidáte vlastní implementaci pro prvočíselnost, bude to v pořádku (pokud uvedete zdroj). Proč? Protože zkopírovaný kód přímo nesouvisí s úlohou. Úlohu jste si rozšířili (a učinili ji i více praktickou) a pořád jste dokázali, že umíte naprogramovat požadovaný algoritmus.

Pokud na kódu budete spolupracovat se spolubydlícím, pak neodevzdáváte vlastní práci.

Pokud se spolubydlícím proberete, jak tuto úlohu vyřešit a pak každý napíše vlastní implementaci, je to v pořádku.

Pokud si nejste jisti, zeptejte se.