Detail předmětu
Algoritmy a datové struktury
FEKT-BPC-ALDAk. rok: 2018/2019
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.
Garant předmětu
Zajišťuje ústav
Výsledky učení předmětu
- 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
Plánované vzdělávací činnosti a výukové metody
Způsob a kritéria hodnocení
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
Osnovy výuky
2. Algoritmy - rozbor úlohy, bloková schémata, volba proměnných. Rekurzivní a nerekurzivní alboritmy. Součásti programu a jeho tvorba. Překlad. Optimalizace. Standardní hlavičkový soubor math.h.
3. Základní datové typy a jejich vlastnosti. ADT. Standardní a formátovaný vstup a výstup. Standardní hlavičkový soubor ctype.h. Práce se soubory.
4. Lineární seznamy, stromy - implementace a využití. Složené datové typy - struktury, uniony. Přístupy k proměnným prvku a přes ukazatel. Pojmy priorita a asociativita operátorů.
5. Bitové operace. Pole jako datový typ - typedef. Ukazatel jako datový typ. Využiti ukazatele jako alias na existující na proměnnou. Pole a ukazatele, ukazatelová aritmetika. Bitové pole jako C datový typ.
6. Stavové automaty. Definice výčtového typu - enum.
7. Grafy. Ukazatel jako parametr a návratová hodnota funkce. Konverze.
8. Algoritmy pro třídění. Dynamická alokace - stdlib.h. Vícerozměrná pole. Pole ukazatelů. Ukazatel na funkce.
9. Prohledávání. Řetězce, zpracování řetězců, práci s řetězci. string.h. Životnost a viditelnost automatických, statických a dynamických proměnných.
10. Zpracování výrazů.
11. Náhodná čísla. Maticové výpočty. Inline funkce. Lineární seznamy, binární stromy.
12. Geometrické a numerické algoritmy. Regrese. 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í. Nástroje pro dokumentaci a zpravování kódu.
Cíl
Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky
Typ (způsob) výuky
Cvičení na počítači
Vyučující / Lektor