======= 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í}} */