[[https://www.fel.cvut.cz/cz/education/rozvrhy-ng.B161/public/html/predmety/46/84/p4684006.html|Rozvrh na FEL]] [[https://www.fel.cvut.cz/cz/education/rozvrhy-ng.B161/public/html/paralelky/P46/84/par4684006.1.html|Posluchači PAL]] [[https://cw.felk.cvut.cz/upload/|Odevzdávací systém]] [[https://cw.felk.cvut.cz/forum/forum-1175.html|Diskusní fórum]] --------------- ====== PAL - pokročilé algoritmy ====== ===== Cíl předmětu ===== Cílem předmětu je rozšíření schopnosti samostatné implementace různých variant standardních (základních nebo mírně pokročilých) úloh v několika vybraných aplikačně bohatých partiích informatiky. Důraz je kladen na algoritmický aspekt úloh a efektivitu praktického řešení. Přednášky poskytují nezbytný teoretický rámec. ===== Domácí programovací úlohy ===== Semestr zahrnuje domácí programovací úlohy, které je třeba postupně vyřešit, naprogramovat a odevzdat v termínu do odevzdávacího systému (poučení viz [[courses:a4m33pal:cviceni:upload_system|Upload System]]). Úlohy představují algoritmicky mírně rozsáhlejší problémy, je v nich většinou zapotřebí vhodně propojit více algoritmů nebo datových struktur, čas na řešení každé z nich je cca 20 dní. - **Správnost** řešení je kontrolována automaticky pomocí testovacích datových souborů (řešitelům neznámých). - **Sleduje se čas**, který kód potřebuje na výpočet řešení. Typicky by mělo být studentské řešení nanejvýš dvakrát pomalejší než referenční autorské řešení, pomalejší řešení považujeme za neúspěšná. Termíny jednotlivých úloh: 1. zadání 12. 10. - - odevzdání do 2.11. 2. zadání 26.10. - - odevzdání do 9.11. 3. zadání 2.11. - - odevzdání do 23.11. 4. zadání 9.11. - - odevzdání do 30.11. 5. zadání 30.11. - - odevzdání do 21.12. 6. zadání 7.12. - - odevzdání do 4.1. ===== Podmínky zápočtu ===== Kromě účasti na cvičení je nutno odevzdat v termínu úspěšná řešení programovacích úloh. \\ Hodnocení úlohy podle počtu správně zpracovaných vstupních souborů:\\ .... 8 a méně ................. 0 bodů ............... Neúspěšné řešení :-( .... 9 ........................ 3 body ............... Úspěšné řešení :-) ... 10 ........................ 4 body ............... Úspěšné řešení :-D Pro zápočet je nutno získat alespoň 13 bodů, přitom nezáleží na tom, z kterých a jak úspěšně vyřešených úloh.\\ Bezdůvodně lze vynechat nejvýše 2 cvičení. \\ Všechny odevzdané úlohy je nutno vypracovat samostatně a vyvarovat se plagiátů, viz [[courses:a4m33pal:cviceni:plagiaty| plagiáty]].\\ Posluchač, který z doložitelných důvodů (nemoc, studijní cesta, apod) nemůže průběžně plnit požadavky PAL, se domluví co nejdříve s cvičícím nebo přednášejícím na individuální úpravě podmínek absolvování předmětu. ===== Zkouška ===== **Termíny a místa zkoušek**\\ Budou upřesněny zde na konci semestru. \\ **Teoretická část zkoušky 0 - 12 bodů, nutné minimum 6 bodů **\\ V teoretické části obdrží adept několik otázek a připraví si na ně písemnou osnovu odpovědi, případně odpověď detailnější, pokud to konkrétní otázka vyžaduje. Své odpovědi probrere s examinátorem, který určí konečné hodnocení. **Praktická část zkoušky, 0 - 12 bodů, nutné minimum 6 bodů **\\ Obsahuje jednu programovací úlohu, kterou musí adept během zkoušky naprogramovat a odevzdat. Úloha se vyhodnocuje podobně jako úlohy v semestru, u zkoušky musí fungovat správně na alespoň 6 z 12 testovacích souborů, každý soubor představuje 1 bod. Doba na vypracování je 4-5 hodin. Jazyk řešení je Java nebo C/C++. \\ V praktické části může adept použít libovolný tištěný nebo elektronický materiál na flash disku, který si sám přinese. Během zkoušky je přístup na web znemožněn kromě serveru cw.felk.cvut.cz s upload systémem. Práce s upload systémem, tj. zadávání a odevzdávání úloh, je stejná jako v semestru. \\ **Dodatečná minimální náprava**\\ Kdo neuspěje v praktické části zkoušky a potom dodatečně doma zjistí, že nezdar byl způsoben triviální chybou v rozsahu cca 1-2 řádků kódu, například přehlédnutou opačnou nerovností v kritickém místě, chybou +/-1 v indexaci pole, nepřesnou inicializací apod., může většinou dodatečně uspět s určitou menší penalizací. Nutnou podmínkou úspěchu v takovém případě je, aby byl chybný kód odevzdán do upload systému před koncem zkoušky a aby oprava byla triviální rozsahem i koncepcí. Opravený kód musí fungovat a splňovat ostatní pravidla zkoušky. Examinátor pak rozhodne o finálním výsledku této části zkoušky. **Nezávislost praktické a teoretické části**\\ Splnění jedné části zkoušky není podmínkou pro účast ve druhé části. Na každou část lze chodit v různých termínech. Při neúspěchu každý musí opakovat jen tu část, v níž neuspěl. Kdo některou část splnil a chce si ji dodatečně zlepšit, může, počítá se pak vždy lepší výsledek a další pokusy se nepovažují za opravný termín. **Opravné termíny**\\ Počet opravných termínů jednotlivce se řídí aktuálními pravidly fakulty a katedry. **Klasifikační schéma**\\ Po úspěšném absolvování praktické a teoretické části zkoušky je adeptovi navržena klasifikace. Sečtením bodů z programovacích úloh v semestru, bodů z praktické části zkoušky a bodů z teoretické části vychází součet, jemuž podle uvedené tabulky odpovídá určitá známka:\\ Možný bodový rozsah: --------------------------------- úlohy v semestru: 13 - 24 body praktická zkouška: 6 - 12 bodů teoretická zkouška: 6 - 12 bodů --------------------------------- Celkem: 25 - 48 bodů Bodů Známka 0 -- 24 F 25 -- 29 E 30 -- 34 D 35 -- 39 C 40 -- 44 B 45 -- 48 A