Detail předmětu
Počítačové programování 1
FEKT-BPC-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í.
Garant předmětu
Zajišťuje ústav
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.
Doporučená nebo povinná literatura
Pecinovský, R., Virius, M. Učebnice programování - základy algoritmizace. Praha: Grada Publishing, 1997. (CS)
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 (CS)
ATTAWAY, Stormy. MATLAB: a practical introduction to programming and problem solving. 2nd ed. Waltham, MA: Butterworth-Heinemann, c2012. ISBN 0123850819. (CS)
Kabelová, A., Dostálek, L. Velký průvodce protokoly TCP/IP a systémem DNS. Brno: Computer Press, 2008. (CS)
Ličev, L., Morkes, D. Procesory - architektura, funkce, použití. Brno: Computer Press, 1999. (CS)
VALENTINE, D. T. a Brian D. HAHN. Essential MATLAB for engineers and scientists. 3rd ed. London: Butterworth Heinemann, 2007. (CS)
Brandejs, M. Linux. Praktický průvodce. Brno: Konvoj, 2003. (CS)
Kernighan, B. W., Ritchie, D. M. Programovací jazyk C. Brno: Computer Press, 2006. (CS)
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ě 30 bodů za aktivní práci v počítačových cvičení, 20 bodů za průběžné testy během semestru a 50 bodů za individuální projekt v jazyce MATLAB.
Jazyk výuky
čeština
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.
Cíl
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.
Zařazení předmětu ve studijních plánech
- Program BPC-EKT bakalářský, 1. ročník, letní semestr, 5 kreditů, povinný
Typ (způsob) výuky
eLearning
eLearning: aktuální otevřený kurz