===== Cvičení =====
Soubory pro ZK5-Easy {{courses:b3b33alp:cviceni:pts1.txt| pts1.txt}}, {{courses:b3b33alp:cviceni:pts2.txt| pts2.txt}}.
Soubory pro ZK5-Hard {{courses:b3b33alp:cviceni:osm1.txt| osm1.txt}}, {{courses:b3b33alp:cviceni:slova1.txt| slova1.txt}}, {{courses:b3b33alp:cviceni:osm2.txt| osm2.txt}}, {{courses:b3b33alp:cviceni:slova2.txt| slova2.txt}}.
==== Cvičící ====
[[http://mrs.felk.cvut.cz/people/petr-stepan|Petr Štěpán]] (Vedoucí cvičení), [[http://mrs.felk.cvut.cz/people/vonasek|Vojtěch Vonásek]], [[http://www.cs.cas.cz/~rimnacm/|Martin Řimnáč]], [[http://imr.ciirc.cvut.cz/People/Tomas|Tomáš Pivoňka]]
==== Program cvičení ====
^ týden ^ datum ^ obsah ^
| 1 | 21,22.9. | [[courses:b3b33alp:cviceni:t01| Úvod do cvičení]] |
| 2 | 29.9. | pouze úterní cvičení |
| 3 | 5,6.10. | [[courses:b3b33alp:cviceni:t02| Cykly a reálná aritmetika]] |
| 4 | 12,13.10. | [[courses:b3b33alp:cviceni:t03| Funkce]] |
| 5 | 19,20.10. | [[courses:b3b33alp:cviceni:t04| 1D pole]] |
| 6 | 26,27.10. | [[courses:b3b33alp:cviceni:t05| 2D pole]] |
| 7 | 2,3.11. | [[courses:b3b33alp:cviceni:t06| Pole, matice]] |
| 8 | 9,10.11. | [[courses:b3b33alp:cviceni:t07| Rekurze, třídění]] |
| 9 | 16.11. | [[courses:b3b33alp:cviceni:t08| Fronta, zásobník]] - úterní cvičení odpadá|
| 10 | 23,24.11. | [[courses:b3b33alp:cviceni:t09| Semestrální práce]] |
| 11 | 30.11.,1.12. | [[courses:b3b33alp:cviceni:t10| Fronta, stavový automat]] |
| 12 | 7,8.12. | [[courses:b3b33alp:cviceni:t11| Objekty, Halda, Asociativní pole]] |
| 13 | 14,15.12. | [[courses:b3b33alp:cviceni:t12| Náhodná čísla, grafický výstup]] |
| 14 | 4,5.1. | [[courses:b3b33alp:cviceni:t13| Zápočtový týden]]|
==== Zápočet ====
* Zápočet získáte, pokud ze cvičení získáte minimálně 12 bodů.
* Ve cvičení bude 10 úloh. Můžete si vybrat buď lehčí úlohu za 1 bod, nebo těžší úlohu za 2 body. Lehké úlohy nepředpokládají žádné znalosti mimo přednášky a cvičení. Těžší úlohy se hodí pro ty z vás, kteří již programovat umí a jsou i náročnější a rozsáhlejší.
* Poslední úloha ve cvičeních bude větší semestrální práce za 5 bodů.
* Každou úlohu je nutné odevzdat nejpozději do 3 týdnů od zadání (cvičící může udělit výjimku - na základě lékařského potvrzení atp.)
* Z každé úlohy (i ze semestrální práce) musí student získat nenulový počet bodů, hodnocení úlohy provádí odevzdávací systém a je možné získat i desetinné hodnocení za částečně fungující úlohu.
* POZOR: Odevzdávací systém má někdy omezený počet testovacích případů. Nikdy neodevzdávejte program typu: když vstup=1, výstup je 5, když vstup=2, výstup je 10, když ... . Může se stát, že Vám odevzdávací systém za takový program přidělí nějaké body, ale když to dodatečně zjistí cvičící, tak Vám tyto body odebere a budete muset vyřešit zadanou úlohu znovu obecně. Nikdy to nedělejte u zkoušky, protože to může být důvod k vyloučení od zkoušky.
* Každý může řešit libovolné úlohy - teoreticky můžete získat až 25 bodů z cvičení.
* Pokud začnete řešit těžkou úlohu a její řešení se Vám nepodaří, lze i později odevzdat úlohu lehčí.
* Všechny úlohy se odevzdávají přes [[http://cw.felk.cvut.cz/upload/|Odevzdávací systém]]
* **Zápočet je nutné získat před zkouškou**
==== Obecné pokyny pro odevzdávání domácích úkolů ====
=== Odevzdání ===
* Vaše domácí práce odevzdávejte skrze [[https://cw.felk.cvut.cz/upload/|Odevzdávací systém]]. Je možné odevzdat jeden soubor (.py) nebo zip/tgz archív.
* Názvy souborů obsahující vaše odevzdávané programy jsou v zadání každé úlohy předepsány a je nezbytné je dodržet. V případě že odevzdáváte archív souborů, předepsané soubory musí být v kořenovém adresáři archivu (nikoli v podadresáři).
* Odevzdané programy jsou hodnoceny automatickým systémem. Každý program, dostane-li specifikovaná vstupní data, musí tedy proběhnout bez vnějších zásahů uživatele (stisky kláves a podobně).
=== Tipy pro úspěšné odevzdání programu ===
* Program (zdrojový soubor v Pythonu) se musí jmenovat přesně tak, jak je definováno v úloze. Soubory s jiným jménem systém nehodnotí
* Před nahráním programu do systému doporučujeme spustit jej v příkazové řádce. Např takto:
> python3.5 jmeno_souboru.py
* pozn. na mnoha operačních systémech bývá současně nainstalován python2 i python3 a program python může, v závislosti na konfiguraci systému, spustit bud python2 nebo python3. Abyste zajistili, že program spouští pythonem3, raději používejte příkaz python3.x, kde x záleží na aktuální instalaci.
=== Lehká nebo těžká verze ===
* Domácí úlohy mají lehkou a těžkou verzi, lišící se obtížností a bodovým hodnocením.
* Vždy si vyberte, kterou verzi budete řešit.
* Verze se liší názvy odevzdávaných souborů, podle toho jaké soubory odevzdáte, hodnotící systém pozná jakou verzi jste si zvolili.
* V případě že odevzdáte obě, systém bude hodnotit pouze těžkou verzi.
* Rozhodovat mezi těžkou a lehkou úlohou se můžete kdykoliv a opakovaně (lze odevzdat nejdříve lehkou úlohu, pak zkusit těžkou úlohu a když Vám nevyjde řešení těžké úlohy, opět odevzdat fungující řešení lehké úlohy).
=== Pracujte samostatně ===
* Pokud neumíte dobře programovat a nebudete sami řešit úlohy s velkou pravděpodobností neuděláte zkoušku
* Na zkoušce budete pod dozorem řešit podobné úlohy v časovém limitu, proto je procvičování nutné
* Odevzdávací systém kontroluje podobnost řešení
* Pokud Vám není něco jasné, máte problémy s domácí úlohou, ptejte se na cvičeních svého cvičícího!