Warning
This page is located in archive. Go to the latest version of this course pages. Go the latest version of this page.

Cvičení

Cvičící

Krátká videa k cvičením

Krátká videa s rozborem obsahu cvičení. Pokud jste ještě neprogramovali, doporučujeme shlédnout videa před cvičením. Na cvičení pak již budeme předpokládat znalosti uvedené ve videu a tyto znalosti budeme prohlubovat. Také si připravte otázky, pokud něčemu ve videu nebudete rozumět.

Seznam videí podle cvičení

Program cvičení

týden datum obsah
1 25,26.9. Úvod do cvičení
2 2,3.10. Cykly a reálná aritmetika
3 9,10.10. Funkce
4 16,17.10. 1D pole
5 23,24.10. 2D pole
6 30,31.10. Pole, matice
7 6,7.11. Rekurze, třídění
8 13,14.11. Fronta, zásobník
9 21.11. Opakování (20.11. volno - děkanský den)
10 27,28.11. Semestrální práce
11 4,5.12. Stavový prostor a objekty v Pythonu
12 11,12.12. Objekty, halda, asociativní pole
13 18,19.12. Náhodná čísla, grafický výstup
14 8,9.1. Stavový automat, grafy Zápočtový týden

Zápočet

  • Zápočet získáte, pokud ze cvičení získáte minimálně 20 bodů a při tom vyřešíte každou zadanou úlohu za nenulový počet bodů.
  • Ve cvičení bude 10 základních úloh. Můžete si vybrat buď lehčí úlohu za 1.5 bodu, nebo těžší úlohu za 3 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 je semestrální práce za 5+5 bodů. Každý kdo vyřeší semestrální úlohu získá 5 bodů. Vaše programy pak budou soutěžit a nejlepší programy mohou získat dalších až 5 bodů.
  • Každou úlohu je nutné odevzdat nejpozději do zadaného termínu (většinou 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.
  • Při včasném odevzdání řešení lehké verze lze kdykoliv později požádat cvičícího a místo lehké úlohy odevzdat řešení těžké verze až dvou libovolných domácích úloh, a získat tak bodové hodnocení za těžkou verzi bez penalizace za pozdní odevzdání.
  • Všechny úlohy se odevzdávají přes Odevzdávací systém, který vám automaticky vyhodnotí úlohu a přidělí body.
  • 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ž 40 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čí. Platí to i naopak. Odevzdávací systém vám prostě započítá body z posledního nahraného programu.
  • Úlohy mohou být zkontrolovány cvičícím a v případě, že obsahují nevhodné programátorské návyky, mohou být vráceny k přepracování spolu s komentářem co a jak zlepšit. V takovém případě se ruší počet bodů udělených odevzdávacím systémem a student musí úlohu přepracovat a získat znovu nenulový počet bodů.
  • Je zakázáno používat Pythonovskou konstrukci try/except (pokud to zadání úlohy explicitně nepovoluje). Pokud bude odevzdaný program obsahovat try/except, jeho výsledné hodnocení bude poděleno dvěma.
  • Zápočet je nutné získat před zkouškou.
  • Upozorňujeme, že minimální bodový zisk ze cvičení i ze zkoušky (20 bodů + 25 bodů) nestačí na úspěšné zakončení předmětu (tj. lepší známku než F), viz Zkouška.

Nástroje UI

Pod pojmem nástroje UI rozumíme moderní nástroje jako např. ChatGPT, Microsoft Bing Chat, Google Bard, Github Copilot, Code Llama atd.

Naším cílem je vás naučit základy programování, tj. jak principy základních algoritmů, tak i práci s datovými typy, organizace programů atd. Programování je dovednost, kterou získáte cvičením, tj. je třeba pogramovat, programovat a programovat. Proto máte za úkol vypracovat domácí úlohy, abyste se na nich naučili základní programátorské techniky.

Naopak NENÍ naším cílem naučit vás zkopírovat zadání úlohy do chatu nástroje UI, požádat o řešení a zkopírovat zpět odpověď UI.

V tomto předmětu je zakázáno používat nástroje UI k vypracování domácích úloh (a to i jejich částí), porušení tohoto pravidla může být posuzováno a postihováno podobně jako plagiátorství.

Cvičící může kteroukoliv úlohu zkontrolovat a vyžádat si detailní vysvětlení a popis fungování programu od autora (studenta). V případě prokázání neznalostí může cvičící snížit (až na nula bodů) bodové hodnocení přidělené automatickým systémem Brute, případně vyzvat studenta k přepracování úlohy.

Obecné pokyny pro odevzdávání domácích úkolů

Odevzdání

  • Vaše domácí práce odevzdávejte skrze 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ě úlohy najednou, 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!
courses/b3b33alp/cviceni/start.txt · Last modified: 2024/02/12 08:27 by vonasvoj