Anotace předmětu
Tento předmět je jedním z úvodních kurzů programování. Předmět si klade za cíl seznámit studenty s technikami algoritmického přístupu k řešení problémů. Probírané algoritmy a datové struktury budou demonstrovány v jazyce C++. Studenti jsou vedeni k analýze algoritmizovaných problémů a k syntéze řešení z menších celků.
Garant předmětu, tutor
Garantem předmětu, a zároveň tutorem, je doc. Mgr. Jiří Dvorský, Ph.D.
Prerekvizity
- Předmět Algoritmy I nemá žádné prerekvizity, předpokládá se znalost středoškolské matematiky a obecná orientace ve výpočetní technice.
- Předmět Algoritmy I je sám povinnou prerekvizitou navazujícího předmětu Algoritmy II. To znamená, že bez úspěšného ukončení předmětu Algoritmy I nelze ukončit ani předmět Algoritmy II i když máte předmět Algoritmy II zapsán.
Výuka
Tutoriály
Tutoriál |
Termín |
Náplň |
I |
21. února 2025 |
Na tomto úvodním tutoriálu Vám budou sděleny informace o organizaci studia předmětu a informace o náplni předmětu. Konzultace k tématům: Algoritmus. Strategie řešení problémů pomocí algoritmů. Významné typy řešených problémů. |
II |
7. března 2025 |
Konzultace k tématům: Analýza složitosti algoritmů. |
III |
22. března 2025 |
Konzultace k tématům: Strategie řešení problémů hrubou silou. Třídění výběrem, bublinové třídění. Sekvenční vyhledávání. Konvexní obal množiny bodů. Nalezení nejbližší dvojice bodů. |
IV |
4. dubna 2025 |
Konzultace k tématům: Strategie řešení úplným prohledáváním. Problém obchodního cestujícího. Problém batohu. Průchody grafem. |
V |
26. dubna 2025 |
Konzultace k tématům: Strategie řešení sniž a vyřeš. Třídění vkládáním. Generování permutací a podmnožin. Vyhledávání půlením intervalu. Nalezení mediánu. Interpolační vyhledávání. Vyhledávání a vkládání do binárního vyhledávacího stromu. |
VI |
9. května 2025 |
Konzultace k tématům: Strategie řešení rozděl a panuj. QuickSort. MergeSort. Konvexní obal množiny bodů. Nalezení nejbližší dvojice bodů. |
Individuální konzultace
- Pokud na tutoriálu nebudete něčemu rozumět, potřebujete poradit s probíranou látkou, potřebujete vyřešit nějaký organizační problém, je možné si domluvit individuální konzultaci.
- Konzultace probíhají především v době konzultačních hodin.
- Konzultaci je nutné si domluvit předem, nejlépe pomocí emailu nebo přes chat v MS Teams.
- Pokud potřebujete poradit s učivem, připravte si materiály, které jste si k tématu prostudovali, vypište si co je Vám jasné a kde jste se "zasekli" a potřebujete poradit.
Úkoly a jejich hodnocení
Hodnocení v předmětu Algoritmy I se skládá ze tří částí: průběžné aktivity na tutoriálech, obhajoby projektu a závěrečné písemné práce. Všechny části jsou povinné a je nutné z každé části získat aspoň minimální počet bodů.
Průběžná aktivita na tutoriálech
Průběžná aktivita na tutoriálech znamená:
- účast na tutoriálech a
- průběžné plnění úkolů zadaných na jednotlivých tutoriálech.
Obhajoba projektu
- Zadání projektů, včetně rozdělení projektů mezi studenty, a testovací data.
- Deadline pro odevzdání je v neděle 18. května 2025 23:59.
- Obhajoby projektů proběhnou ve zkouškovém období. Termíny budou vypsány v systému Edison.
- Bez ohledu na to, kdy proběhnou obhajoby projektů platí, že se obhajuje verze která byla odevzdána do deadlinu.
- Na obhajobu projektu není možný opravný termín.
Závěrečná písemná práce
- Písemná práce proběhne ve zkouškovém období.
- Termíny budou vypsány v systému Edison.
- Opravný termín na závěrečnou písemnou práci je poskytován jen těm studentům, kteří u svého prvního pokusu získali aspoň 10 bodů.
Počet bodů na prvním termínu | Opravný termín |
0 až 9 | NE |
10 až 20 | ANO |
více než 21 | není nutný, úspěch |
Hodnocení úkolů
Pro absolvování předmětu je potřeba splnit všechny výše uvedené úkoly. A zároveň u všech úkolů je nutné získat aspoň minimální počet bodů.
| Minimální počet bodů | Maximální počet bodů |
Průběžná aktivita na tutoriálech | 15 | 30 |
Obhajoba projektu | 15 | 30 |
Závěrečná písemná práce | 21 | 40 |
Celkem | 51 | 100 |
Studijní literatura
Povinná literatura
- LEVITIN, Anany., [2012]. Introduction to the Design and Analysis of Algorithms. 3rd ed. Boston: Pearson. ISBN 978-0-13-231681-1.
- CORMEN, Thomas H., Charles Eric LEISERSON, Ronald L. RIVEST a Clifford STEIN, [2022]. Introduction to algorithms. Fourth edition. Cambridge, Massachusetts: The MIT Press. ISBN 978-026-2046-305.
- SEDGEWICK, Robert, [2003]. Algoritmy v C. Praha: SoftPress. ISBN 80-864-9756-9.
- MAREŠ, Martin a Tomáš VALLA, [2017]. Průvodce labyrintem algoritmů [online]. Praha: CZ.NIC, z.s.p.o. [cit. 2021-04-19]. CZ.NIC. ISBN 978-80-88168-19-5.
- WRÓBLEWSKI, Piotr, [2015]. Algoritmy. Brno: Computer Press. ISBN 978-80-251-4126-7.
- WIRTH, Niklaus, 1988. Algoritmy a štruktúry údajov. Bratislava: Alfa. ISBN 063-030-87.
Doplňková literatura
- STROUSTRUP, Bjarne, [1997]. C++ programovací jazyk. Praha: Softwarové Aplikace a Systémy. ISBN 80-901-5072-1.
- VIRIUS, Miroslav, [2005]. Pasti a propasti jazyka C++. 2., aktualiz. a rozš. vyd. Brno: CP Books. ISBN 80-251-0509-1.
- SCHILDT, Herbert, [2001]. Nauč se sám C++: [poznej, vyzkoušej, používej]. Praha: SoftPress. ISBN 80-864-9713-5.
- ECKEL, Bruce, [2000]. Myslíme v jazyku C++. Praha: Grada. Knihovna programátora (Grada). ISBN 80-247-9009-2.
Prezentace z přednášek
Prezentace k předmětům Algoritmy I a Algoritmy II si můžete stáhnout na této stránce.
Software pro výuku
Vývojové prostředí pro C++
- Na učebnách je pro výuku k dispozici Microsoft Visual Studio 2022.
- Pro domácí přípravu si stáhněte Visual Studio Community 2022.
- Při hodnocení Vašich projektů bude používán překladač Microsoft Visual C++ a specifikace jazyka C++17, který je součástí vývojového prostředí Visual Studio Community 2022.
- Pokud si pro domácí přípravu stáhnete Visual Studio Code, či jiné prostředí, a budete používat překladač GNU C++ (g++), vyhněte se prosím nestandardním rozšířením jazyka C++, které zavádí tento překladač.
Ostatní software
Další software, který se Vám bude hodit při tvorbě Vašich programů: