Detail předmětu

Algoritmizace a programování

FEKT-BPC-PRGAk. rok: 2020/2021

Předmět je koncipován jako úvod do problematiky algoritmizace a programování. Studenti jsou seznámeni se základními pojmy z oblasti programování, vytváření algoritmů a programů. Je kladen důraz na pochopení návrhu a realizace programů. Jsou požadovány znalosti základních prvků programu a prokázání, že jsou studenti schopni tyto prvky používat. Studenti jsou seznámeni s programovým prostředím Matlab, kde studenti programují skripty a funkce řešící jednoduché úlohy.

Jazyk výuky

čeština

Počet kreditů

3

Výsledky učení předmětu

Absolvent studia je schopen:
- navrhnout algoritmy jednoduchých úloh,
- používat základní prvky programu (proměnné, matematické operace, podmínky, cykly aj.),
- používat iterační i rekurzivní postupy,
- navržené algoritmy přepsat do programu programovacího jazyka Matlab – vytvářet skripty a funkce,
- pracovat se základními datovými formáty,
- vytvořit funkce pro vyhledávání a základních metod řazení podle známých algoritmů,
- používat funkce nejpoužívanějších knihoven,
- vytvořit vlastní knihovnu funkcí,
- vlastní programy popsat a vysvětlit.

Prerekvizity

Jsou požadovány znalosti na úrovni středoškolského studia.

Plánované vzdělávací činnosti a výukové metody

Metody vyučování závisejí na způsobu výuky a jsou popsány článkem 7 Studijního a zkušebního řádu VUT.

Způsob a kritéria hodnocení

Studenti musí získat minimálně 50 bodů ze 100 bodů v dílčích aktivitách:
1. test: základy programování v Matlabu (min 3 body, max 10 bodů)
2. test: návrh algoritmů (min 3 body, max 10 bodů)
3. projekt: návrh vlastní knihovny funkcí (min 4 body, max 15 bodů) + technická dokumentace (min 3 body, max 10 bodů)
4. závěrečný písemný test: (min 20 bodů, max 55 bodů).
Dílčí aktivity mají prověřit schopnosti studenta navrhnout algoritmy pro řešení jednoduchých úloh a prokázat je realizací příslušných programů.

Osnovy výuky

Algoritmus, program, programovací jazyk Python a jeho využití. Základní datové struktury a algoritmy, ověřování správnosti algoritmů a jejich optimalizace. Knihovny funkcí.
1. Programování, algoritmus, koncepce programu
2. Úvod do Pythonu
3. Přehled základních datových struktur a jejich použití
4. Základní prvky programu, cykly, rekurze
5. Algoritmizace numerických metod
6. Algoritmy řazení
7. Vyhledávací algoritmy
8. Prohledávání textů
9. Analýza výkonnosti algoritmů
10. Odstraňování rekurze a optimalizace algoritmů
11. Pokročilé programovací techniky
12. Knihovny , možnosti využití Pythonu v jiných oborech

Učební cíle

Cílem předmětu je seznámení a osvojení základních programovacích návyků. Dále seznámení s programovým prostředím Matlab a s programováním vlastních skriptů a funkcí.

Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky

Počítačová cvičení jsou povinná, řádně omluvené zmeškané cvičení lze po domluvě s vyučujícím nahradit individuálně.

Základní literatura

Lee, Kent D ; Hubbard, Steve ; Cham: Data Structures and Algorithms with Python, Springer International Publishing ; 2015 Undergraduate Topics in Computer Science (EN)
Padmanabhan, T R: Programming with Python, Springer Nature Singapore Pte Ltd. 2016 (EN)

Elearning

Zařazení předmětu ve studijních plánech

  • Program BPC-BTB bakalářský 1 ročník, letní semestr, povinný

Typ (způsob) výuky

 

Cvičení na počítači

39 hod., povinná

Vyučující / Lektor

Osnova

1. Seznámení s programovým prostředím Matlab, jeho části, způsob ovládání
2. Práce se základními typy dat, vkládání dat, možnosti prezentace výsledků
3. Řešení základních matematických úloh, využití základních matematických funkcí Matlabu
4. Procvičení základních typů větvení programu, cyklů v rekurzních úlohách
5. Tvorba skriptů a funkcí
6. Tvorba jednoduchých datových struktur a práce s jednotlivými prvky
7. Návrh jednoduchých funkcí pro řazení prvků pomocí metod Select sort, Buble sort, Insert sort
8. Tvorba jednoduché datové databáze, prohledávání textů
9. Zadání samostatných projektů, nástin řešení, test (max 20b)
10. Grafické aplikační rozhraní Matlabu Guide
11. Aplikace vlastních funkcí do jednoduchého grafického rozhraní Guide
12. Odevzdání a prezentace studentských prací (max 20b)
13. Závěrečný test (max 60b), udělování klasifikovaných zápočtů

Elearning