450-2079/01 – Základy algoritmizace a programování (ZAP)

Garantující katedraKatedra kybernetiky a biomedicínského inženýrstvíKredity5
Garant předmětudoc. Ing. Michal Prauzek, Ph.D.Garant verze předmětudoc. Ing. Michal Prauzek, Ph.D.
Úroveň studiapregraduální nebo graduálníPovinnostpovinný
Ročník1Semestrletní
Jazyk výukyčeština
Rok zavedení2019/2020Rok zrušení
Určeno pro fakultyFEIUrčeno pro typy studiabakalářské
Výuku zajišťuje
Os. čís.JménoCvičícíPřednášející
BOR0084 Ing. Monika Adamíková, Ph.D.
BAN0044 Ing. Kamil Bančík
JAN0389 Ing. Karolína Gaiová
JAR0076 doc. Ing. René Jaroš, Ph.D.
KON0327 Ing. Jiří Konečný
PAT0060 Ing. Tereza Kučová
MIK0266 Ing. Miroslav Mikuš
PRA132 doc. Ing. Michal Prauzek, Ph.D.
ROZ132 Ing. Jan Rozhon, Ph.D.
SCH0175 Ing. Miroslav Schneider
SLI0075 Ing. Martina Skapová
SLA77 Ing. Zdeněk Slanina, Ph.D.
SAF077 Ing. Jakub Šafařík, Ph.D.
TOV020 Ing. Jaromír Továrek, Ph.D.
VOZ29 prof. Ing. Miroslav Vozňák, Ph.D.
Rozsah výuky pro formy studia
Forma studiaZp.zak.Rozsah
prezenční Klasifikovaný zápočet 2+3
kombinovaná Klasifikovaný zápočet 0+21

Cíle předmětu vyjádřené dosaženými dovednostmi a kompetencemi

Cílem předmětu je uvést studenty do základů problematiky algoritmizace a programování a předvést implementaci představených postupů ve vyšších programovacích jazycích. Po absolvování předmětu bude student schopen algoritmizovat základní úlohy a vytvořit programy pro řešení jednoduchých úloh využívajících základní algoritmické konstrukce v obecném vývojovém prostředí. Bude rozumět vztahu mezi některými vlastnostmi prvků architektury počítače a jejich zobrazení v programovacím jazyku C, potřebnými při zpracování úloh využívajících nestandardní periferie. Bude umět analyzovat a algoritmizovat jednoduché problémy s využitím strukturovaného přístupu.

Vyučovací metody

Přednášky
Individuální konzultace
Cvičení (v učebně)
Experimentální práce v laboratoři
Projekt

Anotace

Předmět je úvodním kurzem do problematiky algoritmizace a programování využitelný ve všech elektrotechnických oborech vzhledem k široké aplikovatelnosti jazyka C. Studenti jsou seznámeni se základními hardwarovými prvky počítače a jejich vztahem k vybraným programovým konstrukcím. Probírané algoritmy a datové struktury jsou demonstrovány, přičemž jsou studenti vedeni k strukturovanému přístupu při algoritmizaci řešených úloh. Důraz je kladen na praktickou implementaci algoritmů a datových struktur. V druhé části kurzu je studentům představeno řešení běžných úloh ve vyšších programovacích jazycích s důrazem na rychlou prototypizaci a vývoj a řešení praktických úloh pomocí funkcionálního i objektového přístupu.

Povinná literatura:

HEROUT, P. Učebnice jazyka C. Praha: [Středisko pro podporu studentů se specifickými potřebami ELSA ČVUT], 2015. HARMS, Daryl D. a Kenneth MCDONALD. Začínáme programovat v jazyce Python. 2., opr. vyd. Přeložil Ivo FOŘT, přeložil Lubomír ŠKAPA. Brno: Computer Press, 2008. ISBN 9788025121610. NEWHAM, Cameron. a Bill. ROSENBLATT. Learning the bash Shell. 3rd ed. Sesbastopol, [Calif.]: O'Reilly, c2005. ISBN 0596009658.

Doporučená literatura:

KERNIGHAN, Brian W. a Dennis M. RITCHIE. Programovací jazyk C. Brno: Computer Press, 2006.

Další studijní materiály

Forma způsobu ověření studijních výsledků a další požadavky na studenta

Průběžná kontrola studia: písemka samostatný projekt Podmínky udělení zápočtu: Student je klasifikován na základě testů a samostatných projektů. Zápočet od 14.týdne. Celkové hodnocení 51 - 100 bodů dle studijního řádu.

E-learning

Další požadavky na studenta

Žádné další požadavky na studenta nejsou kladeny.

Prerekvizity

Předmět nemá žádné prerekvizity.

Korekvizity

Předmět nemá žádné korekvizity.

Osnova předmětu

Přednášky: 1. Úvod do algoritmizace a programování, motivace k učivu, algoritmus, architektura počítače, kompilační proces. 2. Elektronická paměť, typy paměti, proměnné, konstanty, jednoduché datové typy, základní operátory, formátovaný vstup a výstup. 3. Řídicí struktury: booleovské výraz, operátor čárky, podmíněný výraz, podmínky, cykly, přepínač, příkaz skoku. 4. Funkce: deklarace a definice funkce, parametry funkce, oblast platnosti identifikátorů, návratová hodnota funkce. 5. Paměťové třídy, typové modifikátory, typová konverze, preprocesor: makra, vkládání souboru, podmíněný překlad, oddělený překlad. 6. Ukazatele: ukazatele a funkce, adresní aritmetika, předávání parametru hodnotou a odkazem. 7. Jednorozměrná pole, vícerozměrná pole, řetězce, struktury, uniony, výčtové typy, operátor typedef, bitové operace. 8. Seznámení se skriptovacím přístupem k řešení algoritmizačních úloh. Programové prostředí - Bash, Python. 9. Struktura programu, funkce, konzolový výstup ve skriptovacím prostředí Bash a jazyce Python. 10. Pokročilé datové typy ve skriptovacích prostředích, jejich využití a výhody, optimalizace, knihovny a práce s nimi. 11. Implementace cyklů, podmínek a rekurzí ve skriptovacím prostředí jazyka Python. 12. Práce se souborovým systémem, hledání, práva, zápis a čtení. Formát JSON. 13. Stručný základ objektového přístupu k programování. 14. Diskrétní jevy a jejich simulace. Dokumentace kódu. Laboratorní cvičení: 1. Jazyk C: programovací prostředí 2. Jazyk C: definice proměnné, jednoduché datové typy, formátovaný vstup a výstup. 3. Jazyk C: booleovské výraz, operátor čárky, podmíněný výraz, podmínky, cykly, přepínač, příkaz skoku. 4. Jazyk C: deklarace a definice funkce, parametry funkce, oblast platnosti identifikátorů, návratová hodnota funkce. 5. Jazyk C: paměťové třídy, typové modifikátory, typová konverze, preprocesor: makra, vkládání souboru, podmíněný překlad, oddělený překlad. 6. Jazyk C: ukazatele, ukazatele a funkce, adresní aritmetika, předávání parametru hodnotou a odkazem. 7. Jazyk C: jednorozměrná pole, vícerozměrná pole, řetězce, struktury, uniony, výčtové typy, operátor typedef, bitové operace. 8. Shell Bash: systémové utility a jejich využití v jednoduchých skriptech. 9. Shell Bash: řetězení utilit, práce s proměnnými, definice funkce, výstup na konzoli. 10. Jazyk Python: srovnání s Bash přístupem při definici jednoduchých skriptů. Práce s proměnnými výstup na konzoli. Formální definice struktury skriptu, formátování výstupu, funkce a jejich řetězení. 11. Jazyk Python: práce se slovníky, numerické knihovny a výpočty s nimi, ostatní běžně využívané knihovny v jazyce Python, podmínečné větvení a využití datových typů v podmínkách. 12. Jazyk Python: cykly a rekurze a jejich využití pro řešení numerických výpočtů a simulací, práce se souborovým systémem, formát JSON. 13. Jazyk Python: třídy a dědičnost, praktické příklady využití objektů ve skriptování. 14. Jazyk Python: úvod do simulací diskrétních jevů.

Podmínky absolvování předmětu

Kombinovaná forma (platnost od: 2019/2020 zimní semestr)
Název úlohyTyp úlohyMax. počet bodů
(akt. za podúlohy)
Min. počet bodůMax. počet pokusů
Klasifikovaný zápočet Klasifikovaný zápočet 100  51 3
Rozsah povinné účasti: 80% účast na cvičeních

Zobrazit historii

Podmínky absolvování předmětu a účast na cvičeních v rámci ISP: Splnění všech povinných úkolů v individuálně dohodnutých termínech.

Zobrazit historii

Výskyt ve studijních plánech

Akademický rokProgramObor/spec.Spec.ZaměřeníFormaJazyk výuky Konz. stř.RočníkZLTyp povinnosti
2025/2026 (B0714A060012) Aplikovaná elektronika K čeština Ostrava 1 povinný stu. plán
2025/2026 (B0714A060012) Aplikovaná elektronika P čeština Ostrava 1 povinný stu. plán
2025/2026 (B0713A060005) Elektroenergetika P čeština Ostrava 1 povinný stu. plán
2025/2026 (B0713A060005) Elektroenergetika K čeština Ostrava 1 povinný stu. plán
2025/2026 (B0713A060004) Projektování elektrických systémů a technologií K čeština Ostrava 1 povinný stu. plán
2025/2026 (B0713A060004) Projektování elektrických systémů a technologií P čeština Ostrava 1 povinný stu. plán
2024/2025 (B0714A060012) Aplikovaná elektronika K čeština Ostrava 1 povinný stu. plán
2024/2025 (B0714A060012) Aplikovaná elektronika P čeština Ostrava 1 povinný stu. plán
2024/2025 (B0714A060023) Komunikační a informační technologie KIT P čeština Ostrava 1 povinný stu. plán
2024/2025 (B0714A060016) Biomedicínská technika P čeština Ostrava 1 povinný stu. plán
2024/2025 (B0714A060016) Biomedicínská technika K čeština Ostrava 1 povinný stu. plán
2024/2025 (B0714A150001) Řídicí a informační systémy BKY P čeština Ostrava 1 povinný stu. plán
2024/2025 (B0714A150001) Řídicí a informační systémy BKY K čeština Ostrava 1 povinný stu. plán
2024/2025 (B0714A150003) Počítačové systémy pro průmysl 21. století P čeština Ostrava 1 povinný stu. plán
2024/2025 (B0713A060005) Elektroenergetika P čeština Ostrava 1 povinný stu. plán
2024/2025 (B0713A060005) Elektroenergetika K čeština Ostrava 1 povinný stu. plán
2024/2025 (B0713A060004) Projektování elektrických systémů a technologií K čeština Ostrava 1 povinný stu. plán
2024/2025 (B0713A060004) Projektování elektrických systémů a technologií P čeština Ostrava 1 povinný stu. plán
2024/2025 (B0714A060023) Komunikační a informační technologie KIT K čeština Ostrava 1 povinný stu. plán
2023/2024 (B0713A060005) Elektroenergetika P čeština Ostrava 1 povinný stu. plán
2023/2024 (B0713A060005) Elektroenergetika K čeština Ostrava 1 povinný stu. plán
2023/2024 (B0713A060004) Projektování elektrických systémů a technologií P čeština Ostrava 1 povinný stu. plán
2023/2024 (B0713A060004) Projektování elektrických systémů a technologií K čeština Ostrava 1 povinný stu. plán
2023/2024 (B0714A060016) Biomedicínská technika P čeština Ostrava 1 povinný stu. plán
2023/2024 (B0714A060016) Biomedicínská technika K čeština Ostrava 1 povinný stu. plán
2023/2024 (B0714A150001) Řídicí a informační systémy BKY K čeština Ostrava 1 povinný stu. plán
2023/2024 (B0714A150001) Řídicí a informační systémy BKY P čeština Ostrava 1 povinný stu. plán
2023/2024 (B0714A150003) Počítačové systémy pro průmysl 21. století P čeština Ostrava 1 povinný stu. plán
2023/2024 (B0714A060012) Aplikovaná elektronika K čeština Ostrava 1 povinný stu. plán
2023/2024 (B0714A060012) Aplikovaná elektronika P čeština Ostrava 1 povinný stu. plán
2023/2024 (B0714A060023) Komunikační a informační technologie KIT P čeština Ostrava 1 povinný stu. plán
2023/2024 (B0714A060023) Komunikační a informační technologie KIT K čeština Ostrava 1 povinný stu. plán
2023/2024 (B0714A060008) Mobilní technologie K čeština Ostrava 1 povinný stu. plán
2023/2024 (B0714A060008) Mobilní technologie P čeština Ostrava 1 povinný stu. plán
2023/2024 (B0714A060010) Telekomunikační technika ZKT K čeština Ostrava 1 povinný stu. plán
2023/2024 (B0714A060010) Telekomunikační technika ZKT P čeština Ostrava 1 povinný stu. plán
2022/2023 (B0713A060005) Elektroenergetika K čeština Ostrava 1 povinný stu. plán
2022/2023 (B0713A060005) Elektroenergetika P čeština Ostrava 1 povinný stu. plán
2022/2023 (B0714A060016) Biomedicínská technika K čeština Ostrava 1 povinný stu. plán
2022/2023 (B0714A060016) Biomedicínská technika P čeština Ostrava 1 povinný stu. plán
2022/2023 (B0714A060012) Aplikovaná elektronika P čeština Ostrava 1 povinný stu. plán
2022/2023 (B0714A150001) Řídicí a informační systémy BKY K čeština Ostrava 1 povinný stu. plán
2022/2023 (B0714A150001) Řídicí a informační systémy BKY P čeština Ostrava 1 povinný stu. plán
2022/2023 (B0714A150003) Počítačové systémy pro průmysl 21. století P čeština Ostrava 1 povinný stu. plán
2022/2023 (B0713A060004) Projektování elektrických systémů a technologií K čeština Ostrava 1 povinný stu. plán
2022/2023 (B0713A060004) Projektování elektrických systémů a technologií P čeština Ostrava 1 povinný stu. plán
2022/2023 (B0714A060012) Aplikovaná elektronika K čeština Ostrava 1 povinný stu. plán
2022/2023 (B0714A060023) Komunikační a informační technologie KIT K čeština Ostrava 1 povinný stu. plán
2022/2023 (B0714A060023) Komunikační a informační technologie KIT P čeština Ostrava 1 povinný stu. plán
2022/2023 (B0714A060008) Mobilní technologie P čeština Ostrava 1 povinný stu. plán
2022/2023 (B0714A060008) Mobilní technologie K čeština Ostrava 1 povinný stu. plán
2022/2023 (B0714A060010) Telekomunikační technika ZKT P čeština Ostrava 1 povinný stu. plán
2022/2023 (B0714A060010) Telekomunikační technika ZKT K čeština Ostrava 1 povinný stu. plán
2021/2022 (B0714A060016) Biomedicínská technika K čeština Ostrava 1 povinný stu. plán
2021/2022 (B0714A060016) Biomedicínská technika P čeština Ostrava 1 povinný stu. plán
2021/2022 (B0714A150003) Počítačové systémy pro průmysl 21. století P čeština Ostrava 1 povinný stu. plán
2021/2022 (B0714A150001) Řídicí a informační systémy BKY P čeština Ostrava 1 povinný stu. plán
2021/2022 (B0714A150001) Řídicí a informační systémy BKY K čeština Ostrava 1 povinný stu. plán
2021/2022 (B0713A060005) Elektroenergetika K čeština Ostrava 1 povinný stu. plán
2021/2022 (B0713A060005) Elektroenergetika P čeština Ostrava 1 povinný stu. plán
2021/2022 (B0713A060004) Projektování elektrických systémů a technologií K čeština Ostrava 1 povinný stu. plán
2021/2022 (B0713A060004) Projektování elektrických systémů a technologií P čeština Ostrava 1 povinný stu. plán
2021/2022 (B0714A060012) Aplikovaná elektronika K čeština Ostrava 1 povinný stu. plán
2021/2022 (B0714A060012) Aplikovaná elektronika P čeština Ostrava 1 povinný stu. plán
2021/2022 (B0714A060010) Telekomunikační technika ZKT P čeština Ostrava 1 povinný stu. plán
2021/2022 (B0714A060010) Telekomunikační technika ZKT K čeština Ostrava 1 povinný stu. plán
2021/2022 (B0714A060008) Mobilní technologie K čeština Ostrava 1 povinný stu. plán
2021/2022 (B0714A060008) Mobilní technologie P čeština Ostrava 1 povinný stu. plán
2020/2021 (B0713A060005) Elektroenergetika K čeština Ostrava 1 povinný stu. plán
2020/2021 (B0713A060005) Elektroenergetika P čeština Ostrava 1 povinný stu. plán
2020/2021 (B0714A150001) Řídicí a informační systémy BKY K čeština Ostrava 1 povinný stu. plán
2020/2021 (B0714A150001) Řídicí a informační systémy BKY P čeština Ostrava 1 povinný stu. plán
2020/2021 (B0714A150003) Počítačové systémy pro průmysl 21. století P čeština Ostrava 1 povinný stu. plán
2020/2021 (B0714A060016) Biomedicínská technika K čeština Ostrava 1 povinný stu. plán
2020/2021 (B0714A060016) Biomedicínská technika P čeština Ostrava 1 povinný stu. plán
2020/2021 (B0713A060004) Projektování elektrických systémů a technologií K čeština Ostrava 1 povinný stu. plán
2020/2021 (B0713A060004) Projektování elektrických systémů a technologií P čeština Ostrava 1 povinný stu. plán
2020/2021 (B0714A060012) Aplikovaná elektronika K čeština Ostrava 1 povinný stu. plán
2020/2021 (B0714A060012) Aplikovaná elektronika P čeština Ostrava 1 povinný stu. plán
2020/2021 (B0714A060008) Mobilní technologie P čeština Ostrava 1 povinný stu. plán
2020/2021 (B0714A060008) Mobilní technologie K čeština Ostrava 1 povinný stu. plán
2020/2021 (B0714A060010) Telekomunikační technika ZKT P čeština Ostrava 1 povinný stu. plán
2020/2021 (B0714A060010) Telekomunikační technika ZKT K čeština Ostrava 1 povinný stu. plán
2019/2020 (B0714A060010) Telekomunikační technika ZKT P čeština Ostrava 1 povinný stu. plán
2019/2020 (B0714A150001) Řídicí a informační systémy BKY P čeština Ostrava 1 povinný stu. plán
2019/2020 (B0714A150003) Počítačové systémy pro průmysl 21. století P čeština Ostrava 1 povinný stu. plán
2019/2020 (B0714A150001) Řídicí a informační systémy BKY K čeština Ostrava 1 povinný stu. plán
2019/2020 (B0714A060008) Mobilní technologie P čeština Ostrava 1 povinný stu. plán
2019/2020 (B0713A060004) Projektování elektrických systémů a technologií P čeština Ostrava 1 povinný stu. plán
2019/2020 (B0713A060004) Projektování elektrických systémů a technologií K čeština Ostrava 1 povinný stu. plán
2019/2020 (B0714A060010) Telekomunikační technika ZKT K čeština Ostrava 1 povinný stu. plán
2019/2020 (B0714A060008) Mobilní technologie K čeština Ostrava 1 povinný stu. plán
2019/2020 (B0713A060005) Elektroenergetika P čeština Ostrava 1 povinný stu. plán
2019/2020 (B0714A060012) Aplikovaná elektronika P čeština Ostrava 1 povinný stu. plán
2019/2020 (B0714A060016) Biomedicínská technika P čeština Ostrava 1 povinný stu. plán
2019/2020 (B0713A060005) Elektroenergetika K čeština Ostrava 1 povinný stu. plán
2019/2020 (B0714A060016) Biomedicínská technika K čeština Ostrava 1 povinný stu. plán
2019/2020 (B0714A060012) Aplikovaná elektronika K čeština Ostrava 1 povinný stu. plán

Výskyt ve speciálních blocích

Název blokuAkademický rokForma studiaJazyk výuky RočníkZLTyp blokuVlastník bloku

Hodnocení Výuky



2023/2024 letní
2022/2023 letní
2021/2022 letní
2020/2021 letní
2019/2020 letní