Detail předmětu

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

FEKT-BPC2SAk. rok: 2017/2018

Předmět je zaměřen na získání základních znalostí programovacího jazyka C a C++. Studenti se učí algoritmizaci zadané úlohy, návrhu vhodných datových struktur, realizaci programu v C/C++. Jsou prezentovány vybrané algoritmy pro zpracování numerických a textových dat. Studenti budou seznámeni se standardními knihovnami, prací se soubory, dynamickými strukturami. Další část předmětu se zabývá objektovým programováním v C++. Je představen koncept tříd, dědičnosti, přetěžování operátorů. Praktické zkušenosti získají studenti při realizaci úkolů v 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:
- vysvětlit funkci příkazů jazyka C,
- popsat vlastnosti základních datových typů,
- navrhnout strukturu pro reprezentaci složitější dat,
- použít funkce obsažené ve standardních knihovnách,
- sestavit algoritmus pracující s jednorozměrnými a vícerozměrnými poli,
- sestavit algoritmus pro seřazení seznamu hodnot,
- vytvořit knihovnu funkcí,
- vytvořit interaktivní aplikaci.

Prerekvizity

Jsou požadovány znalosti na úrovni středoškolského studia. Dále jsou žádoucí znalosti práce se soubory v prostředí Microsoft Windows.

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. Student během odevzdává jeden samostatný projekt.

Způsob a kritéria hodnocení

až 22 bodů za cvičení (2 body za splnění úkolu během 11 cvičení)
až 20 bodů za testy během semestru (5 bodů za test)
až 28 bodů za zápočtový test na konci semestru
až 30 bodů za individuální projekt v jazyce C/C++
Podmínkou pro udělení zápočtu je kromě dosažení minimálního bodů 50 vypracování a obhájení individuálního projektu.

Osnovy výuky

1. Úvod do jazyka C, základní struktura programu, datové typy, standardní výstup.
2. Výrazy, operátory, konverze, standardní vstup.
3. Příkazy jazyka C.
4. Pole a ukazatele.
5. Řetězce v C, knihovny pro práci s řetězci.
6. Strukturované datové typy – struktura, unie, výčet.
7. Tvorba vlastní funkce, knihovny funkcí, předávání parametrů.
8. Algoritmy řazení a vyhledávání.
9. Práce se soubory.
10. Abstraktní datové typy – seznam, fronta, zásobník.
11. Shrnutí základů programování v jazyce C, platformově nezávislé programování v C, ANSI C, standardní knihovny jazyka C. Překlad, preprocesor, direktivy.
12. Úvod do objektového programování.
13. Aplikace s grafickým uživatelským rozhranním.

Učební cíle

Cílem předmětu je naučit studenty obecným programovacím návykům, komplexnější algoritmizaci úloh a využití objektového přístupu k programování. Výuka je zaměřena na programovací jazyk C a 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

HEROUT, P. Učebnice jazyka C. KOPP, 2004.
PECINOVSKÝ, R., VIRIUS, M. Učebnice programování: základy algoritmizace. Praha: Grada Publishing, 1997
PROKOP, J. Algoritmy v jazyku C a C++. Praha: Grada Publishing, 2008.
RAIDA, Z., FIALA, P. Počítače a programování 2. Edice "Elektronická skripta". Brno: FEKT VUT v Brně, 2002.
STROUSTRUP, B. The C++ Programming Language, 4th Edition, Addison-Wesley, 2013. (EN)
VIRIUS, M. Jazyky C a C++. Komplexní kapesní průvodce. Praha: Grada Publishing, 2005

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

  • Program EEKR-B bakalářský

    obor B-SEE , 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í.