Algoritmy a programování

B171 - Zimní 17/18
Tento předmět se nenachází v Moodle. Na jeho domovskou stránku se můžete dostat pomocí tlačítka "Stránka kurzu (mimo Moodle)" vpravo (pokud existuje).

Algoritmy a programování - B3B33ALP

Kredity 6
Semestry zimní
Zakončení zápočet a zkouška
Jazyk výuky čeština
Rozsah výuky 2P+2C
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.
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.
Osnovy 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.
Osnovy 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í.
Literatura
• 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.
Požadavky
Nejsou.