|
|
Hlavní nabídka Prohlížení IS/STAG
Nalezené předměty, počet: 1
Stránkování výsledků vyhledávání
Nalezeno 1 záznamů
Export do Xls
Informace o předmětu
KIV / ZEP
:
Popis předmětu
Pracoviště / Zkratka
|
KIV
/
ZEP
|
Akademický rok
|
2023/2024
|
Akademický rok
|
2023/2024
|
Název
|
Základy efektivního programování
|
Způsob zakončení
|
Zkouška
|
Způsob zakončení
|
Zkouška
|
Akreditováno / Kredity
|
Ano,
3
Kred.
|
Forma zakončení
|
Písemná
|
Forma zakončení
|
Písemná
|
Rozsah hodin
|
Přednáška
2
[HOD/TYD]
|
Zápočet před zkouškou
|
Ano
|
Zápočet před zkouškou
|
Ano
|
Automatické uznávání zápočtu před zkouškou
|
Ne
|
Počítán do průměru
|
ANO
|
Vyučovací jazyk
|
Čeština
|
Obs/max
|
|
|
|
Automatické uznávání zápočtu před zkouškou
|
Ne
|
Letní semestr
|
0 / -
|
0 / -
|
0 / -
|
Počítán do průměru
|
ANO
|
Zimní semestr
|
0 / -
|
0 / -
|
0 / -
|
Opakovaný zápis
|
NE
|
Opakovaný zápis
|
NE
|
Rozvrh
|
Ano
|
Vyučovaný semestr
|
Zimní + Letní
|
Vyučovaný semestr
|
Zimní + Letní
|
Minimum (B + C) studentů
|
10
|
Volně zapisovatelný předmět |
Ano
|
Volně zapisovatelný předmět
|
Ano
|
Vyučovací jazyk
|
Čeština
|
Počet dnů praxe
|
0
|
Počet hodin kontaktní výuky |
|
Hodnotící stupnice |
1|2|3|4 |
Periodicita |
každý rok
|
Hodnotící stupnice pro zp. před zk. |
S|N |
Periodicita upřesnění |
|
Základní teoretický předmět |
Ne
|
Profilující předmět |
Ne
|
Základní teoretický předmět |
Ne
|
Hodnotící stupnice |
1|2|3|4 |
Hodnotící stupnice pro zp. před zk. |
S|N |
Nahrazovaný předmět
|
Žádný
|
Vyloučené předměty
|
KIV/ZEP-E
|
Podmiňující předměty
|
Nejsou definovány
|
Předměty informativně doporučené
|
KIV/PPA1
|
Předměty,které předmět podmiňuje
|
Nejsou definovány
|
Graf četnosti udělených hodnocení studentům napříč roky:
Obrázek PNG
,
XLS
|
Cíle předmětu (anotace):
|
Prohloubení znalostí metod pro návrh efektivních a robustních algoritmů. Předmět doplňuje stávající předměty bakalářského studia KIV/PPA1, KIV/PPA2, KIV/PT, KIV/PRO.
|
Požadavky na studenta
|
Zápočet:
Student musí vypracovat čtyři sady úloh zadávané v týdnech výuky s pevně stanoveným termínem řádného odevzdání. Tyto sady obsahují jak teoretické příklady (např. navrhněte efektivní algoritmus, který nalezne v zadaném poli, zda jsou tam nějaké duplicitní hodnoty), tak praktické (např. napište program, který spočte odmocninu ze dvou s přesností na 100 míst). Příklady jsou různě obtížné. Každá sada je ohodnocena minimálně 20 body.
Pro získání zápočtu musí student získat minimálně 50 bodů.
Zkouška:
Písemný test, ve kterém student demonstruje získané znalosti na návrhu metody řešící o něco složitější problém. Test je hodnocen 20 body, které se sčítají s body ze semestru (viz zápočet). Celkem lze tedy v předmětu získat 100 bodů. Výsledná známka je stanovena takto: 1 = 86 - 100, 2 = 71 - 85, 3 = 56 - 70, 4 = < 55 bodů
Upozornění:
Termíny a forma ověřování splnění požadavků mohou být upraveny s ohledem na opatření vyhlášená v souvislosti s vývojem epidemiologické situace v ČR.
|
Obsah
|
- Posuzování algoritmů, časová a paměťová složitost, robustnost algoritmů.
- Přesnost numerických výpočtů, Hornerovo schéma, singulární případy algoritmů.
- Často se vyskytující zbytečné, časově náročné operace v kódu a jejich eliminace.
- Správa paměti. Alokace a dealokace paměti, garbage collector, úniky paměti. Příliš velká data (nevejdou se do paměti).
- Maticové a vektorové operace (Strassen formula, skalární a vektorový součin). Řešení soustav lineárních i nelineárních rovnic (včetně přeurčených soustav).
- Cache v současných počítačích a její efektivní využití (technika bricking)
- Úvod do paralelního programování a programování GPU. Dělení prostoru, medián.
- Rekurze a její odstraňování. Binární vs. interpolační hledání.
- Redukce dimenze problému (space-filling křivky, PCA). Redukce dat vzorkováním, Sobolovy sekvence.
- Reprezentace grafů, algoritmy Dijkstra a Floyd-Warshall. Porovnávání grafů - Hungarian marriage. Stavový automat, prořezávání stavů.
- Praktický význam komprese, Freemanova růžice. Checksums (LUHN, CRC, Adler32, MD5).
|
Aktivity
|
|
Studijní opory
|
|
Garanti a vyučující
|
|
Literatura
|
|
Časová náročnost
|
Všechny formy studia
|
Aktivity
|
Časová náročnost aktivity [h]
|
Projekt individuální [40]
|
40
|
Příprava na zkoušku [10-60]
|
30
|
Kontaktní výuka
|
26
|
Celkem
|
96
|
|
Předpoklady
|
Odborné znalosti - pro úspěšné zvládnutí předmětu se předpokládá, že je student před zahájením výuky schopen: |
předpokladem studia je zájem o probíranou problematiku a znalost základů programování |
|
Výsledky učení
|
Odborné znalosti - po absolvování předmětu prokazuje student znalosti: |
student se seznámí s problémy, které se často vyskytují u současného software, jako jsou: neefektivní využití výpočetního výkonu, přílišné paměťové nároky nebo nestabilní výpočet, a získá základní znalosti, jak navrhovat kód tak, aby se těmto problémům předešlo. V rámci předmětu student také získá praktické zkušenosti návrhu různých algoritmů jak z množiny ACM příkladů tak odjinud |
|
Hodnoticí metody
|
Odborné znalosti - odborné znalosti dosažené studiem předmětu jsou ověřovány hodnoticími metodami: |
Písemná zkouška, |
Seminární práce, |
|
Vyučovací metody
|
Odborné znalosti - pro dosažení odborných znalostí jsou užívány vyučovací metody: |
Přednáška s aktivizací studentů, |
Samostatná práce studentů, |
Individuální konzultace, |
Seminární výuka (badatelské metody), |
|
|
|
|