Zkouška z předmětu NMIN112 Programování 2

 

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. Pokud akceptujete hodnocení z písemné části zkoušky, celá zkouška tím pro vás končí. S hodnocením 1 jistě budete souhlasit. Je-li vaše písemka hodnocena známkou 2 nebo 3 a budete mít zájem o konání ústní části, abyste si výslednou známku ze zkoušky zlepšili, 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. Ústní část zkoušky se může konat také na základě rozhodnutí zkoušejícího, i když o ni zkoušený student nepožádá – k tomu ovšem dochází spíše výjimečně, zpravidla v případě nějakých pochybností. Bude-li vaše písemka hodnocena známkou 4, je i celá zkouška automaticky hodnocena 4, ústní část zkoušky se již 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, můžete se odhlásit nejpozději 3 dny předem (72 hodin). Toto časové omezení slouží k tomu, aby se vaši spolužáci čekající na uvolnění místa včas dozvěděli, kdy půjdou na zkoušku. Případné pozdější odhlášení ze zkoušky již musíte zdůvodnit a doložit, jinak vám termín propadne.

 

Čtyři zkušební termíny se uskuteční ve zkouškovém období v květnu a červnu, a to ve dnech 27. 5., 3. 6., 10. 6. a 17. 6., jeden dodatečný termín určený pro opravné zkoušky bude později vypsán na září (uskuteční se 9. 9. nebo 16. 9.). V posledním červnovém týdnu se zkouška nebude konat z důvodu účasti zkoušejícího na odborné akci mimo Prahu. Písemná část zkoušky bude probíhat vždy v pondělí od 9:00 hod. v posluchárně N1 (IMPAKT).

 

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ých úlohách stačí uvést slovní popis algoritmu, v některých bude požadován program nebo funkce v Pythonu. Požadovaný programový kód bude v takovém případě velmi krátký, obvykle v rozsahu 10 - 20 řádků. 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 vyřešit všechny zadané úkoly. 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ů 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 nejpozději ve středu v 18:00 hod. prostřednictvím systému ReCodEx. Pro tento účel se ještě před zkouškou přihlaste v ReCodExu do skupiny nazvané „Programování 2 – zkouška“. Svoji známku z písemky uvidíte jako ohodnocení ú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 jít na nepovinnou ústní část zkoušky, oznamte to prosím ve středu do 20:00 hod. mailem na adresu pavel.topfer@mff.cuni.cz, (případně uveďte i svoje časové omezení, kdybyste nemohli přijít ve čtvrtek kdykoliv). Následně dostanete ještě ve středu večer do 22:00 hod. mailem pozvání na konkrétní hodinu, kdy se vaše ústní zkouška uskuteční. Ústní zkoušky se budou konat 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, číslo dveří 404. Pokud ve středu do 20 hod. nenapíšete, znamená to váš souhlas s navrženou známkou 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 nepůjdete na ústní část zkoušky, ale chtěli byste se přijít podívat na hodnocení své opravené písemky, pošlete mail se svými časovými možnostmi. Můžete přijít buď ve čtvrtek v době probíhajícího ústního zkoušení, nebo případně někdy v dalším týdnu.

 

 

Úlohy typicky zadávané 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. Odvodit/zdůvodnit jeho asymptotickou časovou a prostorovou složitost. Slovní popis a vysvětlení algoritmu je povinné, programový kód nikoliv (můžete ho uvést).

 

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 zadanou úlohu na rekurzivní generování nebo na procházení binárním stromem, grafem nebo stavovým prostorem do hloubky nebo do šířky. Řešení popsat slovně a zapsat ho také ve tvaru funkce v Pythonu. Odvodit/zdůvodnit jeho asymptotickou časovou a prostorovou složitost.