Popis předmětu - B3B33ALP

Přehled studia | Přehled oborů | Všechny skupiny předmětů | Všechny předměty | Seznam rolí | Vysvětlivky               Návod
B3B33ALP Algoritmy a programování
Role:P Rozsah výuky:2P+2C
Katedra:13133 Jazyk výuky:CS
Garanti:Kybic J. Zakončení:Z,ZK
Přednášející:Kybic J. Kreditů:6
Cvičící:Baručić D., Kybic J., Řimnáč M., Štěpán P., Vonásek V. Semestr:Z

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í:

Programovací jazyk Python. V řadě krátkých, samostatně řešených programovacích úloh si studenti procvičí látku probranou na přednáškách.

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.

Poznámka:

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

Webová stránka:

https://cw.fel.cvut.cz/wiki/courses/B3B33ALP

Klíčová slova:

zakladni principy programovani a algoritmizace, programovací jazyk Python

Předmět je zahrnut do těchto studijních plánů:

Plán Obor Role Dop. semestr
BPKYR_2021 Před zařazením do oboru P 1
BPKYR_2016 Před zařazením do oboru P 1


Stránka vytvořena 28.10.2021 13:51:02, semestry: L/2021-2, L/2020-1, Z,L/2022-3, Z/2021-2, připomínky k informační náplni zasílejte správci studijních plánů Návrh a realizace: I. Halaška (K336), J. Novák (K336)