- algoritmus, časová a paměťová složitost
- dělitelnost čísel, Eukleidův algoritmus
- test prvočíselnosti, Eratosthenovo síto
- rozklad čísla na cifry
- aritmetika s vyšší přesností („dlouhá čísla“)
- Hornerovo schéma, pozi ční číselné soustavy
- algoritmy vyhledávání v poli (sekvenční, binární, zarážka)
- třídění čísel v poli - přímé metody, heapsort, mergesort, quicksort
- složitost problému třídění
- přihrádkové třídění
- vnější třídění
- reprezentace dat v paměti - alokace paměti, garbage collector
- zásobník, fronta, slovník, halda
- spojový seznam
- rekurze - princip, příklady, efektivita
- binární a obecný strom - reprezentace, průchod, použití
- notace aritmetického výrazu - vyhodnocení, převody
- binární vyhledávací strom, princip vyvažování
- hešovací tabulka
- reprezentace grafu
- prohledávání grafu, základní grafové algoritmy
- prohledávání stavového prostoru do hloubky a do šířky
- metody zrychlení backtrackingu - ořezávání, heuristiky
- programování her, algoritmus minimaxu
- metoda Rozděl a panuj
- dynamické programování
Předpokládají se vstupní znalosti v rozsahu předmětu NMTD103 Programování pro deskriptivní geometrii I.
Základní kurz programování pro 1. ročník bakalářského studia. Obsahem kursu je programování v jazyce Python, metody návrhu algoritmů a tvorby programů.
Předpokládají se vstupní znalosti v rozsahu předmětu NMTD103 Programování pro deskriptivní geometrii I, na který tento předmět přímo navazuje.