Algoritmy a programování
Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
---|---|---|---|---|
B3B33ALP | Z,ZK | 6 | 2P+2C | česky |
- Garant předmětu:
- Jan Kybic, Vojtěch Vonásek
- Přednášející:
- Vojtěch Vonásek
- Cvičící:
- Pavel Petráček, Martin Řimnáč, Petr Štěpán, Vojtěch Vonásek
- Předmět zajišťuje:
- katedra kybernetiky
- Anotace:
-
Cílem předmětu je dát studentům základní znalost programování a algoritmizace a naučit je navrhnout, implementovat a otestovat programy pro řešení jednoduchých úloh. Studenti pochopí význam časové složitosti. Seznámí se se základními stavebními prvky programů, jako jsou smyčky, podmíněné příkazy, proměnné, rekurze, funkce atd. V předmětu postupně představíme nejpoužívanější datové struktury a operace s nimi (např. fronta, zásobník, seznam, pole, atd.) a ukážeme základní klasické a praktické algoritmy, zejména z oblasti řazení a vyhledávání. Zmíníme stručně jednotlivá programovací paradigmata. Studenti se seznámí s jazykem Python a naučí se v něm psát jednoduché programy.
- Požadavky:
-
Nejsou.
- Osnova přednášek:
-
1. Úvod, základní programové struktury a techniky, jazyk Python.
2. Funkce, řetězce, moduly. Principy funkcionálního programování.
3. Datové typy, typ pole.
4. Složitost. Třídění a vyhledávání.
5. Rekurze a rychlé třídění.
6. Záznam. Principy objektově orientovaného programování. Fronta a zásobník.
7. Konečný automat a jeho použití. Regulární výrazy.
8. Spojové seznamy. Stromy.
9. Prioritní fronta a hromada.
10. Asociativní pole a množina. Rozptylovací tabulka.
11. Prohledávání stavového prostoru.
12. Splnitelnost. Dynamické programování.
13. Grafové algoritmy.
14. Numerické výpočty a vizualizace.
- Osnova cvičení:
-
Při cvičeních v počítačové laboratoři si studenti prakticky osvojí probíranou látku, získají vhodné programovací návyky a experimentálně ověří vlastnosti probíraných algoritmů. Důležitou součástí studia je domácí programování.
- Cíle studia:
-
Cílem předmětu je dát studentům základní znalost programování a algoritmizace a naučit je navrhnout, implementovat a otestovat programy pro řešení jednoduchých úloh.
- Studijní materiály:
-
• Wentworth, Peter, Elkner, Jeffrey and Downey, Allen B. and Meyers, Chris. 2012. How To Think Like a Computer Scientist - Learning with Python 3 (RLE), 3. vyd. Kniha je k dispozici online na webu autorů: http://openbookproject.net/thinkcs/python/english3e/. Existuje i česká verze na http://howto.py.cz/index.htm.
• Downey, Allen B. 2016. Think Python: How to Think Like a Computer Scientist. 2. vyd. Sebastopol, CA: O’Reilly Media. Kniha je také k dispozici online: https://greenteapress.com/thinkpython2/html/index.html, třebaže ne česky.
• Zelle, John. 2016. Python Programming: An Introduction to Computer Science. 3. vyd. Portland, Oregon: Franklin, Beedle & Associates. Materiály na webu na https://mcsp.wartburg.edu/zelle/python/.
• Sedgewick, Robert, Kevin Wayne, a Robert Dondero. 2015. Introduction to Programming in Python: An Interdisciplinary Approach. New York: Addison-Wesley Professional.
- Poznámka:
- Další informace:
- https://cw.fel.cvut.cz/wiki/courses/B3B33ALP
- Rozvrh na zimní semestr 2023/2024:
-
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Po Út St Čt Pá - Rozvrh na letní semestr 2023/2024:
- Rozvrh není připraven
- Předmět je součástí následujících studijních plánů:
-
- Kybernetika a Robotika 2016 (povinný předmět programu)
- Lékařská elektronika a bioinformatika (povinně volitelný předmět)
- Kybernetika a Robotika 2021 (povinný předmět programu)
Podmínkou zápisu na předmět B3B33ALP je, že student si nejpozději ve stejném semestru zapsal příslušný počet předmětů ze skupiny BEZBM
Předmět B3B33ALP může při kontrole studijních plánů nahradit předmět BAB37ZPR