Detail předmětu

Úvod do programování

FEKT-BPC-UDPAk. rok: 2018/2019

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

čeština

Počet kreditů

7

Garant předmětu

Výsledky učení předmětu

Absolvent předmětu by měl být schopen:
- 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

Metody vyučování zahrnují přednášky a počítačová cvičení. Student musí ve cvičeních odladit zadané úlohy.

Způsob a kritéria hodnocení

Až 50 bodů za laboratorní cvičení (2 testy za max. 25 bodů). Podmínkou udělení zápočtu je získání minimálně 20 bodů z testů ve cvičeních.
Až 50 bodů za závěrečnou zkoušku. Student musí získat minimálně 20 bodů ze závěrečné zkoušky.

Osnovy výuky

1. Číselné soustavy, převody mezi číselnými soustavami. Aritmetické operace v binární soustavě. Reprezentace záporných čísel.
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

Cílem předmětu je seznámit studenty se základními způsoby uložení dat v počítači, binárními operace, základními principy fungování Von Neumannova počítače a se základy programování v jazyce C.

Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky

Počítačová cvičení jsou povinná, řádně omluvené zmeškané počítačové cvičení lze po domluvě s vyučujícím nahradit.

Zařazení předmětu ve studijních plánech

  • Program BPC-AMT bakalářský, 1. ročník, zimní semestr, povinný

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

    obor ET-CZV , 1. ročník, zimní semestr, povinný

Typ (způsob) výuky

 

Přednáška

26 hod., nepovinná

Vyučující / Lektor

Osnova

1. Úvod do předmětu. Číselné soustavy, převody mezi číselnými soustavami. Aritmetické operace v binární soustavě. Reprezentace záporných čísel.
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

39 hod., nepovinná

Vyučující / Lektor

Osnova

1. Úvodní informace. Příklady na převod mezi desítkovou, dvojkovou, šestnáctkovou a osmičkovou soustavou. Sčítání, odčítání ve dvojkové soustavě.
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.