* 1. Programovací jazyk Pascal
- modulární programování, unity
- typ ukazatel, dynamicky alokované proměnné
- objektové programování
* 2. Algoritmy a programování
- halda, heapsort
- rekurzivní třídění (quicksort, mergesort)
- přihrádkové třídění (bucketsort, radixsort)
- dolní odhad složitosti problému třídění
- hledání k-tého nejmenšího prvku (quickselect)
- vnější třídění
- dynamicky alokované proměnné, dynamické datové struktury
- lineární spojové seznamy a operace s nimi, druhy lineárních spojových seznamů
- použití lineárních spojových seznamů - zásobník a fronta, dlouhá čísla, polynomy
- stromy, grafy, průchody stromem a grafem
- binární vyhledávací stromy, operace, vyvážené stromy
- aritmetické notace, vyhodnocení aritmetického výrazu
- dynamické programování
- programová realizace základních grafových algoritmů (souvislost grafu, Dijkstrův algoritmus, minimální kostra, bipartitnost, topologické třídění)
- základy objektového programování
Předpokládají se vstupní znalosti v rozsahu předmětu NMIN101 Programování 1.
Přednáška pro posluchače bakalářského studia matematiky, kteří tento předmět úspěšně neabsolvovali v prvním roce svého studia. Obsahem kursu je programování v jazyce Pascal, metody návrhu algoritmů a tvorby programů.
Předpokládají se vstupní znalosti v rozsahu předmětu NMIN101 Programování 1, na který tento předmět přímo navazuje.