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

Úvod do programování

Přihlášení do KOSu pro zápis předmětu Zobrazit rozvrh
Kód Zakončení Kredity Rozsah Jazyk výuky
17KMCUP KZ 2 8P+8C česky
Přednášející:
Pavel Smrčka (gar.)
Cvičící:
Pavel Smrčka (gar.)
Předmět zajišťuje:
katedra informačních a komunikačních technologií v lékařství
Anotace:

Algoritmus vs. program, způsoby zápisu algoritmu. Etapy řešení algoritmického problému. Základní struktura programů v jazyce C s ukázkami: jednoduché a složené výrazy, přiřazovací příkaz, příkaz vstupu a výstupu, základní struktura programů v jazyce C s ukázkami. Pole, podmíněný příkaz, cykly. Lexikální elementy jazyka C. Výrazy, přiřazení. Data - elementární typy, proměnné, operátory. Deklarace, rozsahy platnosti proměnných. Řídicí struktury - příkazy. Odvozené datové typy (ukazatel, pole, struktura, union). Uživatelem definované typy. Funkce, předávání parametrů hodnotou a odkazem, preprocesor jazyka C, práce se soubory. Dynamické přidělování paměti. Práce se znakovými řetězci v C. Projekt v C - práce s více moduly, hlavičkové soubory. Úvod do 2D grafiky. Přehled vybraných knihoven pro práci s 2D grafikou. Úvod do numerických algoritmů - aproximace metodou nejmenších čtverců. Iterační metody hledání kořenů nelineárních rovnic, Algoritmy numerické derivace a integrace - ukázky řešení. Přehled algoritmů třídění. Úvod do algoritmů vyhledávání. Praktický úvod do posuzování kvality algoritmů. Paměťová náročnost algoritmu. Fce časové složitosti, asymptotická složitost. Měření časové náročnosti algoritmu.

Požadavky:

Realizace průběžných úloh s minimálním ziskem 20 bodů (maximum 40), realizaace samostatných individuálních úloh s minimálním ziskem 10 bodů (maximum 20), absolvování testu s celkovým minimálním ziskem 20 bodů (maximum 40). Celkové hodnocení: 50-59 bodů = E (3), 60-69 bodů = D (2.5), 70-79 bodů = C (2), 80-89 bodů = B (1.5), 90-100 bodů = A (1)

Osnova přednášek:

1. Algoritmus vs. program, způsoby zápisu algoritmu. Etapy řešení algoritmického problému.

2. Základní struktura programů v jazyce C s ukázkami: jednoduché a složené výrazy, přiřazovací příkaz, příkaz vstupu a výstupu, základní struktura programů v jazyce C s ukázkami.

3. Pole, podmíněný příkaz, cykly.

4. Lexikální elementy jazyka C. Výrazy, přiřazení. Data - elementární typy, proměnné, operátory,

5. Deklarace, rozsahy platnosti proměnných. Řídicí struktury - příkazy.

6. Odvozené datové typy (ukazatel, pole, struktura, union). Uživatelem definované typy.

7. Funkce, předávání parametrů hodnotou a odkazem, preprocesor jazyka C, práce se soubory.

8. Dynamické přidělování paměti. Práce se znakovými řetězci v C.

9. Projekt v C - práce s více moduly, hlavičkové soubory.

10. Úvod do 2D grafiky. Přehled vybraných knihoven pro práci s 2D grafikou.

11. Úvod do numerických algoritmů - aproximace metodou nejmenších čtverců. Iterační metody hledání kořenů nelineárních rovnic,

12. Algoritmy numerické derivace a integrace - ukázky řešení.

13. Přehled algoritmů třídění. Úvod do algoritmů vyhledávání.

14. Praktický úvod do posuzování kvality algoritmů. Paměťová náročnost algoritmu. Fce časové složitosti, asymptotická složitost. Měření časové náročnosti algoritmu.

Osnova cvičení:

1. Praktické ukázjky různých forem zápisu algoritmu, ukázky řešení algoritmického problému.

2. Úlohy - jednoduché a složené výrazy, přiřazovací příkaz, příkaz vstupu a výstupu, základní struktura programů v jazyce C s ukázkami.

3. Úlohy - pole, podmíněný příkaz, cykly.

4. Úlohy - výrazy, přiřazení, elementární typy, proměnné, operátory,

5. Úlohy - deklarace, rozsahy platnosti proměnných.

6. Úlohy - odvozené datové typy (ukazatel, pole, struktura, union). Uživatelem definované typy.

7. Úlohy - funkce, předávání parametrů hodnotou a odkazem, preprocesor jazyka C, práce se soubory.

8. Úlohy - Dynamické přidělování paměti.

9. Úlohy - Projekt v C - práce s více moduly, hlavičkové soubory.

10. Úlohy - využití 2D grafiky. Přehled vybraných knihoven pro práci s 2D grafikou.

11. Praktická ukázka -aproximace metodou nejmenších čtverců. Iterační metody hledání kořenů nelineárních rovnic,

12. Praktická ukázka - numerická derivace a integrace - ukázky řešení.

13. Praktické využití a srovnání vybraných algoritmů třídění.

14. Praktické ukázky stanovení časové a paměťové náročnosti algoritmů.

Cíle studia:

Osvojení praktických základů (pojmů, postupů a prostředků) programování se zaměřením na oblast biomedicínského inženýrství, nezbytných pro pochopení vnitřního fungování softwarových systémů.Během výuky se student naučí specifikovat algoritmickou úlohu, provést její analýzu, dekompozici, navrhnout, implementovat a odladit jednoduché řešení. Obsah předmětu je strukturován tak, aby byly nabyté znalosti využitelné v navazujících předmětech na FBMI ČVUT, zaměřených na informační technologie.

Studijní materiály:

Výukové materiály pro tento předmět jsou zveřejněny prostřednictvím e-learningového systému na adrese <a href="https://skolicka.fbmi.cvut.cz">https://skolicka.fbmi.cvut.cz</a>

[1] Wroblewski, S.: Algoritmy, Datové struktury a programovací techniky, ComputerPress, Brno 2004

[2] Kadlec: Učíme se programovat v jazyce C, ComputerPress, Praha 2002

[3] Sedgewick, J.: Algoritmy v C, SoftPress, Praha 2005

[4] Herout: Učebnice jazyka C (IV. vydání), KOPP, České Budějovice 2004

[5] Corman et al.: Introduction to Algorithms, The MIT Press, 2nd edition 2001

[6] Goodrich et al: Algorithm Design - Foundations, Analysis, and Internet Examples, John Wiley & Sons, New York 2002

Poznámka:
Další informace:
https://skolicka.fbmi.cvut.cz
Rozvrh na zimní semestr 2020/2021:
Rozvrh není připraven
Rozvrh na letní semestr 2020/2021:
Rozvrh není připraven
Předmět je součástí následujících studijních plánů:
Platnost dat k 2. 3. 2021
Aktualizace výše uvedených informací naleznete na adrese http://bilakniha.cvut.cz/cs/predmet2844206.html