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

Efektivní programování 2

Přihlášení do KOSu pro zápis předmětu Zobrazit rozvrh
Kód Zakončení Kredity Rozsah Jazyk výuky
BI-EP2 KZ 4 2P+2C česky
Přednášející:
Martin Kačer (gar.)
Cvičící:
Martin Kačer (gar.)
Předmět zajišťuje:
katedra teoretické informatiky
Anotace:

Předmět navazuje na Efektivní programování 1 (ale jeho předchozí absolvování NENÍ NUTNÉ).

Studenti si prakticky ověří implementaci algoritmů a datových struktur na konkrétních slovně zadaných příkladech. Důraz je kladen nejen na návrh řešení, ale i na jeho korektní a efektivní implementaci, včetně ošetření všech okrajových podmínek. Studenti se naučí přemýšlet o různých variantách řešení, budou se snažit vybírat mezi nimi tu nejvýhodnější a vyhýbat se chybám při implementaci.

Požadavky:

BI-EFA, BI-EP1 (doporučeno), BI-GRA (souběžně)

Osnova přednášek:

1. Mřížky a algoritmy spojené s mřížkami. Čtvercové matice, trojúhelníkové a šestiúhelníkové mřížky, jejich rozšíření do vyšších dimensí.

2. Řetězce, práce s řetězci, možnosti v Javě. Přesné a přibližné vyhledávání v řetězcích, protisměrné vyhledávání.

3. Základní grafové algoritmy: procházení grafů, nejkratší cesty.

4. Stavový prostor, metody ořezávání stavového prostoru, prohledávání stavového prostoru, prohledávání s návratem (backtracking).

5. Pokročilejší grafové algoritmy: toky v sítích, párování.

6. Operační složitost, pokročilé techniky jejího určování v průměrném případě. Kumulativní složitost.

7. Geometrie a výpočetní geometrie. Výpočty úhlů a konvexních obalů mnohoúhelníků, hledání nejkratších cest v prostoru s geometrickými objekty.

Osnova cvičení:

1. Mřížky, matice, trojúhelníkové a šestiúhelníkové mřížky.

2. Řetězce, práce s řetězci, přesné a přibližné vyhledávání.

3. Základní grafové algoritmy: procházení grafů, nejkratší cesty.

4. Stavový prostor, metody prohledávání a ořezávání.

5. Pokročilejší grafové algoritmy: toky v sítích, párování.

6. Operační složitost, pokročilé techniky jejího určování.

7. Geometrie a výpočetní geometrie.

Cíle studia:

V rámci předmětu se na praktických příkladech ukazuje, že kdokoli a

v jakémkoli programu může udělat chybu. Účelem je osvojit si techniky,

které pravděpodobnost chyb snižují, zejména naučit se navrhnout takové

řešení, které bude dostatečně efektivní, ale současně co nejméně náročné

na implementaci. Pokud chyby vzniknou, procvičují se dále způsoby ladění

programu.

Studijní materiály:

Steven S. Skiena, Miguel Revilla: Programming Challenges.

Jon Bentley: Programming Pearls.

Poznámka:

určeno pro pokročilé studenty

Rozvrh na zimní semestr 2018/2019:
Rozvrh není připraven
Rozvrh na letní semestr 2018/2019:
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Po
Út
St
Čt

místnost TH:A-942
Kačer M.
11:00–12:30
(přednášková par. 1)
Thákurova 7 (FSv-budova A)
místnost TH:A-942
Kačer M.
12:45–14:15
(přednášková par. 1
paralelka 101)

Thákurova 7 (FSv-budova A)
Předmět je součástí následujících studijních plánů:
Platnost dat k 20. 8. 2019
Aktualizace výše uvedených informací naleznete na adrese http://bilakniha.cvut.cz/cs/predmet1684706.html