Detail předmětu

Algoritmy a datové struktury

FEKT-BPC-ALDAk. rok: 2019/2020

Předmět je zaměřen na získání základních znalostí programovacího jazyka C a programátorských zkušeností prostřednictvím realizace základních typů algoritmů.
Získané znalosti: základy jazyka C, standardní knihovny jazyka, mechanismus správy paměti v jazyce C a ukazatele, složené datové typy jazyka, práce se soubory, návrh vlastních knihoven jazyka, implementace základních algoritmů, programovací styly, kultura správy zdrojových souborů. Seznámení s testováním a hodnocením bezpečnosti programu. Rozšíření a odlišnosti jazyka C pro embedded zařízení, normy jazyka: C99, C1X.

Výsledky učení předmětu

Absolvent předmětu je schopen:
- provést rozbor úlohy pomocí vývojového diagramu;
- využít standardní algoritmy a navrhnout vlastní za pomoci dále uvedených mechanizmů
- vyjmenovat základní klíčová slova a operátory a umět je použít (vytvořit příklad a vysvětlit jejich základní vlastnosti)
- správně určit datový typ pro daný typ výpočtu (základní datové typy, typ ukazatel na datový typ, a složený datový typ);
- pracovat s dynamicky alokovanou pamětí (získání a uvolnění paměti, manipulace s daty v alokované paměti);
- pracovat se standardními vstupy a výstupy;
- pracovat se soubory;
- využívat základní knihovny jazyka C;
- napsat jednoduchý program pomocí funkcí;
- umí základní algoritmy třídění, vyhledávání, lineární seznamy;
- orientovat se v cizích zdrojových textech, připsat část kódu.

Prerekvizity

Absolvování kurzu BPC-UDP nebo kurzu s podobnou náplní.

Doporučená nebo povinná literatura

VEČERKA, Arnošt. Základní algoritmy. Skriptum Olomouc 2007. 91 s. (CS)
MAREŠ, Martin, VALLA, Tomáš. Průvodce labyrintem algoritmů. Praha: CZ.NIC 2017. 490 s. ISBN 978-80-88168-22-5. (CS)
WRÓBLEWSKI,Piotr. Algoritmy – Datové struktury a programovací techniky. Brno: Computer Press, 2004. 351 s. ISBN 80-251-0343-9. (CS)
PROKOP, Jiří. Algoritmy v jazyku C a C++. Praha: Grada Publishing, 2008. 176 s. ISBN 978-80-247-3929-8. (CS)
RICHTER, Miloslav, PETYOVSKÝ, Petr, HORÁK Karel a KALOVÁ Ilona. Praktické programování v CPP SL. Elektronické texty. Brno: 2004. (CS)

Plánované vzdělávací činnosti a výukové metody

Metody vyučování zahrnují přednášky a cvičení na počítači. Předmět využívá www stránky ve spojení s e-learningem (Moodle). Student prokazuje znalosti vypracováním testovacích příkladů na cvičeních.

Způsob a kritéria hodnocení

Až 40 bodů za laboratorní cvičení (2 testy každý za max. 20 bodů). Podmínkou udělení zápočtu je získání minimálně 10 bodů z testů ve cvičeních.
Až 60 bodů za závěrečnou zkoušku. Minimální požadovaný počet bodů ze závěrečné zkoušky je 20 bodů.

Jazyk výuky

čeština

Osnovy výuky

1. Organizace kurzu. Rozdělení programu na zdrojové a hlavičkové soubory. Symboly preprocesoru, makra s parametry, ternární operátor.
2. Algoritmy - rozbor úlohy, bloková schémata, volba proměnných. Algoritmy pro třídění. Součásti programu a jeho tvorba. Překlad. Optimalizace.
3. Standardní a formátovaný vstup a výstup. Standardní hlavičkový soubor ctype.h.
4. Bitové operace. Práce se soubory.
5. Definice výčtového typu - enum. Příklady využití při implementaci konečného stavového automatu. Standardní hlavičkový soubor math.h.
6. Pole jako datový typ - typedef. Ukazatel jako datový typ. Využiti ukazatele jako alias na existující na proměnnou.
7. Ukazatel jako parametr a návratová hodnota funkce. Konverze. Pole a ukazatele, ukazatelová aritmetika.
8. Dynamická alokace - stdlib.h. Vícerozměrná pole. Pole ukazatelů. Ukazatel na funkce.
9. Životnost a viditelnost automatických, statických a dynamických proměnných. Řetězce, zpracování řetězců, práci s řetězci - string.h.
10. Složené datové typy - struktury, uniony. Přístupy k proměnným prvku a přes ukazatel. Pojmy priorita a asociativita operátorů.
11. Inline funkce. Lineární seznamy, binární stromy. Bitové pole jako C datový typ.
12. Bool, knihovna stdbool.h. Datový typ complex. Literály - pole, struktury.
13. Modifikátory proměnných - const, volatile, restrict. Programovací styly, defenzivní programování. Kultura programování.

Cíl

Cílem předmětu je na základě výuky jazyka C naučit studenty navrhnout a realizovat program či knihovnu funkcí (návrh datové struktury, volání a vazby funkcí, ladění a testování kódu, kultura programování). Na jednoduchých aplikacích vysvětlit principy algoritmizace a design programu.

Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky

Vymezení kontrolované výuky a způsob jejího provádění stanoví každoročně aktualizovaná vyhláška garanta předmětu.

Zařazení předmětu ve studijních plánech

  • Program BPC-AMT bakalářský, 1. ročník, letní semestr, 7 kreditů, povinný

Typ (způsob) výuky

 

Přednáška

26 hod., nepovinná

Vyučující / Lektor

Cvičení na poč.

39 hod., povinná

Vyučující / Lektor