Tato stránka popisuje, jak bude vypadat závěrečná zkouška. Obecné informace o hodnocení jsou na samostatné stránce.

Úspěšné složení této zkoušky je podmínkou pro získání zápočtu.

Ujistěte se, že jste nahráli veřejný klíč do vašeho repozitáře s úlohami.

Účast na zkoušce je možná jen pokud již máte dost bodů na splnění předmětu (ale se zápisem známky počkáme až po posledním deadline, takže si můžete známku vylepšit ještě po zkoušce).

Závěrečná zkouška se bude konat v laboratořích IMPAKTu/Rotundě, kde budete muset používat zdejší počítače. Využít vlastní zařízení není možné.

Během zkoušky nebudete mít přístup k internetu. Budete moci používat svůj $HOME, budete mít přístup k našemu GitLabu a také k materiálům ze cvičení. Kromě toho budete mít přístup k místním manuálovým stránkám a poskytneme vám dokumentaci standardní knihovny Pythonu. Používání jakýchkoli jiných zdrojů (např. mobilních telefonů, notebooků nebo jiných on-line zdrojů) je zakázáno a bude mít za následek okamžité nesplnění předmětu.

Bude třeba splnit 4-5 drobných úloh. Naším záměrem je vytvořit jednoduché úlohy bez jakýchkoliv záludností a jejich velikost má být taková, abychom my, učitelé, byli schopni vyřešit každou úlohu během 2-3 minut.

Úlohy se budou týkat hlavních témat tohoto předmětu a očekáváme, že budete schopni připravit kostru řešení pro všechny z nich. Nebudeme vyžadovat dokonalé funkční řešení všech úloh, ale nedovolujeme úplně přeskočit více jak jednu úlohu.

Zkouška je plánována na 2 hodiny (120 minut). Očekáváme, že většina z vás bude schopna dokončit řešení do 30 minut (pokud nad jednou úlohou strávíte více než 30 minut, je poměrně velká pravděpodobnost, že něco děláte velmi špatně – neváhejte se zeptat o dovysvětlení zadání nebo i malou pomoc).

I když pro některé úlohy poskytneme automatizované testy, vaše řešení budeme během zkoušky vždy kontrolovat ručně. Pokud bude řešení obsahovat závažné chyby, můžeme vás požádat o jejich vysvětlení nebo opravu.

Zkouškové termíny vypíšeme během celého června. Všechny termíny jsou stejné, nemusíte si vybírat ten, který pořádá “váš” učitel ze cvičení.

Na zkoušku jsou dva pokusy. Dodatečné termíny v září budou otevřeny pouze ve výjimečných případech.

Příprava na zkoušku

Před příchodem ke zkoušce nahrajte svůj veřejný SSH klíč z počítače IMPAKT/Rotunda do repozitáře s úlohami jako exam/lab.pub.

Tenhle klíč použijete pro stažení vlastního zadání, takže se ujistěte, že máte i soukromou část klíče.

AKTUALIZACE: můžete také vyzkoušet, že můžete naklonovat tento repozitář.

ssh://gitolite3@lab.d3s.mff.cuni.cz:22177/testing.git

Ujistěte se, že klonujete ze stroje v Rotundě/IMPAKTu. To lze zkontrolovat i vzdáleně, prostě se jen předtím SSHčkněte to Rotundy.

Účelem zkoušky je ověřit základní znalosti hlavních konceptů. V ideálním případě byste měli být schopni přijít ke zkoušce bez další přípravy – naším cílem je ověřit znalosti, které si, jak doufáme, budete pamatovat déle, než je doba trvání tohoto předmětu.

Pokud se chcete na zkoušku připravit, doporučujeme projít si hodnocené úlohy, protože zkouška bude vypadat podobně. U každého cvičení je také část Učební výstupy, která shrnuje, co byste měli umět vysvětlit a sami udělat. Výsledky jsou poměrně podrobné, ale zachycují naprosté minimum, které si, jak doufáme, z tohoto předmětu odnesete.

AKTUALIZACE: přichystali jsme speciální stránku se všemi učebními výstupy, která může zjednodušit hledání, na kterém cvičení se probíralo konkrétní téma.

Jestli byl váš klíč exam/lab.pub rozpoznán můžete jednoduše vyzkoušet tím, že se přihlásíte jako uživatel exam na stroj lab.d3s.mff.cuni.cz na port 22177 (klíče aktualizujeme každou hodinu). Budete uvítání svým GitLabovím jménem a SSH sezení bude ukončeno.

[LOGIN@u-pl1 ~]$ ssh -p 22177 -T exam@lab.d3s.mff.cuni.cz
Hello, @LOGIN

(Pokud se vás to zeptá ne heslo, klíče nebyl rozpoznán (vizte výše o jejich aktualizacích). Pokud se tam přihlásíte ze svého laptopu, pravděpodobně jste nahráli do repozitáře špatný klíč.)

Ukázková úloha

Napište shellový skript, který vypíše celkovou velikost Podmanových obrazů (images).

Vaše řešení může ignorovat skutečnost, že kvůli skládání obrazů (a tedy sdílení společných vrstev) mohou být uváděné velikosti ve skutečnosti větší než je skutečně obsazené místo na disku. Jinými slovy, klidně jen sečtěte čísla uvedená v podman images (všimněte si, že jsou uváděna v jednotkách čitelných pro člověka a liší se mezi jednotlivými obrazy).

Mnoho podpříkazů u podman přijímá argument --format, který umožňuje uživateli určit výstupní formát. Podpříkaz podman --help nabízí stručný přehled funkcí, ale odpovídající manuálová stránka podman-subcommand je mnohem podrobnější.

Vypište velikost v megabajtech (případné zaokrouhlování není potřeba řešit).

Nápověda: podman images a podman image inspect.