Přehled studia |
Přehled oborů |
Všechny skupiny předmětů |
Všechny předměty |
Seznam rolí |
Vysvětlivky
Návod
Webová stránka:
https://moodle.fel.cvut.cz/local/kos/pages/course/info.php?id=6221
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ákladní pracovní metodou předmětu Procedurální programování je navrhnout a odladit nejen všechny zadané programy, ale i programy doporučené. Předmět nelze absolvovat úspěšně jen studiem programovacího jazyka, ale i základní schopností navrhnout algoritmus a zapsat ho v jazyku C. Předmět Procedurální programování je fundamentálním výchozím předmětem pro bezprostředně návazný předmět Programování C/C++ ale i pro další odborné předměty studijního programu EEK..
Předmět je tvořen dvěma vzájemně propojenými částmi: částí, která je zaměřena na algoritmizaci a částí, kde se pak studenti naučí základy jazyka C a vytvářet programy v jazyce C podle běžných standardů a konvencí. V praktické části předmětu, na seminářích, se studenti odladí projekty v jazyce C.
Studenti tedy musí po seznámení s novým tématem analyzovat a 100% pochopit diskutované programy (nejasnosti řešit okamžitě na konzultaci, případně emailem) a zkusit si přiměřený počet doporučených příkladů. Je doporučeníhodnou strategii k úspěšnému zvládnutí předmětu se před konzultací, přednáškou o novém tématu se alespoň rámcově s tématem seznámit.
Obsah:
Zásadní témata, bez kterých nelze absolvovat předmět PRP:
Programovací jazyky, jejich typy a vlastnosti
Jazyk C, struktura, projektu,
Syntaxe a sémantika
Překladač, typy překladu
Algoritmus a jeho vlastnosti
Řídící struktury
Výrazy
Jednoduché datové typy
Reprezentace dat v paměti počítače
Strukturované datové typy, pole, soubory
Strukturalizace programu, procedury a funkce
Mechanismus předávání parametrů, volání hodnotou a odkazem
Iterační a rekurzivní výpočty
Hlavičkové soubory, knihovny
Pointery, pointery a pole, pointerová aritmetika
Základní algoritmy hledání a řazení
Abstraktní datový typ
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
Klíčová slova:
Procedurální programování, algoritmizace, jazyk C
Předmět je zahrnut do těchto studijních plánů:
Stránka vytvořena 19.5.2024 15:50:46, semestry: Z/2024-5, Z,L/2023-4, připomínky k informační náplni zasílejte správci studijních plánů |
Návrh a realizace: I. Halaška (K336), J. Novák (K336) |