PředmětyPředměty(verze: 970)
Předmět, akademický rok 2024/2025
   Přihlásit přes CAS
Algoritmy a datové struktury - ALG119001
Anglický název: Introduction to Computer Science II
Zajišťuje: Katedra logiky (21-KLOG)
Fakulta: Filozofická fakulta
Platnost: od 2023
Semestr: letní
Body: 0
E-Kredity: 5
Způsob provedení zkoušky: letní s.:
Rozsah, examinace: letní s.:2/0, Zk [HT]
Počet míst: 20 / neurčen (neurčen)
Minimální obsazenost: neomezen
4EU+: ne
Virtuální mobilita / počet míst pro virtuální mobilitu: ne
Kompetence:  
Stav předmětu: vyučován
Jazyk výuky: čeština
Způsob výuky: prezenční
Úroveň:  
Poznámka: předmět je možno zapsat mimo plán
povolen pro zápis po webu
Garant: Mgr. Aleš Podolník, Ph.D.
Vyučující: Mgr. Aleš Podolník, Ph.D.
Anotace -
Kurz navazuje na základy programování ALG119000 a pracuje teoretickými aspekty programování, seznámení se s různými algoritmy a jejich složitostí.
Poslední úprava: Švarný Petr, Mgr., Ph.D. (20.01.2021)
Cíl předmětu -

  1. Základy programování
    Psaní jednoduchých algoritmů, opakování z přednášky ALG119000.

  2. Lineární datové struktury
    Schéma operační paměti. Reprezentace pole, spojový seznam. Fronta a zásobník a příklady.

  3. Nelineární datové struktury
    Definice stromu. Halda a k čemu je. Graf a základní pojmy.

  4. Program a programovací techniky
    Definice funkce. Rekurze. Převod mezi rekurzivním programem a sekvenčním výpočtem. Algoritmy podle metody.

  5. Složitost
    Měření velikosti problému a třída složitosti. Příklad odhadu složitosti na vybraném algoritmu. Paměťová složitost algoritmu.

  6. Vyčíslitelnost
    Turingův stroj. Základní pojmy vyčíslitelnosti a rozhodnutelnosti. Co je vyřešení a ověření problému. 

  7. Třídicí algoritmy
    Třídicí algoritmy s kvadratickou složitostí. Optimalizované třídicí algoritmy. Důkaz, že třídicí algoritmus má složitost minimálně N log N.

  8. Grafy
    Graf a základní pojmy. Reprezentace grafu v algoritmu. Prohledávání do hloubky. Prohledávání do šířky. Nejkratší cesta. Hledání mostů. Minimální kostra. Důkaz obarvení rovinného grafu 5 barvami.

Poslední úprava: Podolník Aleš, Mgr., Ph.D. (29.05.2025)
Literatura -
  • Töpfer, P.: Algoritmy a programovací techniky, Prometheus 1995
  • Wirth, N.: Algorithms + Data Structures = Programs, Prentice-Hall 1975 (slov. překlad: Algoritmy a štruktúry údajov, Alfa 1988)
  • Knuth, D. E.: The Art of Computer Programming, Vol 1,2,3
Poslední úprava: Švarný Petr, Mgr., Ph.D. (20.01.2021)
Metody výuky

Pravidelné přednášky a praktická programovací cvičení.

Poslední úprava: Švarný Petr, Mgr., Ph.D. (20.01.2021)
Vstupní požadavky -

Součástí kurzu jsou programovací úlohy, proto je třeba umět programovat v Pythonu (viz. předcházející kurz ALG119000).

Poslední úprava: Švarný Petr, Mgr., Ph.D. (20.01.2021)
 
Univerzita Karlova | Informační systém UK