ČeskyEnglish

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í Rozsah výuky:2p+2c
Garanti:Kybic J. Role:P Zakončení:Z,ZK
Vyučující:Kybic J.
Zodpovědná katedra:13133 Kreditů:6 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í. V závěru stručně probereme jednotlivá programovací paradigmata.

Osnovy přednášek:

1. Co je to algoritmus, proč studovat algoritmy, můj první algoritmus, jazyk Python. Organizace předmětu.
2. Základní programové struktury a techniky (smyčky, podmíněné příkazy). Asymptotická časová složitost algoritmů. Příklady (např. test prvočíselnosti, sekvenční vyhledávání, půlení intervalu).
3. Datová struktura pole, insertion sort. Ladění program (debugging).
4. Fronta a zásobník. Konečný automat.
5. Datová struktura seznam. Merge sort.
6. Rekurze. Quicksort. Funkce jako abstrakce.
7. Datové typy, numerické typy, numerické algoritmy, konečná přesnost. Vektory a matice.
8. Prioritní fronta, datová struktura hromada, heapsort.
9. Rozptylovací tabulky (hash tables) a operace s nimi.
10. Datová struktura strom. Vyhledávání ve stromu, Vytvoření a vyvažování stromu.
11. Reprezentace množin pomocí stromu, množinové operace, mapy. Graf, reprezentace grafu.
12. Prohledávání grafu. Nalezení nejkratší cesty. Prohledávání stavového prostoru, backtracking.
13. Znakové řetězce, jejich třídění a vyhledávání.
14. Organizace programů / paradigmata, aneb jeden program čtyřikrát jinak - nestrukturované programování,
strukturované programovaní, objektové programování, funkcionální programování.

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:

Sedgewick, Wayne: Algorithms (4th Edition), 2011, ISBN 978-0321573513 Sedgewick, Wayne, Dondero: Introduction to Programming with Python: An Interdisciplinary Approach. 2015, ISBN 978-0134076430

Požadavky:

Nejsou.

Poznámka:

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

Webová stránka:

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

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

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


Stránka vytvořena 25.9.2017 12:47:26, semestry: L/2016-7, Z,L/2017-8, Z/2018-9, 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)
Za obsah odpovídá: doc. Ing. Ivan Jelínek, CSc.