Logo ČVUT
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
STUDIJNÍ PLÁNY
2022/2023

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

Přihlášení do KOSu pro zápis předmětu Zobrazit rozvrh
Kód Zakončení Kredity Rozsah Jazyk výuky
B0B36PRP Z,ZK 6 2P+2C česky
Předmět nesmí být zapsán současně s:
Programování 1 (A0B36PR1)
Předmět je náhradou za:
Programování 1 (A0B36PR1)
Přednášející:
Jan Faigl (gar.)
Cvičící:
Jan Faigl (gar.), Jindřiška Deckerová, Jakub Dupák, Petra Fridrichová, Ingrid Nagyová
Předmět zajišťuje:
katedra počítačů
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.

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

Osnova 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

Osnova 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

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.

Studijní materiály:

• Herout, P.: Učebnice jazyka C. III. vyd. Kopp, Č.Budějovice, 2016. ISBN: 80-85824-21-9

• Prokop, J.: Algoritmy v jazyku C a C++, Grada, ISBN 978-80-2477-2751-6, 2009.

• Cormen, Leiserson, Rivest, and Stein: Introduction to Algorithms, (3rd Edition or later), 2009.

• Kochan: Programming in C, (3rd Edition or later), 2014.

Poznámka:
Další informace:
https://cw.felk.cvut.cz/wiki/courses/b0b36prp
Rozvrh na zimní semestr 2022/2023:
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Po
místnost T2:H1-131
Fridrichová P.
09:15–10:45
(přednášková par. 2
paralelka 203)

Dejvice haly
AlgDejvice
místnost T2:H1-130
Nagyová I.
12:45–14:15
(přednášková par. 2
paralelka 201)

Dejvice haly
AlgDejvice - Veřejná
místnost T2:H1-131
Dupák J.
14:30–16:00
(přednášková par. 2
paralelka 207)

Dejvice haly
AlgDejvice
místnost T2:H1-130
Deckerová J.
09:15–10:45
(přednášková par. 2
paralelka 204)

Dejvice haly
AlgDejvice - Veřejná
místnost T2:H1-131
Dupák J.
12:45–14:15
(přednášková par. 2
paralelka 202)

Dejvice haly
AlgDejvice
místnost T2:H1-130
Nagyová I.
14:30–16:00
(přednášková par. 2
paralelka 208)

Dejvice haly
AlgDejvice - Veřejná
místnost T2:H1-130
Nagyová I.
11:00–12:30
(přednášková par. 2
paralelka 205)

Dejvice haly
AlgDejvice - Veřejná
místnost T2:H1-131
Fridrichová P.
11:00–12:30
(přednášková par. 2
paralelka 206)

Dejvice haly
AlgDejvice
Út
St
místnost T2:D3-309
Faigl J.
16:15–17:45
(přednášková par. 2)
Dejvice
T2:D3-309
Čt
místnost T2:H1-130

09:15–10:45
(přednášková par. 2
paralelka 210)

Dejvice haly
AlgDejvice - Veřejná
místnost T2:H1-130

11:00–12:30
(přednášková par. 2
paralelka 209)

Dejvice haly
AlgDejvice - Veřejná

místnost KN:E-311
Faigl J.
10:00–11:45
(přednášková par. 2
paralelka 444)

Karlovo nám.
Lab K311
Rozvrh na letní semestr 2022/2023:
Rozvrh není připraven
Předmět je součástí následujících studijních plánů:
Platnost dat k 2. 2. 2023
Aktualizace výše uvedených informací naleznete na adrese https://bilakniha.cvut.cz/cs/predmet4702606.html