Popis:
		Cíle předmětu:
Naučit se analyzovat vybrané problémy a stanovit elementární algoritmy k jejich řešení. Seznámit se s principy a vlastnostmi vyšších programovacích jazyků a zvolený jazyk ovládnout na úrovni nezbytné pro implementaci algoritmů. Seznámit se s organizací dat při řešení problémů. Aktivně ovládnout základní algoritmy a umět je aplikovat v praktických problémech. Seznámit se s hodnocením složitosti algoritmů. Seznámit se s principy testování programů. Naučit se používat prostředky pro ladění programů. Naučit se dokumentovat, obhajovat a prezentovat dosažené výsledky.
Anotace:
Algoritmy a řešení problémů: strategie řešení problémů, strukturovaná dekompozice, pojem a vlastnosti algoritmu. Základní programovací konstrukty: syntaxe a sémantika vyššího programovacího jazyka, proměnné, typy, výrazy, řídicí struktury, procedury a funkce, předávání parametrů, vstupy/výstupy, zpracování výjimečných stavů. Základní datové struktury: primitivní datové typy, strukturované datové typy: pole, záznam, soubor, znakové řetězce. Dynamické datové struktury, typ ukazatel. Strategie pro volbu vhodné datové struktury. Rekurze, pojem rekurze. Globální a lokální proměnné. Jednoduché rekurzivní funkce (procedury). Modulární návrh a abstrakce. Pojmy a algoritmy budou ilustrovány využitím vhodného programovacího jazyka (ISO/IEC 9899:1999 Programming languages - C).
		
        
    
    Klíčová slova:
		
		  		  algoritmy
		  		  oddělovače
		  		  funkce
		  		  programování
		  		  implementace
		  		  parametry
		  		
		
				
		
		Obsah:
		
				- Vlastnosti algoritmů, notace a zápis algoritmů.
 Techniky řešení problémů. Návrh a implementace algoritmů.
 Principy vyšších programovacích jazyků. Symboly, oddělovače, konstanty, identifikátory, proměnné, reprezentace čísel, návěští.
 Koncepce dat. Jednoduché datové typy. Výrazy a příkazy.
 Řídicí struktury. Bloková struktura programu, rozsah platnosti identifikátorů.
 Funkce, parametry funkcí.
 Textové soubory, standardní vstup/výstup.
 Strukturované datové typy.
 Rekurze v programování.
 Typ ukazatel a dynamické proměnné. Spojové struktury.
 Základní metody řazení.
 Základní metody vyhledávání.
 Verifikace programů, ladění a dokumentace.