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.

Zkoušku lze v souladu se Studijním a zkušebním řádem pro studenty ČVUT v Praze (článek 6, odstavec 1) absolvovat pouze s uděleným zápočtem.
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

1)
50 bodů odpovídá hodnocení E - dostatečně.
courses/b6b36dsa/start.txt · Last modified: 2025/02/21 11:33 by richta