Detail předmětu
Úvod do programování
FEKT-BPC-UDPAk. rok: 2020/2021
První část předmětu je zaměřena na seznámení studentů se způsoby uložiní informace v počítači (celá čísla, čísla s pohyblivou řádovou čárkou, standard IEEE 754-2008), kódování znaků (ASCII, ISO-8859-X, UNICODE), kódování BASE64, vysvětlení Von Neumannových principů fungování počítače, základními principy OS. Druhá část předmětu se věnuje základům programování v jazyce C. Studenti by se měli naučit používat jednoduché proměnné, operátory, přiřazovací příkazy, příkazy větvení a cyklů, používání funkcí, práci s poli, ukazateli a strukturami.
Jazyk výuky
Počet kreditů
Garant předmětu
Zajišťuje ústav
Výsledky učení předmětu
- vyjádřit číslo v různých číselných soustavách,
- vyjádřit desetinné číslo dle standardu IEEE 754-208,
- vyjádřit znak v kódování ASCII, ISO-8859-X, UNICODE (UTF-32, UTF-16, UTF-8),
- kódovat řetšzec oktetů dle standardu BASE64 a dekódovat BASE64 text,
- používat základní příkazy OS Linux/UNIX,
- popsat základní a složené datové typy jazyka C,
- aplikovat příkazy a operátory jazyka C,
- naprogramovat a využívat funkce,
- sestavit jednoduchý algoritmus a vytvořit pro něj program v jazyce C,
Plánované vzdělávací činnosti a výukové metody
Způsob a kritéria hodnocení
Až 50 bodů za závěrečnou zkoušku. Minimální požadovaný počet bodů ze závěrčné zkoušky je 20 bodů.
Zkouška z předmětu bude probíhat distančně.
Osnovy výuky
2. Reprezentace desetinných čísel, standard IEEE 754-2008. Von Neumannovy principy a koncepce počítače. Strojová instrukce. Operační systém (OS), role OS, abstrakce poskytované OS.
3. Kódování znaků: ASCII, ISO-8859-X, Windows-1250, UNICODE (UTF-32, UTF-16, UTF-8). Kódování BASE64. Algoritmus, popis algoritmů pomocí vývojových diagramů.
4. Programovací a značkovací jazyky. Rozdělení programovacích jazyků. Historie a standardy jazyka C. Základní struktura programu v jazyce C.
5. Proměnné v jazyce C, identifikátory proměnných. Jednoduché datové typy. Definice a inicializace proměnných. Globální a lokální proměnné, rozsahy platnosti. Konstanty. Konstantní proměnné.
6. Výrazy a příkazy. Priorita, asociativita a arita operátorů. Binární a unární aritmetické operátory. Přiřazovací příkaz. Operátory inkrementace a dekrementace. Složené příkazy.
7. Příkazy větvení if - else. Relační a logické operátory. Logické výrazy. Podmíněný výraz. Příkaz cyklu while.
8. Příkazy cyklů do-while a for. Příkazy break a continue. Příkaz switch. Pole. Řetězce.
9. Funkce – definice, volání, předávání parametrů, návratová hodnota, stack frame. Příkazy preprocesoru #include, #define, #ifdef, #ifndef, #endif. Makra s parametry. Hlavičkové soubory.
10. Ukazatele. Operátor sizeof. Ukazatele a pole. Dynamická alokace. Ukazatele a argumenty funkcí. Pole jako parametr funkce.
11. Datový typ struktura. Přístup k prvkům struktury. Inicializace struktur. Struktura jako parametr funkce a návratová hodnota funkce.
12. Ukazatel na ukazatel. Pole ukazatelů. Parametry funkce main(). API. ABI. Knihovny funkcí a varianty jejich sestavení (dynamická a statická). Standardní knihovní funkce jazyka C.
13. Funkce pro práci se standardním vstupem a výstupem: scanf(), printf().
Učební cíle
Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky
Základní literatura
Doporučená literatura
KERNIGHAN, B. W., RITCHIE, D. M.: Programovací jazyk C. Brno: Computer Press, 2006. 286 s. ISBN 80-251-0897-X. (CS)
Elearning
Zařazení předmětu ve studijních plánech
- Program BPC-AMT bakalářský 1 ročník, zimní semestr, povinný
Typ (způsob) výuky
Přednáška
Vyučující / Lektor
Osnova
2. Reprezentace desetinných čísel, standard IEEE 754-2008. Von Neumannovy principy a koncepce počítače. Strojová instrukce. Operační systém (OS), role OS, abstrakce poskytované OS.
3. Kódování znaků: ASCII, ISO-8859-X, Windows-1250, UNICODE (UTF-32, UTF-16, UTF-8). Kódování BASE64. Algoritmus, popis algoritmů pomocí vývojových diagramů.
4. Programovací a značkovací jazyky. Rozdělení programovacích jazyků. Historie a standardy jazyka C. Základní struktura programu v jazyce C.
5. Proměnné v jazyce C, identifikátory proměnných. Jednoduché datové typy v jazyce C. Definice a inicializace proměnných. Globální a lokální proměnné. Rozsahy platnosti proměnných. Konstanty. Konstantní proměnné.
6. Výrazy a příkazy. Priorita, asociativita a arita operátorů. Binární a unární aritmetické operátory. Přiřazovací příkaz, L-hodnota, R-hodnota. Operátory inkrementace a dekrementace. Složené příkazy. Bloky a definice proměnných.
7. Příkazy větvení if - else. Relační a logické operátory. Logické výrazy. Podmíněný výraz. Příkaz cyklu while.
8. Příkazy cyklů do-while a for. Příkazy break a continue. Příkaz switch. Pole. Řetězce.
9. Funkce – definice, volání, předávání parametrů, návratová hodnota, stack frame. Příkazy preprocesoru #include, #define, #ifdef, #ifndef, #endif. Makra s parametry. Hlavičkové soubory.
10. Ukazatele. Operátor sizeof. Ukazatele a pole. Dynamická alokace. Ukazatele a argumenty funkcí. Pole jako parametr funkce.
11. Datový typ struktura. Přístup k prvkům struktury. Inicializace struktur. Struktura jako parametr funkce a návratová hodnota funkce.
12. Ukazatel na ukazatel. Pole ukazatelů. Parametry funkce main(). API. ABI. Knihovny funkcí a varianty jejich sestavení (dynamická a statická). Standardní knihovní funkce jazyka C.
13. Funkce pro práci se standardním vstupem a výstupem: scanf(), printf().
Cvičení na počítači
Vyučující / Lektor
Osnova
2. Příklady na reprezentaci čísel ve 2. doplňku. Násobení a dělení ve dvojkové soustavě.
3. Příklady na vyjádření čísel s pohyblivou řádovou čárkou dle standardu IEEE 754-2008. Příklady na kódování znaků dle standardů ASCII, ISO-8859-2 a UNICODE (UTF-32, UTF-16, UTF-8). Příklad výpočtu kontrolního součtu pole bytů.
4. Popis algoritmu na výpočet kvadratické rovnice a algoritmu bublinkového třídění pomocí vývojového diagramu.
5. Shell, základní příkazy pro práci v OS Linux/UNIX.
6. 1. test. Seznámení s vývojovými prostředími. Program na výpočet kořenů kvadratické rovnice.
7. Příklady na realizaci podmíněného větvení if – else, podmíněný výraz a cyklus while.
8. Příklady na práci s poli s využitím cyklů. Příklady na práci s řetězci znaků.
9. Příklady na použití funkcí v programu (definici a volání funkce). Příklady na použití maker s parametry.
10. 2. test.
11. Příklady na použití datového typu struktura. Příklady na předávání struktur funkcím hodnotou a pomocí ukazatelů.
12. Příklady na použití parametrů funkce main() a proměnných prostředí. Příklady na dynamickou alokaci a použití knihovních funkcí.
13. Příklad na projekt sestávající se z více zdrojových souborů. Umístění deklarace funkce do hlavičkového souboru, ošetření proti vícenásobnému vložení. Knihovny funkcí a varianty jejich sestavení (dynamická a statická). Program make.
Elearning