Cílem předmětu Programování je seznámit posluchače se způsoby, jak algoritmizovat základní programátorské techniky. V průběhu budou vysvětlena následující témata: 1. Dynamicky alokovaná paměť 2. Jednoduché dynamicky alokované datové struktury 3. Stromy 4. Grafy 5. Rekurze 6. Třídící algoritmy Literatura: [1] Töpfer, P: ALGORITMY a programovací techniky (Prometheus, 1995) [2] Töpferová, D., Töpfer, P.: Sbírka úloh z programování (Grada, 1992) Způsob zakončení: Výuka je zakončena prakticky zaměřenou zkouškou, předmětem zkoušky je naprogramování zadané úlohy.
metodický list č. 1 Název hodiny: Dynamicky alokovaná paměť Cílem tohoto tematického celku je vysvětlení konceptu dynamické paměti a způsob používání dynamické paměti v jazyku PASCAL. 1. dílčí téma: Dynamicky alokovaná paměť vysvětlení fungování dynamicky alokované paměti proměnné typu ukazatel dynamicky vytvářené proměnné volání new/dispose operátor ^ 2. dílčí téma: Lineární spojový seznam Lineární spojový seznam jako příklad využití dynamicky alokovaných proměnných
metodický list č. 2 Název hodiny: Jednoduché dynamické datové struktury Cílem tohoto tematického celku je vysvětlit a ukázat různé možnosti implementace jednoduchých lineárních dynamických datových struktur. 1. dílčí téma Implementace jednoduchých datových struktur Způsoby implementace lineárních dynamických datových struktur, výhody a nevýhody jednotlivých způsobů implementace lineární spojový seznam obousměrný spojový seznam seznam s hlavou 2. dílčí téma: Datové struktury typu fronta, zásobník vysvětlení různých možností implementace datových struktur typu fronta, zásobník implementace v poli implementace s využitím lineárních spojových seznamů
metodický list č. 3 Název hodiny: Stromy Cílem tohoto tematického celku je vysvětlení datových struktur typu strom, jejich implementaci a využití 1. dílčí téma: Implementace datové struktury typu strom Způsoby realizace různých druhů "stromů" v paměti binární stromy obecné stromy 2. dílčí téma: Binární vyhledávací strom Příklad využití datové struktury typu strom pro ukládání a vyhledávání prvků implementace algoritmu pro vkládání, vyhledávání a odebírání prvků ze binárního vyhledávacího stromu
metodický list č. 4 Název hodiny: Grafy I Cílem tohoto tematického celku je vysvětlení různých reprezentací grafů v paměti, ukázka některých grafových algoritmů 1. dílčí téma: Způsoby reprezentace grafů v paměti programu matice sousednosti matice vzdáleností matice incidence seznam následníků seznam hran dynamická reprezentace 2. dílčí téma: základní grafové algoritmy komponenty souvislosti hledání nejkratší cesty v grafu
metodický list č. 5 Název hodiny: Grafy II Cílem tohoto tematického celku je vysvětlení dalších grafových algoritmů, zejména Dijkstrova algoritmu pro hledání nejkratší cesty v grafu. 1. dílčí téma: Dynamicky alokovaná paměť zjišťování vzdáleností v neohodnoceném grafu hledání nejkratší cesty
metodický list č. 6 Název hodiny: Rekurze Cílem tohoto celku je vysvětlení konceptu rekurze a způsobů jejího využití v programování. prohledávání grafů s pomocí rekurze a bez ní výpočet aritmetických výrazů s využitím rekurze
Programování: Metodický list č. 7 Název hodiny: Třídění Cílem tohoto tematického celku je vysvětlení a ukázka implementace některých třídících algoritmů. algoritmus Bubblesort algoritmus Quicksort algoritmus Heapsort Způsob zakončení: Výuka je zakončena prakticky zaměřenou zkouškou, předmětem zkoušky je naprogramování zadané úlohy.