Detail předmětu
Programování a algoritmy 1
FEKT-BPC-PP1Ak. rok: 2023/2024
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
Počet kreditů
Garant předmětu
Zajišťuje ústav
Vstupní znalosti
Pravidla hodnocení a ukončení předmětu
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 (CS)
Doporučená literatura
Elearning
Zařazení předmětu ve studijních plánech
- Program BPC-EKT bakalářský 1 ročník, letní semestr, povinný
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 guide.
12. GUI - uicontrols.
13. OOP - třída/objekt,vlastnosti a metody, konstructor, 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