Úvod do programování a algoritmizace (FSI-1PA)

Akademický rok 2021/2022
Garant: doc. Ing. Robert Grepl, Ph.D.  
Garantující pracoviště: ÚMTMB všechny předměty garantované tímto pracovištěm
Jazyk výuky: čeština
Cíle předmětu:
Cílem předmětu je především skrze praktickou zkušenost získat a rozvinout schopnost algoritmizovat a řešit nejčastější inženýrské a matematické problémy, tedy rozložit složitý problém na sadu jednoduchých tak, aby bylo možné je zapsat v syntaxi jazyku Matlab.
Výstupy studia a kompetence:
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ů.
Prerekvizity:
Vektory a matice, maticové operace, výroková logika, zakladní počítačová gramotnost.
Obsah předmětu (anotace):
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í.
Metody vyučování:
Předmět je vyučován formou přednášek, které mají charakter výkladu základních principů a teorie dané disciplíny. Cvičení je zaměřeno na praktické zvládnutí látky probrané na přednáškách. Výuka je doplněna laboratorním cvičením.
Způsob a kritéria hodnocení:
Hodnocení předmětu probíhá na základě standardní bodové škály 0-100b. Studenti mohou získat až 70b za 3 testy v průběhu semestru, 10b za domácí úlohy 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í.
Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky:
Úč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á.
Typ (způsob) výuky:
    Přednáška  13 × 2 hod. nepovinná                  
    Cvičení s počítačovou podporou  13 × 2 hod. povinná                  
Osnova:
    Přednáška 1) Organizace a obsah předmětu, Matlab jako inženýrský nástroj
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 1) Proměnné - práce s maticemi a indexování
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
Literatura - základní:
1. Algorithms: Fundamental Techniques. Dostupne online: http://en.wikibooks.org/wiki/Algorithms
2. Stormy Attaway: Matlab: A Practical Introduction to Programming and Problem Solving, Butterworth-Heinemann, 2019
3. Knuth, D.: The Art of Computer Programming, Volume 1: Fundamental Algorithms, Addison-Wesley, 2019
Literatura - doporučená:
1. Pelánek, R.: Programátorská cvičebnice, Computer Press, 2012
2. Pelánek, R.: Jak to vyřešit, Portál, 2011
3. Bohuslav Doňar; Karel Zaplatílek : MATLAB pro začátečníky, BEN - technická literatura, 2005
Zařazení předmětu ve studijních programech:
Program Forma Obor Spec. Typ ukončení   Kredity     Povinnost     St.     Roč.     Semestr  
B-MET-P prezenční studium --- bez specializace -- kl 6 Povinný 1 1 Z