Tato stránka popisuje, jak budou vypadat testy na cvičeních a časem bude obsahovat i popis (velké) domácí úlohy.
Podívejte se, prosím, na stránku průvodce předmětem, kde najdete podrobnosti o tom, jak funguje hodnocení jako takové.
Testy na cvičení
Toto je rozpis testů na cvičení. Test proběhne na začátku cvičení (doba trvání testu je 45 minut).
| Týden (datum) | Téma |
|---|---|
| 09 (13. dubna - 17. dubna) | T01: Verzovací systém Git |
| 12 (4. května - 7. května + 15. května) | T02: Skriptování v shellu |
| 14 (18. května - 22. května) | T03: Sestavovací nástroj make |
Očekává se, že se dostavíte na cvičení, na které jste zapsáni.
Protože 8. května je státní svátek, písemka T2 bude pro páteční cvičení odložena o týden. Víme, že to není nejlepší řešení, ale rozvrh pro tenhle semestr v podstatě nemá žádný celý týden (tj. kdy probíhá výuka ve všech dnech) v druhé polovině semestru.
Můžete používat naše webové stránky, off-line manuálové stránky a můžete nahlížet do svých poznámek a řešení příkladů, které jsou součástí našich materiálů.
Nesmíte používat žádná jiná zařízení (mobilní telefony, vlastní notebooky atd.), nahlížet do jiných on-line zdrojů (stroje budou mít stejně omezený přístup k internetu) ani sdělovat své řešení ostatním studentům (a naopak).
Jinými slovy, testy na cvičení vyžadují, abyste dokázali řešit úkoly samostatně pouze s pomocí technické dokumentace.
Prosím, nechte svoje zařízení ve vašich batůžkách během zkoušky a odložte batohy vpředu u tabule nebo na jiném viditelném (ale nedosažitelném) místě, abychom mohli zajistit rovné podmínky pro všechny. Moc děkujeme!
Jakýkoli pokus o obejití výše uvedených pravidel (např. pokus o použití AI asistenta na mobilním telefonu) znamená okamžité neúspěšné ukončení předmětu.
Pokud zadání nerozumíte, můžete samozřejmě požádat učitele o dovysvětlení. Pokud je zřejmé, že se ubíráte správným směrem a potřebujete jen trochu postrčit, můžeme vám i lehce poradit.
Prosím, podívejte se též na obecné zásady v průvodci předmětem.
Průběh zkoušky
Vaše řešení bude odevzdáno prostřednictvím Gitového repozitáře: ujistěte se, že umíte provést klonování prostřednictvím příkazové řádky.
Písemka proběhne na školních počítačích. Během zkoušky budete používat dočasný účet: nebudete mít přístup k žádným vašim souborům z domovského adresáře na AFS. Na začátku zkoušky si vygenerujete nový SSH klíč, nahrajete ho na náš keyserver a potom si naklonujete Gitový repozitář s vlastní písemkou.
Extra tip: nechte váš dočasný SSH klíč bez passphrase. Bude stejně funkční jen během 45 minut zkoušky a bez passphrase budou síťová akce přeci jen rychlejší.
Dočasný účet na školních strojích bude připraven na zkoušku. Budou k dispozici určité zkratky (vizte, prosím, níže) pro snazší přístup k repozitářům, které budete potřebovat. Pro vlastní nastavení budete muset provést nějaké akce navíc.
Protože budete nahrávat vaše řešení do Gitového repozitáře v Gitolite (s ním
jsme pracovali během cvičení 05), budete mít k dispozici alias
exam. Takže budete moci klonovat repozitáře jen pomocí volání
git clone exam:REPO
namísto
git clone gitolite3@linux.ms.mff.cuni.cz:REPO
Podobně, pro nahrávání vašeho SSH klíče (který si vygenerujete na začátku zkoušky) budete moci použít zkratku
ssh-copy-id keyserver
namísto
ssh-copy-id -p 2222 LOGIN@linux.ms.mff.cuni.cz
Budete mít též k dispozici přístup k repozitáři config-LOGIN (ale jen pro
čtení), kde si budete moci uložit vaše úpravy shellu a Gitu (např. aliasy,
vlastní prompt apod.).
Do config-LOGIN si můžete též uložit vaše poznámky, takže si je nemusíte
tisknout. Neukládejte tam nic, co by mohlo porušovat pravidla předmětu (to
například zahrnuje AI agenta nebo řešení zkoušky od kolegy). Prosím, udržte
velikost tohoto repozitáře v rozumných mezích (pod 5MB). Děkujeme.
Detailní informace o repozitáři config-LOGIN je na samostatné
stránce.
Můžete zkusit spustit ssh-copy-id -p 2222 LOGIN@linux.ms.mff.cuni.cz
klidně před zkouškou pro vyzkoušení, ale stejně si budete muset během
zkoušky vygenerovat nový klíč.
Poznámky k úloze na Git CLI
Pokyny ke zkoušce budou vytištěné. Budou obsahovat i nápovědu k vygenerování SSH klíče a jak ho nahrát na náš keyserver.
Očekáváme, že zvládnete následující úlohy pomocí Gitu na příkazové řádce.
- Nastavit si prostředí Gitu (autor a e-mail)
- Naklonovat repozitář (z
gitolite3@linux.ms.mff.cuni.cznebo obecně přes HTTPS) - Vytvořit commit
- Vytvořit větev
- Přepínat mezi větvemi
- Zmergovat větev (a vyřešit případné konflikty)
- Nahrát změny (větve) na server
Nebudete muset napsat žádný skript tzv. od nuly, ale budete pracovat s repozitářem obsahujícím následující skript pro tisk jednoduchých sloupcových grafů do konzole. Budete v něm ale dělat drobné změny (třeba opravy překlepů), na správné místo v kódu vás ale vždy navedeme.
import argparse
import sys
def parse_config():
args = argparse.ArgumentParser(description='Console bar plot')
args.add_argument('--columns', default=60, type=int, metavar='N')
return args.parse_args()
def load_input(inp):
values = []
for line_raw in inp:
line = line_raw.strip()
if line.startswith('#') or not line:
continue
try:
val = float(line)
except ValueError:
print(f"WARNING: ignoring invalid line '{line}'.", file=sys.stderr)
continue
values.append(val)
return values
def print_barplot(values, scale, symbol):
for val in values:
print(symbol * round(val / scale))
def main():
config = parse_config()
values = load_input(sys.stdin)
if not values:
sys.exit(0)
coef = max(values) / config.columns
print_barplot(values, coef, '#')
if __name__ == '__main__':
main()
Kvízy
Kvízy budou na cvičeních 02, 03, 04, 05, 06 a 07 (a 08 pro páteční paralelky).
Malé domácí úkoly
- První (reakce na fóru) (do 2026-03-08)
- Druhý (Git po SSH s klíči) (do 2026-03-22)
- Třetí (regulární výrazy) (do 2026-05-03)
- Čtvrtý (procesové signály) (do 2026-05-10)