FI:IB002 Algoritmy a datové struktury - Informace o předmětu
IB002 Algoritmy a datové struktury I
Fakulta informatikyjaro 2026
- Rozsah
- 2/2/1. 4 kr. (plus ukončení). Doporučované ukončení: zk. Jiná možná ukončení: k.
Vyučováno kontaktně - Vyučující
- prof. RNDr. Ivana Černá, CSc. (přednášející)
doc. RNDr. Vojtěch Řehák, Ph.D. (cvičící)
doc. Mgr. Jan Obdržálek, PhD. (cvičící)
RNDr. Jakub Gajarský, Ph.D. (cvičící)
RNDr. Jaromír Plhák, Ph.D. (cvičící)
prof. RNDr. Jiří Barnat, Ph.D. (cvičící)
RNDr. Nikola Beneš, Ph.D. (cvičící)
Bc. Kateřina Borošová (cvičící)
Bc. Stanislav Valluš (cvičící)
Michal Rábek (cvičící)
Jana Jarošová (cvičící)
Bc. Vojtěch Brdečko (cvičící)
Bc. Jindřich Halabala (cvičící)
Ondřej Pupík (cvičící)
Bc. Tomáš Dang (cvičící)
Anna Tomalová (cvičící)
Tomáš Hutňan (cvičící)
Ondřej Vala (cvičící)
Bc. Martin Michal Dyttert (cvičící) - Garance
- prof. RNDr. Ivana Černá, CSc.
Katedra teorie programování – Fakulta informatiky
Dodavatelské pracoviště: Katedra teorie programování – Fakulta informatiky - Rozvrh
- St 18. 2. až St 13. 5. St 10:00–11:50 A217
- Rozvrh seminárních/paralelních skupin:
IB002/01: Po 16. 2. až Po 11. 5. Po 8:00–9:50 A321, V. Řehák
IB002/02: Po 16. 2. až Po 11. 5. Po 8:00–9:50 A220, S. Valluš
IB002/03: Po 16. 2. až Po 11. 5. Po 10:00–11:50 A321, J. Plhák
IB002/04: Po 16. 2. až Po 11. 5. Po 10:00–11:50 A319, N. Beneš
IB002/05: Po 16. 2. až Po 11. 5. Po 12:00–13:50 A321, J. Plhák
IB002/06: Po 16. 2. až Po 11. 5. Po 12:00–13:50 A220, O. Pupík
IB002/07: Po 16. 2. až Po 11. 5. Po 14:00–15:50 A321, O. Vala
IB002/08: Út 17. 2. až Út 12. 5. Út 8:00–9:50 A220, V. Řehák
IB002/09: Út 17. 2. až Út 12. 5. Út 14:00–15:50 A321, M. Dyttert
IB002/10: Út 17. 2. až Út 12. 5. Út 16:00–17:50 A220, J. Gajarský
IB002/11: Út 17. 2. až Út 12. 5. Út 18:00–19:50 A321, T. Hutňan
IB002/12: St 18. 2. až St 13. 5. St 8:00–9:50 A220, V. Řehák
IB002/13: St 18. 2. až St 13. 5. St 8:00–9:50 A319, J. Obdržálek
IB002/14: St 18. 2. až St 13. 5. St 12:00–13:50 A218, M. Rábek
IB002/15: St 18. 2. až St 13. 5. St 12:00–13:50 A220, J. Jarošová
IB002/16: St 18. 2. až St 13. 5. St 14:00–15:50 A321, V. Brdečko
IB002/17: Čt 19. 2. až Čt 14. 5. Čt 8:00–9:50 A321, J. Obdržálek
IB002/18: Čt 19. 2. až Čt 14. 5. Čt 8:00–9:50 A220, T. Dang
IB002/19: Čt 19. 2. až Čt 14. 5. Čt 10:00–11:50 A321, J. Obdržálek
IB002/20: Čt 19. 2. až Čt 14. 5. Čt 10:00–11:50 A220, J. Barnat
IB002/21: Čt 19. 2. až Čt 14. 5. Čt 14:00–15:50 A220, J. Gajarský
IB002/22: Čt 19. 2. až Čt 14. 5. Čt 18:00–19:50 A220, A. Tomalová
IB002/23: Pá 20. 2. až Pá 15. 5. Pá 12:00–13:50 A321, J. Gajarský
IB002/24: Pá 20. 2. až Pá 15. 5. Pá 12:00–13:50 A220, K. Borošová
IB002/25: Pá 20. 2. až Pá 15. 5. Pá 14:00–15:50 A220, J. Halabala - Předpoklady
- ( IB015 Neimperativní programování || IB111 Základy programování ) && !NOW( IB114 Úvod do progr. a alg. II )
Předpokládá se, že posluchači mají znalosti v rozsahu předmětů IB111 Úvod do programování a IB000 Matematické základy informatiky. Studenti by měli být schopni používat základní programátorské konstrukce (např. podmínky, cykly, funkce, základní datové typy) v jazyce Python, znát principy rekurze a několik základních algoritmů. Dále se předpokládá znalost základních matematických pojmů (v rozsahu předmětu IB000); schopnost porozumět logické struktuře matematické věty a matematického důkazu, speciálně matematické indukci; ovládat diskrétní matematické struktury jako konečné množiny, relace, funkce a grafy, včetně jejich používání v informatice. IB114 je podobný předmět určený odlišné studijní programy. - Omezení zápisu do předmětu
- Předmět je nabízen i studentům mimo mateřské obory.
- Mateřské obory/plány
- předmět má 37 mateřských oborů, zobrazit
- Anotace
- Kurs probírá základní techniky analýzy algoritmů, datové struktury a operace nad nimi. Cílem kurzu je získat dovednosti v používání základních datových struktur a algoritmů a zároveň schopnost navrhovat, analyzovat a dokazovat správnost algoritmů za použití probíraných technik analýzy a návrhu algoritmů. Současně studenti získavají dovednosti v implementaci navržených algoritmů v konkrétním programovacím jazyce (Python).
- Výstupy z učení
- Student bude po absolvování předmětu schopen:
- aktivně používat, modifikovat a analyzovat základní algoritmy pro řazení a pro průzkum grafů,
- aktivně používat základní techniky (rozděl a panuj, rekurze) návrhu algoritmů při konstrukci jednoduchých algoritmů,
- aktivně používat a modifikovat základní statické a dynamické datové struktury,
- pracovat s pojmy časové složitosti a korektnosti algoritmů,
- analyzovat časovou složitost a dokazovat korektnost jednoduchých iterativních a rekurzivních algoritmů,
- implementovat algoritmy ve vyučovaném programovacím jazyce (Python). - Klíčová témata
- Základy analýzy algoritmů: Korektnost algoritmu, vstupní a výstupní podmínky, parciální korektnost, konvergence, verifikace. Délka výpočtu, složitost algoritmu, složitost problému. Asymptotická analýza časové a prostorové složitosti, růst funkcí.
- Základní techniky návrhu algoritmů, metoda rozděl a panuj, rekurzivní algoritmy.
- Fundamentální datové struktury: Seznamy, fronty. Representace množin, hašovací tabulky. Binární haldy. Binární vyhledávací stromy, vyvážené stromy (B stromy, červeno-černé stromy).
- Řadicí algoritmy: Řazení rozdělováním, slučováním, haldou, dolní odhad složitosti.
- Základní grafové algoritmy: Representace grafů. Procházení grafu do hloubky, topologické uspořádání, silně souvislé komponenty. Procházení grafu do šířky, bipartitní grafy. Nejkratší cesty, Bellmanův - Fordův algoritmus a Dijkstrův algoritmus.
- Studijní zdroje a literatura
- povinná literatura
- CORMEN, Thomas H. Introduction to algorithms. 3rd ed. Cambridge, Mass.: MIT Press, 2009, xix, 1292. ISBN 9780262533058. URL info
- doporučená literatura
- SKIENA, Steven S. The algorithm design manual. New York: Springer, 1998, xvi, 486. ISBN 0387948600. info
- Přístupy, postupy a metody používané ve výuce
- Kurs probíhá formou přednášek a cvičení k přednáškám.
- Způsob ověření výstupů z učení a požadavky na ukončení
- Závěrečná zkouška na konci semestru. Podmínkou účasti na závěrečné zkoušce je splnění průběžného hodnocení z cvičení, které se skládá z pravidelných písemných testů. Obsah závěrečné zkoušky se liší v závislosti na způsobu ukončení předmětu (zkouška, kolokviu). Podrobnosti jsou zveřejněny v Interaktivní osnově předmětu
- Navazující předměty
- Odkaz a informace vyučujících
- https://is.muni.cz/auth/el/1433/jaro2026/IB002/index.qwarp
- Další komentáře
- Studijní materiály
Předmět je vyučován každoročně. - Nachází se v prerekvizitách jiných předmětů
- IB114 Úvod do programování a algoritmizace II
(IB111 || IB113) && !IB002 && !NOW(IB002) - IV003 Algorithms and Data Structures II
IB002 || ( fakulta(PřF) && PROGRAM(N-MAT)) - MA015 Graph Algorithms
IB002||(typ_studia(N)&&fakulta(fi))
- IB114 Úvod do programování a algoritmizace II
- Statistika zápisu (nejnovější)
- Permalink: https://is.muni.cz/predmet/fi/jaro2026/IB002