450-2079/02 – 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í
Jazyk výukyanglič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.
PAT0060 Ing. Tereza Kučová
PRA132 doc. Ing. Michal Prauzek, Ph.D.
ROZ132 Ing. Jan Rozhon, Ph.D.
SLI0075 Ing. Martina Skapová
SAF077 Ing. Jakub Šafařík, 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.

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

Prezenční 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
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
2024/2025 (B0714A060017) Biomedicínská technika P angličtina Ostrava 1 povinný stu. plán
2024/2025 (B0714A060020) Elektrotechnika P angličtina Ostrava 1 povinný stu. plán
2024/2025 (B0714A150002) Řídicí a informační systémy KYB P angličtina Ostrava 1 povinný stu. plán
2023/2024 (B0714A060020) Elektrotechnika P angličtina Ostrava 1 povinný stu. plán
2023/2024 (B0714A150002) Řídicí a informační systémy KYB P angličtina Ostrava 1 povinný stu. plán
2023/2024 (B0714A060017) Biomedicínská technika P angličtina Ostrava 1 povinný stu. plán
2022/2023 (B0714A060017) Biomedicínská technika P angličtina Ostrava 1 povinný stu. plán
2022/2023 (B0714A060017) Biomedicínská technika K angličtina Ostrava 1 povinný stu. plán
2022/2023 (B0714A150002) Řídicí a informační systémy KYB P angličtina Ostrava 1 povinný stu. plán
2022/2023 (B0714A150004) Počítačové systémy pro průmysl 21. století P angličtina Ostrava 1 povinný stu. plán
2022/2023 (B0714A060020) Elektrotechnika P angličtina Ostrava 1 povinný stu. plán
2021/2022 (B0714A060017) Biomedicínská technika P angličtina Ostrava 1 povinný stu. plán
2021/2022 (B0714A060017) Biomedicínská technika K angličtina Ostrava 1 povinný stu. plán
2021/2022 (B0714A060020) Elektrotechnika P angličtina Ostrava 1 povinný stu. plán
2021/2022 (B0714A150004) Počítačové systémy pro průmysl 21. století P angličtina Ostrava 1 povinný stu. plán
2021/2022 (B0714A150002) Řídicí a informační systémy KYB P angličtina Ostrava 1 povinný stu. plán
2021/2022 (B0713A060006) Elektroenergetika P angličtina Ostrava 1 povinný stu. plán
2021/2022 (B0714A060013) Aplikovaná elektronika P angličtina Ostrava 1 povinný stu. plán
2020/2021 (B0714A150002) Řídicí a informační systémy KYB P angličtina Ostrava 1 povinný stu. plán
2020/2021 (B0714A150004) Počítačové systémy pro průmysl 21. století P angličtina Ostrava 1 povinný stu. plán
2020/2021 (B0714A060017) Biomedicínská technika K angličtina Ostrava 1 povinný stu. plán
2020/2021 (B0714A060017) Biomedicínská technika P angličtina Ostrava 1 povinný stu. plán
2020/2021 (B0714A060013) Aplikovaná elektronika P angličtina Ostrava 1 povinný stu. plán
2020/2021 (B0714A060009) Mobilní technologie P angličtina Ostrava 1 povinný stu. plán
2020/2021 (B0714A060011) Telekomunikační technika ZKT P angličtina Ostrava 1 povinný stu. plán
2020/2021 (B0713A060006) Elektroenergetika P angličtina Ostrava 1 povinný stu. plán
2020/2021 (B0714A060020) Elektrotechnika P angličtina Ostrava 1 povinný stu. plán
2019/2020 (B0714A150002) Řídicí a informační systémy KYB P angličtina Ostrava 1 povinný stu. plán
2019/2020 (B0714A060011) Telekomunikační technika ZKT P angličtina Ostrava 1 povinný stu. plán
2019/2020 (B0714A150004) Počítačové systémy pro průmysl 21. století P angličtina Ostrava 1 povinný stu. plán
2019/2020 (B0714A060009) Mobilní technologie P angličtina Ostrava 1 povinný stu. plán
2019/2020 (B0713A060006) Elektroenergetika P angličtina Ostrava 1 povinný stu. plán
2019/2020 (B0714A060017) Biomedicínská technika P angličtina Ostrava 1 povinný stu. plán
2019/2020 (B0714A060017) Biomedicínská technika K angličtina Ostrava 1 povinný stu. plán
2019/2020 (B0714A060013) Aplikovaná elektronika P anglič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

Předmět neobsahuje žádné hodnocení.