Poslední aktuality jsou v issue #112 (z 15. dubna).
Tato stránka popisuje, jak budou vypadat testy na cvičeních a časem bude obsahovat i popis (velké) domácí úlohy. Malé domácí úlohy jsou zmíněné u příslušných cvičení.
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 |
---|---|
08 (7. dubna - 11. dubna) | T1: Verzovací systém Git |
12 (5. květa - 7. května + 15. května) | T2: Skriptování v shellu |
14 (19. května - 23. května) | T3: 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 čtvrteč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.
Vaše řešení bude odevzdáno prostřednictvím GitLabu nebo jiného Gitového repozitáře: ujistěte se, že umíte provést klonování prostřednictvím příkazové řádky.
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.
Jakýkoli pokus o obejití výše uvedených pravidel (např. pokus o vyhledávání na StackOverflow 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.
Poznámky k úloze na Git CLI
Očekáváme, že zvládnete následující úlohy pomocí Gitu na příkazové řádce
(některé budete muset provádět na vzdáleném stroji linux.ms.mff.cuni.cz
).
- Nastavit si prostředí Gitu (autor a e-mail)
- Naklonovat repozitář (z
gitolite3@linux.ms.mff.cuni.cz
nebo z GitLabu nebo 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
Ujistěte se, že můžete klonovat z gitolite3@linux.ms.mff.cuni.cz
když jste
na školních počítačích. Bude dostupná jen autentikace veřejným klíčem
(tj. nahrajte vaše klíče do keys/key.[0-9].pub
souborů ve vašem
repozitáři, jak je popsáno na cvičení 05, ještě před zkouškou).
Písemka se zaměřuje na práci s Gitem. Cílem nebude napsat celý skript ale budete pracovat s repozitářem, ve kterém bude následující skript pro tisk jednoduchý sloupcových grafů v terminálu. 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.
Malé domácí úkoly
- První (reakce na fóru) (do 2025-03-09)
- Druhý (Git po SSH s klíči) (do 2025-03-23)
- Třetí (regulární výrazy) (do 2025-05-04)
- Čtvrtý (procesové signály) (do 2025-05-11)