Detail předmětu

Computer Programming 1

FEKT-BPA-PP1Ak. rok: 2020/2021

Celý kurz bude vyučován v programovém prostředí MATLAB (případně jeho freeware alternativách). Studenti se seznámí s maticovými operacemi, logickými a relačními operátory. Dále budou probrány pokročilé datové typy (komplexní čísla, struktury, cell), nástroje pro řízení běhu programu (podmínky if-elseif-else, cykly while, for, metody switch-case), tvorba funkcí. Důraz bude kladen především na vektorizaci a optimalizaci kódu. Studenti se naučí základy objektově orientovaného programování a tvorby grafického uživatelského prostředí.

Jazyk výuky

angličtina

Počet kreditů

5

Nabízen zahraničním studentům

Všech fakult

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

Absolvent předmětu je schopen:
1) Provádět maticové operace v MATLABu.
2) Převést matematické algoritmy do formy matlabovských funkcí.
3) Vykreslovat průběhy 2D a 3D funkcí.
4) Sestavit jednoduchou aplikaci s grafickým rozhraním v MATLABu.
5) Psát přehledný a srozumitelný kód dle programátorských zvyklostí.

Prerekvizity

Jsou požadovány znalosti na úrovni středoškolského studia.

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á e-learning (Moodle). Student odevzdává jeden samostatný projekt. V případě nutnosti bude předmět vyučován distanční formou.

Způsob a kritéria hodnocení

Studenti mohou získat maximálně 24 bodů za aktivní práci v počítačových cvičení, 40 bodů za test na konci semestru a 36 bodů za individuální projekt v jazyce MATLAB. Udělení klasifikovaného zápočtu z předmětu bude probíhat distančně.

Osnovy výuky

1. Úvod, historie MATLABu, alternativy, zásady psaní kódu, skript.
2. Tvorba matic, maticové operace, indexování, logické a relační operátory.
3. Pokročilé datové typy (komplexní čísla, char, logical, struktury, cell).
4. Řízení programu, podmínky, cykly.
5. Funkce - hlavička, lokální vs. globální proměnné a Workspace.
6. Funkce - handle, Vekorizace, optimalizace kodu, kontrola programu, bsxfun, arrayfun, cellfun.
7. Grafika - možnosti vykreslování, tex příkazy.
8. Práce se soubory - čtení a zápis.
9. GUI - grafické uživatelské prostředí, systém appdesigner.
10. GUI - uicontrols.
11. OOP - třída/objekt,vlastnosti a metody, konstructor, set, get.
12. OOP - dědění, přístup, jmenné prostory, enumerace.
13. Základy Simulinku.

Učební cíle

Cílem předmětu je seznámit studenty se základy programování a algoritmizace. Předmět bude vyučován v programu MATLAB, jenž nezatěžuje uživatele s alokací proměnných, uvolňování paměti jako je tomu u jazyka C, ale umožňuje soustředit na samotné algoritmy. Cílem předmětu je taktéž, aby se studenti získali praktické programátorské návyky (atomizace, struktura kódu, komentáře, názvy proměnných atd.). Studenti by měli po absolvování být schopni sestavit jednoduchý programový toolbox a k němu grafické uživatelské rozhraní (GUI).

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

MATLAB Primer. Www.mathworks.com [online]. 3 Apple Hill Drive Natick, MA 01760-2098: The MathWorks, 2017 [cit. 2017-08-21]. Dostupné z: https://www.mathworks.com/help/pdf_doc/matlab/getstart.pdf (EN)
VALENTINE, D. T. a Brian D. HAHN. Essential MATLAB for engineers and scientists. 3rd ed. London: Butterworth Heinemann, 2007. (EN)

Elearning

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

  • Program BPA-ELE bakalářský

    specializace BPA-ECT , 1 ročník, letní semestr, povinný

Typ (způsob) výuky

 

Přednáška

13 hod., nepovinná

Vyučující / Lektor

Osnova

1. Informační systémy VUT.
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

39 hod., povinná

Vyučující / Lektor

Osnova

1. Informační systémy VUT.
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í.

Elearning