Detail předmětu
Computer Programming 1
FEKT-BPA-PP1Ak. rok: 2024/2025
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, řada, halda, spojovaný seznam, strom, graf), nástroje pro řízení běhu programu (podmínky if-elseif-else, cykly while, for, metody switch-case), tvorba funkcí. Dále budou probrána základní programátorská paradigmata jako hrubá síla, hladový algoritmmus, rozděl a panuj, dynamické programování, zpětné prohledávání atd. Důraz bude kladen především na přehlednost, 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
Počet kreditů
Garant předmětu
Zajišťuje ústav
Nabízen zahraničním studentům
Vstupní znalosti
Pravidla hodnocení a ukončení předmětu
Studenti mohou získat maximálně 36 bodů za aktivní práci v počítačových cvičení a na domácích úkolech, 40 bodů za průběžné testy během semestru a 24 bodů za individuální projekt v jazyce MATLAB.
Vymezení kontrolované výuky a způsob jejího provádění stanoví každoročně aktualizovaná vyhláška garanta předmětu.
Učební cíle
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í.
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
Typ (způsob) výuky
Přednáška
Vyučující / Lektor
Osnova
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. Algoritmy - zápis algoritmù, èasová/pamìová nároènost, algoritmy øazení.
7. Algoritmy - datové struktury, paradigmata - hrubá síla, rozdìl a panuj, hladový algoritmus, dynamické programování, zpìtné prohledávání
8. Funkce - handle, vekorizace, optimalizace kódu, kontrola programu, bsxfun, arrayfun, cellfun.
9. Grafika - možnosti vykreslování, tex pøíkazy.
10. Práce se soubory - ètení a zápis.
11. GUI - grafické uživatelské prostøedí, systém appdesigner.
12. GUI - uicontrols.
13. OOP - tøída/objekt, vlastnosti a metody, konstruktor, set, get. dìdìní, pøístup, jmenné prostory, enumerace.
Cvičení na počítači
Vyučující / Lektor
Osnova
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. Algoritmy - zápis algoritmù, èasová/pamìová nároènost, algoritmy øazení.
7. Algoritmy - datové struktury, paradigmata - hrubá síla, rozdìl a panuj, hladový algoritmus, dynamické programování, zpìtné prohledávání
8. Funkce - handle, vekorizace, optimalizace kódu, kontrola programu, bsxfun, arrayfun, cellfun.
9. Grafika - možnosti vykreslování, tex pøíkazy.
10. Práce se soubory - ètení a zápis.
11. GUI - grafické uživatelské prostøedí, systém appdesigner.
12. GUI - uicontrols.
13. OOP - tøída/objekt, vlastnosti a metody, konstruktor, set, get. dìdìní, pøístup, jmenné prostory, enumerace.
Elearning