Logo ČVUT
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
STUDIJNÍ PLÁNY
2024/2025

Algoritmy a programování

Přihlášení do KOSu pro zápis předmětu Zobrazit rozvrh
Kód Zakončení Kredity Rozsah Jazyk výuky
B3B33ALP Z,ZK 6 2P+2C česky

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:
Jan Kybic, Vojtěch Vonásek
Přednášející:
Jan Kybic, 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:

http://cw.fel.cvut.cz/wiki/courses/b3b33alp/start

Další informace:
https://cw.fel.cvut.cz/wiki/courses/B3B33ALP
Rozvrh na zimní semestr 2024/2025:
Rozvrh není připraven
Rozvrh na letní semestr 2024/2025:
Rozvrh není připraven
Předmět je součástí následujících studijních plánů:
Platnost dat k 26. 4. 2024
Aktualizace výše uvedených informací naleznete na adrese https://bilakniha.cvut.cz/cs/predmet4673906.html