Popis předmětu - B0B36PRP

Přehled studia | Přehled oborů | Všechny skupiny předmětů | Všechny předměty | Seznam rolí | Vysvětlivky               Návod
B0B36PRP Procedurální programování (pro OI)
Role:P Rozsah výuky:2P+2C
Katedra:13136 Jazyk výuky:CS
Garanti:Faigl J. Zakončení:Z,ZK
Přednášející:Faigl J. Kreditů:6
Cvičící:Osob je mnoho Semestr:Z

Webová stránka:

https://cw.felk.cvut.cz/wiki/courses/b0b36prp

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.

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

Předmět je zahrnut do těchto studijních plánů:

Plán Obor Role Dop. semestr
BPOI1_2016 Informatika a počítačové vědy P 1
BPOI_BO_2016 Před zařazením do oboru P 1
BPOI4_2016 Počítačové hry a grafika P 1
BPOI3_2016 Software P 1
BPOI2_2016 Internet věcí P 1
BPOI_BO_2018 Před zařazením do oboru P 1
BPOI4_2018 Počítačové hry a grafika P 1
BPOI3_2018 Software P 1
BPOI2_2018 Internet věcí P 1
BPOI1_2018 Základy umělé inteligence a počítačových věd P 1


Stránka vytvořena 28.3.2024 09:53:46, semestry: Z,L/2023-4, Z/2024-5, 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)