Detail předmětu
Počítače a programování 1
FEKT-BPC1EAk. rok: 2018/2019
Studenti se seznámí s hardwarovou architekturou počítačových systémů včetně funkce jednotlivých subsystémů počítače (procesor, paměť, periferie, komunikační rozhraní), počítačové sítě a možnosti univerzitní a fakultní sítě. Předmět pokračuje úvodem do operačních systémů, jejich službami a souborovým systémem. Druhá část předmětu je zaměřena na algoritmizaci úloh a jejich programování v jazyce C dle standardu ANSI do úrovně sestavování vlastních funkcí a jejich využívání. V rámci počítačových cvičení si studenti sestaví jednoduché konzolové aplikace v jazyce C.
Jazyk výuky
Počet kreditů
Garant předmětu
Zajišťuje ústav
Výsledky učení předmětu
Prerekvizity
Plánované vzdělávací činnosti a výukové metody
Způsob a kritéria hodnocení
Osnovy výuky
2. Operační systémy, UNIX/Linux. Přístup na server FEST, program PuTTY, základní příkazy, přístupová práva, přenos souborů, program WinSCP. Grafický správce souborů mc, umístění vlastních HTML stránek na studentský server FEST. Počítačové sítě, TCP/IP model, IPv4 a IPv6 adresy, protokoly TCP, UDP, porty, DNS, HTTP, HTTPS, FTP, anonymní FTP.
3. Architektura počítačových systémů, procesory, paměti a paměťový prostor, periferie, komunikační rozhraní.
4. Vývoj softwarové aplikace, operační kód, instrukční soubor, jazyk symbolických adres, vyšší programovací jazyky, překlad, sestavování. Struktura programu, algoritmus, vývojový diagram, proměnné, datové typy, číselné formáty a jejich reprezentace v paměti, aritmetické a logické operace. Vývoj aplikace v prostředí Code::Blocks.
5. Úvod do jazyka C, základní struktura programu v jazyce C, funkce main(), proměnné, pole, výrazy, aritmetické konverze, operátory v jazyce C, priority operátorů, vstupy, výstupy, jednoduchá konzolová aplikace.
6. Příkazy v jazyce C. Příkazy pro větvení a podmínky – if, else, switch, case; příkazy pro cykly – for, while, do-while; příkazy pro řízení přenosu – break, continue.
7. Řetězce, knihovní funkce pro práci s řetězci "stdio.h" a "string.h". Kopírování řetězců, prohledávání řetězců, porovnávání řetězců.
8. Ukazatele a pole. Vztah mezi polem a ukazatelem. Uložení pole v paměti. Indexy prvků polí.
9. Funkce v jazyce C. Hlavičky funkcí s parametrem, bez parametru, parametr volaný hodnotou a odkazem. Volání funkcí, návratová hodnota. Rekurzivní funkce. Sestavení knihovny funkcí, přilinkování k aplikaci.
10. Pokročilé datové typy. Struktury, unie, výčtový typ, dynamické proměnné, alokace a dealokace v paměti.
11. Práce se soubory v jazyce C. Knihovní funkce pro práci se soubory, čtení, zápis. Zpracování textového souboru.
12. Vazby dynamických proměnných. Lineární seznamy, stromy. Příklad sestavení dynamické databáze.
13. Pokročilé algoritmy. Vyhledání maxima, minima, setřídění – selectsort, insertsort, bublesort.
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
Kernighan, B. W., Ritchie, D. M. Programovací jazyk C. Brno: Computer Press, 2006. (CS)
Ličev, L., Morkes, D. Procesory - architektura, funkce, použití. Brno: Computer Press, 1999. (CS)
Pecinovský, R., Virius, M. Učebnice programování - základy algoritmizace. Praha: Grada Publishing, 1997. (CS)
Zařazení předmětu ve studijních plánech
Typ (způsob) výuky
Přednáška
Vyučující / Lektor
Osnova
2. Počítačové sítě a operační systémy.
3. Počítačové systémy, hardwarová architektura.
4. Vývoj softwarové aplikace, operační kód, instrukční soubor, jazyk symbolických adres, vyšší programovací jazyky, překlad.
5. MATLAB: Úvod do Matlabu, modelování systémů, spojitý, diskrétní a číslicový systém. Jednoduchý model fyzikálního děje.
6. MATLAB: Reprezentace vektorů a matic v Matlabu, podmínky, cykly, grafické výstupy.
7. MATLAB: Zpracování dat, statistika, práce se soubory, čtení, zápis, binární soubor, textový soubor.
8. MATLAB: Grafické uživatelské rozhraní v Matlabu, statistické zpracování dat.
9. MATLAB: Úvod do Simulinku, simulace jednoduchého systému, vztah modelu v Simulinku k Matlabu.
10. C: Úvod do jazyka C, základní struktura programu v C, funkce main(), proměnné, pole, výrazy, operátory, priorita operátorů. Vstupy, výstupy, jednoduchá konzolová aplikace.
11. C: Příkazy, větvení a cykly for, while, do-while, příkazy break, continue, přepínač. Exemplární konzolové aplikace.
12. C: Funkce. Deklarace funkcí, volání, ošetření událostí, rekurze, sestavení vlastní knihovny. Standardní knihovny a jejich použití.
13. C: Algoritmy vyhledání maxima, minima, setřídění.
Cvičení na počítači
Vyučující / Lektor
Osnova
2. Počítačové sítě a operační systémy.
3. Počítačové systémy, hardwarová architektura.
4. Vývoj softwarové aplikace, operační kód, instrukční soubor, jazyk symbolických adres, vyšší programovací jazyky, překlad.
5. MATLAB: Úvod do Matlabu, modelování systémů, spojitý, diskrétní a číslicový systém. Jednoduchý model fyzikálního děje.
6. MATLAB: Reprezentace vektorů a matic v Matlabu, podmínky, cykly, grafické výstupy.
7. MATLAB: Zpracování dat, statistika, práce se soubory, čtení, zápis, binární soubor, textový soubor.
8. MATLAB: Grafické uživatelské rozhraní v Matlabu, statistické zpracování dat.
9. MATLAB: Úvod do Simulinku, simulace jednoduchého systému, vztah modelu v Simulinku k Matlabu.
10. C: Úvod do jazyka C, základní struktura programu v C, funkce main(), proměnné, pole, výrazy, operátory, priorita operátorů. Vstupy, výstupy, jednoduchá konzolová aplikace.
11. C: Příkazy, větvení a cykly for, while, do-while, příkazy break, continue, přepínač. Exemplární konzolové aplikace.
12. C: Funkce. Deklarace funkcí, volání, ošetření událostí, rekurze, sestavení vlastní knihovny. Standardní knihovny a jejich použití.
13. C: Algoritmy vyhledání maxima, minima, setřídění.