Detail předmětu

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

FEKT-BPC2EAk. rok: 2015/2016

Studenti se seznámí s algoritmizací složitějších úloh, jazykem C podle standardu ANSI, programování s řetězci a se soubory, tvorba vlastních knihovních funkcí a sestavováním pokročilých datových typů, struktury, ukazatele a dynamické proměnné, základy objektového programování v jazyce C++, třídy, šablony a sestavení aplikace s grafickými výstupy ve vývojovém prostředí Microsoft Visual Studio.

Jazyk výuky

čeština

Počet kreditů

5

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

Absolvent předmětu je schopen (1) aplikovat základní programovací návyky a dovednosti algoritmizace, (2) využívat základní vlastnosti a struktury jazyka C včetně objektového programování v C++, (3) sestavit aplikace s grafickými výstupy ve vývojovém prostředí Microsoft Visual Studio.

Prerekvizity

Jsou požadovány základní znalosti principu činnosti počítačových systémů, jednoduché algoritmizace úloh a základů jazyka C.

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á vlastní www stránky. Student odevzdává jeden samostatný projekt.

Způsob a kritéria hodnocení

Studenti mohou získat maximálně 12 bodů za aktivní práci v počítačových cvičení, 30 bodů za domácí úkoly, 28 bodů za zápočtový test na konci semestru a a 30 bodů za individuální projekt v jazyce C++.

Osnovy výuky

1. Shrnutí základů programování v jazyce C, platformově nezávislé programování v C
2. ANSI C, standardní knihovny jazyka C, překlad, preprocesor, direktivy, řetězce v C
3. Práce se vstupy a výstupy v jazyce C, práce se soubory
4. Pokročilé datové typy, dynamické proměnné, struktura, unie použití dynamických proměnných, lineární seznam, lineární uspořádaný seznam, zásobník, strom.
5. Rozsáhlejší ukázková aplikace s využitím dynamických proměnných, čtení a zápisu do souboru a vlastní knihovny funkcí
6. Úvod do objektového programování, datové abstrakce, objektové typy, třídy, inicializace, konstruktory, destruktory, definice jednoduchého objektu
7. Ukazatel this, práce se třídami, přetěžování operátorů
8. Přátelé, členské a nečlenské funkce, třídy a dynamické přidělování paměti
9. Standardní konstruktory, kopírovací konstruktory, ukazatele na objekt
10. Dědičnost tříd, polymorfismus a virtuální funkce, odvozená třída, polymorfní veřejná dědičnost
11. Použití šablony tříd, přátelé, vnořené třídy, výjimky
12. Standardní knihovna šablon, práce se vstupy a výstupy, proudy, práce se soubory
13. Grafické výstupy ve Windows

Učební cíle

Cílem předmětu je seznámit studenty obecným programovacím návykům, komplexnější algoritmizaci úloh a využití objektového přístupu k programování. Cílem předmětu je rovněž prakticky seznámit studenty se sestavováním programu v jazyce C a se základy objektového programování v jazyce C++ s využitím vývojového prostředí Microsoft Visual Studio.

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.

Základní literatura

Prokop, J. Algoritmy v jazyku C a C++. Praha: Grada Publishing, 2008. (CS)
Virius, M. Jazyky C a C++. Komplexní kapesní průvodce. Praha: Grada Publishing, 2005. (CS)
Doňar, B., Zaplatílek, K. MATLAB pro začátečníky. Praha: BEN – technická literatura, 2003.
Doňar, B., Zaplatílek, K. MATLAB - tvorba uživatelských aplikací. Praha: BEN – technická literatura, 2004.

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

  • Program EEKR-B bakalářský

    obor B-EST , 1. ročník, letní semestr, povinný

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

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

Typ (způsob) výuky

 

Přednáška

26 hod., nepovinná

Vyučující / Lektor

Osnova

1. Algoritmizace (rozšíření základních poznatků z předchozího semestru). Definice úlohy, definice vstupů/výstupů, zápis algoritmu v metajazyku, přepis do programovacího jazyka.
2. Úvod do jazyka C. Základní typy proměnných, odvozené typy, konstanty, pole.
3. Výrazy, aritmetické konverze, aritmetické operátory, operátory posuvů, relační operátory, logické operátory, bitové operátory, přiřazovací operátory, priorita operátorů.
4. Řetězce a jejich operátory, knihovní funkce, standardní knihovna string.h.
5. Příkazy, složený příkaz, příkazy pro větvení, cykly a přenos řízení. Vývojový diagram.
6. Funkce. Deklarace funkce, metody volání funkcí, ošetření událostí, rekurze funkcí.
7. Pokročilé datové typy. Unie, výčtový typ, dynamické proměnné, ukazatel.
8. Objekty. Lexikální elementy, konstanty a řetězce, třídy objektů, typy objektů.
9. Uživatelské rozhraní Microsoft Visual C++ Studio. Grafické komponenty.
10. Algoritmy I. Vyhledání maxima a minima, třídění.
11. Algoritmy II. Práce s poli, maticové výpočty.
12. Algoritmy III. Práce se soubory ve Windows.
13. Algoritmy IV. Databázové systémy. Záznamy, třídění, vyhledávání, statistiky. Propojení databází.

Cvičení na počítači

26 hod., povinná

Vyučující / Lektor

Osnova

1. Algoritmizace (rozšíření základních poznatků z předchozího semestru). Definice úlohy, definice vstupů/výstupů, zápis algoritmu v metajazyku, přepis do programovacího jazyka.
2. Úvod do jazyka C. Základní typy proměnných, odvozené typy, konstanty, pole.
3. Výrazy, aritmetické konverze, aritmetické operátory, operátory posuvů, relační operátory, logické operátory, bitové operátory, přiřazovací operátory, priorita operátorů.
4. Řetězce a jejich operátory, knihovní funkce, standardní knihovna string.h.
5. Příkazy, složený příkaz, příkazy pro větvení, cykly a přenos řízení. Vývojový diagram.
6. Funkce. Deklarace funkce, metody volání funkcí, ošetření událostí, rekurze funkcí.
7. Pokročilé datové typy. Unie, výčtový typ, dynamické proměnné, ukazatel.
8. Objekty. Lexikální elementy, konstanty a řetězce, třídy objektů, typy objektů.
9. Uživatelské rozhraní Microsoft Visual C++ Studio. Grafické komponenty.
10. Algoritmy I. Vyhledání maxima a minima, třídění.
11. Algoritmy II. Práce s poli, maticové výpočty.
12. Algoritmy III. Práce se soubory ve Windows.
13. Algoritmy IV. Databázové systémy. Záznamy, třídění, vyhledávání, statistiky. Propojení databází.