======= 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ž 50 bodů). Povinné minimum je 20 bodů. 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 | | 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 o rozsahu pěti teoretických otázek. Test obsahově pokrývá učivo předchozích přednášek a proběhlých cvičení. Je hodnocen 5 body, povinné minimum je stanoveno na 0 bodů, tj. test není povinný. ====== 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í}} */