Popis předmětu - B3B33ALP
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í: | Kybic J., Petráček P., Řimnáč M., Štěpán P., Vonásek V. | Semestr: | Z |
Webová stránka:
https://cw.fel.cvut.cz/wiki/courses/B3B33ALPAnotace:
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.Poznámka:
http://cw.fel.cvut.cz/wiki/courses/b3b33alp/start |
Klíčová slova:
zakladni principy programovani a algoritmizace, programovací jazyk PythonPř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 |
BPBIO_2018 | Před zařazením do oboru | P | 1 |
BPKYR_2016 | Před zařazením do oboru | P | 1 |
Stránka vytvořena 29.3.2023 17:50:15, semestry: Z/2024-5, Z,L/2022-3, Z/2023-4, 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) |