Detail předmětu
Úvod do programování a algoritmizace
FSI-1PAAk. rok: 2024/2025
Obsahem předmětu jsou především obecné znalosti a dovednosti týkající se použití vysokoúrovňových programovacích jazyků v inženýrské a vědecké praxi. Využívá se především jazyk Matlab, stejné principy však lze aplikovat na další jazyky (např. Python). Obsah předmětu lze rozdělit do tří části - základy jazyku Matlab, algoritmizace, a obecné principy programovacích jazyků a praktická doporučení.
Jazyk výuky
Počet kreditů
Garant předmětu
Zajišťuje ústav
Vstupní znalosti
Pravidla hodnocení a ukončení předmětu
Hodnocení předmětu probíhá na základě standardní bodové škály 0-100b. Studenti mohou získat až 80b za 3 testy v průběhu semestru, a 20b za zpracování a obhajobu semestrálního projektu. Při hodnocení zpracovaných úloh a projektů se přihlíží ke splnění funkčních požadavků i k úrovni zpracování.
Účast na cvičení je povinná. Kontrola výuky se provádí na cvičení. Účast na přednáškách je nepovinná ale doporučená.
Učební cíle
Po absolvování předmětu se předpokládá schopnost samostatně využívat jazyk Matlab k různým inženýrským aplikacím. Základní znalosti získané v tomto předmětu slouží také jako základ pro studium (i samostudium) dalších jazyku v jiných aplikacích, např. jazyka C pro programování mikrokontrolerů.
Základní literatura
Knuth, D.: The Art of Computer Programming, Volume 1: Fundamental Algorithms, Addison-Wesley, 2019
Stormy Attaway: Matlab: A Practical Introduction to Programming and Problem Solving, Butterworth-Heinemann, 2019 (EN)
Doporučená literatura
Pelánek, R.: Jak to vyřešit, Portál, 2011 (CS)
Pelánek, R.: Programátorská cvičebnice, Computer Press, 2012 (CS)
Elearning
Zařazení předmětu ve studijních plánech
Typ (způsob) výuky
Přednáška
Vyučující / Lektor
Osnova
2) Základní syntaxe jazyku Matlab - proměnné, operátory, řídící struktury
3) Signály a grafy
4) Datové typy a struktury
5) Maticové operace a výpočty
6) Funkce a rekurze
7) Algoritmizace
8) Praktické algoritmy
9) Objektově orientované programování
10) Grafické uživatelské rozhraní
11) Praktické programovací návyky
12) Testování a verzování kódu
13) Programovací jazyky a styly
Cvičení s počítačovou podporou
Vyučující / Lektor
Osnova
2) Podmínky
3) Cykly
3) Grafy
4) Náhodná čísla
5) Vektorizace
6) Funkce a rekurze
7) Algoritmická cvičení 1
8) Algoritmická cvičení 2
9) Struktury a objekty
10) Grafické rozhraní
11) Programovací cvičení - Časování a profilování kódu
12) Programovací cvičení - Datový vstup a výstup
13) Programovací cvičení - Prohledávací algoritmy
Elearning