Zkoušku z předmětu NMIN112 Programování 2 můžete absolvovat i bez předchozího získání zápočtu. Předmět budete mít úspěšně splněn, pokud z něj získáte v libovolném pořadí zápočet i zkoušku.
Zkouška má povinnou písemnou a doplňkovou ústní část. O konání ústní části můžete sami požádat, pokud si chcete zlepšit hodnocení z písemné části, nebo o konání ústní části zkoušky může rozhodnout vyučující. Pokud vy ani vyučující nepožádáte o konání ústní části, zkouška končí výslednou známkou z písemné části. Hodnocení 1 již nelze zlepšit. Bude-li vaše písemka hodnocena známkou 2 nebo 3 a budete mít zájem o konání ústní části, dostanete možnost ústní část zkoušky vykonat. Výsledná známka se pak bude skládat z hodnocení písemné a ústní části: může být tedy lepší, ale samozřejmě také horší než samotná známka z písemky. Bude-li vaše písemka hodnocena známkou 4, je celá zkouška automaticky hodnocena 4, ústní část zkoušky se nekoná a musíte se přihlásit na opravný termín.
K písemné části zkoušky se přihlaste v SISu nejpozději 24 hodin před začátkem zkoušky. Pokud byste se rozhodli nejít na zkušební termín, na který jste přihlášeni, musíte se odhlásit nejpozději 3 dny předem (72 hodin). Toto časové omezení slouží k tomu, aby se na uvolněná místa mohli přihlásit další čekající zájemci (aby se o tom včas dozvěděli a mohli se na zkoušku připravit). Případné pozdější odhlášení ze zkoušky již musíte zdůvodnit a doložit, jinak vám zkušební termín propadne.
Pět zkušebních termínů (písemky) se uskuteční ve zkouškovém období v květnu a v červnu, a to vždy v úterý 26.5., 2.6., 9.6., 16.6., 23.6. v posluchárně N1 (IMPAKT). Jeden dodatečný zkušební termín určený pro opravné zkoušky se bude konat po prázdninách pravděpodobně v úterý 8.9.2026 (bude vypsán později).
Písemka se skládá ze čtyř menších úloh podobného charakteru a podobné náročnosti, jakou měly úlohy řešené v průběhu semestru na „teoretickém“ cvičení. Úlohy vyžadují znalost učiva z přednášky a schopnost aplikovat získané znalosti a dovednosti při samostatném řešení zadaných problémů. V některé úloze stačí uvést pouze slovní popis algoritmu, většinou bude vedle slovního popisu požadována také funkce v Pythonu. Programový kód řešení úlohy ovšem bude poměrně krátký, obvykle v rozsahu 10 - 20 řádků na úlohu. Bez použití počítače ho samozřejmě nemůžete odladit, takže závady v syntaxi nebo drobná opomenutí nejsou na závadu. Ve všech úlohách se hodnotí nejen správnost, ale také efektivita zvoleného řešení. Časovou a prostorovou složitost algoritmu musíte nejen správně uvést, ale také odvodit nebo zdůvodnit.
Na písemku si doneste svoje psací potřeby, žádné další pomůcky nejsou povoleny, papíry na psaní dostanete na místě. Přečtěte si pozorně zadání a dodržujte ho, nezapomeňte zodpovědět všechny otázky uvedené v zadání. V případě jakýchkoliv nejasností v zadání úloh se na místě zeptejte. Vlastní zkouška bude trvat 90 minut čistého času, dohromady s počátečním vysvětlením úloh a zodpovězením případných dotazů a se závěrečným odevzdáváním vypracovaných řešení počítejte s celkovou délkou zkoušky kolem 120 minut. Řešení každé úlohy bude hodnoceno v rozsahu 0 až 10 bodů, celkové získané body se následně převedou na známku takto: 1 za 30 bodů, 2 za 25 bodů, 3 za 20 bodů.
Hodnocení své písemné práce se dozvíte ve středu do 19:00 hod. prostřednictvím vyhodnocovacího systému ReCodEx. Pro tento účel se ještě před zkouškou přihlaste v ReCodExu do skupiny označené jako „Programování 2 – zkouška“. Svoji známku z písemky uvidíte jako ohodnocení fiktivní úlohy s názvem odpovídajícím datu příslušného zkušebního termínu. V poznámce k hodnocení se dozvíte, kolik bodů jste získali za jednotlivé úlohy (v tom pořadí, v jakém byly úlohy zadány). V případě hodnocení písemky známkou 1 nebo 4 dostanete tuto známku zároveň do SISu jako výslednou známku ze zkoušky.
Jestliže z písemky dostanete známku 2 nebo 3 a budete mít zájem o doplňkovou ústní část zkoušky, oznamte to prosím hned po zveřejnění výsledků nejpozději do 21:00 hod. mailem na adresu pavel.topfer@mff.cuni.cz. V mailu uveďte i svoje případné časové omezení, kdy na ústní zkoušku nemůžete přijít. Následně dostanete mailem pozvání na konkrétní hodinu, kdy se vaše ústní zkouška uskuteční. Ústní zkoušky se budou konat vždy ve čtvrtek (téhož týdne jako písemka) v budově MFF na Malostranském náměstí v pracovně přednášejícího ve 4. patře vlevo, číslo dveří 404. Pokud do středy 21:00 hod. nenapíšete, znamená to váš souhlas s navrženou známkou z písemky a ještě ve středu večer dostanete známku 2 nebo 3 z písemky zapsanou do SISu jakožto výsledné hodnocení zkoušky.
Pokud nemáte zájem o ústní část zkoušky, ale chtěli byste se seznámit s hodnocením své opravené písemky, pošlete rovněž v stejném termínu mail (jasně v něm ale uveďte, že nemáte zájem o ústní zkoušku).
Typická skladba úloh v písemné části zkoušky:
1. Vysvětlit některý ze standardních algoritmů (v rámci sylabu – co bylo na přednáškách), uvést jeho účel a použití, popsat jak funguje (slovní popis nebo programový kód), odvodit/zdůvodnit jeho asymptotickou časovou a prostorovou složitost.
2. Navrhnout efektivní algoritmus na řešení jednoduché úlohy s čísly, posloupnostmi, maticemi apod. – hodnotí se nejen správnost řešení, ale také jeho časová a prostorová složitost. Algoritmus slovně popsat a vysvětlit, případně ho zapsat také ve tvaru funkce v Pythonu. Odvodit/zdůvodnit jeho asymptotickou časovou a prostorovou složitost.
3. Zapsat funkci v Pythonu na provedení požadované operace s lineárním spojovým seznamem (případně s více seznamy).
4. Algoritmicky vyřešit úlohu na rekurzivní generování nebo na procházení binárním stromem nebo grafem do hloubky nebo do šířky. Řešení popsat slovně a zapsat ho také ve tvaru funkce v Pythonu. Odvodit/zdůvodnit jeho asymptotickou časovou složitost.