Logo ČVUT
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
STUDIJNÍ PLÁNY
2023/2024
UPOZORNĚNÍ: Jsou dostupné studijní plány pro následující akademický rok.

Algoritmizace a programování

Přihlášení do KOSu pro zápis předmětu Zobrazit rozvrh
Kód Zakončení Kredity Rozsah Jazyk výuky
F7PBKALP Z,ZK 6 2P+2C česky

Úspěšná klasifikace předmětu F7PBKALP je podmínkou pro následnou klasifikaci předmětu F7PBKNVMA-C

Úspěšná klasifikace předmětu F7PBKALP je podmínkou pro následnou klasifikaci předmětu F7PBKAZC-C

Úspěšná klasifikace předmětu F7PBKALP je podmínkou pro následnou klasifikaci předmětu F7PBKNVM-C

Úspěšná klasifikace předmětu F7PBKALP je podmínkou pro následnou klasifikaci předmětu F7PBKMTB-C

Garant předmětu:
Pavel Smrčka
Přednášející:
Tomáš Funda, Lenka Hanáková, Pavel Smrčka, Tomáš Veselý
Cvičící:
Tomáš Funda, Lenka Hanáková, Pavel Smrčka, Tomáš Veselý
Předmět zajišťuje:
katedra informačních a komunikačních technologií v lékařství
Anotace:

Cílem předmětu je seznámit s praktickými základy algoritmizace se zaměřením na oblast biomedicínského inženýrství. Osvojení základních programátorských technik, nezbytných pro pochopení vnitřního fungování moderních softwarových systémů. Důraz je kladen na praktickou a samostatnou aplikaci nejpoužívanějších algoritmů, bezprostředně využitelných v biomedicínském inženýrství. Vstupní požadavky předmětu jsou znalost matematiky a logiky na středoškolské úrovni. Student získá následující výstupní znalosti, dovednosti, schopnosti a kompetence: student zvládne specifikaci algoritmické úlohy, bude schopen provést její analýzu, dekompozici metodou top-down a navrhnout, implementovat a odladit jednoduché řešení v jazyce ISO C resp. C++. Osvojí si základní datové a řídicí struktury, zejména výrazy, operátory, přiřazení, elementární i strukturované datové typy, podmínky, cykly, realizaci datových vstupů a výstupů. Bude chápat paradigma strukturovaného programování a znát vybrané základní algoritmy.

Požadavky:

Povinná účast na cvičeních, realizace průběžných úloh s minimálním ziskem 20 bodů (maximum 40), absolvování testů s celkovým minimálním ziskem 30 bodů (maximum 60). 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:

Osnova přednášek:

1. Algoritmus: intuitivní zavedení pojmu, vymezující vlastnosti. Způsoby zápisu algoritmu. Etapy řešení problému, metoda top-down. Základní datové a řídicí struktury, datové typy, výrazy a operátory, složené příkazy.

2. Pole proměnných, vektory, matice. Logická proměnná, podmíněný příkaz. Větvení, cykly (indukční, iterační).

3. Fáze vývoje programů v jazyce C. Výrazy, operátory, přiřazení. Data - typy, proměnné, deklarace.

4.. Řídicí struktury - příkazy: výrazový příkaz, blok, podmíněný příkaz, přepínač, příkazy cyklu, příkaz skoku.

5. Odvozené datové typy - struktura, sjednocení, ukazatel, pole. Uživatelem definované typy. Podprogramy.

6. Řízení preprocesoru jazyka C: vkládání souborů, expanze maker, podmíněný překlad. Debugger. Práce se soubory.

7. Dynamické přidělování paměti, ukazatele na složené datové typy.

8. Úvod do 2D vektorové grafiky - pojmy. Vektorová a rastrová grafika, přehled knihoven pro práci s 2D grafikou.

9. Grafické uživatelské rozhraní (GUI). Událostmi řízené programování. Základy tvorby GUI v GTK+.

10. Numerické algoritmy I. Aproximace metodou nejmenších čtverců. Numerická derivace a integrace.

11. Numerické algoritmy II. Algebraické a transcendentní rovnice, iterační metody.

12. Úvod do třídění a vyhledávání - vlastnosti metod, princip a srovnání základních algoritmů.

13. Úvod do objektově orientovaného programování (OOP) v jazyce C++.

14. Rekurzivní a iterační algoritmy, vzájemná konverze. Posuzování kvality algoritmu. Funkce časové náročnosti algoritmu, asymptotická složitost.

Osnova cvičení:

Osnova cvičení:

1. Slovní a grafický zápis algoritmů, základy syntaxe jazyka C - proměnná, data, výraz, přiřazovací příkaz, vstup a výstup.

2. Rozhodování, podmínky, větvení programu. Využití relačních operátorů a logických spojek.

3. Typizované cykly: s podmínkou před tělem, za tělem, s pevným počtem opakování.

4. Jednorozměrná a dvourozměrná pole, struktury.

5. Ukazatele. Dynamické přidělování paměti.

5. Tvorba podprogramů: uživatelem definované funkce, ukázky předávání parametrů hodnotou a ukazatelem.

6 Praktické základy práce se soubory: otevírání, zavírání, načítání a zápis strukturovaných dat.

7. Využití stávajícího kódu v projektu - vlastní tvorba a praktické využití knihoven v jazyce C.

8. Kontrolní úloh a jejich vyhodnocení.

9. Ukázka a využití zdrojového kódu knihovny pro základní metody třídění dat.

10. Příklad použití binárního rozhodovacího stromu. Ukázka algoritmů numerické derivace a integrace. Interpolace a aproximace funkcí a experimentálních dat. Metoda nejmenších čtverců.

11. Iterační metody hledání kořenů rovnic - ukázka a srovnání elementárních metod.

12. Ukázky využití služeb operačního systému v aplikačním programu. Tvorba objektově orientovaného programu v C++, vlastní definice a použití třídy.

13. Ukázka událostmi řízeného programu s grafickým uživatelským rozhraním sestaveným pomocí knihovny GTK.

14. Kontrolní úloh a jejich vyhodnocení, udělení zápočtu.

Cíle studia:
Studijní materiály:

Povinná literatura:

[1] PROKOP, Jiří. Algoritmy v jazyku C a C++. 3., aktualizované a rozšířené vydání. Praha: Grada, 2015. ISBN 978-80-247-5467-3.

[2] VIRIUS, Miroslav. Programovací jazyk C ++. 1. díl. V Praze: České vysoké učení technické v Praze, 2016. ISBN 978-80-01-05961-6.

[3] VIRIUS, Miroslav. Programovací jazyk C ++. 2. díl. V Praze: České vysoké učení technické v Praze, 2016. ISBN 978-80-01-06050-6.

[4] VIRIUS, Miroslav. Programovací jazyk C++. 3. díl. V Praze: České vysoké učení technické, 2017. ISBN 978-80-01-06089-6.

Doporučená literatura:

[1] VIRIUS, Miroslav. Programování v C++: od základů k profesionálnímu použití. Praha: Grada Publishing, 2018. ISBN 978-80-271-0502-1.

[2] SEDGEWICK, Robert. Algoritmy v C. Praha: SoftPress, 2003. ISBN 80-864-9756-9.

[3] WRÓBLEWSKI, Piotr. Algoritmy: datové struktury a programovací techniky. Přeložil Marek MICHÁLEK, přeložil Bogdan KISZKA. Brno: Computer Press, 2004. ISBN 80-251-0343-9.

[4] HEROUT, Pavel. Učebnice jazyka C. 6. vyd. České Budějovice: Kopp, 2009. ISBN 978-80-7232-383-8.

Studijní pomůcky:

Ukázkové příklady dostupné na stránkách předmětu a v Mooodlu.

Poznámka:
Rozvrh na zimní semestr 2023/2024:
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
Út
St
Čt
místnost KL:C-4
Smrčka P.
08:00–09:50
(přednášková par. 1)
Kladno FBMI
C4, Malý sál

místnost AL:001
Smrčka P.
08:00–11:50
SUDÝ TÝDEN

(přednášková par. 1
paralelka 1)

Praha 2 - Albertov
Albertov - učebna
Rozvrh na letní semestr 2023/2024:
Rozvrh není připraven
Předmět je součástí následujících studijních plánů:
Platnost dat k 27. 3. 2024
Aktualizace výše uvedených informací naleznete na adrese https://bilakniha.cvut.cz/cs/predmet5955206.html