Detail předmětu
Algoritmy
FIT-IALAk. rok: 2017/2018
Přehled základních datových struktur a jejich použití. Principy dynamického přidělování paměti. Specifikace abtraktních datových typů (ADT). Specifikace a implementace ADT: seznamy, zásobník, fronta, množina, pole, vyhledávací tabulka, graf, binární strom. Algoritmy nad binárním stromem. Vyhledávání: sekvenční, v neseřazeném a seřazeném poli, vyhledávání se zarážkou, binární vyhledávání, binární vyhledávácí strom, vyvážený strom (AVL). Vyhledávání v tabulkách s rozptýlenými položkami. Řazení, principy, řazení bez přesunu položek, řazení podle více klíčů. Nejznámější metody řazení: Select-sort, Bubble-sort, Heap-sort, Insert-sort a jeho varianty, Shell-sort, Quick sort v rekurzivní a nerekurzivní notaci, Merge-sort, List-merge-sort, Radix-sort. Sekvenční metody řazení. Rekurze a algoritmy s návratem. Vyhledávání podřetězců v textu. Dokazování programů, tvorba dokázaných programů.
5 kreditů, t.j. cca 125-150 hodin představuje studijní zátěž:
- 39 hodin přednášek
- 26 hodin 2 domácí úlohy
- 35 hodin práce na projektu
- 20 hodin průběžné studium
- 30 hodin příprava na půlsemestrální a závěrečnou zkoušku
Jazyk výuky
Počet kreditů
Garant předmětu
Zajišťuje ústav
Výsledky učení předmětu
- Student porozumí významu metod dokazování správnosti programů a tvorby dokázaných programů.
- Porozumí základním principům a významu složitosti algoritmů.
- Seznámí se se základními abstraktními datovými typy a strukturami, naučí se je implementovat a používat.
- Seznámí se s principy dynamického přidělování paměti a naučí se je používat na modelovém systému.
- Naučí se rekurzivní a nerekurzivní zápisy základních algoritmů.
- Naučí se vytvářet a analyzovat algoritmy vyhledávání a řazení.
- Student se naučí odborné terminologii v českém i anglickém jazyce
- Student se naučí vytvářet malé projekty v malém týmu
- Student se naučí prezentaci a obhajobě výsledků v malém projektu
Prerekvizity
- Znalost základů programování v procedurálně orientovaném programovacím jazyce.
- Středoškolské znalosti z matematiky
Způsob a kritéria hodnocení
- získání minimálně 20 bodů za semestr
-
Pokud bude odhaleno plagiátorství nebo nedovolená spolupráce na projektech či domácích úlohách, zápočet nebude udělen a dále bude zváženo zahájení disciplinárního řízení.
Osnovy výuky
- Osnova přednášek:
- Základy algoritmického jazyka. Přehled datových struktur. Abstraktní datový typ a jeho specifikace.
- Specifikace, implementace a použití ADT seznam.
- Specifikace, implementace a použití ADT zásobník, fronta. Vyčíslení výrazů s použitím zásobníku.
- ADT pole, množina, graf, binární strom.
- Algoritmy nad binárním stromem.
- Vyhledávání, sekvenční, v poli, binární vyhledávání.
- Binární vyhledávácí stromy, AVL strom.
- Vyhledávání v tabulkách s rozptýlenými položkami.
- Řazení, principy, bez přesunu, s vícenásobným klíčem.
- Známé metody řazení polí I
- Známé metody řazení polí II, řazení souborů.
- Rekurze, algoritmy s návratem.
- Dokazování správnosti programů, tvorba dokázaných programů.
- Dvě domácí úlohy
- Projekt s miniobhajobou skupiny studentů.
Osnova ostatní - projekty, práce:
Učební cíle
Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky
- Opravované domácí úlohy - 20 bodů
- Půlsemestrální písemná zkouška - 14 bodů
- Hodnocený projekt s obhajobou - 15 bodů
- Závěrečná písemná zkouška - 51 bodů; Pro získání bodů ze závěrečné písemné zkoušky je nutné zkoušku vypracovat tak, aby byla hodnocena nejméně 20 body. V opačném případě bude zkouška hodnocena 0 body.
Prerekvizity a korekvizity
- doporučená prerekvizita
Základy programování
Základní literatura
Doporučená literatura
Zařazení předmětu ve studijních plánech
Typ (způsob) výuky
Přednáška
Vyučující / Lektor
Osnova
- Základy algoritmického jazyka. Přehled datových struktur. Abstraktní datový typ a jeho specifikace.
- Specifikace, implementace a použití ADT seznam.
- Specifikace, implementace a použití ADT zásobník, fronta. Vyčíslení výrazů s použitím zásobníku.
- ADT pole, množina, graf, binární strom.
- Algoritmy nad binárním stromem.
- Vyhledávání, sekvenční, v poli, binární vyhledávání.
- Binární vyhledávácí stromy, AVL strom.
- Vyhledávání v tabulkách s rozptýlenými položkami.
- Řazení, principy, bez přesunu, s vícenásobným klíčem.
- Známé metody řazení polí I
- Známé metody řazení polí II, řazení souborů.
- Rekurze, algoritmy s návratem.
- Dokazování správnosti programů, tvorba dokázaných programů.