======= b6b36dsa -- Datové struktury a algoritmy =======
/*[[https://cw.felk.cvut.cz/forum/forum-1769.html|Diskusní fórum]]*/
[[https://cw.felk.cvut.cz/brute/teacher/course/1835 | Brute - odevzdávací systém ]]
[[https://www.fel.cvut.cz/cz/education/bk/predmety/31/30/p3130306.html|Popis předmětu na FEL]]
[[https://www.feld.cvut.cz/cz/education/rozvrhy-ng.B252/public/html/predmety/31/30/p3130306.html|Rozvrh na FEL]]
---------------
====== Požadavky pro absolvování předmětu ======
Abyste předmět úspěšně zakončili, musíte:
1. **Získat zápočet**:
* přečíst (a pochopit) kapitoly (kromě sekcí označených hvězdičkou) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 17, 18 a 34 z učebnice [[ https://drive.google.com/file/d/0B3RHrbxFb7PfYjk4ZG01Z3lrbnc/view?resourcekey=0-aHyhqxUeXCNvRK3_QfNurg | T. Cormen et al.: Introduction to Algorithms]],
* vypracovat 4 domácí úkoly (viz [[courses:b6b36dsa:ukoly:start|popis domácích úkolů]]),
* případně absolvovat test v semestru,
* případně získat body za aktivitu
a
2. **Úspěšně absolvovat** kombinovanou (tzn. teoretickou + praktickou) **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ž 45 bodů). Povinné minimum je 20 bodů (z toho 3 body za teoretické otázky). Vyhrazený čas je zpravidla 60 minut. K nahlédnutí budou testy a jejich výsledky.
Zkoušku lze v souladu se [[https://www.cvut.cz/sites/default/files/content/74c76d2e-7f4d-4cb1-ac28-b0765c7f88f2/cs/20200624-studijni-a-zkusebni-rad-pro-studenty-cvut-v-praze-iii-uplne-zneni-ucinnost-od-11-3-2020.pdf|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 ^
| **[[courses:b6b36dsa:ukoly:|Domácí úkoly]]** | 50 | 25 |
| [[courses:b6b36dsa:start#test_v_semestru:|Test v semestru]] | 5 | 0 |
| Bonusové body za aktivitu | 6 | |
| Písemný zkouškový test | 45 | 20 (3 body za teoretickou část zkoušky) |
^ celkem ^ 106 ^ 50 ((50 bodů odpovídá hodnocení E - dostatečně.)) ^
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ě |
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ů.
/* http://ressources.unisciel.fr/algoprog/s00aaroot/aa00module1/res/%5BCormen-AL2011%5DIntroduction_To_Algorithms-A3.pdf */
====== Přednášky ======
[[courses:b6b36dsa:prednasky|Přednášky]]
====== Test v semestru ======
Na přednášce **27. 3. 2026** proběhne krátký test - délka trvání testu je **20 minut**.
* Test obsahově pokrývá učivo předchozích přednášek (přednášky 01 až 05) a proběhlých cvičení (cvičení 01 až 05). Objevit se mohou teoretické otázky, ale také jednoduché praktické příklady řešené na cvičeních.
* Test je hodnocen **5 body**, povinné **minimum je stanoveno na 0 bodů**, tj. test není povinný. Proto také nebude organizován náhradní termín testu - body za test jsou počítány do celkového hodnocení.
====== 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 požadované minimum z každého úkolu). Úlohy je třeba odevzdat v každém případě. Pozdní odevzdání bude penalizováno.
======== Plagiátorství ========
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í.
Pokud použijete nástroje umělé inteligence a vaše řešení bude detekováno jako plagiát, postih je stejný jako kdyby plagiát vznikl zkopírováním části kódu z internetu nebo od spolužáka, tj. **ztrácíte automaticky nárok na zápočet**.
Další informace o domácích úkolech najdete v sekci [[courses:b6b36dsa:ukoly:start|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ň **20 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á všechna témata, s kterými se potkáte na přednáškách a cvičeních.
/* Ukázka testu: {{ :courses:b6b36dsa:test_reseny.pdf | příklad a řešeni}} */
/* Zadání a stručný náznak řešení {{:courses:b6b36dsa:1-Test-reseny-2022.pdf | příklad a řešeni}} */
Ukázka testu je pouze ilustrativní, chybí teoretické otázky: {{:courses:b6b36dsa:2-Test-reseny-2022.pdf | příklad a řešeni}}
====== Materiály ======
[[https://drive.google.com/file/d/0B3RHrbxFb7PfYjk4ZG01Z3lrbnc/view?resourcekey=0-aHyhqxUeXCNvRK3_QfNurg|Cormen Thomas H. et al.: Introduction to Algorithms, 3rd Edition, MIT Press, 2009]]
/*
[[https://dl.ebooksworld.ir/books/Introduction.to.Algorithms.4th.Leiserson.Stein.Rivest.Cormen.MIT.Press.9780262046305.EBooksWorld.ir.pdf|Cormen Thomas H. et al.: Introduction to Algorithms, 3rd Edition, MIT Press, 2009]]
*/
Pro rychlé přiblížení lze použít i zdroj:
[[https://www.albatrosmedia.cz/tituly/16513034/algoritmy/
| 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 ====
Odkaz na stránky předmětu Introduction to Algorithms z Open Courseware MIT
[[https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-introduction-to-algorithms-sma-5503-fall-2005 | Introduction to Algorithms on MIT (2005) ]]
[[https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011 | Introduction to Algorithms on MIT (2011) ]]
[[https://ocw.mit.edu/courses/6-006-introduction-to-algorithms-spring-2020/ | Introduction to Algorithms on MIT (2020) ]]
/* {{ :courses:b6b36dsa:dynamicke_programovani_priklady.pdf | Příklady dynamického programování}} */