Logo ČVUT
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
STUDIJNÍ PLÁNY
2023/2024
UPOZORNĚNÍ: Jsou dostupné studijní plány pro následující akademický rok.

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
Garant předmětu:
Martin Kačer
Přednášející:
Martin Kačer
Cvičící:
Martin Kačer
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-AG1, BI-EP1 (doporučeno), BI-AG2 (doporučeno absolvovat 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

Informace o předmětu a výukové materiály naleznete na https://courses.fit.cvut.cz/BI-EP2/

Další informace:
https://courses.fit.cvut.cz/BI-EP2/
Rozvrh na zimní semestr 2023/2024:
Rozvrh není připraven
Rozvrh na letní semestr 2023/2024:
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-1247
Kačer M.
11:00–12:30
(přednášková par. 1)
Thákurova 7 (budova FSv)
seminární místnost
místnost TH:A-1247
Kačer M.
12:45–14:15
(přednášková par. 1
paralelka 101)

Thákurova 7 (budova FSv)
seminární místnost
Předmět je součástí následujících studijních plánů:
Platnost dat k 27. 3. 2024
Aktualizace výše uvedených informací naleznete na adrese https://bilakniha.cvut.cz/cs/predmet1684706.html