study plan table

0102030405060708091011121314151617181920212223242526272829303132
1, #Lineární algebra
B0B01LAG
doc. RNDr. Velebil Jiří Ph.D.
Z, 4P+2S, 8 cr., Z,ZK
Procedurální programování (pro OI)
B0B36PRP
prof. Ing. Faigl Jan Ph.D.
Z, 2P+2C, 6 cr., Z,ZK
Diskrétní matematika
B4B01DMA
doc. Mgr. Habala Petr Ph.D.
Z, 2P+2S, 5 cr., Z,ZK
Řešení problémů a hry
B4B33RPH
doc. Ing. Svoboda Tomáš Ph.D.
Z, 2P+3C, 6 cr., KZ
2, #Logika a grafy
B0B01LGR
prof. RNDr. Demlová Marie CSc.
Z,L, 3P+2S, 5 cr., Z,ZK
Matematická analýza 1
B0B01MA1
prof. RNDr. Tkadlec Josef CSc.
Z,L, 4P+2S, 7 cr., Z,ZK
Architektura počítačů
B0B35APO
Ing. Píša Pavel Ph.D.
L, 2P+2L, 5 cr., Z,ZK
Programování v JAVA
B0B36PJV
doc. Ing. Vokřínek Jiří Ph.D.
L, 2P+3C, 6 cr., Z,ZK
Počítačové sítě
B4B38PSIA
doc. Ing. Novák Jiří Ph.D.
L, 2P+2L, 5 cr., Z,ZK
3, #Matematická analýza 2
B0B01MA2
prof. Mgr. Hájek Petr DrSc.; doc. RNDr. Tišer Jaroslav CSc.
L,Z, 4P+2S, 7 cr., Z,ZK
Pravděpodobnost a statistika
B0B01PST
prof. Ing. Navara Mirko DrSc.
Z,L, 4P+2S, 7 cr., Z,ZK
Algoritmizace
B4B33ALG
RNDr. Genyk-Berezovskyj Marko
Z, 2P+2C, 6 cr., Z,ZK
Operační systémy
B4B35OSY
Ing. Sojka Michal Ph.D.
Z, 2P+2C, 4 cr., Z,ZK
Počítačové hry
B4B39HRY
doc. Ing. Bittner Jiří Ph.D.
Z, 2P+2C, 6 cr., Z,ZK
4, #Optimalizace
B0B33OPT
doc. Ing. Kroupa Tomáš Ph.D.
Z,L, 4P+2C, 7 cr., Z,ZK
Databázové systémy
B0B36DBS
Ing. Komenda Antonín Ph.D.
L, 2P+2C, 6 cr., Z,ZK
Paralelní a distribuované výpočty
B4B36PDV
doc. Ing. Jakob Michal Ph.D.
L, 2P+2C, 6 cr., Z,ZK
Programování grafiky
B0B39PGR
Ing. Felkel Petr Ph.D.
L, 2P+2C, 6 cr., Z,ZK
Základy umělé inteligence
B4B36ZUI
prof. Dr. Pěchouček Michal MSc.
L, 2P+2C, 6 cr., Z,ZK
5, #Samostatný projekt
B4BPROJ6
Ing. Sloup Jaroslav
NA, 0+2, 6 cr., Z
Implementace uživatelských rozhraní
B4B39IUR
Ing. Macík Miroslav Ph.D.; doc. Ing. Míkovec Zdeněk Ph.D.
Z, 2P+2S, 6 cr., Z,ZK
Vytváření grafického obsahu
B4B39VGO
Ing. Čmolík Ladislav Ph.D.
Z, 2P+2C, 6 cr., Z,ZK
6, #Bakalářská práce - Bachelor thesis
BBAP20
NA
L,Z, 0+12, 20 cr., Z
electivesbranch elective coursescompulsory courses of the programmebranch courses
0102030405060708091011121314151617181920212223242526272829303132

Courses

Základní školení BOZP

code: BEZZ
hours: 2BP+2BC
ECTS: 0
homepage: NA
CTU/FEE URLs: http://bilakniha.cvut.cz/cs/predmet5267306.html, http://www.fel.cvut.cz/cz/education/bk/predmety/52/67/p5267306.html
lecturer(s): Ing. Kůla Vladimír CSc.
Dept: 13114
annotation: Školení je součástí systému povinné péče fakulty o bezpečnost a ochranu zdraví při práci na ČVUT v Praze. Studenti všech programů bakalářského studia tímto absolvují povinné základní školení BOZP. Školení je povinné dle platné směrnice děkana
prerequisities: Mandatory attendance at lecture and seminar.
lectures:
Osnova přednášek pro studenty všech programů na ČVUT FEL se provádí podle předlohy ?Osnovy základního školení BOZP pro zaměstnance a studenty ČVUT v Praze? zpracované rektorátem ČVUT.
Základní právní podklady. Obecné zásady při zajišťování BOZP. Základní požadavky na zajištění BOZP. Bezpečnost technických zařízení. Povinnosti zaměstnavatele. Povinnosti a práva zaměstnance. Povinnosti při nástupu do zaměstnání. Bezpečnost práce s elektrickým zařízením. Bezpečnost práce se zobrazovacími jednotkami (počítači). Pracovní úraz a jeho evidence. První pomoc ? traumatologický plán. Požární bezpečnost. Důležité telefony.
labs/seminars:
Diskuse k problematice bezpečnosti a ochrany zdraví při práci.
Záznam o základním školení BOZP do záznamového listu. 
literature:
1.	Cipra, Kříž, Kůla: Elektrotechnická kvalifikace, ČVUT, Praha, 2011.
2.	http://bezpecnost.feld.cvut.cz/

Lineární algebra

code: B0B01LAG
hours: 4P+2S
ECTS: 8
homepage: http://math.feld.cvut.cz/velebil/teaching/b0b01lag.html
CTU/FEE URLs: http://bilakniha.cvut.cz/cs/predmet4680606.html, http://www.fel.cvut.cz/cz/education/bk/predmety/46/80/p4680606.html
lecturer(s): doc. RNDr. Velebil Jiří Ph.D.
Dept: 13101
annotation: Tento kurs pokrývá úvodní partie lineární algebry. Nejprve se studují základní pojmy související s prostorem a lineární transformací (lineární závislost a nezávislost vektorů, báze, souřadnice, atd.). Pak se přejde k otázkám maticového počtu (determinanty, inverzní matice, matice lineárního zobrazení, vlastní čísla a vlastní vektory, diagonalizace matice, atd.). Aplikace zahrnují řešení soustav lineárních rovnic, geometrii trojdimenzionálního prostoru (včetně skalárního a vektorového součinu) a SVD rozklad matice
prerequisities: NA
lectures:
1.  Úvod, polynomy.
2.  Lineární prostory, lineární závislost a nezávislost.
3.  Báze, dimenze, souřadnice vektoru v bázi.
4. Matice, operace s maticemi, determinanty. Inverzní matice.
5. Soustavy lineárních rovnic, Frobeniova věta.
6.  Popis všech řešení homogenní i nehomogenní soustavy lineárních rovnic.
7. Lineární zobrazení. Matice lineárního zobrazení.
8. Volné vektory. Skalární a vektorový součin ve 3D.
9. Aplikace skalárního a vektorového součinu v bodovém prostoru dimenze 3.
10. Lineární prostor se skalárním součinem, Gramův-Schmidtův ortogonalizační proces, věta o projekci. 
11. Vlastní čísla a vlastní vektory matice a lineárního zobrazení.
12. Podobnost matic, matice podobná diagonální matici, zobecněné vlastní vektory.
13. SVD rozklad matice, pseudoinverze.
14. Rezerva.


labs/seminars:
NA
literature:
Velebil, J.: Abstraktní a konkrétní lineární algebra,
http://math.feld.cvut.cz/velebil/akla.html

Další možné materiály (pozor: značení je většinou jiné než na přednášce)
[1] Pták, P.: Introduction to Linear Algebra. ČVUT, Praha, 2005.
[2] Krajník, E.: Základy maticového počtu. ČVUT Praha, 2006.
[3] Olšák, P.: Úvod do algebry, zejména lineární, skriptum FEL ČVUT, Praha 2007.

stránky předmětu:
http://math.feld.cvut.cz/velebil/teaching/b0b01lag.html

Procedurální programování (pro OI)

code: B0B36PRP
hours: 2P+2C
ECTS: 6
homepage: https://cw.fel.cvut.cz/wiki/courses/b0b36prp/start
CTU/FEE URLs: http://bilakniha.cvut.cz/cs/predmet4702606.html, http://www.fel.cvut.cz/cz/education/bk/predmety/47/02/p4702606.html
lecturer(s): prof. Ing. Faigl Jan Ph.D.
Dept: 13136
annotation: Náplň předmětu je koncipována s důrazem na osvojení si základních principů a paradigmat strukturovaného procedurálního programování a datové abstrakce tak, aby studenti uvažovali o používání výpočetních prostředků algoritmicky a dovedli tak efektivně využít programových prostředků pro zpracování dat a řešení výpočetních úloh. V předmětu je kladen důraz na osvojení si programovacích návyků pro vytváření čitelných a znovu použitelných programů. Zároveň je snahou vybudovat u studentů nadhled nad fungováním programu, datového modelu, přístupem a správou paměti. Z tohoto důvodu bude při výuce využit programovací jazyk C, který poskytuje přímou vazbou mezi programem a alokovaným paměťovým prostorem programu. Studenti se v předmětu seznámí nejen s překladem zdrojových kódů a linkováním aplikace, ale také s laděním a profilováním programu. Přednášky budou založeny na prezentaci základních programových konstrukcí a demonstraci motivačních programů dávající do souvislosti dílčí konstrukty s praktickým zápisem poukazující na čitelnost a strukturu zdrojových kódů, reálnou výpočetní náročnost a s tím související nástroje pro profilování a ladění. V závěru semestru budou stručně představeny základní vlastnosti objektově orientovaného programování
prerequisities: NA
lectures:
1.1. Základy programovaní v C, charakteristika jazyka, model kompilace, syntax jazyka, struktura programu a struktura funkce
2. Datové typy - reprezentace v paměti, deklarace, operátory, výrazy a řídicí struktury
3. Příkazy, standardní vstup a výstup. 
4. Ukazatele, dynamická alokace paměti
5. Pole a řetězce, vícerozměrná pole; 
6. Funkce, volání hodnotou a odkazem - zásobník
7. Struktury a uniony, výčtové typy a jejich vnitřní reprezentace
8. Práce se soubory - binární a textové soubory, sekvenční a přímý přístup do souboru
9. Preprocesor, projekt, knihovny, makra a preprocesor a standardní knihovny, moduly, projekty (makefile, podmíněný překlad)
10. Spojové struktury
11. Abstraktní datový typ - fronta, zásobník
12. Stromové struktury - binární strom
13. Základní rozdíly C a C++
14. Rezerva
labs/seminars:
Praktická cvičení jsou zaměřena na získání a procvičování programovacích návyků tak, aby studenti byli schopni samostatně vytvářet čitelné kód. Odevzdávané úlohy budou automaticky ověřovány a bude testována robustnost ošetření vstupních hodnot. V průběhu semestru studenti získávají body za odevzdané úlohy a programovací písemky. Bodové hodnocení úlohy se skládá z bodů za správnost a efektivitu kódu, dále pak z bodů zohledňující kvalitu zdrojových kódů, jejich čitelnost a znovu použitelnost.
literature:
Herout, P.: Učebnice jazyka C. III. vyd. Kopp, Č.Budějovice, 2016. ISBN: 80-85824-21-9

Herout, P.: Učebnice jazyka C - 2 díl, Kopp, Č.Budějovice, 978-80-7232-367-8, 2002.

Kochan: Programming in C (4th Edition), 2014 ISBN 978-0321776419

Cormen, Leiserson, Rivest, and Stein: Introduction to Algorithms (3rd Edition), 2009, ISBN 978-0262033848

King: C Programming: A Modern Approach (2nd Edition), 2008, ISBN 860-1406428577

Diskrétní matematika

code: B4B01DMA
hours: 2P+2S
ECTS: 5
homepage: http://math.feld.cvut.cz/habala/teaching/dma.htm
CTU/FEE URLs: http://bilakniha.cvut.cz/cs/predmet4680906.html, http://www.fel.cvut.cz/cz/education/bk/predmety/46/80/p4680906.html
lecturer(s): doc. Mgr. Habala Petr Ph.D.
Dept: 13101
annotation: V průběhu kursu se studenti seznámí s částí významných témat zahrnovaných tradičně do oboru diskrétní matematika, zejména jde o dělitelnost a počítání modulo, diofantické rovnice, binární relace, indukci, mohutnost množin a rekurentní rovnice. Druhým cílem kursu je naučit studenty jazyk matematiky, pasivně i aktivně, a představit jim matematiku jako vědu
prerequisities: High-school mathematics and ability to think.
lectures:
1. Dělitelnost, Eukleidův algoritmus.
2. Počítání modulo, prostory Zn zbytkových tříd. 
3. Diofantické rovnice, kongruenční rovnice a soustavy. 
4. Binární relace a jejich základní vlastnosti.
5. Speciální relace: částečné uspořádání a ekvivalence.
6. Zobrazení. Mohutnost množin, spočetné a nespočetné množiny.
7. Matematická indukce a její využití.
8. Posloupnosti a součty, asymptotický růst.
9. Lineární rekurentní (rekursivní) rovnice.
10. Výpočet časové náročnosti rekursivních algoritmů, Master theorem.
11. Princip inkluze a exkluze.
labs/seminars:
1. Dělitelnost, Eukleidův algoritmus.
2. Počítání modulo, prostory Zn zbytkových tříd. 
3. Diofantické rovnice, kongruenční rovnice a soustavy. 
4. Binární relace a jejich základní vlastnosti.
5. Speciální relace: částečné uspořádání a ekvivalence.
6. Zobrazení. Mohutnost množin, spočetné a nespočetné množiny.
7. Matematická indukce a její využití.
8. Posloupnosti a součty, asymptotický růst.
9. Lineární rekurentní (rekursivní) rovnice.
11. Výpočet časové náročnosti rekursivních algoritmů, Master theorem.
12. Princip inkluze a exkluze.
literature:
[1] P. Habala: Diskétní matematika, on-line.

Řešení problémů a hry

code: B4B33RPH
hours: 2P+3C
ECTS: 6
homepage: http://cw.fel.cvut.cz/wiki/courses/b4b33rph/start
CTU/FEE URLs: http://bilakniha.cvut.cz/cs/predmet4683706.html, http://www.fel.cvut.cz/cz/education/bk/predmety/46/83/p4683706.html
lecturer(s): doc. Ing. Svoboda Tomáš Ph.D.
Dept: 13133
annotation: Předmět si klade za cíl naučit studenty přemýšlet o řešení algoritmických a programovacích problémů inženýrským způsobem. To zahrnuje především rozmyšlení úlohy, dekompozice, definování rozhraní, způsob testování jednotlivých mezikroků, ověření a testování úspěšnosti celé úlohy. Práce na zajímavých projektech by měla přirozeným způsobem přivést studenty k otázkám, které by si studenti měli pokládat v teoretických předmětech. Studenti by se měli na těžké předměty těšit, protože se pořádně dozví, proč jim to nefungovalo. Primárním cílem není aby studenti vypracovali úlohy bezchybně, ale aby se naučili klást důležité otázky. Předmět rovněž uvede studenty do objektově orientovaného programování s důrazem na čitelnost a robustnost kódu. Přednášky mají tři hlavní bloky: i) vybraná témata z programovacích technik a návrhu algoritmů - nutný základ pro implementaci úloh, včetně testovacích technik; ii) vysvětlení jednotlivých úloh; iii) motivační přednášky - vybraná témata především z oblasti počítačových věd.
prerequisities: none
lectures:
1. Úvod. Představení první úlohy.
2. Jak se tvoří program, vybrané kapitoly pro první úlohu.
3. Objekt jako základní stavební prvek programu.
4. Podmínky a funkce.
5. Představení druhé úlohy.
6. Složené datové typy, iterátory
7. Elegantní ukončení programu, ošetření vyjímek.
8. Testování programu, unittesty.
9. Představení třetí úlohy.
10. Jak psát čistý kód. 
11. Motivační přednáška I
12. Motivační přednáška II
13. Motivační přednáška III
14. Závěr.
labs/seminars:
Studenti budou pracovat na několika programovacích úlohách, samostatně i v týmech. Jednotlivé části kódu budou průběžně odevzdávány a diskutovány s učiteli. Množina úloh se bude průběžně doplňovat a obměňovat. Příklady úloh: Spam filtr. Jednoduchá detekce zpráv na základě výskytu podezřelých slov. K dispozici trénovací i testovací množina. Reversi, dvouhráčové hry. Hledání cesty pro mobilního robota. Jednoduché bludiště, scéna obsahující jednoduché geometrické objekty. úkolem je nalézt cestu pro robota z bodů A do bodů B. Kritérium optimality může být různé. Vězňovo dilema, klasický problém z teorie her se širokou aplikovalností.
literature:
1. Peter Wentworth, Jeffrey Elkner, Allen B. Downey, and Chris Meyers. How to Think Like a Computer Scientist. 3rd edition, 2012, http://openbookproject.net/thinkcs/python/english3e/ český překlad Jaroslav Kubias, http://howto.py.cz
2. Mark Pilgrim. Dive intoPython 3. Český překlad Petr Přikryl, http://diveintopython3.py.cz
3. Doporučená tématická četba k jednotlivým úlohám.

Bezpečnost práce v elektrotechnice pro bakaláře

code: BEZB
hours: 2BP+2BC
ECTS: 0
homepage: NA
CTU/FEE URLs: http://bilakniha.cvut.cz/cs/predmet5267406.html, http://www.fel.cvut.cz/cz/education/bk/predmety/52/67/p5267406.html
lecturer(s): Ing. Kůla Vladimír CSc.
Dept: 13114
annotation: Školení seznamuje studenty všech programů s riziky a příčinami úrazů elektrickým proudem, s bezpečnostními předpisy pro obsluhu a práci na elektrických zařízeních, s ochranami před úrazem elektrickým proudem, s první pomocí při úrazu elektrickým proudem a dalšími bezpečnostními technickými opatřeními v elektrotechnice. Studenti získají potřebnou elektrotechnickou kvalifikaci pro činnost na ČVUT FEL
prerequisities: Mandatory attendance at lecture and seminar. Work out of the written exam (test).
lectures:
Odborná způsobilost v elektrotechnice. Rizika a příčiny úrazů. Symbolika a označování. Bezpečná obsluha a práce, oprávnění osob. Principy ochran před nebezpečným dotykem živých a neživých částí. Bezpečnost elektrických a elektronických předmětů. První pomoc při úrazu elektrickým proudem.
labs/seminars:
Diskuse k problematice rizik a příčin úrazů elektrickým proudem. FILM. 
Písemné přezkoušení (test) z elektrotechnické kvalifikace.
literature:
1.	Cipra, Kříž, Kůla: Elektrotechnická kvalifikace, ČVUT, Praha, 2011.
2.	http://bezpecnost.feld.cvut.cz/

Logika a grafy

code: B0B01LGR
hours: 3P+2S
ECTS: 5
homepage: http://math.feld.cvut.cz/dostamat/teaching/lgr1920.htm
CTU/FEE URLs: http://bilakniha.cvut.cz/cs/predmet4680706.html, http://www.fel.cvut.cz/cz/education/bk/predmety/46/80/p4680706.html
lecturer(s): prof. RNDr. Demlová Marie CSc.; Ing. Dostál Matěj Ph.D.; Dr. Mgr. Gollová Alena
Dept: 13101
annotation: Tento předmět se zabývá základy matematické logiky a teorie grafů. Je zavedena syntax a sémantika výrokové logiky a predikátové logiky prvního řádu. Důraz je kladen na pochopení pojmu sémantického důsledku, na vztah mezi formulí a jejím modelem. Dále jsou zavedeny některé základní pojmy teorie grafů a popsány algoritmy k řešení některých základních úloh z teorie grafů.
prerequisities: None.
lectures:
Výroková logika (cca 4 týdny):
1. Formální jazyk. Jazyk výrokové logiky.
2. Odvozování důsledků (dedukce).
3. Význam a sémantický důsledek.
4. Reserva: pokročilá témata.

Predikátová logika (cca 4 týdny):
1. Jazyk predikátové logiky.
2. Význam a sémantický důsledek v predikátové logice.
3. Dedukce v predikátové logice.
4. Reserva: pokročilá témata.

Teorie grafů: (cca 5 týdnů):
1. Základní pojmy teorie grafů.
2. Kostry.
3. Silná souvislost.
4. Kreslení jedním tahem.
5. Barvení.
labs/seminars:
Řešení teoretických i algoritmických úloh z logiky a teorie grafů.
Upevňování a rozšiřování znalostí a dovedností z přednášek.
literature:
[1] M. Huth, M. Ryan: Logic in Computer Science: Modelling and Reasoning about Systems,  Cambridge University Press, 2004.
[2] J. A. Bondy, U. S. R. Murty: Graph theory with applications. Elsevier Science Ltd/North-Holland, 1976.

V češtině:
[3] M. Demlová, B. Pondělíček: Matematická logika. ČVUT Praha, 1997.
[4] J. Demel: Grafy a jejich aplikace, Academia 2002, druhé vydání 2015.
[5] P. Kovář: Teorie grafů, online, 2019.

Matematická analýza 1

code: B0B01MA1
hours: 4P+2S
ECTS: 7
homepage: http://math.feld.cvut.cz/0educ/pozad/b0b01ma1.htm
CTU/FEE URLs: http://bilakniha.cvut.cz/cs/predmet4680306.html, http://www.fel.cvut.cz/cz/education/bk/predmety/46/80/p4680306.html
lecturer(s): prof. RNDr. Tkadlec Josef CSc.
Dept: 13101
annotation: Cílem kurzu je seznámit studenty se základy diferenciálního a integrálního počtu funkce jedné proměnné
prerequisities: See http://math.feld.cvut.cz/0educ/pozad/b0b01ma1.htm.
lectures:
1. Reálná čísla. Elementární funkce.
2. Limita a spojitost funkce.
3. Derivace funkce, její vlastnosti a aplikace.
4. Věty o střední hodnotě. L'Hospitalovo pravidlo, Taylorův polynom.
5. Extrémy a průběh funkcí.
6. Primitivní funkce, základní metody výpočtu.
7. Integrace racionálních a dalších typů funkcí.
8. Riemannův integrál. Newtonova-Leibnizova formule.
9. Nevlastní integrál. Aplikace integrálu.
10. Posloupnost a její limita.
11. Číselné řady a kritéria jejich konvergence.
12. Úvod do diferenciálních rovnic.
13. Další témata z matematické analýzy.
labs/seminars:
1. Reálná čísla. Elementární funkce.
2. Limita a spojitost funkce.
3. Derivace funkce, její vlastnosti a aplikace.
4. Věty o střední hodnotě. L'Hospitalovo pravidlo, Taylorův polynom.
5. Extrémy a průběh funkcí.
6. Primitivní funkce, základní metody výpočtu.
7. Integrace racionálních a dalších typů funkcí.
8. Riemannův integrál. Newtonova-Leibnizova formule.
9. Nevlastní integrál. Aplikace integrálu.
10. Posloupnost a její limita.
11. Číselné řady a kritéria jejich konvergence.
12. Úvod do diferenciálních rovnic.
13. Další témata z matematické analýzy.
literature:
[1] J. Tkadlec: Diferenciální a integrální počet funkcí jedné proměnné. ČVUT Praha, 2004, 2011.
[2] L. Průcha: Řady, ČVUT Praha, 2005. 
[3] J. Tkadlec: Diferenciální rovnice. Laplaceova transformace. ČVUT Praha, 2005.

Architektura počítačů

code: B0B35APO
hours: 2P+2L
ECTS: 5
homepage: https://cw.felk.cvut.cz/wiki/courses/b35apo/
CTU/FEE URLs: http://bilakniha.cvut.cz/cs/predmet4703306.html, http://www.fel.cvut.cz/cz/education/bk/predmety/47/03/p4703306.html
lecturer(s): Ing. Píša Pavel Ph.D.; RNDr. Štěpán Petr Ph.D.; Ing. Šusta Richard Ph.D.
Dept: 13135
annotation: Předmět studenty seznámí s architekturou soudobých počítačových systémů, především se základními stavebními prvky, jejich funkcí a vzájemným propojením. Předmět přistupuje k výkladu od popisu hardware a klade důraz na porozumění součinnosti programovací jazyk - assembler - hardware. Po úvodním přehledu funkčních bloků počítače je podrobněji popsána stavba procesoru, paměťový a vstupně výstupní subsystém až po přehledové seznámení s různými síťovými topologiemi a sběrnicemi. Během výkladu je brán zřetel na provázanost hardwarových a softwarových komponent, především nejnižších vrstev operačních systémů, ovladačů zařízení a virtualizačních technik. Obecné principy jsou rozvedeny na příkladech několika standardních procesorových architektur. Cvičení jsou v první části zaměřena na detailní seznámení s činností procesoru. Od programování na úrovni procesoru pak postupují k přímé obsluze portů a hardware s využitím programovacího jazyka C.
prerequisities: NA
lectures:
1.      Architektura počítače, struktura, organizace a podsystémy. Reprezentace, zobrazení a přenos informace (především čísel, IEEE-754) v počítači. 
2.      Procesor - ALU, von Neumannova architektura, formát instrukcí, jednocyklový procesor, řadič a řízení 
3.      Paměť - hierarchický koncept, technologie pamětí,  vyrovnávací paměti - cache, konzistence dat,  disková úložiště, zabezpečení dat a RAID
4.      Paměť - virtuální paměť, správa paměti, MMU  
5.      Zřetězené vykonávaní instrukcí, hazardy, vyvažování stupňů zřetězení a časování; Superzřetězení 
6.      Vstupní a výstupní podsystém počítače, sběrnice, dvoubodové spoje, sítě, PCI a PCI express sběrnice, souvislý režim, HyperTransport, Quickpath Interconnect
7.      Vstupní a výstupní podsystém počítače z pohledu software 
8.      Technické a organizační prostředky - vnější události, výjimky, reálný čas, přímý přístup do paměti, autonomní kanál 
9.      Sítě procesorů a počítačů, topologie sítí, komunikace - sítě typu LAN, MAN, WAN, sítě řídicích počítačů 
10.      Předávání parametrů funkcím a virtuálním instrukcím operačního systému. Zásobníkové rámce, registrová okna, přepínání režimů a realizace systémových volání. 
11.      Klasické registrově orientované architektury s komplexní instrukční sadou. Ukázka realizace MMU, cache, sběrnice. 
12.      Procesorová rodina INTEL x86, Od 8086 k EMT64. Hlavní zaměření na 32-bit a 64-bit režimy s krátkým vysvětlením komplikací způsobených nutností zachování kompatability s 16-bit 8086 a 80286 segmentového přístupu a proč ho současné OS používají v co nejvíce minimalizované formě. Příklad SIMD instrukcí (MMX, SSE). 
13.      Přehled vývoje architektury a koncepcí CPU (RISC/CISC) - procesory ARM, ColdFire, SPARC a PowerPC a procesory pro vestavné aplikace 
14.      Mnohaúrovňová organizace počítače, virtuální stroje. Konvenční architektura a implementačně závislá mikroarchitektura. Přenositelný bytecode a virtuální programovací prostředí (Java, C#/.Net). Virtualizační techniky (např XEN, VMWARE) a paravirtualizace. 
labs/seminars:
NA
literature:
[1] Hennessy, J. L., and D. A. Patterson. Computer Architecture: A Quantitative Approach, 4rd ed. Morgan Kaufman, 2006. ISBN: 0123704901.
[2] Patterson, D. A., and J. L. Hennessy. Computer Organization and Design: The Hardware/Software Interface, 4rd ed. Morgan Kaufman, 2011. ISBN: 0123747503.

Programování v JAVA

code: B0B36PJV
hours: 2P+3C
ECTS: 6
homepage: https://cw.fel.cvut.cz/wiki/courses/b0b36pjv
CTU/FEE URLs: http://bilakniha.cvut.cz/cs/predmet5010706.html, http://www.fel.cvut.cz/cz/education/bk/predmety/50/10/p5010706.html
lecturer(s): doc. Ing. Vokřínek Jiří Ph.D.
Dept: 13136
annotation: Předmět navazuje na základy algoritmizace a programování z prvního semestru a uvádí studenty do prostředí Java. Předmět je vybudován na znalosti objektové koncepce jazyka Java. Součástí seznámení s koncepcí jazyka Java jsou výjimky, zpracování událostí a budování grafického rozhraní. Budou představeny základní knihovní metody, práce se soubory a použití generických typů. Důležitým tématem jsou modely vícevláknových aplikací a jejich implementaci. Praktická cvičení praktických dovedností a znalostí Java formou řešení dílčích úloh a semestralní práce, které budou odevzdávány průběžně prostřednictvím systému pro správu zdrojových souborů. Bodové hodnocení úlohy se skládá z bodů za správnost a efektivitu kódu, dále pak z bodů zohledňující kvalitu zdrojových kódů, jejich čitelnost a znovu použitelnost.
prerequisities: NA
lectures:
1. Koncepce, historie jazyka a jeho vývoj - Java Virtual Machine, instalace vývojového prostředí, překlad a interpretace, syntaxe, primitiva a základní konstrukty.
2. Objektově orientované programování v programovacím jazyku Java, třídy, rozhraní a objekty;  struktura programu, kompilace a spuštění, předávání parametrů, aplikace a aplety.
3. Řízení běhu programu, základní datové typy, proměnné, operátory, výjimky.
4. Pole, řetězce, základní datové kolekce a iterátory.
5. Principy objektového přístupu, třídy a dědičnost, řízení přístupu, hierarchie tříd, dědění, kompozice, abstraktní třídy, polymorfismus.
6. Datové kolekce a generické datové typy.
7. Práce se soubory, datové proudy, modely I/O operací.
8. Síťování - způsoby a modely komunikace, síťová API v programovacím jazyku Java, protokoly UDP, TCP a HTTP. Aplikace klient / server.
9. Paralelní programování - vlákna a modely vícevláknových aplikací, synchronizační primitiva.
10. Příklad vícevláknové aplikace a komunikace mezi vlákny; rozhraní JNI.
11. Grafické uživatelské rozhraní, události a listenery, Java 2D/3D, knihovny AWT a Swing.
12. Ovládání uživatelských rozhraní, multimediální rozhraní.
13. Distribuované programování - serializace,  propojování modulů (middleware) a vzdálené volání funkcí, rozhraní Java RMI a další, např. ICE.
14. Kódovací konvence a styly, nástroje pro řízení překladu, logování; rezerva.
labs/seminars:
1. Vývojové prostředí a odevzdávání úloh.
2. Překlad a spuštění programu, dokumentace (javadoc), základy Java kódovací konvence a stylu.
3. Nástroje pro sestavení programu (ant, maven), základní dostupné třídy v Java Class Library.
4. Proměnné, výrazy, předávání parametrů programu a spuštění programu.
5. Řízení běhu programu, řetězce, cykly, prioritní fronta
6. Zadání semestrální práce 
7. Třídy, objekty a dědičnost; struktura programu, incializace objektů a správa paměti
8. Polymorphismus
9. Generické datové typy
10. Načítání a ukládání souborů
11. Síťování
12. Vícevláknové aplikace
13. Grafické uživatelské rozhraní
14. Serializace a distribuované programování
literature:
Doporučená literatura:
1. Herout, P.: Učebnice jazyka Java, Kopp, Č. Budějovice, 2000, s. 350.
2. Herout, P.: Učebnice jazyka Java II, Kopp, Č. Budějovice, 2001, s. 350.
3. Eckel, B.: Thinking in Java, Prentice Hall, 2006, s. 1150.

Počítačové sítě

code: B4B38PSIA
hours: 2P+2L
ECTS: 5
homepage: NA
CTU/FEE URLs: NA, NA
lecturer(s): doc. Ing. Novák Jiří Ph.D.
Dept: 13138
annotation: Cílem předmětu je seznámit studenty se základními principy komunikace v heterogenních počítačových sítích. Jsou popsána základní fyzická média, topologie, metody řízení přístupu, ARQ algoritmy, představeny základní modely datových přenosů a vysvětleny základy kódování a šifrování. Dále se studenti seznámí s nejrozšířenějšími technologiemi lokálních počítačových sítí, základy protokolů Internetu a metodami a protokoly pro správu a monitoring sítí
prerequisities: NA
lectures:
1. Úvod, definice základních pojmů, model ISO/OSI, funkce vrstev
2. Metalické, optické a bezdrátové fyzické médium, vlastnosti, parametry
3. Entropie informačního zdroje, zdrojové kódování, kapacita komunikačního kanálu
4. Modely komunikačních kanálů (AWGN, BSC, ...), modulace, komunikace v rozprostřeném spektru
5. Typy datových přenosů, metody sdílení kapacity kanálu, fyzické a logické topologie
6. Metody řízení přístupu ke sdílenému médiu a jejich vlastnosti, adresace
7. ARQ metody, kódy pro detekci a opravy chyb
8. Utajování informace, symetrické a asymetrické šifry, distribuce klíčů, certifikáty, digitální podpis
9. Propojování distribuovaných systémů, směrování, metody řízení datového toku, QoS
10. Technologie LAN (IEEE802.3), spanning tree, VLAN, PoE
11. Technologie WLAN (IEEE802.11), DCF, PCF, virtuální odposlech
12. Protokolový zásobník TCP/IP, IP protokol, ARP, DHCP, ICMP, NAT, DNS
13. Transportní protokoly UDP, TCP, RTP, řízení datového toku, congestion control
14. Správa počítačových sítí, SNMP, RMON
labs/seminars:
1. Měření s číslicovým osciloskopem
2. Zabezpečení datových přenosů pomocí CRC
3. Metalické vedení
4. Optická vlákna
5. Bezdrátové sítě

Semestrální projekt zaměřený na praktickou implementaci síťových aplikací. 
literature:
Tanenbaum, A. S., Wethetral, D.J.: Computer Networks, Prentice Hall 2010, ISBN-13: 978-0132126953

Matematická analýza 2

code: B0B01MA2
hours: 4P+2S
ECTS: 7
homepage: https://math.feld.cvut.cz/hajek/teaching.html
CTU/FEE URLs: http://bilakniha.cvut.cz/cs/predmet4680806.html, http://www.fel.cvut.cz/cz/education/bk/predmety/46/80/p4680806.html
lecturer(s): prof. Mgr. Hájek Petr DrSc.; doc. RNDr. Tišer Jaroslav CSc.
Dept: 13101
annotation: Tento předmět pokrývá úvod do diferenciálního a integrálního počtu funkcí více proměnných spolu se základními integrálními větami o křivkovém a plošném integrálu. V další části se probírají řady funkční a mocninné s přihlédnutím na Taylorovy a Fourierovy řady
prerequisities: https://math.feld.cvut.cz/hajek/zkouska-info.pdf
lectures:
1. Základní kritéria konvergence řad.
2. Funkční řady, Weierstrasseovo kritérium. Mocninné řady.
3. Taylorovy rozvoje a Fourierovy řady.
4. Funkce více proměnných, limita, spojitost.
5. Směrové a parciální derivace, diferenciál a gradient.
6. Derivace složené funkce, derivace vyšších řádů.
7. Jakobiho matice. Lokální extrémy.
8. Vázané extrémy, Lagrangeova metoda.
9. Dvojný a trojný integrál, Fubiniho věta a věta o substituci.
10. Křivkový integrál funkce, křivkový integrál pole, aplikace.
11. Plošný integrál funkce a pole a jeho aplikace.
12. Gaussova, Greenova, Stokesova věta.
13. Potenciál vektorového pole.
labs/seminars:
1. Základní kritéria konvergence řad.
2. Funkční řady, Weierstrasseovo kritérium. Mocninné řady.
3. Taylorovy rozvoje a Fourierovy řady.
4. Funkce více proměnných, limita, spojitost.
5. Směrové a parciální derivace, diferenciál a gradient.
6. Derivace složené funkce, derivace vyšších řádů.
7. Jakobiho matice. Lokální extrémy.
8. Vázané extrémy, Lagrangeova metoda.
9. Dvojný a trojný integrál, Fubiniho věta a věta o substituci.
10. Křivkový integrál funkce, křivkový integrál pole, aplikace.
11. Plošný integrál funkce a pole a jeho aplikace.
12. Gaussova, Greenova, Stokesova věta.
13. Potenciál vektorového pole.
literature:
[1] Hamhalter J. Tišer J.: Diferenciální počet funkcí více proměnných, ČVUT 2005. 
[2] Hamhalter J., Tišer J.: Integrální počet funkcí více proměnných, ČVUT 2005.

Pravděpodobnost a statistika

code: B0B01PST
hours: 4P+2S
ECTS: 7
homepage: http://cmp.felk.cvut.cz/~navara/stat/
CTU/FEE URLs: http://bilakniha.cvut.cz/cs/predmet4681506.html, http://www.fel.cvut.cz/cz/education/bk/predmety/46/81/p4681506.html
lecturer(s): prof. Mgr. Hájek Petr DrSc.; prof. Ing. Navara Mirko DrSc.
Dept: 13101
annotation: Předmět seznamuje se základy teorie pravděpodobnosti a matematické statistiky. Zahrnuje popisy pravděpodobnosti, náhodných veličin, jejich rozdělení, charakteristik a operací s náhodnými veličinami. Jsou vyloženy výběrové statistiky, bodové a intervalové odhady, základní testy hypotéz a metoda nejmenších čtverců. Základní pojmy a výsledky teorie Markovových řetězců.
prerequisities: Linear Algebra, Calculus, Discrete Mathematics
lectures:
 1. Základní pojmy teorie pravděpodobnosti. Kolmogorovův model pravděpodobnosti. Nezávislost, podmíněná pravděpodobnost, Bayesův vzorec.
 2. Náhodné veličiny a způsoby jejich popisu. Náhodný vektor. Distribuční funkce.
 3. Kvantilová funkce. Směs náhodných veličin.
 4. Charakteristiky náhodných veličin a jejich vlastnosti. Operace s náhodnými veličinami. Základní typy rozdělení.
 5. Charakteristiky náhodných vektorů. Kovariance, korelace. Čebyševova nerovnost. Zákon velkých čísel. Centrální limitní věta.
 6. Základní pojmy statistiky. Výběrový průměr, výběrový rozptyl. Intervalové odhady střední hodnoty a rozptylu. 
 7. Metoda momentů, metoda maximální věrohodnosti. EM algoritmus.
 8. Testování hypotéz o střední hodnotě a rozptylu. 
 9. Testy dobré shody.
10. Testy korelace, neparametrické testy.
11. Diskrétní náhodné procesy. Stacionární procesy. Markovovy řetězce.
12. Klasifikace stavů Markovových řetězců. 
13. Asymptotické vlastnosti Markovových řetězců. Přehled a ukázky aplikací.
labs/seminars:
 1. Příklady na elementární pravděpodobnost.
 2. Kolmogorovův model pravděpodobnosti. Nezávislost, podmíněná pravděpodobnost, Bayesův vzorec.
 3. Směs náhodných veličin. 
 4. Střední hodnota. Operace s náhodnými veličinami. 
 5. Rozptyl. Náhodný vektor, sdružené rozdělení.
 6. Výběrový průměr, výběrový rozptyl. Čebyševova nerovnost. Centrální limitní věta.
 7. Intervalové odhady střední hodnoty a rozptylu.
 8. Metoda momentů, metoda maximální věrohodnosti.
 9. Testování hypotéz o střední hodnotě a rozptylu. 
10. Testy dobré shody. Testy korelace. Neparametrické testy.
11. Diskrétní náhodné procesy. Stacionární procesy. Markovovy řetězce.
12. Klasifikace stavů Markovových řetězců. 
13. Asymptotické vlastnosti Markovových řetězců.
literature:
[1] Navara, M.: Pravděpodobnost a matematická statistika. Skriptum FEL ČVUT, 1. vydání, Praha, 2007.
[2] Rogalewicz, V.: Pravděpodobnost a statistika pro inženýry. Skriptum FBMI ČVUT, 2. vydání, Praha, 2007.
[3] Zvára, K., Štěpán, J.: Pravděpodobnost a matematická statistika, 2. vydání, Matfyzpress, MFF UK, Praha, 2002.
[4] Nagy, I.: Pravděpodobnost a matematická statistika. Cvičení. Skriptum FD CVUT, Praha, 2002.

Algoritmizace

code: B4B33ALG
hours: 2P+2C
ECTS: 6
homepage: https://cw.fel.cvut.cz/b181/courses/b4b33alg/start
CTU/FEE URLs: http://bilakniha.cvut.cz/cs/predmet4682306.html, http://www.fel.cvut.cz/cz/education/bk/predmety/46/82/p4682306.html
lecturer(s): RNDr. Genyk-Berezovskyj Marko
Dept: 13133
annotation: Cílem předmětu je schopnost samostatné implementeca různých variant zálkadních úloh informatiky. Hlavní témata jsou algoritmy řazení a vyhledávání a jim odpovídající datové struktury. Důraz je kladen na algoritmický aspekt úloh a efektivitu praktického řešení
prerequisities: Programming 1
lectures:
1. Řád růstu funkcí, asymptotická složitost algoritmu
2. Rekurze, složitost rekurentních algoritmů, mistrovská věta
3. Stromy, binární stromy, prohledávání s návratem 
4. Fronta, graf, průchod stromem/grafem do šířky/hloubky
5. Vyhledávani v poli, binární vyhledávací stromy 
6. AVL a B- stromy 
7. Řazení, Insert Sort, SelectionSort, Bubble Sort, QuickSort 
8. Řazení, Merge Sort, Halda, Heap Sort
9. Řazení, Radix sort, Counting Sort, Bucket Sort
10. Dynamické programování, struktura optimálního řešení, odstranění rekurze, optimální BVS 
11. Dynamické programování, nejdelší společná podposloupnost,  optimální násobení matic, problém batohu
12. Hashing, otevřené a zřetězené tabulky, double hashing
13. Hashing, srůstající tabulky, univerzální hashování, 
14. Řazení vícedimenzionálních dat, porovnání řadících algoritmů

labs/seminars:
1. Řád růstu funkcí, asymptotická složitost algoritmu
2. Rekurze, složitost rekurentních algoritmů, mistrovská věta
3. Stromy, binární stromy, prohledávání s návratem 
4. Fronta, graf, průchod stromem/grafem do šířky/hloubky
5. Vyhledávani v poli, binární vyhledávací stromy 
6. AVL a B- stromy 
7. Řazení, Insert Sort, SelectionSort, Bubble Sort, QuickSort 
8. Řazení, Merge Sort, Halda, Heap Sort
9. Řazení, Radix sort, Counting Sort, Bucket Sort
10. Hashing, otevřené a zřetězené tabulky, double hashing
11. Hashing, srůstající tabulky, univerzální hashování, 
12. Dynamické programování, struktura optimálního řešení, odstranění rekurze, optimální BVS 
13. Dynamické programování, nejdelší společná podposloupnost,  optimální násobení matic, problém batohu
14. Řazení vícedimenzionálních dat, porovnání řadících algoritmů
literature:
[1] T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein: Introduction to Algorithms, 3rd ed., MIT Press, 2009,

[2] S. Dasgupta, C.H. Papadimitriou, and U.V. Vazirani: Algorithms, Mcgraw-Hill Higher Education, 2006,

[3] Pavel Töpfer: Algoritmy a programovací techniky, Prometheus Praha 1995, 2. vydání 2007

[4] Robert Sedgewick: Algoritmy v C, části 1-4, SoftPress, Praha, 2003 


Operační systémy

code: B4B35OSY
hours: 2P+2C
ECTS: 4
homepage: NA
CTU/FEE URLs: http://bilakniha.cvut.cz/cs/predmet4683606.html, http://www.fel.cvut.cz/cz/education/bk/predmety/46/83/p4683606.html
lecturer(s): Ing. Sojka Michal Ph.D.; RNDr. Štěpán Petr Ph.D.
Dept: 13135
annotation: Student se seznámí se základními koncepty a principy operačních systémů, jako jsou procesy a vlákna, jejich komunikace a plánování, synchronizační prostředky, virtuální paměť, správa periferií, souborové systémy či základní otázky bezpečnosti. Na přednáškách budou tato témata probrána teoreticky s odkazy na implementace převážně v OS Linux a Windows. Od začátku budou uvažovány platformy s vícejádrovými procesory. Na cvičeních budou studenti vypracovávat úlohy v jazyce C/C++ a budou pracovat s operačními systémy Linux a NOVA (mikrojádro)
prerequisities: C programming computer architecture
lectures:
1. Architektura počítače, historie a typy OS, komponenty OS.
2. Obsluha přerušení a vyjímek. Systémová volání.
3. Procesy, vlákna, přepínání kontextu, rozvrhování (plánování), lokální vs. globalní plánování, migrace vláken.
4. Synchronizace, časově závislé chyby, přístup ke sdíleným zdrojům (nepreemptivní sekce, semafory, mutexy, spinlocky, Java synchronize), uváznutí.
5. Meziprocesní komunikace (signály, roury, předávání zpráv)
6. Virtuální paměť, výpadky stránek, odkládání, copy-on-write, spouštění procesů, relokace, dynamické knihovny.
7. Správa paměti, paměťové alokátory (v jádře a uživatelském prostoru, halda).
8. Bezpečnost (security), trusted computing base, buffer overflow, ASLR, antiviry, šifrování.
9. Vstup/výstup, ukládání dat, síťová rozhraní, USB, HID, ovladače zařízení (Linux, Win).
10. Souborové systémy, žurnálování, integrita dat, disková vyrovnávací paměť.
11. Grafický subsystém, trame buffer, HW akcelerace, paralelní výpočty.
12.Virtualizace.
13. Mobilní OS, struktura OS Android a jeho aplikací, spolupráce s cloudovými službami
14. Duševní vlastnictví a jeho ochrana, open source softwarové licence, ekonomické aspekty využití open source
labs/seminars:
1. Úvod, shell, opakování programování v C, makefile praktický vstupní test
2. Základy používání shellu, skriptování.
3. Systémová volání - Linux (assembler, C)
4. Systémová volání - na mikrojádře NOVA
5. Synchronizace v C - úloha na vlákna a synchronizaci (Linux)
6. Úloha na IPC (roura mezi vlákny, obsluha signálů, Linux)
7. Zavedení ELF souboru do paměti a spuštění (NOVA)
8. Přepínání vláken (NOVA)
9. Semafor, preemptivní multitasking (NOVA)
10. Bezpečnost, buffer overflow exploit (Linux)
11. Alokace paměti (halda, Linux)
12. Implementace souborového systému (NOVA)
13. Odevzdání souborového systému, zápočet.
literature:
1. TANENBAUM, Andrew S a Albert S WOODHULL. Operating systems design and implementation. 3rd ed. Upper Saddle River: Prentice-Hall, c2006, xvii, 1054 s. ISBN 0131429388.
2. http://wiki.osdev.org/
3. http://hypervisor.org/

Počítačové hry

code: B4B39HRY
hours: 2P+2C
ECTS: 6
homepage: https://cw.fel.cvut.cz/b181/courses/b4b39hry/start
CTU/FEE URLs: http://bilakniha.cvut.cz/cs/predmet4699006.html, http://www.fel.cvut.cz/cz/education/bk/predmety/46/99/p4699006.html
lecturer(s): doc. Ing. Bittner Jiří Ph.D.; Ing. Sedláček David Ph.D.
Dept: 13139
annotation: Studenti získají orientaci v typických problémech, se kterými se lze setkat při programování počítačových her. Seznámí se s problematikou reprezentace 3D modelů, animací, detekce kolizí, fyzikální simulace, vykreslování v reálném čase v oblasti tvorby počítačových her. Na cvičeních v týmech vytvoří vlastní počítačovou hru: od sepsání konceptu a design dokumentu přes programování herních mechanismů až po prezentace odborné porotě. Na cvičeních je využívána sada nástrojů Unity.
prerequisities: Students are expected to have a preliminary knowledge on: programming in C# (Java, C/C++), basic linear algebra.
lectures:
1. Úvodní přednáška, systém hodnocení, cvičení, historie počítačových her
2. Herní design
3. Komponenty herního enginu, herní smyčka
4. Transformace, animace, animační křivky
5. Skeletální animace, míchání animací
6. Detekce kolizí
7. Herní fyzika
8. Inverzní kinematika
9. Umělá inteligence ve hrách
10. Materiálové modely, shadery 
11. Herní hudba
12. Optimalizace herního enginu
13. Zvaná přednáška
14. Závěrečné prezentace projektů
labs/seminars:
1. Rozdělení do týmů, Úvod do Unity
2. Unity 1: základní koncepty, herní smyčka, 2D GUI, vstup od uživatele
3. Unity 2: transformace, kamera, viewporty, obsah, 3D modely
4. Unity 3: kolize, dynamika, herní logika
5. Unity 4: kostra, hierarchie, animace
6. Prezentace design dokumentu a proof-of-concept
7. Konzultace k semestrální práci
8. Unity 5: úvod do shaderů
9. Konzultace k semestrální práci
10. Konzultace k semestrální práci
11. Konzultace k semestrální práci
12. Prezentace beta-verze
13. Odevzdání finální aplikace a dokumentace, zápočet
14. Rezerva
literature:
J. Gregory. Game Engine Architecture (3rd edition). CRC Press, 2018.
J. Schell. The Art of Game Design: A book of lenses. CRC Press. 2008

Optimalizace

code: B0B33OPT
hours: 4P+2C
ECTS: 7
homepage: http://cw.fel.cvut.cz/wiki/courses/b0b33opt
CTU/FEE URLs: http://bilakniha.cvut.cz/cs/predmet4674306.html, http://www.fel.cvut.cz/cz/education/bk/predmety/46/74/p4674306.html
lecturer(s): doc. Ing. Kroupa Tomáš Ph.D.
Dept: 13133
annotation: Kurs seznamuje se základy matematické optimalizace, přesněji optimalizace v reálných vektorových prostorech konečné dimenze. Teorie je ilustrována množstvím příkladů. Důraz je kladen na praktickou schopnost optimalizační problémy formulovat, analyzovat a posoudit jejich složitost
prerequisities: Linear algebra. Calculus, including intro to multivariate calculus. Recommended are numerical algorithms and probability and statistics.
lectures:
1. Obecná formulace úloh spojité optimalizace.
2. Přeurčené lineární soustavy, metoda nejmenších čtverců.
3. Minimalizace kvadratických funkcí bez omezení.
4. Použití SVD v optimalizaci.
5. Algoritmy na volné lokální extrémy (gradientní, Newtonova, Newtonova-Gaussova,
 Levenbergova-Marquardtova metoda).
6. Lineární programování.
7. Simplexová metoda.
8. Konvexní množiny a mnohostěny. Konvexní funkce. 
9. Úvod do konvexní optimalizace.
10. Lagrangeův formalismus, KKT podmínky.
11. Lagrangeova dualita. Dualita v LP.
12. Příklady nekonvexních úloh.
13. Úvod do vícekriteriální optimalizace.
labs/seminars:
Ve cvičení se jednak procvičuje teorie na společně řešených příkladech, jednak studenti za domácí úkoly řeší  optimalizační úlohy v jazyce Matlab.
literature:
Základní:
Elektronická skripta Tomáš Werner: Optimalizace (viz www stránka předmětu)

Dále vybrané části z těchto knih:
Lieven Vandenberghe, Stephen P. Boyd: Introduction to Applied Linear Algebra: Vectors, Matrices, and Least Squares, Cambridge University Press, 2018.
Stephen Boyd and Lieven Vandenberghe: Convex Optimization, Cambridge University Press, 2004.

Databázové systémy

code: B0B36DBS
hours: 2P+2C
ECTS: 6
homepage: http://www.ksi.mff.cuni.cz/~svoboda/courses/182-B0B36DBS/
CTU/FEE URLs: http://bilakniha.cvut.cz/cs/predmet5010606.html, http://www.fel.cvut.cz/cz/education/bk/predmety/50/10/p5010606.html
lecturer(s): RNDr. Svoboda Martin Ph.D.
Dept: 13136
annotation: Předmět je koncipován jako základní databázový kurz, v němž je důraz kladen zejména na schopnost samostatného návrhu datového modelu, zvládnutí jazyka SQL a schopnosti zvolit vhodný stupeň izolovanosti transakcí. Studenti se dále seznámí s nejběžněji používanými technikami indexace, architekturou databázových systémů a jejich správou. Své poznatky si ověří při vypracování samostatné úlohy, která bude kontrolována v průběhu semestru ve dvou kontrolních bodech
prerequisities: NA
lectures:
1. Základy modelování dat, E-R diagramy, relační model 
2. Proces tvorby datového modelu
3. Dotazování v relačních databázích, základy jazyka SQL 
4. Pokročilé dotazy, agregační funkce, vnořené dotazy ppt, pdf
5. Integritní omezení, referenční integrita, normální formy. 
6. Transakce, jejich serializovatelnost, zamykání, stupně izolovanosti, uváznutí transkací
7. Indexy, efektivní implementace stromových struktur v databázích 
8. Cursor, view, uložené procedury, triggery
9. Objektově-relační mapování, JPA 2.0
10. Pokročilé techniky JPA 2.0
11.  GIS, prostorové indexační techniky 
12. Datové sklady pdf
13. Zotavení z chyb,  replikace dat, vysoká dostupnost, load balancing,
14. Moderní trendy databázových systémů
labs/seminars:
1. Motivace, seznámení s programovým vybavením, nabídka témat indiv. prací
2. Datové modelování, konceptuální a logický model
3. Návrh datového modelu, schválení tématu indiv. práce
4. SQL I.
5. SQL II.
6. SQL, CRUD, Kontrolní bod 1 (datový model)
7. Transakce, indexy
8. Pokročilé databázové techniky (pohledy, uložené procedury, triggery)
9. Přípojení k DB serveru: JDBC, JPA 2 - entity a manipulace s jimi, relace mezi entitami, JPQL
10.-11. Implementace semestrální práce
12. GIS ukázka, Datový sklad ukázka
13. Implementace semestrální práce
14. Odevzdání aplikace, zápočet
literature:
Pokorný J., Valenta M.: Databázové systémy, Nakladatelství ČVUT, Praha, 2013, ISBN 978-80-01-05212-9

Paralelní a distribuované výpočty

code: B4B36PDV
hours: 2P+2C
ECTS: 6
homepage: NA
CTU/FEE URLs: http://bilakniha.cvut.cz/cs/predmet4702806.html, http://www.fel.cvut.cz/cz/education/bk/predmety/47/02/p4702806.html
lecturer(s): doc. Ing. Jakob Michal Ph.D.
Dept: 13136
annotation: Cílem předmětu je studenty seznámit se základy programování paraleních a distribuovaných systémů. Studenti se naučí základním modelům a architekturám paralelních a distibuovaných výpočtů, seznámí se s technickými prostředky pro jejich programování a s vybranými základními paralleními a distribuovanými algoritmy
prerequisities: NA
lectures:
1.	Platformy a modely pro paralelní programování.
2.	Masivně paralelní architektury (GPU, Xeon Phi, atd.)
3.	Principy návrhu paralelních algoritmů.
4.	Programování se sdíleným paměťovým prostorem.
5.	Programování s MPI.
6.	Základní paralelní řadící algoritmy.
7.	Základní paralelní maticové algoritmy.
8.	Modely a architektury distribuovaných výpočtů. 
9.	Čas v distribuovaných systémech: fyzické a logické hodiny, kauzalita.
10.	Problém atomického commitu, distribuované zajištění výlučného přístupu.
11.	Detekce chyb a prevence uváznutí výpočtu, distribuované ukončení výpočtu.
12.	Problém konsensu, dosažení distribuované shody.
13.	Map-reduce výpočetní model a jeho implementace.
14.	Rezerva.
labs/seminars:
NA
literature:
1.	Ananth Grama, Anshul Gupta, George Karypis, Vipin Kumar: Introduction to Parallel Computing, Second Edition, Addison Wesley, 2003.
2.	Distributed Systems: Principles and Paradigms (2nd Edition), Prentice Hall of India, 2007.

Programování grafiky

code: B0B39PGR
hours: 2P+2C
ECTS: 6
homepage: https://cent.felk.cvut.cz/courses/PGR/
CTU/FEE URLs: http://bilakniha.cvut.cz/cs/predmet3132906.html, http://www.fel.cvut.cz/cz/education/bk/predmety/31/32/p3132906.html
lecturer(s): Ing. Felkel Petr Ph.D.; Ing. Sloup Jaroslav
Dept: 13139
annotation: Studenti se seznámí s architekturou moderních grafických karet a naprogramují jednoduchou interaktivní 3D grafickou aplikaci s využitím rasterizace. Zároveň se naučí základním pojmům a principům používaným v počítačové grafice, jako jsou např. rasterizační zobrazovací řetězec (postup zobrazování scény), souřadnicové systémy a geometrické transformace a filtrování textur. Získají tedy znalosti, které jim usnadní orientaci v oblasti počítačové grafiky a stanou se slušnými základy nezbytnými pro profesionální růst, například při programování grafických karet (GPU) a animací. Cvičení probíhá v počítačové laboratoři. Důraz je kladen na získání praktických zkušeností s konkrétní knihovnou (OpenGL)
prerequisities: NA
lectures:
1. Úvod. Rasterizační zobrazovací řetězec. Knihovna OpenGL. Základy programování shaderů I - program
2. Základy programování shaderů II - data. Knihovna GLUT
3. Transformace I (model, view)
4. Transformace II (graf scény, projekce, viewport, gimbal lock a trackball)
5. Výpočet osvětlení ve vrcholech a ve fragmentech (implementace Phongova osvětlovacího modelu)
6. Textury (zobrazování, filtrování, mip-mapping, mapa prostředí)
7. Fixní části zobrazovacího řetězce. Operace s fragmenty a obrazová paměť. Vstupní operace (výběr).
8. Míchání barev, antialiasing a mlha
9. Křivky I (formy zápisu křivek, interpolace a aproximace, Fergusson, Bézier, Coons)
10. Křivky II (uniformní, neuniformní a neuniformní racionální B-spline)
11. Kvaterniony a interpolace rotací
12. Další rozhraní pro programování grafiky (OpenGL ES, WebGL, D3D, .)
13. Metody zobrazování a osvětlování 
14. Rezerva
labs/seminars:
1. Úvod, semestrální projekty, překlad úloh, ukázky hotových prací
2. Základy programování shaderů. Výběr zadání samostatného projektu
3. Struktura programu (GLUT) a buffery (VBO a VAO)
4. Grafické elementy 
5. Transformace 
6.  Stínování, světla a materiály
7. Řešení samostatné úlohy - konzultace před první kontrolou
8. Kontrola semestrálních projektů
9. Textury 
10. Křivky
11. Selekce a interakce
12. Řešení samostatné úlohy - konzultace před odevzdáním 
13. Odevzdání semestrálních projektů
14. Rychlá prezentace + volba nejlepších. Zápočet
literature:
Povinná literatura:
1. Žára, J. a kol.: Moderní počítačová grafika, Computer Press, Brno, 2004.

Doporučená literatura:
1. Gortler S.: Foundations of 3D Computer Graphics, The MIT Press, 2012.
2. Wolf D.: OpenGL 4.0 Shading Language Cookbook, Packt Publishing Ltd., Birmingham, 2011.
3. Dave Shreiner, Graham Sellers, John Kessennich, Bill Licea-Kane: OpenGL Programming Guide:                  The Official Guide to Learning OpenGL, Versions 4.2 (8th Edition), 2012/2013.
4. Angel, E.: Interactive Computer Graphics, A top-down approach With OpenGL, Addison-Wesley, 1997.

Základy umělé inteligence

code: B4B36ZUI
hours: 2P+2C
ECTS: 6
homepage: NA
CTU/FEE URLs: http://bilakniha.cvut.cz/cs/predmet4702906.html, http://www.fel.cvut.cz/cz/education/bk/predmety/47/02/p4702906.html
lecturer(s): prof. Dr. Pěchouček Michal MSc.
Dept: 13136
annotation: Cílem předmětu je seznámit studenty se základy symbolické umělé inteligence. V předmětu budou vysvětleny algoritmy informovaného a neinformovaného prohledávání stavového prostoru, netradiční metody reprezentace a řešení problémů a dvouhráčových her, reprezentace znalostí pomocí formální logiky, metody automatického uvažování a úvod do markovského rozhodování
prerequisities: NA
lectures:
1.	Úvod do umělé inteligence, řešení problémů pomocí prohledávání stavového prostoru
2.	Algoritmy neinformované prohledávání stavového prostoru
3.	Informované algoritmy prohledávání stavového prostoru - algoritmus A*.
4.	Pokročilé a netradiční metody prohledávání stavového prostoru.
5.	Řešení problémů pomocí algoritmů založených na splňování omezujících podmínek (CSP)
6.	Herní stromy a algoritmy pro řešení dvouhráčových her.
7.	Reprezentace plánovacích problémů
8.	Logika a reprezentace znalostí.
9.	Reprezentace znalostí ve FOL, dokazovací nástroje.
10.	Úvod do reprezentace nepřesné znalosti 
11.	Markovské modely nepřesného uvažování.
12.	Markovské rozhodovací procesy.
13.	Úvod do evolučních technik a genetických algoritmů
labs/seminars:
NA
literature:
Artificial Intelligence: A Modern Approach, Stuart Jonathan Russell, Peter Norvig, Prentice Hall, 2010

Samostatný projekt

code: B4BPROJ6
hours: 0+2
ECTS: 6
homepage: https://cw.fel.cvut.cz/wiki/courses/b4bproj6/start
CTU/FEE URLs: http://bilakniha.cvut.cz/cs/predmet4726206.html, http://www.fel.cvut.cz/cz/education/bk/predmety/47/26/p4726206.html
lecturer(s): Ing. Sloup Jaroslav
Dept: 13000
annotation: Samostatná práce na problému-projektu pod vedením školitele. V rámci tohoto předmětu je obvyklé řešit dílčí problém bakalářské práce. Proto doporučujeme zvolit si téma bakalářské práce nejpozději počátkem 5. semestru a jeho včasný výběr nepodcenit. Další podrobnější informace o předmětu (včetně podmínek pro udělení zápočtu) najdete na webové stránce https://cw.fel.cvut.cz/wiki/courses/b4bproj6/start
prerequisities: NA
lectures:
NA
labs/seminars:
NA
literature:
NA

Implementace uživatelských rozhraní

code: B4B39IUR
hours: 2P+2S
ECTS: 6
homepage: https://moodle.fel.cvut.cz/course/view.php?id=2978
CTU/FEE URLs: http://bilakniha.cvut.cz/cs/predmet4699206.html, http://www.fel.cvut.cz/cz/education/bk/predmety/46/99/p4699206.html
lecturer(s): Ing. Macík Miroslav Ph.D.; doc. Ing. Míkovec Zdeněk Ph.D.
Dept: 13139
annotation: Na základě specifikace uživatelského rozhraní (kterou získá od design týmu) bude schopen implementovat uživatelské rozhraní a kvalitně komunikovat s dalšími stakeholdery účastnícími se celého procesu návrhu, testování a implementace uživatelského rozhraní
prerequisities: Knowledge of higher programming languages (e.g., C++, Java, C#) and algorithmization. Basics of SW engineering.
lectures:
1. Uživatelská rozhraní jako nástroj komunikace mezi člověkem a počítačem
2. Práce se specifikací uživatelského rozhraní
3. Efektivní implementace uživatelského rozhraní; oddělení uživatelského rozhraní od aplikace - MVC
4. Techniky simulace modelu aplikace používané při implementaci uživatelských rozhraní
5. Principy spolupráce s grafickým designérem
6. Implementace grafických uživatelských rozhraní
7. Implementace negrafických uživatelských rozhraní (haptická, taktilní atd.)
8. Implementace nestandardních uživatelských rozhraní (joystick, headtracker .)
9. Testování uživatelských rozhraní - problematika automatického testování
10. Příprava uživatelského rozhraní pro testování s uživateli
11. Animace a video jako součást uživatelského rozhraní a metody jeho implementace v něm
12. Zvuk jako součást uživatelského rozhraní a metody jeho implementace v něm
13. Implementace přístupných (accessibility) uživatelských rozhraní
labs/seminars:
1. Motivace pro kvalitní implementaci uživatelských rozhraní (příklady).
2. Zadání semestrálních prací ve formě specifikace uživatelského rozhraní. Rozbor specifikace uživatelského rozhraní.
3. Praktické ukázky práce s MVC modelem při implementaci uživateslkého rozhraní
4. Praktické ukázky práce s implementačními nástroji typu MS Blend
5. Praktické ukázky simulace modelu aplikace (např. Wizard of Oz, statické modely DBS, simulované spojení klient-server)
6. Praktické ukázky zapojení grafického designéra do procesu implementace uživateského rozhraní (např. použití XAML, HTML 5+CCS3+JavaScript pro vizuální design UI)
7. Konzultace k semestrální práci
8. Konzultace k semestrální práci
9. Praktické ukázky automatického testování uživatelských rozhraní
10. Praktické ukázky testování uživatelských rozhraní s uživateli
11. Konzultace k semestrální práci
12. Konzultace k semestrální práci
13. Odevzdání a prezentace semestrální práce
14. ZÁPOČET
literature:
1. Microsoft Blend for Visual Studio. Nástroj pro efektivní implementaci uživatelského rozhraní (MVC), simulaci modelu aplikace a spolupráci s grafickým designérem.

Vytváření grafického obsahu

code: B4B39VGO
hours: 2P+2C
ECTS: 6
homepage: https://moodle.fel.cvut.cz/course/B4B39VGO
CTU/FEE URLs: http://bilakniha.cvut.cz/cs/predmet4698806.html, http://www.fel.cvut.cz/cz/education/bk/predmety/46/98/p4698806.html
lecturer(s): Ing. Čmolík Ladislav Ph.D.
Dept: 13139
annotation: Cílem předmětu je seznámit studentky a studenty s metodami vytváření 2D a 3D grafického obsahu a jejich použitím v praxi. Studenti a studentky se naučí navrhnout a vytvořit prostorovou scénu, vytvořit a přidat textury imitující geometrické detaily a materiály (např. povrch stěny, dřevo, oblohu) a rozmístit a nastavit osvětlení. Zároveň se naučí nezbytné pojmy a principy z oblasti počítačové grafiky. Předmět bude v zimním semestru 2019/2020 nahrazen variantou v angličtině BE4B39VGO. https://moodle.fel.cvut.cz/course/B4B39VG
prerequisities: None.
lectures:
1. Úvod do problematiky vytváření grafického obsahu, matematika pro počítačovou grafiku
2. Taxonomie reprezentací 2D a 3D těles
3. Hraniční reprezentace 2D a 3D těles 
4. Modelování 2D a 3D těles
5. Pokročilé modelování 3D těles
6. Rastrová grafika 
7. Rastrová grafika ve 3D modelování
8. Světlo a barvy 
9. Světlo a barvy ve 3D modelování 
10. Procedurální modelování
11. Řízení úrovní detailu
12. Vizuální efekty
13. Virtuální a rozšířená realita
14. Rezerva
labs/seminars:
1. Úvod do problematiky vytváření grafického obsahu, matematika pro počítačovou grafiku
2. Taxonomie reprezentací 2D a 3D těles
3. Hraniční reprezentace 2D a 3D těles 
4. Modelování 2D a 3D těles
5. Pokročilé modelování 3D těles
6. Rastrová grafika 
7. Rastrová grafika ve 3D modelování
8. Světlo a barvy 
9. Světlo a barvy ve 3D modelování 
10. Procedurální modelování
11. Řízení úrovní detailu
12. Vizuální efekty
13. Virtuální a rozšířená realita
14. Zápočty
literature:
[1] Jiří Žára, Bedřich Beneš, Jiří Sochor, Petr Felkel. Moderní počítačová grafika, 2. vydání. Computer Press, 2005.
[2] I. Kerlow, Mistrovství 3D animace, Computer Press, 2011. 

Bakalářská práce - Bachelor thesis

code: BBAP20
hours: 0+12
ECTS: 20
homepage: NA
CTU/FEE URLs: http://bilakniha.cvut.cz/cs/predmet4726306.html, http://www.fel.cvut.cz/cz/education/bk/predmety/47/26/p4726306.html
lecturer(s): NA
Dept: 13000
annotation: Samostatná závěrečná práce bakalářského studia komplexního charakteru. Téma práce si student vybere z nabídky témat souvisejících se studovaným oborem, která vypíše oborová katedra či katedry. Práce bude obhajována před komisí pro státní závěrečné zkoušky
prerequisities: NA
lectures:
NA
labs/seminars:
NA
literature:
NA


generated by TTT-TomasTeachingTools on 2020-05-24, 14:32:05