Table of Contents

Rozvrh na FEL Posluchači PAL Odevzdávací systém 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 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í.

  1. Správnost řešení je kontrolována automaticky pomocí testovacích datových souborů (řešitelům neznámých).
  2. 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 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