Algoritmy a programování
Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
---|---|---|---|---|
B3B33ALP | Z,ZK | 6 | 2P+2C | česky |
- Vztahy:
- 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
- Předmět B3B33ALP nesmí být zapsán, je-li v témže semestru zapsán anebo již dříve absolvován předmět BAB37ZPR (vztah je symetrický)
- Garant předmětu:
- 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 2024/2025:
-
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 2024/2025:
- 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)