We believe that the most important aspect of any course is to learn new things and explore how they work. However, for a university course we also need to test this process to allow us to evaluate your skills when awarding the credits.

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.

Grading

For each lab (i.e. every week) there will be several graded tasks that you need to complete in order to get the credit. Note that at this point we expect there will be 14 labs during the semester.

For each lab, you can get up to 100 points. We require that from each lab you get at least 20 points. The reason is that we do not want you to completely skip some of the topics.

The final grade will be then computed as average number of points for each lab (or sum gathered across all labs). To pass the course you also need to have the required minimum from each lab.

If you fail to get at least 20 points from some of the labs, we will announce second-try tasks at the end of the semester (but one try only!). These will graded only passed/failed (i.e. no extra points to alter the grade).

The deadline for the tasks will be always 3 weeks after the labs were announced, on Tuesday noon. Solutions submitted after the deadline will not be accepted.

We will evaluate the state of the given file at the time of the deadline. Therefore, you can upload incremental solutions as often as you wish.

Hodnocení

Z každého cvičení (tedy z každého týdne) bude několik hodnocených úloh, které musíte splnit, abyste mohli předmět dokončit. Zatím počítáme s obvyklými 14 cvičeními během semestru.

Z každého cvičení můžete získat až 100 bodů. Vyžadujeme, abyste z každého cvičení měli alespoň 20 z nich, protože nechceme, abyste některé z témat úplně vynechali.

Závěrečná známka bude pak určena jako průměr bodů z jednoho cvičení (resp. součet získaných ze všech cvičení). Pro splnění předmětu je ale stále nutné mít minimální množství bodů z každého cvičení.

Pokud se vám z některého cvičení nepodaří získat těch minimálních 20 bodů, vypíšeme opravné úlohy na konci semestru (ale jen jeden pokus!). Tyto budou hodnoceny pouze splnil/nesplnil (tj. bez bodového zisku a tudíž neovlivní známku).

Termín pro všechny úlohy bude vždy 3 týdny po cvičeních, v úterý v poledne. Jakákoliv řešení odevzdaná po termínu nebudou hodnocena.

Budeme hodnotit stav daného souboru v okamžiku deadlinu. Takže můžete nahrávat řešení postupně včetně nekompletních.

UPDATE: It is possible to submit a scripting task after deadline for a second round of evaluation. The deadline for the resubmission is July 17th, AoE (Saturday!). There will be no extensions and no other possibility for any kind of resubmission. Plan accordingly, please.

We will provide a full list of scripting tasks (i.e. tasks eligible for resubmission) at the end of the semester on a separate page.

We will then re-test your submission and assign points. These resubmission will be evaluated using the same criteria and generally the same tests as the first tasks. We may split some tests that were testing too many things and we may subtract more points for non-functional related issues (e.g. ShellCheck, bad use of temporary files etc.).

The maximum amount of points you can get for the resubmitted solution will be lowered to make it advantageous to submit scripts at the first try, i.e. for those that invested the time during the semester (i.e., according to the original rules).

The capping of the maximum will be done in such way that you can get up to 85% of the lost points. We will compute this for each task separately based on your existing score from the semester.

For practical reasons, please, submit the solution into directory number increased by 50. For example, task 07/web_machine_status.sh shall be submitted as 57/web_machine_status.sh. We will not re-test solutions in the original directories.

Higher points from both submissions will be taken into account (after the capping).

In other words, the points for a given task will be computed as follows. FIR means points for the first try, MAX means maximum available points and RSB mean points for the resubmission (without capping).

max(FIR, min(RSB, FIR + 0.85 * (MAX - FIR)))

Example: task for 40 points, you have 24. On second submission, we will cap your points at 38 (you lost 16, you can improve by at most 14).

Total score for each lab will be sum of the above (i.e. taking the better of the first submission and the resubmission for each task).

We will publish a set of tests for these tasks later on (probably during the examination period).

It is possible to submit even if you have not submitted the task in the first run at all (i.e. you do not have to have file N/script.sh to submit (N+50)/script.sh).

There is no need to submit all assignments from a specific labs. Only submit assignments that you want to have regraded (i.e. those that you have updated). If you want us to regrade your 07/file_preview.sh you do not need to upload 57/extract_snippets.sh if you haven’t made any changes in that and so on.

AKTUALIZACE: Skriptovací úlohy bude možné odevzdat na druhé vyhodnocení (tj. odevzdat po původním termínu). Termín pro znovu-odevzdání je 17. července, KnZ (sobota!). Pro tento termín nebudou žádná prodloužení ani žádná další možnost odevzdání. Plánujte věci podle toho, prosím.

Kompletní seznam skriptovacích úloh (resp. úloh, které je možné odevzdat znovu) dodáme na konci semestru na zvláštní stránce.

Po odevzdání úlohy zkontrolujeme a přidělíme body. Tento druhý pokus bude hodnocen podle stejných kritérií a použijeme v podstatě stejné testy. Některé testy možná rozdělíme na menší a pravděpodobně budeme strhávat více bodů za prohřešky, které se netýkají funkce jako takové (tj. např. ShellCheck, špatná práce s dočasnými soubory atd.).

Maximální množství bodů, které bude možné získat za druhý pokus bude snížen, abychom zvýhodnili ty z Vás, kteří odevzdali funkční řešení na první pokus a věnovali se úlohám už během semestru (tj. podle původních pravidel).

Omezení na maximální možný zisk bude tak, že budete moci získat až 85% ze ztracených bodů. Toto budeme počítat pro každou úlohu samostatně (podle výsledku z prvního pokusu).

Z praktických důvodů, prosím, odevzdávejte úlohy do adresáře, jehož číslo je zvýšeno o 50. Například úloha 07/web_machine_status.sh by měla být odevzdána do souboru 57/web_machine_status.sh. Řešení v původních adresářích nebude testovat.

Budeme pak sčítat vyšší hodnocení (po 85% ořezu) z obou pokusů.

Jinými slovy, body za úlohu budou spočítány následujícím způsobem. PRV znamená body za první odevzdání, MAX znamená maximum možných a DRU jsou body z druhého pokusu (bez ořezu)

max(PRV, min(DRU, PRV + 0.85 * (MAX - PRV)))

Příklad: úloha za 40 bodů, máte 24. Při druhé odevzdání bude limit 38 bodů (přišli jste o 16, můžete se zlepšit nejvíce o 14).

Součet za každé cvičení bude suma výše uvedeného (tj. vždy to lepší hodnocení pro každou úlohu).

Testy pro druhé odevzdání zveřejníme později (někde během zkouškového).

Úlohu je možné odevzdat i v případě, že jste původní úlohu neodevzdali vůbec (tj. není nutné mít soubor N/script.sh abyste mohli odevzdat (N+50)/script.sh).

Není potřeba odevzdávat úlohy, které nechcete znovu hodnotit (tj. odevzdávejte jen aktualizovaná řešení). Pokud chcete znovu vyhodnotit 07/file_preview.sh není nutné odevzdávat 57/extract_snippets.sh pokud by bylo beze změny atd.

Points total 1400
Excellent (1) > 1260 (90 %)
Very good (2) > 1050 (75 %)
Good (3) > 700 (50 %)
Bodů celkem 1400
Výborně (1) > 1260 (90 %)
Velmi dobře (2) > 1050 (75 %)
Dobře (3) > 700 (50 %)

Update: please note that we will always look at border-line cases manually. Thus, for example, if you have 1250 points, we will certainly look whether it will be possible to find somewhere those missing 10 points.

There will be plenty of time to discuss your solutions after task resubmission before we enter the final grades into SIS.

If you need your grade in SIS earlier for whatever reasons, let us know in advance.

Aktualizace: počítejte s tím, že na hraniční případy se vždy ještě ručně podíváme. Takže pokud máte například 1250 bodů, určitě se podíváme, jestli těch chybějících 10 bodů někde nenajdeme.

Po odevzdání druhého pokusu bude ještě dost času probrat vaše řešení a jeho hodnocení před zápisem známky do SISu.

Pokud potřebujete mít známku zapsanou dříve z libovolného důvodu, ozvěte se nám dostatečně brzy.

Be original …

… and do not cheat.

The purpose of this course is to get acquitted with GNU/Linux and learn how to work in it efficiently. Therefore, submitting solution copied from the Internet will not fullfil this goal.

If you submit someone else’s solution (either of your colleague or copied from the Internet) you will receive no points for that particular task. Second such offense will mean immediate failing of this course.

Buďte sví …

… a neopisujte.

Cílem tohoto předmětu je seznámit vás s GNU/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í.

Pokud odevzdáte cizí řešení (ať už vašeho spolužáka nebo zkopírované z Internetu), získáte za něj 0 bodů. Další takový pokus bude znamenat okamžité nesplnění předmětu.

Submission to GitLab

You will submit all solutions via MFF GitLab.

For each task we will specify to which file to write your solutions.

Ensure you use the right filename as otherwise we will not be able to find your solution (hence, wrong filename is the same as if you have not submitted the solution at all). Please, understand that what from your point of view seem like a trivial omission (e.g. a typo in the filename) does not necessarily scale for us (given the number of students that are enrolled in this course).

Note that some of them will be source-code oriented, some will be more theoretical as we expect a textual answer.

For the programming-related tasks, we expect you will write your solution into the file directly.

For quizzes, please, modify the Markdown file and fill-in your answer in the blocks marked **[A1]** your answer goes here **[/A1]**. This way, we can easily automate processing of your answers.

Note that after each commit, GitLab will execute automated tests of your solution and report the result. Following screenshots shows how to find the test report.

Odevzdávání přes GitLab

Všechna řešení budou odevzdávána přes MFF GitLab.

Pro každou úlohu bude určeno do kterého souboru zapíšete vaše řešení.

Ujistěte se, že jste skutečně soubor správně pojmenovali, protože jinak ho nenajdeme (tudíž, špatný název souboru v důsledku znamená jako byste úlohu vůbec neodevzdali). Uvědomte si, prosím, že to, co vypadá jako drobnost z vaší strany (např. překlep v názvu souboru) nemusí nutně škálovat pro nás jako cvičící (vzhledem k množství letos zapsaných studentů).

Některé úlohy budou programovací, některé více teoretické, protože budeme chtít slyšet textovou odpověď.

Pro programovací úlohy očekáváme, že řešení přímo napíšete do daného souboru.

U kvízů budete upravovat Markdownový soubor a odpovědi do něj budete rovnou zapisovat. A sice do bloků označených **[A1]** tady je vase odpoved **[/A1]**. Tak budeme moci Vaše odpovědi jednoduše ohodnotit.

Po každém commitu GitLab spustí automatické testy vašich řešení o ohlásí výsledek. Následující screenshoty ukazují, kde výsledek najít.

Note that for quizzes, the automated tests merely check that the answer is present and that it contains a reasonable value (i.e. that number is present where number is expected etc.).

Please, answer the quizzes either in English, Czech or Slovak language.

U kvízů testy jen kontrolují přítomnost odpovědi, popř. rozumnou hodnotu (např. že u číselné odpovědi je odpovědí číslo).

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

Special cases …

… such as illness will be handled individually. Please, contact us via teachers-nswi177@d3s.mff.cuni.cz for such cases.

Speciální případy …

… jako nemoci budeme řešit individuálně. V takovém případě se nám, prosím, ozvěte přes teachers-nswi177@d3s.mff.cuni.cz.