Procedurální programování (pro OI)

B181 - Zimní 18/19
Tento předmět se nenachází v Moodle. Na jeho domovskou stránku se můžete dostat pomocí tlačítka "Stránka kurzu (mimo Moodle)" vpravo (pokud existuje).

Procedurální programování (pro OI) - B0B36PRP

Kredity 6
Semestry zimní
Zakončení zápočet a zkouška
Jazyk výuky čeština
Rozsah výuky 2P+2C
Anotace
Cílem předmětu je osvojit si principy procedurálního programování v jazyku C. Předmět je tvořen dvěma vzájemně propojenými částmi:
a. základy jazyka C, kde se studenti naučí vytvářet programy v jazyce C podle běžných standardů a konvencí
b. základy algoritmizace a procedurálního programování
Studenti se v předmětu seznámí s analýzou výpočetní úlohy, reprezentací funkcemi a procedurami a syntézou do funkčního programu. Konzultace jsou založeny na prezentaci základních programových konstrukcí a demonstraci motivačních programů dávající do souvislosti dílčí konstrukty s praktickým zápisem s důrazem na čitelnost zdrojových kódů.
Těsný kontakt procedurálního přístupu a datové abstrakce je demonstrován v jazyce C.
Základní pracovní metodou předmětu Procedurální programování je návrh a odladění nejen všech zadaných programů, ale i pochopení programů doporučených.
Cíle studia
Získání zkušeností s programováním a získání programovacích návyků tvorby funkčních a správně implementovaných programů. Osvojení si psaní čitelných, srozumitelných, dobře udržovatelných a znovupoužitelných programů. Porozumění cizím kódům.
Osnovy přednášek
Seznam témat:
1. Programové vybavení, překladače, typy překladu, analýza a syntéza programových úloh, ladění programů; struktura počítače, strojový kód, paměť

2. Algoritmus a jeho vlastnosti, způsoby vyjádření algoritmů; program, programovací jazyky, syntaxe a sémantika, úvod do jazyka C

3. Proměnná, výrazy, typy operací, asociativita a priorita operací,

4. Řídící struktury, cykly, základní vstup a výstup

5. Jednoduché datové typy a jejich reprezentace v paměti počítače, aproximace reálných hodnot

6. Strukturované datové typy, pole

7. Procedury a funkce, parametry funkcí, způsoby předávání, volání odkazem a hodnotou

8. Vícerozměrná pole, pointery a pole, řetězce, pole a parametry funkcí

9. Pointery, pointerová aritmetika, dynamická správa paměti

10. Rekurze, procedurální programování

11. Preprocesor, hlavičkové soubory, projekt, knihovny, podmíněný překlad, soubory

12. Speciální struktury, struktury, uniony, výčtové typy

13. Základní algoritmy řazení a vyhledávání, složitost algoritmů

14. Abstraktní datový typ
Osnovy cvičení
Praktická cvičení jsou zaměřena na získání a procvičování programovacích návyků tak, aby studenti byli schopni samostatně vytvářet čitelné kód. Odevzdávané úlohy jsou automaticky ověřovány a testovány na robustnost ošetření vstupních hodnot. V průběhu semestru studenti získávají body za odevzdané úlohy a programovací písemky. Bodové hodnocení úlohy se skládá z bodů za správnost a efektivitu kódu, dále pak z bodů zohledňující kvalitu zdrojových kódů, jejich čitelnost a znovu použitelnost.

1.Programové vybavení, překladače, typy překladu, analýza a syntéza programových úloh, ladění programů; struktura počítače, strojový kód, paměť počítače, strojový kód, paměť

2. Algoritmus a jeho vlastnosti, způsoby vyjádření algoritmů; program, programovací jazyky, syntaxe a sémantika, úvod do jazyka C

3. Příkazy, řídící struktury, cykly, základní vstup a výstup

4. Proměnná, výrazy, typy operací, asociativita a priorita operací, jednoduché datové typy a jejich reprezentace v paměti počítače

5. Procedury a funkce, parametry funkcí, způsoby předávání, volání odkazem a hodnotou

6. Procedurální programování

7. Strukturované datové typy, pole, řetězce

8. Vícerozměrná pole, pointery a pole

9. Pointery, pointerová aritmetika, dynamická správa paměti

10. Rekurze, procedurální programování

11. Preprocesor, hlavičkové soubory, projekt, knihovny, podmíněný překlad, soubory

12. Struktury, uniony, výčtové typy

13. Základní algoritmy řazení a vyhledávání, složitost algoritmů

14. Abstraktní datový typ
Literatura
• Kochan: Programming in C, (3rd Edition or later), 2014.

• King: C Programming: A Modern Approach, (2nd Edition or later), 2008.
• Klemens: 21st Century C: C Tips from the New School, 2012.

• Sedgewick, Wayne: Algorithms (4th Edition or later), 2011.
• Cormen, Leiserson, Rivest, and Stein: Introduction to Algorithms, (3rd Edition or later), 2009.
Požadavky
Předmět Procedurální programování student/tka úspěšně ukončí, když:
v řádných termínech odevzdá zadané čtyři domácí úlohy
odevzdá semestrální úlohu
úspěšně absolvuje závěrečné soustředění a získá zápočet
úspěšně složí zkoušku

Zásadní témata, bez kterých nelze zvládnout zkoušku z předmětu
Programovací jazyky, jejich typy a vlastnosti
Syntaxe a sémantika
Překladač, typy překladu
Algoritmus a jeho vlastnosti
Iterační a rekurzivní výpočty
Výrazy
Řídící struktury
Strukturalizace programu, procedury a funkce
Mechanismus předávání parametrů, volání hodnotou a odkazem
Jazyk C, struktura, hlavičkové soubory
Jednoduché datové typy
Reprezentace dat v paměti počítače
Strukturované datové typy, pole, soubory
Pointery, pointery a pole, pointerová aritmetika
Základní algoritmy hledání a řazení
Abstraktní datový typ