Vyučující
|
-
Skupa Miroslav, Ing.
-
Zmeškal Ladislav, Ing. Ph.D.
-
Wachter Ladislav, Ing.
-
Habrcetl Lubor, Ing.
-
Brožek Václav, Ing.
|
Obsah předmětu
|
Níže uvedená témata představují okruhy probírané látky, neodpovídají přesně jednotlivým rozvrhovaným přednáškám: (0) Úvodní informace - představení předmětu, jeho cíle a náplň. Rámcový program přednášek a cvičení. Organizace předmětu, průběh semestru. Požadavky k zápočtu a zkoušce, podmínky absolvování předmětu. Důležité informace a zdroje studijních materiálů. (1) Základní technické a historické informace o jazyce C. Použití, výhody a nevýhody, silné a slabé stránky. Stručný úvod do lexiky a syntaxe, nejjednodušší programy. Program typu "Hello, world!", vazba programu na operační prostředí. (2) Bližší pohled na syntax jazyka C, klíčová slova, základní konstrukce řízení běhu programu. Podmíněné a nepodmíněné větvení programu (if - else, return, break, continue), konstrukce switch, cykly (for, while, do). (3) Deklarace proměnných, jednoduché datové typy a jejich definice, datový typ pole, ukazatel, výčet, struktura, bitové pole, union, datový typ funkce, definice vlastního datového typu, definice konstant, deklarace a definice funkcí, přiřazovací příkaz, vstupně-výstupní operace, prázdný příkaz a příkaz skoku. (4) Výrazy, koncepty L-value a R-value, operátory, volání funkcí, předávání parametrů funkcím, přetypování čili explicitní typová konverze, podmíněný výraz, dosazovací výraz a dosazovací operátory, čárkovaný výraz. (5) Preprocesor jazyka C, lexikální konvence preprocesoru, definice maker preprocesoru a maker s parametry, rekurze maker, předdefinovaná makra v ANSI C, vkládání hlavičkových souborů, podmíněný překlad, předávání informací překladači - příkaz #pragma. (6) Řízený a automatizovaný překlad - nástroj make, příprava makefile, komentáře, tvorba pravidel, explicitní a implicitní pravidla, definice cílů, symbolické cíle, makra v makefile, příkazy operačního systému v makefile. (7) Standardní knihovna jazyka C: Vstupně-výstupní operace, soubory a proudy, standardní proudy stdin, stdout a stderr, operace se soubory, formátovaný vstup a výstup, chyby při práci se soubory, jejich detekce a řešení, pokročilé souborové operace. (8) Standardní knihovna jazyka C: Správa paměti, základní operace s pamětí - alokace a uvolnění bloku, realokace bloků, dynamická pole, pole jako argumenty funkcí, znakové řetězce, funkce pro práci s řetězci. (9) Standardní knihovna jazyka C: Znakové a řetězcové konstanty, funkce pro zpracování znaků, matematické funkce, generátor náhodných čísel, technika generování náhodných čísel s jiným než rovnoměrným rozdělením. (10) Standardní knihovna jazyka C: Datum a čas, měření doby běhu programu, práce s kalendářním časem, výpočet rozdílu časových údajů. Řídicí funkce a diagnostika, ladicí makra, příkazový procesor operačního systému, násilné ukončení programu, ukončovací funkce, signály. Standardní rozšíření jazyka podle normy ANSI C, ošetření chybových stavů, práce s proměnnými operačního prostředí, prohledávání bisekcí, řazení algoritmem QuickSort. Funkce s proměnným počtem argumentů. (11) Programátorský model procesoru. Registry: všeobecné registry (střadače), segmentové registry, zvláštní registry, příznakový registr. Typy dat, endian procesoru. Volání podprogramů. Paměťové modely, mapa paměti. (12/v případě dostatku času) Multiplatformní knihovny na tvorbu grafických uživatelských rozhraní (např. GTK+, apod.). Rámcový přehled vlastností a technika programování aplikací v GTK+. Získání, instalace a specifika překladu programů s GTK+. Minimální aplikace v GTK+. Přidávání vizuálních komponent - widgetů. Řízení činnosti aplikace událostmi.
|
Studijní aktivity a metody výuky
|
Přednáška s diskusí, Přednáška s praktickými aplikacemi, E-learning, Skupinová výuka, Diskuse, Laboratorní praktika, Studium metodou řešení problémů, Samostatná práce studentů, Samostudium literatury, Přednáška, Přednáška s demonstrací
- Projekt individuální [40]
- 40 hodin za semestr
- Kontaktní výuka
- 65 hodin za semestr
- Příprava na zkoušku [10-60]
- 30 hodin za semestr
- Praktická výuka [vyjádření počtem hodin]
- 30 hodin za semestr
|
Předpoklady |
---|
Odborné znalosti |
---|
prakticky využívat nabyté znalosti z předmětů Počítače a programování 1 a Počítače a programování 2 |
samostatně psát jednoduché programy v libovolném strukturovaném imperativním nebo objektově orientovaném programovacím jazyce (např. Java, Pascal, C#, PHP, BASIC, apod.) |
rozumět a aplikovat základní poznatky z oblasti teoretické informatiky (algoritmická složitost, množství informace, apod.) |
číst a porozumět anglicky psané dokumentaci, referenční příručce |
Odborné dovednosti |
---|
algoritmizovat jednoduché až středně obtížné problémy |
provádět elementární analýzu a dekompozici předloženého problému, navrhnout jeho algoritmické řešení |
spolehlivě ovládat základní vývojářské nástroje (programátorský textový editor, terminál/příkazový procesor OS, 2-panelový souborový manažer, atp.), má zkušenost s libovolným integrovaným vývojovým prostředím (např. Eclipse, apod.) |
Obecné způsobilosti |
---|
bc. studium: své učení a pracovní činnost si sám plánuje a organizuje, |
bc. studium: efektivně využívá různé strategie učení k získání a zpracování poznatků a informací, hledá a rozvíjí účinné postupy ve svém učení, |
Výsledky učení |
---|
Odborné znalosti |
---|
programovacího jazyka ANSI C a základní znalost objektově orientovaného rozšíření C++ (v rozsahu pro uvedení do samostatného dalšího studia) |
obecné principy imperativních programovacích jazyků se zvláštním zřetelem na nízkoúrovňové programování |
uspořádání běhového prostředí procesů z hlediska programátora (uspořádání paměti, činnost CPU, atp.) |
Odborné dovednosti |
---|
psát komplexní programy v jazyce ANSI C pro všechny podporované platformy |
psát multiplatformní software, zná problémy a nástrahy tvorby software nezávislého na běhovém prostředí |
orientovat se v cizím zdrojovém kódu nebo kódu tvořeném v týmu |
Obecné způsobilosti |
---|
bc. studium: samostatně získávají další odborné znalosti, dovednosti a způsobilosti na základě především praktické zkušenosti a jejího vyhodnocení, ale také samostatným studiem teoretických poznatků oboru, |
Vyučovací metody |
---|
Odborné znalosti |
---|
Přednáška založená na výkladu, |
Přednáška s demonstrací, |
Přednáška s diskusí, |
Laboratorní praktika, |
E-learning, |
Řešení problémů, |
Skupinová výuka, |
Samostudium, |
Samostatná práce studentů, |
Přednáška s aktivizací studentů, |
Diskuse, |
Odborné dovednosti |
---|
Přednáška založená na výkladu, |
Přednáška s demonstrací, |
Přednáška s diskusí, |
Laboratorní praktika, |
E-learning, |
Řešení problémů, |
Skupinová výuka, |
Samostudium, |
Samostatná práce studentů, |
Přednáška s aktivizací studentů, |
Diskuse, |
Obecné způsobilosti |
---|
Samostudium, |
Hodnotící metody |
---|
Odborné znalosti |
---|
Praktická zkouška, |
Demonstrace dovedností (praktická činnost), |
Seminární práce, |
Odborné dovednosti |
---|
Praktická zkouška, |
Seminární práce, |
Demonstrace dovedností (praktická činnost), |
Obecné způsobilosti |
---|
Průběžné hodnocení, |
Doporučená literatura
|
-
Herbison, S.P., Steele, G.L. Referenční příručka jazyka C. Science, 1996. ISBN 80-901475-50.
-
Herout, Pavel. Učebnice jazyka C. 1. díl. 6. vyd. České Budějovice : Kopp, 2009. ISBN 978-80-7232-383-8.
-
Kernighan, Brian W.; Ritchie, Dennis M. Programovací jazyk C. 2. vyd. Bratislava : Alfa, 1989. ISBN 80-05-00154-1.
-
Kernighan, Brian W.; Ritchie, Dennis M. The C Programming Language. 2. vyd. Prentice Hall, 1988. ISBN 978-0131103627.
-
Salus, Peter H. Imperative Programming Languages. Macmillan Technical Pub, 1998. ISBN 978-1578700097.
-
Virius, Miroslav. Jazyky C a C++ : kompletní průvodce. 2., aktualiz. vyd. Praha : Grada, 2011. ISBN 978-80-247-3917-5.
|