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

HEROUT,Pavel. Učebnice jazyka C. Kopp, 2010. 271 s. ISBN: 978-80-7232-383-8 (CS)
RICHTER, Miloslav, PETYOVSKÝ, Petr, HORÁK Karel a KALOVÁ Ilona. Praktické programování v CPP SL. Elektronické texty. Brno: 2004. (CS)
KERNIGHAM, Brian a RICHIE, Denis. Programovací jazyk C. Brno: Computer Press, 2006. 286 s. ISBN 80-251-0897-X. (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)

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í

cca 40b - testy během cvičení na základě probrané látky.
cca 60b - písemné zkoušky, testy.
Konkrétní bodovou kombinaci (do 100bodů) a podmínky pro uspěšné ukončení předmětu stanoví každoročně aktualizována vyhláška garanta předmětu.

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., nepovinná

Vyučující / Lektor