Algoritmy I

Kombinované studium

Anotace předmětu

Výuka

Úkoly a jejich hodnocení

Studijní literatura

Software pro výuku

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


Výuka

Tutoriály

Tutoriál Termín Náplň
I 23. února 2024 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 8. března 2024 Konzultace k tématům: Analýza složitosti algoritmů.
III 22. března 2024 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 12. dubna 2024 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 2024 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 11. května 2024 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


Ú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á:

Obhajoba projektu

Závěrečná písemná práce

Počet bodů na prvním termínuOpravný termín
0 až 9NE
10 až 20ANO
více než 21není 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álech1530
Obhajoba projektu1530
Závěrečná písemná práce2140
Celkem51100

Studijní literatura

Povinná literatura

  1. LEVITIN, Anany., [2012]. Introduction to the Design and Analysis of Algorithms. 3rd ed. Boston: Pearson. ISBN 978-0-13-231681-1.
  2. 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.
  3. SEDGEWICK, Robert, [2003]. Algoritmy v C. Praha: SoftPress. ISBN 80-864-9756-9.
  4. 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.
  5. WRÓBLEWSKI, Piotr, [2015]. Algoritmy. Brno: Computer Press. ISBN 978-80-251-4126-7.
  6. WIRTH, Niklaus, 1988. Algoritmy a štruktúry údajov. Bratislava: Alfa. ISBN 063-030-87.

Doplňková literatura

  1. STROUSTRUP, Bjarne, [1997]. C++ programovací jazyk. Praha: Softwarové Aplikace a Systémy. ISBN 80-901-5072-1.
  2. VIRIUS, Miroslav, [2005]. Pasti a propasti jazyka C++. 2., aktualiz. a rozš. vyd. Brno: CP Books. ISBN 80-251-0509-1.
  3. SCHILDT, Herbert, [2001]. Nauč se sám C++: [poznej, vyzkoušej, používej]. Praha: SoftPress. ISBN 80-864-9713-5.
  4. 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 z přednášek nejsou studijním materiálem. Slouží přednášejícímu jako osnova jeho výkladu a studentům jako přehled probrané látky. Pročtení těchto několika prezentací není možné považovat za dostatečnou přípravu. 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++

Ostatní software

Další software, který se Vám bude hodit při tvorbě Vašich programů: