b6b36dsa -- Datové struktury a algoritmy
Požadavky pro absolvování předmětu
Abyste předmět úspěšně zakončili, musíte:
1. Získat zápočet:
a
2. Úspěšně absolvovat kombinovanou (tzn. písemnou + ústní) zkoušku.
Podmínka absolvování zkoušky je nutná pro úspěšné absolvování předmětu, a to samozřejmě i v případě, že v průběhu semestru získáte více než 50 bodů.
Na zkoušce se píše písemný test, který obsahuje několik bodovaných otázek (celkem až 50 bodů). Povinné minimum je 25 bodů. Vyhrazený čas je zpravidla 80 minut. Po odevzdání vyplněných testů je cca 1 hodina věnována na opravy a poté začíná případná ústní zkouška. K nahlédnutí budou testy a jejich výsledky.
Sešity, vlastní poznámky, ani žádné další informační zdroje nejsou pro vypracování zkouškového testu zapotřebí, a proto nejsou povoleny.
Celkové hodnocení se spočítá jako součet bodů.
| Část | Maximum bodů | Požadované minimum |
| Domácí úkoly | 50 | 25 |
| Bonusové body za aktivitu | 6 | |
| Písemný zkouškový test | 50 | 25 |
| celkem | 106 | 50 1) |
Výsledná známka se řídí běžnou bodovou tabulkou:
| Známka | Bodové rozmezí | Slovní
hodnocení |
| A | 90 a více | výborně |
| B | 80 - 89 | velmi dobře |
| C | 70 - 79 | dobře |
| D | 60 - 69 | uspokojivě |
| E | 50 - 59 | dostatečně |
| F | méně než 50 | nedostatečně |
Pokud Vám Vaše hodnocení nevyhovuje, můžete se přihlásit na ústní zkoušku, musíte ale počítat s tím, že Vám ústní zkouška může známku vylepšit, ale i zhoršit. Pro hodnocení A,B a E je ústní zkouška zpravidla povinná. Pro hodnocení A je nutno získat za domácí úkoly alespoň 30 bodů.
Počítejte s tím, že strategie získávání bodů musí být soustavné řešení úkolů. Pokud si necháte jejich řešení na konec semestru, je možné, že penalizace za pozdní odevzdání Vám nedovolí získat požadované minimum bodů.
Přednášky
Domácí úkoly
Během semestru budou zadány 4 domácí úkoly. Zadání úkolů je vyvěšeno na stránkách předmětu a budou se odevzdávat do odevzdávacího systému (BRUTE), kde budou automaticky hodnoceny.
Pro získání zápočtu je nutné úspěšně a včas odevzdat všechny domácí úkoly (a získat alespoň 5 bodů z každého). Úlohy je třeba odevzdat v každém případě. Pozdní odevzdání bude penalizováno.
Práce na domácích úkolech je samostatná. Studenti, kterým odhalíme duplicitní řešení, automaticky ztrácí nárok na zápočet a hrozí jim disciplinární řízení. Samozřejmě je normální (a žádoucí) o domácích úlohách diskutovat s kolegy, nicméně kód si musí každý napsat sám.
Použití nástrojů umělé inteligence
Pod pojmem nástroje UI rozumíme moderní nástroje jako např. ChatGPT, Microsoft Bing Chat, Google Bard, Github Copilot, Code Llama atd. Pravidla pro používání nástrojů UI v kurzu Datové struktury a algoritmy jsou následující:
V tomto kurzu obecně není povoleno používat nástroje UI.
Významně upozorňujeme na to, že nástroje UI nelze využít
pro kompletní vypracování domácích úkolů,
při testech v průběhu semestru,
při zkoušce.
Buďte upřímní a otevření. Pokud tyto nástroje používáte, uveďte ve své práci jasně, které části byly vytvořeny s jejich pomocí (a jak).
Poučte svého učitele o jejich použití! Jsme zvědaví a vděční, když se od vás naučíme, jak tyto nástroje efektivně používat.
Použití nástrojů UI je dvousečná zbraň. Mohou vám v mnoha ohledech pomoci, ale mohou vám také uškodit.
Naším cílem je vás něco naučit tím, že od vás vyžadujeme řešení domácích úkolů a semestrálních úloh. (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.).
Nezapomeňte: Autorem kódu/zprávy/řešení jste vy, i když vám s ním pomohla UI! Jste zodpovědní za všechny chyby, které UI udělá, a za všechna tvrzení, která jsou nesprávná nebo nejsou podložena daty. Jste zodpovědní za všechny neexistující odkazy, které si UI vymyslí.
Pokud necháte UI vygenerovat kód za vás, ujistěte se, že rozumíte každému jeho kousku a že byste jej dokázali napsat i sami. Využijte vygenerovaný kód k tomu, abyste se dozvěděli něco o syntaxi a vlastnostech programovacího jazyka, nebo dokonce o řešení své úlohy, ale pak (např. po 24 hodinách) řešení implementujete z hlavy znovu, bez pomoci UI. Můžete být požádáni o jeho vysvětlení nebo úpravu. Můžete dostat úkol, kde pomoc UI nebude k dispozici.
Přímé odevzdání částí textu/kódu vygenerovaných pomocí UI není žádoucí a může být posuzováno a postihováno podobně jako plagiátorství.
Další informace o domácích úkolech najdete v sekci Domácí úkoly.
Zkouškový test
Na zkoušce se bude psát písemný zkouškový test. Testem je nutné úspěšně projít.
Na úspěšný průchod testem bude potřeba získat alespoň 25 bodů. Pokrývá látku, která byla odpřednášena a probrána na cvičeních.
V případě neúspěchu v testu musíte zkoušku opakovat.
Sešity, vlastní poznámky, ani žádné další informační zdroje nejsou pro vypracování testu potřebné a nejsou povoleny.
Obsah testu
Test probírá např. následující témata:
Rekurze
Asymptotická složitost kódu
Množiny omikron, omega a theta
Správnost kódu, invarianty
Složitost algoritmů
Randomizované algoritmy
Důkaz pomocí matematické indukce (např. důkaz funkčnosti procedury Partition začínající v učebnici na straně 171),
Kombinatorika, pravděpodobnost (např. výpočet složitost bucket sortu začínající v učebnici na straně 202),
Formalizace přirozeného jazyka (např. definice výběru n-tého prvku (selection problem) v učebnici na straně 213),
Počítání (např. analýza počtu kroků řazení vkládáním začínající v učebnici na straně 26) a
Programování (zjevné, doporučujeme zopakovat si zejména práci se spojovými strukturami).
Ukázka testu: příklad a řešeni
Jiný příklad zadání a řešení příklad a řešeni
Materiály
Cormen Thomas H. et al.: Introduction to Algorithms, 3rd Edition, MIT Press, 2009
Pro rychlé přiblížení lze použít i zdroj:
Wróblewski Piotr: Algoritmy, Computer Press, ISBN: 978-80-251-4126-7, 2015
Terminologii ale používáme dle Cormena.
Také lze použít: Mareš, M., Valla, T.: Průvodce labyrintem algoritmů. Edice CZ.NIC, 2022 https://knihy.nic.cz/cs/detail/30/
Další odkazy