Detail předmětu

Počítače a programování 2

FEKT-KPC2AAk. rok: 2015/2016

Předmět je zaměřen na získání základních znalostí programovacího jazyka C a programátorských zkušeností.
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:
- navrhnout a realizovat program v jazyce C, za použití základních a složených datových typů a funkcí
- pracovat s pamětí a soubory
- orientovat se v cizích zdrojových textech
- využívat základní knihovny jazyka C

Prerekvizity

Absolvování kurzu KPC1 nebo kurzu s podobnou náplní.

Doporučená nebo povinná literatura

PROKOP, J. Algoritmy v jazyku C a C++. Praha: Grada Publishing, 2008 (CS)
PECINOVSKÝ, R., VIRIUS, M. Učebnice programování: základy algoritmizace. Praha: Grada Publishing, 1997 (CS)
RAIDA, Z., FIALA, P. Počítače a programování 2. Edice "Elektronická skripta". Brno: FEKT VUT v Brně, 2002. (CS)
VIRIUS, M. Jazyky C a C++. Komplexní kapesní průvodce. Praha: Grada Publishing, 2005 (CS)
RICHTER, M., PETYOVSKÝ, P., HORÁK, K., KALOVÁ, I. elektronicke texty Prakticke programovani v cpp SL. Brno: 2004. (CS)
Herout,P.: Učebnice jazyka C. Kopp. ISBN: 978-80-7232-383-8 (CS)
Kernigham, B.W. Richie, D.M (Virius,M.): Programovací jazyk C. Brno. Computer Press, 2006. ISBN 80-251-0897-X (CS)
Knuth, D.E.: Umění programování. Brno. Computer Press. 2008. EAN 9788025120255 (CS)
Wróblewski,P.: Algoritmy – Datové struktury a programovací techniky. Brno. Computer Press.2004. ISBN 80-251-0343-9 (CS)
Knuth, D.E: The Art of Computer Programming (TAOCP), Reading, Meassachusetts, Addison-Wesley, 1997, ISBN 0-201-89683-4 (EN)
Kernigham, B.W. Richie, D.M.: C Programming Language, Prentice Hall, 1988, ISBN 0-13-110362-8 (EN)

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 odevzdává domácí úkoly.

Způsob a kritéria hodnocení

Studenti získají 10 bodů na základě znalostí prokázaných na cvičeních, 90 bodů za vypracování domácích úloh.

Jazyk výuky

čeština

Osnovy výuky

1) Organizace kurzu. Historie a vyvoj prekladacu (MSVC, Borland, GCC, LLVM (clang)). Součásti programu a jeho tvorba. Překlad - preprocesor, překladač, linker.
Optimalizace. Rozdělení na zdrojové a hlavičkové soubory (program ar) #define, makra, ternární operátor. Přehled jazyka a normy. Bitové operace.
2) Algoritmy - bloková schémata, rozbor úlohy, volba proměnných (static, extern...) ... Ukázky algoritmů pro třídění.
3) Standardní a formátovaný vstup a výstup. knihovna ctype.h (isalpha, atoi,itoa ...)
4) Práce se soubory.
5) enum. Stavový diagram. Knihovna math.h.
6) Pole jako datový typ (typedef). Ukazatel jako datový typ. Vyuziti ukazatele jako alias na existujici na proměnnou. (pojem dereference, reference)
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, knihovny pro práci s řetězci - string.h.
10) Složené datové typy - struktury, uniony. Přístupy k proměnných prvku a přes ukazatel. Priorita operátorů. Bitové pole jako C datový typ.
11) Inline funkce. Lineární seznamy, bin. stromy.
12) C99, C1X: _Bool, knihovna (stdbool.h), datovy typ complex, volne pole, literaly (pole, struktur).
13) Modifikátory proměnných - const, Volatile. Restrict. Opakování. Programovaci styly, defenzivní programování (bezpečnost).Kultura programování (SVN, doxygen),
Dotazy. ...

Obsah cvičení: praktické procvičení látky probrané na přednáškách.

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 EEKR-BK bakalářský

    obor BK-AMT , 1. ročník, letní semestr, 5 kreditů, povinný

  • Program EEKR-CZV celoživotní vzdělávání (není studentem)

    obor ET-CZV , 1. ročník, letní semestr, 5 kreditů, povinný

Typ (způsob) výuky

 

Přednáška

26 hod., nepovinná

Vyučující / Lektor

Cvičení na poč.

26 hod., povinná

Vyučující / Lektor