(23 intermediate revisions by the same user not shown)
Line 7: Line 7:
  
 
<small>
 
<small>
'''Štátnicový predmet 2-AIN-990 Obhajoba diplomovej práce'''
+
===Štátnicový predmet 2-AIN-990 Obhajoba diplomovej práce===
 +
Doneste si svoj '''vlastný notebook''' na ktorom budete prezentovať a ukazovať demo alebo animácie. Čas na prezentáciu je limitovaný na 13 minút potom Vám zaznie budík a ak ste neskončili prejdete na posledný slide prezentácie a poďakujete za pozornosť.
 +
 
 +
Odporúčania k prezentácii:
 +
Po názve práce a uvedení mien školiteľa/diplomanta sa zamerajte na to aby ste zhrnuli všetky Vaše výsledky, teda to čo ste dosiali. Ak máte animácie v skrátenej forme ich ukážte hneď na slide č.3. Toto je najdôležitejšia časť obhajoby ak si to dáte na koniec môžete ju nestihnúť odprezentovať.
 +
 
 +
Ďalej môže nasledovať spôsob AKO ste k výsledkom došli a nakoniec ukážete Váš výskum v skratke.
 +
 
 +
K otázkam oponenta/školiteľa z posudkov si pripravte slide na každú otázku, použijete ich po obhajobe po precitaní posudkov. Obhajobu si skúste doma povedať skoro naspamäť, robia to aj profesionáli.
 +
 
 +
 
 
# Hodnotenie A  
 
# Hodnotenie A  
 
# Hodnotenie B  
 
# Hodnotenie B  
Line 13: Line 23:
 
# Hodnotenie D  
 
# Hodnotenie D  
 
# Hodnotenie E môže získať samostatná práca spĺňajúca viac ako 2/3 zadaných cieľov v prihláške s pôvodnými správnymi výsledkami.
 
# Hodnotenie E môže získať samostatná práca spĺňajúca viac ako 2/3 zadaných cieľov v prihláške s pôvodnými správnymi výsledkami.
# Hodnotenie Fx ostatné práce nezaradisteľné do lepšieho hodnotenia; plagiatorstvo (s návrhom na vylúčenie zo štúdia); zjavne odfláknutá niektorá casť práce, implementácie alebo prezentácie; práca nespĺňajúca viac ako 2/3 zadaných cieľov v prihláške.
+
# Hodnotenie Fx ostatné práce nezaraditeľné do lepšieho hodnotenia; plagiatorstvo (s návrhom na vylúčenie zo štúdia); zjavne odfláknutá niektorá casť práce, implementácie alebo prezentácie; práca nespĺňajúca viac ako 2/3 zadaných cieľov v prihláške.
  
 
Práca nebude akceptovaná na obhajobu ak nebude spĺňať nasledujúce základné požiadavky:
 
Práca nebude akceptovaná na obhajobu ak nebude spĺňať nasledujúce základné požiadavky:
Line 23: Line 33:
 
f, jazyková úroveň práce nebude zodpovedať úrovni absolventa magisterského štúdia.
 
f, jazyková úroveň práce nebude zodpovedať úrovni absolventa magisterského štúdia.
  
'''Štátnicový predmet 2-AIN-950 Metódy aplikovanej informatiky'''
+
===Štátnicový predmet 2-AIN-950 Metódy aplikovanej informatiky===
 +
Doneste si svoj '''vlastný notebook''' na ktorom budete bežať MS Teams aby sa mohla Vaša odpoveď vysielať online účastníkom.
 +
 
 +
Študent si ťahá jednu otázku náhodne.
 +
 
 +
'''2-AIN-109/15 Programovanie paralelných a distribuovaných systémov''' Gruska D.
 +
 
 +
1. Základné rozdelenie architektúr paralelných počítačov (Asynchrónna „shared memory“ architektúra, distribuovaná architektúra, synchrónna architektúra, stručný popis, porovnanie medzi nimi)
 +
 
 +
2. Progress a safety podmienky (formulácia safety a progress podmienky neformálne a formálne, ukážky pre rôzne úlohy paralelného a distribuovaného programovania)
 +
 
 +
3. Úloha triedenia pre paralelné architektúry (príklady riešení, zložitosť a procesorová náročnosť pre rôzne typy architektúr,  dôkaz správnosti - safety a progress podmienka pre jedno riešenie)
 +
 
 +
4. Problém večerajúcich filozofov (formulácia problému, safety a progress podmienka, načrtnutie riešenia pre distribuovanú architektúru)
 +
 
 +
5. Komunikácia cez chybný kanál (formulácia problému, safety a progress podmienka, načrtnutie riešenia, optimalizácia - Alternating Bit Protocol)
 +
 
 +
'''2-AIN-206/15 Matematické modelovanie a počítačová animácia fyzikálnych procesov''' Ďurikovič R.
 +
 
 +
6. Časticové systémy, rovnice pohybu prvého rádu, integračné metódy na výpočet rýchlosti a pozície,  stavový vektor systému, vonkajšie sily, obmedzujúce podmienky – constraints, sily odozvy,  kolízie častica - rovina.
 +
 
 +
7. Animácie pohybu a orientácie, interpolačný spline na animáciu pohybu, reparametrizácia splinu podľa dĺžky krivky, quaternion a orientácia, interpolácie dvoch a viacerých quaternionov.
 +
 
 +
8. Detekcie kolízie, nutná a postačujúca podmienka kedy nie sú dve telesá v kolízii, deliaca rovina, broad phase (hierachycká mriežka), mid phase (hierarchie obálok, Voronoiove oblasti v kolízii, vysvetlujte na príklade kolízie gula x kapsula, dekompozícia telesa na konvexné časti), narrow phase (Minkowskeho priestor a blízkosť konvexných telies).
 +
 
 +
9. Numerické riešenie diferenciálnych rovníc, Eulerova metóda, MidPoint metóda, Runge-Kuta metóda, podmienka stability na voľbu časového kroku, sily odozvy (response forces).
 +
 
 +
10. Dynamika tuhých telies, definícia problému, rovnice pohybu (4 ODE), rýchlosť, zrýchlenie, uhľová rýchlosť a uhľové zrýchlenie, matica hybnosti (matica inercie).
 +
 
 +
===2AIN-BS1 - Blok S1: Počítačová grafika a videnie===
 +
Študent si ťahá dve otázky bloku zamerania náhodne z rôznych predmetov.
 +
 
 +
'''2-AIN-128/15 Grafika v reálnom čase a výpočty na GPU''' - A. Mihálik
 +
 
 +
1. Zobrazovací kanál. Grafická pipeline moderného hardvéru, framebuffer, buffer objekty, používané súradnicové priestory, druhy shader programov, druhy optimalizačných techník (view frustum, occlusion, backface culling), príklad shader programov.
 +
 
 +
2. Tiene, typy tieňov (mäkké, tvrdé, statické, dynamické), typy a popis algoritmov (projekčné, tieňové objemy, tieňové mapy (shadow mapping)), spôsoby implementácie jednotlivých algoritmov, artefakty a ich odstraňovanie, príklad shader programov pre tieňové mapy. Artefakty spôsobené diskretizáciou. Tiene vo Phongovom modeli.
 +
 
 +
'''2-AIN-127/15 Pokročilá počítačová grafika''' - R. Ďurikovič
 +
 
 +
3. Kanál metódy sledovania lúča a porovnanie s Radiosity metódou. (definícia lúča, definícia tieňového lúča, popis metódy sledovania lúča, generovanie lúča, pochod po lúči (ray traversal), prienik lúča s trojuholníkom, stromová štruktúra lúčov (ray tree) a jej použitie na výpočet lokálnej farby, problém presnosti priesečníkov). Metóda sledovania lúča na GPU, urýchľovacie techniky.
 +
 
 +
4. Fyzikálny osvetlovací model a výpočet farieb renderovacou rovnicou. (definícia radiancie, definícia BRDF a jej vlastnosti, fyzikálne BRDF Cook-Tarrance, definícia priestorového uhlu, napíšte renderovaciu rovnicu a vysvetlite jej členy)
 +
 
 +
5. Lokálne osvetľovacie modely. (tieňovanie, Phongov a Blinn-Phongov osvetlovací model, zložky (ambientna, difúzna, zrkadlová), textúrovanie a druhy textúr, mapovanie a filtrácia textúr, popísať princípy environment, bump, normal mapovania, textúrovací a tangenciálny priestor, príklad shader programov na GPU.
 +
 
 +
'''2-AIN-112/15 Pokročilé spracovanie obrazu''' - Z. Černeková
 +
 
 +
6. Snímanie obrazu s jednou kamerou (geometria jednoduchej perspektívnej kamery, projektívna rovnica, kalibrácia kamery, vonkajšie a vnútorné parametre, rekonštrukcia vzoru z jeho obrazu)
 +
 
 +
7. Techniky predspracovania obrazu (filtrovanie obrazu v priestorovej doméne: lineárne a nelineárne filtre, priemerovanie, gaussovská filtrácia, mediánová filtrácia, bilaterálna filtrácia; detekcia hrán na základe prvej a druhej derivácie: gradientné operátory, zero-crossing a Marr-Hildrethovej operátor, fixné a adaptívne okolie bodu; filtrovanie vo frekvenčnej doméne: Fourierova transformácia - definícia 1D, 2D, spojitý a diskrétny prípad, vlastnosti FT, použitie pri spracovaní obrazu, FFT).
 +
 
 +
8. Segmentácia a matematická morfológia (segmentácia šedotónového a farebného obrazu: prahovanie – globálne, lokálne a optimálne; k-means, mean shift, split and merge, segmentácia narastaním oblastí, segmentácia na princípe povodí; morfologické operácie binárneho a šedotónového obrazu: dilatácia, erózia, otvorenie, zatvorenie, top-hat, hit and miss, podmienená dilatácia, použitie pri spracovaní obrazu).
 +
 
 +
'''2-AIN-204/10, 2-MPG-125/15 Rozpoznávanie obrazcov a Počítačové videnie''' - M. Ftáčnik a Zuzana Berger Haladová - Jedna skupina
 +
 
 +
9. Príznaky (Výber a selekcia príznakov, globálne príznaky tvaru, farby, lokálne príznaky – SIFT, detektor a deskriptor, hľadanie škvŕn/Laplacian of Gaussians, príznaky textúry- štatistické momenty, Gaborove filtre)
 +
 
 +
10. Techniky počítačového videnia (Porovnávanie so vzorom/Template Matching), párovanie lokálnych príznakov, metóda vizuálnych slov/Bag of Visual Words, detekcia a rozpoznávanie tvárí, algoritmus Viola-Jones, analýza významných oblastí obrazu/Saliency)
 +
 
 +
11. Rozpoznávanie lineárne separabilných a neseparabilných tried (Lineárne diskriminačné metódy, SVM, kernelový trik, Bayesovo pravidlo, rozhodovacie stromy, k-means ako metóda neriadeného učenia, učenie pri jednotlivých metódach, trénovacia a testovacia množina)
 +
 
 +
12. Neurónové siete (Konvolučné neurónové siete, spätná propagácia/Backpropagation, stochastická gradientná optimalizácia/Stochastic Gradient Descent, cenová funkcia, analýza natrénovaných filtrov/vrstiev siete, hyperparametre)
 +
 
 +
 
 +
===2AIN-BS2 - Blok S2: Umelá inteligencia===
 +
Študent si ťahá dve otázky bloku zamerania náhodne z rôznych predmetov.
 +
 
 +
'''2-AIN-137/15 Umelá inteligencia''' - M. Markošová
 +
 
 +
1. Pojem agent, jednoduchý agent, agent a jednoduché plánovanie pohybu v stavovom priestore  (informované a neinformované prehľadávanie), hry (minimax).
 +
 +
2. Logické agenty, reprezentácia znalostí logickým formalizmom, metódy inferencie pre prvorádovú logiku: forward a backward chaining, rezolvenčný algoritmus (konjuktívny normálny tvar, substitúcia, unifikácia, rezolvenčné pravidlo, a rezolvencia) .
 +
 +
3. Bayesovské siete a bayesovské vyvodzovanie, klasické časové rady, časové rady s neurčitosťou a bayesovské siete, využitie bayesovských sietí v UI. Metódy analýzy trendu a periodicity v časových radoch (MA, double MA...)
 +
 +
4. Teória rozhodovania - jednoduché rozhodovanie (funkcia utility jedno a multi-atribútová, striktná, stochastická dominancia, stav, lotéria,),  zložité rozhodovanie (Markov decision problém, Belmanova rovnica). Rozhodovacie stromy.
 +
 
 +
'''2-AIN-132/15, 2-INF-150/15 Neurónové siete a Strojové učenie''' - I. Farkaš, P. Petrovič, T. Vinař  - Jedna skupina
 +
 
 +
5. Strojové učenie s učiteľom. Viacvrstvové perceptróny (MLP): učenie pomocou spätného šírenia chyby, zovšeobecnenie, validácia modelu, využitie v úlohách. Rekurentné neurónové siete (RNN): spôsoby zahrnutia časového kontextu, architektúry a typy úloh vhodných pre RNN, a spôsoby trénovania, príklad využitia.
 +
 
 +
6. Strojové učenie bez učiteľa. Zhlukovanie.  Model samoorganizujúcej sa mapy (SOM), princíp algoritmu učenia: vektorová kvantizácia, topografické zobrazenie príznakov, redukcia dimenzie dát, príklad využitia.
 +
 
 +
7. Matematická teória strojového učenia. Výchylka a rozptyl. Preučenie a podučenie. PAC učenie a ohraničenia pre konečné a nekonečné množiny hypotéz. VC dimenzia.
 +
 
 +
'''2-AIN-246/15 Multiagentové systémy''' – A. Lúčny
 +
 
 +
8. Popíšte spôsob implementácie multiagentového systému ako middleware. Použite priamu komunikáciu a popíšte procesy v multiagentovom systéme, kde jeden agent pravidelne posiela druhému teplotu vody v bazéne a druhý ju zobrazuje na informačnú tabuľu.
 +
 
 +
9. Vysvetlite princíp subsumpcie na multiagentovom systéme s nepriamou komunikáciou, kde jeden agent posiela príkaz na dopredný pohyb do motora ľavého kolesa, druhý posiela príkaz na dopredný pohyb do motora pravého kolesa a kde pridáte tretieho agenta, ktorý dostáva detekciu nárazu a pomocou supresie zariadi otočenie robota.
 +
 
 +
'''2-AIN-144/15 Reprezentácia znalostí a inferencia''' - M. Homola
 +
 
 +
10. Ontológie a deskripčné logiky: Čo je to ontológia? Definujte základnú syntax a rozhodovacie problémy pre deskripčnú logiku ALC. Tablový algoritmus pre deskripčnú logiku ALC.
 +
 
 +
11. Nemonotónne usudzovanie a ASP. Vysvetlite a zadefinujte nemonotónne usudzovanie. Definujte normálny logický program (NLP), interpretáciu, a stabilný model. Nájdite všetky stabilné modely programu P = {b :- not a. a :- not b. c :- a,b.}
 +
 
 +
'''2-AIN-272/15 Spracovanie digitálneho signálu''' - M. Nagy
 +
 
 +
12. Fourierova transformácia (FT), spôsob výpočtu diskrétnej FT (DFT), rýchla DFT (FFT), vlastnosti DFT. Power spectral density (PSD), periodogram, korelogram, parametrické metódy (moving average - MA, auto regressive - AR, multiple signal classification - MUSIC)
 +
 
 +
===2AIN-BS3 - Blok S3: Programovanie a tvorba informačných systémov===
 +
Študent si ťahá dve otázky bloku zamerania náhodne z rôznych predmetov.
 +
 
 +
'''2-AIN-118/14, 2-AIN-111/15 Programovanie v operačných systémoch a Webové technológie a metodológie''' – J. Šiška, M. Homola - Jedna skupina
 +
 
 +
1. Procesy a vlákna: spúštanie, synchronizácia a komunikácia. Popíšte proces zavedenia nového procesu/spustenia vlákna, rozdiel medzi dynamickým a statickým linkovaním. Popíšte mechanizmy na synchronizáciu a komunikáciu (prenos dát) medzi procesmi/vláknami dostupné v súčasných operačných systémoch, porovnajte ich výhody a nevýhody, prípadne vhodnosť na riešenie konkrétnych problémov/situácií.
 +
 
 +
2. Služby operačného systému: práca so súborovým systémom, sieťou a HW, správa pamäte. Popíšte základné služby operačných systémov a prístup k nim (systémové volania, správa pamäte), rozdiel medzi privilegovaným a neprivilegovaným kódom (userspace, kernelspace), ovládače.
 +
 
 +
3. Vysvetlite pojem použiteľnosť (usability). Uveďte 5-bodovú definíciu použiteľnosti podľa Jacoba Nielsena. Vysvetlite metodiku user-centered design, a rolu prototypov, tzv. persón a testovania v tejto metodike.
 +
 
 +
'''2-AIN-2139/14 Kompilátory a interpretre''' -  Ľ. Salanci
 +
 
 +
4. Princípy fungovania kompilátora a interpretra:
 +
- objasnite princípy fungovania lexikálnej analýzy, syntaktickej analýzy, generovania kódu
 +
- na ukážke vysvetlite rozdiel medzi interpretáciou a kompiláciou
 +
- porovnajte jazyky Java, Python, C++ z pohľadu kompilátorov a interpretrov
 +
 
 +
5. Spracovanie programových konštrukcií:
 +
- objasnite algoritmy pre spracovania programových konštrukcií kompilátorom a interpretrom
 +
- na ukážte ilustrujte reprezentáciu krátkeho programu pomocou syntaktického stromu
 +
- porovnajte náročnosť spracovania programových konštrukcií v jazykoch Java, Python, C++
 +
 
 +
6. Spracovanie výrazov s operátormi rôznej priority:
 +
- vysvetlite algoritmus pre vyhodnotenie výrazov podľa priority operátorov
 +
- na ukážte ilustrujte generovanie syntaktického stromu pre jednoduchý výraz
 +
- porovnajte problémy spracovania výrazov v jazykoch Java, Python, C++
 +
 
 +
7. Virtuálne mašiny:
 +
- vysvetlite princíp fungovania virtuálnej mašiny
 +
- na ukážke ilustrujte generovanie kódu pre vašu virtuálnu mašinu
 +
- porovnajte jazyky Java, Python, C++ z pohľadu rýchlosti bežiaceho kódu
 +
 
 +
8. Premenné, parametre, volanie podprogramov:
 +
- objasnite algoritmy a údajové štruktúry pre kompilovanie podprogramov s premennými
 +
- na ukážke ilustrujte alokáciu pamäte pre lokálne, globálne premenné a parametre
 +
- porovnajte možnosti jazykov Java, Python, C++ z pohľadu menných priestorov
 +
 
 +
'''2-AIN-116/14 Funkcionálne programovanie''' - P. Borovanský
 +
 
 +
9. Lambda kalkul - popíšte syntax, sémantiku (interpretáciu), typovanie a vlastnosti tejto teórie. Typovaný lambda kalkul - vlastnosti teórie, vysvetlite algoritmy pre type-checking a type-inference.
 +
 
 +
10. Churchove čísla - vysvetlite význam, konštrukciu a základné aritmetické operácie s nimi. Monadické programovanie - uveďte princípy a príklad použitia list, maybe a state monád.
 +
 
 +
'''2-AIN-133/15 Extrémne programovanie''' - F. Gyarfaš
 +
 
 +
11. Agilný verzus vodopádový vývoj softvérových projektov. Agilný vývojový cyklus. Princípy unit testingu, testami riadeného programovania, refaktorizácie. Dôvody refaktorizácie a jej riziká.
 +
 
 +
12. Zdedený kód: definícia, podmienky pre prácu s ním, obaľovanie testami, využívanie techník ako seam, sprout, wrap, príklad na niektorú z techník.
 +
 
 +
'''2-AIN-131/14 Pokročilé programovanie v JAVE (JavaEE)''' - P. Petrovič
 +
 
 +
13. Vysvetlite aký je rozdiel medzi webovým a aplikačným serverom, čo je servlet a ako funguje, čo sú session-scoped beans a application-scoped beans a uveďte a vysvetlite príklad aplikácie, kde by ste ich účelne využili. Na príklade vysvetlite nejakú technológiu, ktorá umožňuje prepojenie týchto objektov s výstupom renderovaným na webovej stránke.
 +
 
 +
14. Vysvetlite rozdiel medzi prístupom k dátam pomocou JDBC a pomocou ORM. Ako sa ORM realizuje v Java EE? Uveďte príklady anotácií, ktoré sa pri ORM v Java EE používajú - ktoré z nich umožňujú automatické aktualizovanie viacerých tabuliek v relácii? Pokúste sa vysvetliť rozdiel medzi SQL a JPQL.
 +
 
 +
'''2-INF-145/15 Tvorba internetových aplikácií''' - R. Ostertág
 +
 
 +
15. Popíšte návrhový vzor MVC. Popíšte nejaký MVC framework podľa vášho výberu a vysvetlite ako je v danom frameworku vzor MVC implementovaný.
 +
 
 +
16. Popíšte výhody oddelenia obsahu od prezentácie. Aké možnosti oddelenia ponúka štandardne CSS, a aké ponúka napr. nejaký template engine (Smarty, alebo iný)? Popíšte tiež oddelenie obsahu od funkcionality, ktoré umožňuje knižnica JQuery.
 +
 
 +
17. Porovnajte objektovo orientované jazyky založené na triedach (napr. Java) a prototypoch (napr. Javascript).
 +
 
 +
===2AIN-BS4 - Blok S4: Tvorba softvéru pre vzdelávanie=== 
 +
Študent si ťahá dve otázky bloku zamerania náhodne z rôznych predmetov.
 +
 
 +
'''2-AIN-117/15 Interaktívne programovanie''' -  I. Kalaš
 +
 
 +
1. Rekurzívne dáta a výpočty
 +
- charakterizujte rekurzívne dátové štruktúry a rekurzívne funkcie na prácu s číslami a rekurzívnymi dátovými štruktúrami, ilustrujte na logovských zoznamoch a výpočtoch s nimi
 +
- vysvetlite, aké uplatnenie má rekurzívne programovanie pri tvorbe interaktívnych aplikácií (v kontexte vzdelávania)
 +
 
 +
2. Paralelné procesy
 +
- vysvetlite pojem paralelné procesy a spôsoby práce s paralelnými procesmi logovského typu  (prípadne iného)
 +
- vysvetlite, ako používame paralelné procesy pri tvorbe interaktívnych aplikácií (v kontexte vzdelávania)
 +
 
 +
3. Násobné objekty (colonies of sprites, turtles... ) v interaktívnych aplikáciách (najmä v kontexte vzdelávania)
 +
- vysvetlite, prečo a ako pracujeme s násobnými objektmi v interaktívnych aplikáciách
 +
- popíšte spôsoby riadenia a komunikácie medzi objektmi, ilustrujte na príkladoch
 +
 
 +
4. Tvar korytnačky
 +
- charakterizujte rôzne spôsoby priradenia tvaru korytnačke, vysvetlite princíp animovaných grafických tvarov
 +
- vysvetlite princíp popisu tvaru pomocou programu, jeho výhody a využitie
 +
 
 +
5. Tvorba interaktívnych aplikácií
 +
- charakterizujte a na príkladoch ilustrujte, čo je interaktívna aplikácia (najmä v kontexte vzdelávania)
 +
- vysvetlite a ilustrujte, aké programovacie postupy a prvky používame pri tvorbe takýchto aplikácií, aby sme podporili interakciu aplikácie s jej používateľom
 +
 
 +
'''2-AIN-115/15 a 2-AIN-136/15   Softvér pre vzdelávanie a  Tvorba edukačného softvéru''' -  M. Tomcsányiová
 +
 
 +
6. Edukacný softvér a vzdelávanie
 +
- charakterizujte, ako môže používanie edukacného softvéru a digitálnych technológií zmenit vyucovanie a ucenie sa
 +
- vysvetlite rôzne obavy spojené s používaním digitálnych technológií a edukacného softvéru vo vyucovaní, navrhnite opatrenia na ich prevenciu, resp.minimalizáciu
 +
 
 +
7. Princípy tvorby edukacného softvéru
 +
- charakterizujte a ilustrujte vhodné grafické používatelské rozhrania (GUI) pre žiakov rôznych vekových kategórií
 +
- porovnajte GUI edukacných aplikácií pre desktopové a mobilné zariadenia
 +
 
 +
8. Výskum a výskumník pri vývoji edukacného softvéru
 +
- charakterizujte edukacný výskum a jeho stratégie výskum vývojom a akcný výskum
 +
- vysvetlite dôvody a formy spolupráce programátora s ucitelom a žiakmi pri vývoji edukacného softvéru
 +
 
 +
9. Klasifikácia a hodnotenie edukacného softvéru
 +
- charakterizujte rôzne spôsoby klasifikácie edukacného softvéru (podla vyucovacieho predmetu, podla vzdelávacej paradigmy, podla funkcie) a ilustrujte niektoré kategórie na príkladoch
 +
- vysvetlite rôzne spôsoby hodnotenia edukacného softvéru (z edukacného pohladu, z pohladu používatela, z hladiska technických požiadaviek)
 +
 
 +
10. Digitálne technológie pre osoby so špeciálnymi vzdelávacími potrebami
 +
- prezentujte klasifikáciu osôb so špeciálnymi vzdelávacími potrebami
 +
- charakterizujte potenciál digitálnych technológií a rôznych druhov asistenčných technológií pre osoby so špeciálnymi vzdelávacími potrebami
 +
 
 +
'''2-AIN-2139/14 Kompilátory a interpretre''' -  Ľ. Salanci
 +
 
 +
11. Princípy fungovania kompilátora a interpretra:
 +
- objasnite princípy fungovania lexikálnej analýzy, syntaktickej analýzy, generovania kódu
 +
- na ukážke vysvetlite rozdiel medzi interpretáciou a kompiláciou
 +
- porovnajte jazyky Java, Python, C++ z pohľadu kompilátorov a interpretrov
 +
 
 +
12. Spracovanie programových konštrukcií:
 +
- objasnite algoritmy pre spracovania programových konštrukcií kompilátorom a interpretrom
 +
- na ukážte ilustrujte reprezentáciu krátkeho programu pomocou syntaktického stromu
 +
- porovnajte náročnosť spracovania programových konštrukcií v jazykoch Java, Python, C++
 +
 
 +
13. Spracovanie výrazov s operátormi rôznej priority:
 +
- vysvetlite algoritmus pre vyhodnotenie výrazov podľa priority operátorov
 +
- na ukážte ilustrujte generovanie syntaktického stromu pre jednoduchý výraz
 +
- porovnajte problémy spracovania výrazov v jazykoch Java, Python, C++
 +
 
 +
14. Virtuálne mašiny:
 +
- vysvetlite princíp fungovania virtuálnej mašiny
 +
- na ukážke ilustrujte generovanie kódu pre vašu virtuálnu mašinu
 +
- porovnajte jazyky Java, Python, C++ z pohľadu rýchlosti bežiaceho kódu
 +
 
 +
15. Premenné, parametre, volanie podprogramov:
 +
- objasnite algoritmy a údajové štruktúry pre kompilovanie podprogramov s premennými
 +
- na ukážke ilustrujte alokáciu pamäte pre lokálne, globálne premenné a parametre
 +
- porovnajte možnosti jazykov Java, Python, C++ z pohľadu menných priestorov
 +
 
 +
'''2-AIN-225/15 Tvorba multimédiálnych aplikácií a počítačových hier''' -  Ľ. Salanci
 +
 
 +
16. Reprezentácia a zobrazovanie herného sveta:
 +
- objasnite, kde a akým spôsobom sa používajú objekty, polia, stromy a grafy v hrách
 +
- na ukážke ilustrujte algoritmy, ktoré sa používajú pri zobrazovaní objektov herného sveta
 +
- porovnajte niekoľko profesionálnych hier z hľadiska použitých reprezentácií
 +
 
 +
17. Pohyb objektov:
 +
- vysvetlite princípy testovania kolízií a využitia zjednodušených fyzikálnych modelov v hrách
 +
- na ukážke ilustrujte algoritmy pre pohyb, testovanie a riešenie kolízií objektov
 +
- uveďte možnosti ale aj nevýhody fyzikálnych simulácií v hrách
 +
 
 +
18. Cesty a dostupnosť cieľov:
 +
- vysvetlite princíp fungovania algoritmov pre hľadanie cesty: dijkstrov, A*
 +
- na ukážke ilustrujte niektorý z uvedených algoritmov
 +
- uveďte, v akých situáciách v hrách sa tieto algoritmy oplatí používať
  
Študent si ťahá dve otázky náhodne.
+
19. Správanie herných objektov:
 +
- vysvetlite implementáciu správania objektov: pomocou automatov, grafmi
 +
- na konkrétnej ukážke porovnajte výhody a nevýhody jednotlivých prístupov
 +
- porovnajte niekoľko profesionálnych hier z hľadiska algoritmov správania sa objektov
  
# Reprezentácie objektov v počítačovej grafike, algoritmy pre určovanie viditeľného povrchu, hľadanie prienikov a orezávanie, rasterizácia a antialiasing, zobrazovací kanál, súradnicové sústavy v zobrazovacom kanáli.
+
20. Stratégia protihráčov:
# Agent, PEAS popis agenta, typy jednoduchých agentov, racionálny agent; informovane a neinformované prehľadávanie, heuristiky, hľadanie heuristík; logickí agenti, databáza znalosti, inferenčné algoritmy pre výrokovú databázu znalosti; predikátová databáza znalosti, modus ponens, resolvencia, forward a backward chaining; minimax, alfa beta orezávanie, pre dvoch aj viacerých hráčov.
+
- vysvetlite princíp fungovania algoritmu MinMax + heuristického odhadu
# Problémy a algoritmy; základné výpočtové modely a miery zložitosti; zložitostné triedy, ich základné charakteristiky a hierarchie; redukcia a úplnosť v zložitostných triedach; NP-úplné problémy; metódy, používané na riešenie (výpočtovo) ťažkých problémov.
+
- ilustrujte na konkrétnej hre kroky výpočtu nasledujúceho ťahu
# Základné rozdelenie architektúr paralelných počítačov; progress a safety podmienky; úloha triedenia pre paralelné architektúry; problém večerajúcich filozofov; komunikácia cez chybný kanál.
+
- porovnajte rôzne typy hier z hľadiska výpočtovej náročnosti
# Časticové systémy, rovnice pohybu prvého rádu, integračné metódy,  stavový vektor systému, vonkajšie sily, obmedzujúce podmienky; animácie pohybu a orientácie, quaternion a orientácia; detekcie kolízie, nutná a postačujúca podmienka, sily odozvy (response forces); numerické riešenie diferenciálnych rovníc - Eulerova metóda, Runge-Kuta metóda; dynamika tuhých telies, rovnice pohybu.
+
  
'''Štátnicový predmet 2-AIN-951 Počítačová grafika a videnie'''
+
'''2-AIN-224/15 Webové programovanie''' -  R. Hrušecký
  
Študent si ťahá štyri otázky z rôznych predmetov, na základe deklarovaných absolvovaných predmetov, náhodne.
+
21. Manipulácia s objektmi webovej stránky
 +
- popíšte rôzne spôsoby zmeny objektu, resp. vlastností objektu (pomocou čistého JavaScriptu, resp. iných knižníc, napr. JQuery)
 +
- popíšte rozdiely v zmenách vlastností pomocou CSS a JavaScriptu na konkrétnych príkladoch, ich výhody/nevýhody, kedy je ktorý vhodnejšie použiť
  
# Vybrané kapitoly z geometrie pre grafikov.  
+
22. Tvorba dynamických aplikácií na strane klienta
#* Kuželosečky, ich klasifikácia. Závislosť klasifikácie od typu roviny (afinná, projektivna).
+
- popíšte výhody a nevýhody vykresľovania pomocou HTML objektov, resp. objektu Canvas
#* Vyšetrovanie tvaru rovinnej krivky. Priesečníky priamky s krivkou, dotyčnica, singulárne body, inflexné body.
+
- uveďte príklady, kedy je vhodnejšie využiť HTML objekty, a kedy Canvas
#* Kubické krivky. Weierstrassov normálny tvar. Eliptické krivky a ich využitie.
+
# Počítačové videnie (1).
+
#* Pokročilé techniky predspracovania obrazu (zero-crossing a Marr-Hildrethovej operator, adaptívne okolie bodu, segmentácia na princípe povodí)
+
#* Matematická morfológia (dilatácia, erózia, otvorenie, zatvorenie, top-hat, hit and miss, podmienená dilatácia), morfológické operácie šedotónového obrazu, použitie pri spracovaní obrazu.
+
#* Porozumenie 3D obrazu (riadiace stratégie porozumenia obrazu: zdola nahor, zhora nadol a kombinované, rekonštrukčné videnie, videnie založené na 3D modeloch, paradigmy 3D videnia: Marrov model, aktívne, účelové videnie)
+
#* Počítačové videnie s jednou kamerou (geometria jednoduchej perspektívnej kamery, projektívna rovnica, kalibrácia kamery, vonkajšie a vnútorné parametre, rekonštrukcia vzoru z jeho obrazu)
+
#* Stereovidenie (kanonické stereo a určovanie hĺbky scény, geometria dvoch kamier, epipolárne ohraničenie, fundamentálna matica a jej určovanie, riešenie problému stereo korešpondencie).
+
# Počítačová grafika (2)
+
#* Kanál metódy sledovania lúča. (definícia lúča, popis metódy sledovania lúča, generovanie lúča, pochod po lúči (ray traversal), prienik lúča s trojuholníkom, stromová štruktúra lúčov (ray tree) a jej použitie na výpočet lokálnej farby, problém presnosti priesečníkov)
+
#* Výpočet farieb renderovacou rovnicou. (definícia radiancie, definícia BRDF a jej vlastnosti, fyzikálne BRDF Cook-Tarrance, definícia priestorového uhlu, napíšte renderovaciu rovnicu a vysvetlite jej členy, Phongov model BRDF).
+
#* Problém viditeľnosti a tieňa. (Z-buffer, definícia tieňového lúča, tiene vo Phongovom modeli, projekčné tiene, tieňové telesá, definícia hrany siluety, stencil bufer, mäkké tieňové telesá, metóda kompozícia tieňov pomocou Z bufra (shadow mapping)).
+
#* Globálny osvetľovací model. (definujete problém, metódy riešenia problému Neumanovou postupnosťou,  Radiosity metóda s rovnicou a popisom, definujte form-factor, riešenie globálneho problému metódou sledovania lúča, metóda sledovania fotónov).
+
#* Metódy zobrazenia scény množinou obrázkov. (Problém textúrovania, bump-mapping, definícia plenoptickej funkcie a jej tvorba, popis IBR (Image Based Rendering) metód ako sú Svetelné polia (Light Field), geometrické IBR metódy, aliasing a výpočet hustoty obrázkov, metóda svetelných polí na ploche objektu (Surface Light Fields)).
+
# Grafika v reálnom čase.
+
#* Grafická pipeline moderného hardvéru, framebuffer, buffer objekty, používané súradnicové priestory, druhy shader programov, renderovanie do textúry, druhy optimalizačných techník (frustum, occlusion, backface culling), príklad shader programov. Tieňovanie a textúrovanie, základné princípy a rozdiely medzi jednotlivými mapovaniami (environment, cube, sphere, bump, normal, paralax, relief), tangenciálny priestor (na co slúži, výpočet).
+
#** Základné členenie zobrazovacieho kanálu, per-vertex operácie a transformácie, rasterizácia, per-fragment operácie, framebuffer je množina bufferov do ktorých sa zapisuje výsledok pri vykresľovaní, z akých bufferov sa skladá(color, depth, stencil).
+
#** Popísať spôsoby zadávania geometrie a rôznych atribútov vrcholov, rozdiel medzi vertex arrays a vertex buffer objects.
+
#** Súradnicové systémy a transformácie medzi nimi, lokálny, svetový, kamerový, orezávací, normalizovaný priestor
+
#** Popísať vertex, geometry, tesselation, fragment, compute shader, ich význam v rámci pipeline, jeden jednoduchý príklad vertex+fragment programov, môže byť v pseudokóde
+
#** Vykresľovanie do textúry miesto na obrazovku, použitie frame buffer objektov(FBO), na čo sa to používa, vykresľovanie do viacerých textúr naraz.
+
#** Popísať frustum, occlusion, backface culling, ako vedia ovplyvniť vykresľovanie.
+
#* Lokálne osvetľovacie modely, textúrovanie a druhy textúr, mapovanie a filtrácia textúr, popísať princípy environment, bump, normal mapovania, textúrovací a tangenciálny priestor, príklad shader programov.
+
#** Phongov a Blinn-Phongov osvetlovací model, zložky(ambientna, difúzna, zrkadlová) a parametre v osvetľovacej rovnici (materiály, svetlá, vektory N, V, L, R, H). Príklady ďalších osvetľovacích modelov (Oren-Nayar, Cook-Torrance)
+
#** Druhy textúr a ich súvislosť s osvetľovacou rovnicou (difúzna, gloss, normálová, bump textúra). Textúrovací priestor a jeho použitie pre mapovanie textúr. Wrap módy pri textúrovaní. Nearest a bilineárna filtrácia textúr.
+
#** Popísať tangenciálny priestor ako rozšírenie textúrovacieho priestoru, dôvod jeho použitia. Transformácia z tangeniálneho do objektového priestoru, výpočet tejto transformácie. Použitie pre normal mapping.
+
#** Príklad Phongovho osvetľovacieho modelu s použitím vertex a fragment programov.
+
#* Globálne osvetľovacie modely na GPU, aproximácia odrazov a priehľadnosti, metóda sledovania lúča na GPU, urýchľovacie techniky.
+
#** Rozdiel medzi lokálnym a globálnym osvetľovacím modelom. Jednoduché aproximácie globálneho osvetľovanie (použitie množstva priamich svetiel, light proxies, light probes).
+
#** Alfa blending pre jednoduchú priehľadnosť. Renderovanie do textúr a určenie reflection a refraction máp. Fresnelov efekt a jeho výpočet. Renderovanie vodnej hladiny.
+
#** Reprezentácia scény pri GPU raytracingu. Paralerné spracovanie lúčov. Prechod pravidelnou mriežkou, rôzne druhy stavov a shader programov (generovanie lúča, prechod mriežkou, zistenie obsadenosti mrežovej bunky, výpočet prieniku lúča a trojuholníka, opustenie priestoru). Jednoduchší spôsob s pomocou CUDA, OpenCL.
+
#* Tiene, typy tieňov (mäkké, tvrdé, statické, dynamické), typy a popis algoritmov (projekčné, tieňové objemy, tieňové mapy), spôsoby implementácie jednotlivých algoritmov, artefakty a ich odstraňovanie, príklad shader programov pre tieňové mapy.
+
#** Základný princíp tieňa, polotieň. Predspracovanie pre statické tiene a svetlá.
+
#** Projekčné tiene, výhody a nevýhody, použitie stencil buffera na orezanie.
+
#** Tieňové objemy a základný princíp algoritmu, definovanie a hladanie siluety, vytvorenie tieňových telies, použitie stencil buffera, depth pass a depth fail princíp.
+
#** Tieňové mapy, základný princíp, dvojprechodové renderovanie do textúry, použitie súradnicových priestorov pri oboch prechodoch,
+
#** Artefakty spôsobené diskretizáciou, nepresnosťou depth buffera, príliš strmej projekcie. Odstraňovanie artefaktou pomocou rozdelenia scény, filtrácie depth textúry (PCF).
+
#** Príklad vertex a fragment programov pre oba prechody v algoritme tieňových máp.
+
#* Finálne spracovanie vykresleného obrazu, hĺbka ostrosti, rozmazanie pri pohybe, HDR a zvýraznenie svetiel, SSAO, filtrovanie obrazu, forward a deffered prístup, príklad shader programov  pre jeden z efektov.
+
#** Porovnanie forward a defferred prístupu pri vykresľovaní scény. Spracovanie výsledku v obrazovom priestore.
+
#** Popísať spomínané efekty a spôsoby ich implementácie. Používanie color, depth, normal bufferov. Pri SSAO spomenúť aj viacero prístupov.
+
#** Float textúry pri HDR, príklad jednoduchého tone mapping shadera, zvýrazňovací efekt.
+
#** Gaussovská filtrácia textúr, jedno a dvoj prechodová, na čo všetko sa používa.
+
# Kompresia dát.
+
#* Bezstratové kódy – posuvné, predikčné, kódovanie obrysov (kontúr, hraníc)
+
#* Rekonštrukcia obrazov – operácie opisujúce vznik poškodenia, metódy odstraňovania šumov.
+
#* Fourierova transformácia - použitie
+
# Počítačové videnie (2).
+
#* Hľadanie príznakov v obrazoch (príznaky tvaru, farby, textury, MPEG-7 príznaky)
+
#* Aplikácie (vyber obrazov z DB, detekcia a sledovanie tvare, pokožky).
+
#* Mapovanie farebného rozsahu, vysoké dynamické rozlíšenie (tvorba HDR z viacerých LDR obrazov, zobrazovanie HDR na LDR zariadení).
+
#* Kvalita obrazu (metriky, využitie).
+
#* Sledovanie pohľadu, významné oblasti v obraze.
+
# Rozpoznávanie obrazcov.
+
#* Rozpoznávanie (lineárne) separabilných a neseparabilných tried (separabilné a neseparabilné triedy, lineárna separabilita a vhodné rozpoznávacie metódy štatistického rozpoznávania, učenie pri jednotlivých metódach a ich praktické použitie).
+
#* Štatistické rozpoznávanie separabilných tried (diskriminačné funkcie, pravidlo najbližšieho suseda a jeho vzťah k diskriminačným funkciám, určenie oddeľujúcej nadplochy, učenie pri oboch metódach).
+
#* Štatistické rozpoznávanie neseparabilných tried (kritérium minimálnej chyby, Bayesovo pravidlo ako minimalizácia strednej chyby, vzťah k diskriminačným funkciám, učenie pri metóde minimálnej chyby).
+
#* Syntaktické rozpoznávanie (štrukturálny popis: primitíva a relácie medzi nimi, inferencia gramatiky ako učenie, rozpoznávanie na základe syntaktickej analýzy, praktické použitie, vhodnosť použitia štrukturálnych metód).
+
#* Klasifikátory (NN, SOM, ucenie, vyhodnocovanie kvality klasifikacie).
+
# Grafické systémy a normy.
+
#* Referenčný model počítačovej grafiky, súradnicové systémy a ich transformácie, rozšírenie modelu pre augmented reality.
+
#* Pracovná stanica a jej funkčnosť.
+
#* Kódovanie grafickej informácie, hierarchia obrazu a graf scény.
+
#* Fyzické a logické vstupné zariadenia, ISO model vstupu, vstupné režimy, programovanie interakcie.
+
#* Oknové systémy, ich štruktúra a funkčnosť.
+
  
'''Štátnicový predmet 2-AIN-950 Umelá inteligencia'''
+
23. Spôsoby komunikácie medzi klientom a serverom
 +
- popíšte rozdiely, výhody a nevýhody klasickej komunikácie klient-server a komunikácie na základe objektu XHR (XMLHttpRequest)
 +
- uveďte konkrétne príklady využitia takejto komunikácie
  
Študent si ťahá štyri otázky z rôznych predmetov, na základe deklarovaných absolvovaných predmetov, náhodne.
+
24. Ukladanie údajov na strane klienta
 +
- charakterizujte rôzne prístupy, rozdiely, výhody a nevýhody ukladania údajov na strane klienta
 +
- popíšte – v tomto kontexte – rozdiely medzi prehliadačmi, resp. medzi desktopovými a mobilnými zariadeniami
 +
- vysvetlite rozdiely rôznych prístupov z pohľadu bezpečnosti
  
# Bayesovské siete a bayesovské vyvodzovanie; klasická teória časových radov, trend, periodicita, náhodnosť; Box-Jenkinsove modely.
+
25. Realtime komunikácia medzi prehliadačom a serverom
# Časové rady s náhodnosťou: filtračná, predikčná a vyhladzovacia úloha, markovovské modely, Kálmanov filter. Základné modely dynamických sietí.
+
- vysvetlite vzťah WebSocket, socket.io, a node.js
# Metódy strojového učenia. Strojové učenie s učiteľom, bez učiteľa, posilňovaním. (Generalizovaná) lineárna regresia. Klasifikácia pomocou SVM. Rozhodovacie stromy. Markovovské rozhodovacie procesy. Bagging a boosting.
+
- ilustrujte tieto vzťahy na konkrétnych príkladoch
# Matematická teória strojového učenia. Matematický model strojového učenia. Výchylka a rozptyl. Preučenie a podučenie. PAC učenie a ohraničenia pre konečne a nekonečné množiny hypotéz. VC dimenzia.
+
# Dopredné neurónové siete: jednoduchý perceptrón (binárny, spojitý); viacvrstvové perceptróny, mechanizmy učenia. Lineárne neurónové siete – princíp modelu General Inverse. Modely so samoorganizáciou: implementácia algoritmu PCA, samoorganizujúca sa mapa (SOM), hlavné koncepty, algoritmy učenia, využitie.
+
# Rekurentné neurónové siete: architektúry, princíp algoritmov učenia BPTT a RTRL, typy úloh vhodných pre tieto typy sietí. Rekurentné autoasociatívne pamäti: Hopfieldov model, deterministická a stochastická verzia, typy atraktorov, typy dynamiky.
+
# Priama a spätná inferencia v expertných systémoch, simulácia inferencie v CLIPS-e, metóda divide&impere v produkčných systémoch, produkčný systém v CLIPS-e na prehľadávanie stavového priestoru s nájdením všetkých riešení, princíp stratifikácie na príklade hľadania optimálnych riešení (bricks-world problem alebo robot v gridovom bludisku).
+
# Princíp fuzzifikácie: fuzzy množiny, lingvistické premenné a termy, modifikátory (hedges), základné typy fuzzy pravidiel (crisp | fuzzy predpoklady, akcie, faktor určitosti pravidla CF, threshold pravidla), priebeh fuzzy inferencie: parciálny matching, kombinácia vstupných fuzzy faktov, modifikácia výstupných faktov, agregácia fuzzy faktov, defuzzifikácia (centre of gravity, mean of maxima metods), teória fuzzy množín na reziduovaných zväzoch.
+
# Reprezentácia znalostí prostriedkami logického programovania. Sémantika logického programovania (interpretácia, model, T_P-operátor, najmenší model, stabilný model).  Defaultové teórie. Extenzie. Hierarchické siete.  Skeptické a dôverčivé usudzovanie.
+
# Nemonotónne usudzovanie. Všeobecná charakterizácia nemonotónneho usudzovania. Formalizácia usudzovania za prítomnosti nekonzistentosti. Indukcia. Abdukcia. Revízie. AGM-postuláty racionálnosti revízie. TMS - základné štruktúry a procedúry.
+
# Multiagentový system (MAS); reprezentačné a komunikačné jazyky, priama a nepriama komunikácia medzi agentami, implementácia MAS ako middleware, v rámci VM a nad IPC.
+
# Agentovo-orientované programovanie: dekompozícia aktivitou, subsumpcia, PKA model, agent-space.
+
 
</small>
 
</small>

Latest revision as of 12:41, 20 May 2021

9.2.9. Sylaby štátnych záverečných skúšok
magisterského študijného programu
Aplikovaná informatika
a
Aplikovaná informatika (konverzný program)

Garant: Prof. RNDr. Roman Ďurikovič, PhD.
             durikovic @ fmph.uniba.sk


Štátnicový predmet 2-AIN-990 Obhajoba diplomovej práce

Doneste si svoj vlastný notebook na ktorom budete prezentovať a ukazovať demo alebo animácie. Čas na prezentáciu je limitovaný na 13 minút potom Vám zaznie budík a ak ste neskončili prejdete na posledný slide prezentácie a poďakujete za pozornosť.

Odporúčania k prezentácii: Po názve práce a uvedení mien školiteľa/diplomanta sa zamerajte na to aby ste zhrnuli všetky Vaše výsledky, teda to čo ste dosiali. Ak máte animácie v skrátenej forme ich ukážte hneď na slide č.3. Toto je najdôležitejšia časť obhajoby ak si to dáte na koniec môžete ju nestihnúť odprezentovať.

Ďalej môže nasledovať spôsob AKO ste k výsledkom došli a nakoniec ukážete Váš výskum v skratke.

K otázkam oponenta/školiteľa z posudkov si pripravte slide na každú otázku, použijete ich po obhajobe po precitaní posudkov. Obhajobu si skúste doma povedať skoro naspamäť, robia to aj profesionáli.


  1. Hodnotenie A
  2. Hodnotenie B
  3. Hodnotenie C
  4. Hodnotenie D
  5. Hodnotenie E môže získať samostatná práca spĺňajúca viac ako 2/3 zadaných cieľov v prihláške s pôvodnými správnymi výsledkami.
  6. Hodnotenie Fx ostatné práce nezaraditeľné do lepšieho hodnotenia; plagiatorstvo (s návrhom na vylúčenie zo štúdia); zjavne odfláknutá niektorá casť práce, implementácie alebo prezentácie; práca nespĺňajúca viac ako 2/3 zadaných cieľov v prihláške.

Práca nebude akceptovaná na obhajobu ak nebude spĺňať nasledujúce základné požiadavky: a, zmluva nebude obsahovať všetky potrebné podpisy. b, nebude dodržaná štruktúra práce a obsah jednotlivých častí c, práca bude kompilátom sekundárnych zdrojov bez vlastného výskumu a analýz. d, v práci nebudú uvedené referencie na použité zdroje, čiže vyskytne sa v nej plagiátorstvo alebo zneužitie Internetu e, autor/ka nedodrží uvedené požiadavky na formu f, jazyková úroveň práce nebude zodpovedať úrovni absolventa magisterského štúdia.

Štátnicový predmet 2-AIN-950 Metódy aplikovanej informatiky

Doneste si svoj vlastný notebook na ktorom budete bežať MS Teams aby sa mohla Vaša odpoveď vysielať online účastníkom.

Študent si ťahá jednu otázku náhodne.

2-AIN-109/15 Programovanie paralelných a distribuovaných systémov Gruska D.

1. Základné rozdelenie architektúr paralelných počítačov (Asynchrónna „shared memory“ architektúra, distribuovaná architektúra, synchrónna architektúra, stručný popis, porovnanie medzi nimi)

2. Progress a safety podmienky (formulácia safety a progress podmienky neformálne a formálne, ukážky pre rôzne úlohy paralelného a distribuovaného programovania)

3. Úloha triedenia pre paralelné architektúry (príklady riešení, zložitosť a procesorová náročnosť pre rôzne typy architektúr, dôkaz správnosti - safety a progress podmienka pre jedno riešenie)

4. Problém večerajúcich filozofov (formulácia problému, safety a progress podmienka, načrtnutie riešenia pre distribuovanú architektúru)

5. Komunikácia cez chybný kanál (formulácia problému, safety a progress podmienka, načrtnutie riešenia, optimalizácia - Alternating Bit Protocol)

2-AIN-206/15 Matematické modelovanie a počítačová animácia fyzikálnych procesov Ďurikovič R.

6. Časticové systémy, rovnice pohybu prvého rádu, integračné metódy na výpočet rýchlosti a pozície, stavový vektor systému, vonkajšie sily, obmedzujúce podmienky – constraints, sily odozvy, kolízie častica - rovina.

7. Animácie pohybu a orientácie, interpolačný spline na animáciu pohybu, reparametrizácia splinu podľa dĺžky krivky, quaternion a orientácia, interpolácie dvoch a viacerých quaternionov.

8. Detekcie kolízie, nutná a postačujúca podmienka kedy nie sú dve telesá v kolízii, deliaca rovina, broad phase (hierachycká mriežka), mid phase (hierarchie obálok, Voronoiove oblasti v kolízii, vysvetlujte na príklade kolízie gula x kapsula, dekompozícia telesa na konvexné časti), narrow phase (Minkowskeho priestor a blízkosť konvexných telies).

9. Numerické riešenie diferenciálnych rovníc, Eulerova metóda, MidPoint metóda, Runge-Kuta metóda, podmienka stability na voľbu časového kroku, sily odozvy (response forces).

10. Dynamika tuhých telies, definícia problému, rovnice pohybu (4 ODE), rýchlosť, zrýchlenie, uhľová rýchlosť a uhľové zrýchlenie, matica hybnosti (matica inercie).

2AIN-BS1 - Blok S1: Počítačová grafika a videnie

Študent si ťahá dve otázky bloku zamerania náhodne z rôznych predmetov.

2-AIN-128/15 Grafika v reálnom čase a výpočty na GPU - A. Mihálik

1. Zobrazovací kanál. Grafická pipeline moderného hardvéru, framebuffer, buffer objekty, používané súradnicové priestory, druhy shader programov, druhy optimalizačných techník (view frustum, occlusion, backface culling), príklad shader programov.

2. Tiene, typy tieňov (mäkké, tvrdé, statické, dynamické), typy a popis algoritmov (projekčné, tieňové objemy, tieňové mapy (shadow mapping)), spôsoby implementácie jednotlivých algoritmov, artefakty a ich odstraňovanie, príklad shader programov pre tieňové mapy. Artefakty spôsobené diskretizáciou. Tiene vo Phongovom modeli.

2-AIN-127/15 Pokročilá počítačová grafika - R. Ďurikovič

3. Kanál metódy sledovania lúča a porovnanie s Radiosity metódou. (definícia lúča, definícia tieňového lúča, popis metódy sledovania lúča, generovanie lúča, pochod po lúči (ray traversal), prienik lúča s trojuholníkom, stromová štruktúra lúčov (ray tree) a jej použitie na výpočet lokálnej farby, problém presnosti priesečníkov). Metóda sledovania lúča na GPU, urýchľovacie techniky.

4. Fyzikálny osvetlovací model a výpočet farieb renderovacou rovnicou. (definícia radiancie, definícia BRDF a jej vlastnosti, fyzikálne BRDF Cook-Tarrance, definícia priestorového uhlu, napíšte renderovaciu rovnicu a vysvetlite jej členy)

5. Lokálne osvetľovacie modely. (tieňovanie, Phongov a Blinn-Phongov osvetlovací model, zložky (ambientna, difúzna, zrkadlová), textúrovanie a druhy textúr, mapovanie a filtrácia textúr, popísať princípy environment, bump, normal mapovania, textúrovací a tangenciálny priestor, príklad shader programov na GPU.

2-AIN-112/15 Pokročilé spracovanie obrazu - Z. Černeková

6. Snímanie obrazu s jednou kamerou (geometria jednoduchej perspektívnej kamery, projektívna rovnica, kalibrácia kamery, vonkajšie a vnútorné parametre, rekonštrukcia vzoru z jeho obrazu)

7. Techniky predspracovania obrazu (filtrovanie obrazu v priestorovej doméne: lineárne a nelineárne filtre, priemerovanie, gaussovská filtrácia, mediánová filtrácia, bilaterálna filtrácia; detekcia hrán na základe prvej a druhej derivácie: gradientné operátory, zero-crossing a Marr-Hildrethovej operátor, fixné a adaptívne okolie bodu; filtrovanie vo frekvenčnej doméne: Fourierova transformácia - definícia 1D, 2D, spojitý a diskrétny prípad, vlastnosti FT, použitie pri spracovaní obrazu, FFT).

8. Segmentácia a matematická morfológia (segmentácia šedotónového a farebného obrazu: prahovanie – globálne, lokálne a optimálne; k-means, mean shift, split and merge, segmentácia narastaním oblastí, segmentácia na princípe povodí; morfologické operácie binárneho a šedotónového obrazu: dilatácia, erózia, otvorenie, zatvorenie, top-hat, hit and miss, podmienená dilatácia, použitie pri spracovaní obrazu).

2-AIN-204/10, 2-MPG-125/15 Rozpoznávanie obrazcov a Počítačové videnie - M. Ftáčnik a Zuzana Berger Haladová - Jedna skupina

9. Príznaky (Výber a selekcia príznakov, globálne príznaky tvaru, farby, lokálne príznaky – SIFT, detektor a deskriptor, hľadanie škvŕn/Laplacian of Gaussians, príznaky textúry- štatistické momenty, Gaborove filtre)

10. Techniky počítačového videnia (Porovnávanie so vzorom/Template Matching), párovanie lokálnych príznakov, metóda vizuálnych slov/Bag of Visual Words, detekcia a rozpoznávanie tvárí, algoritmus Viola-Jones, analýza významných oblastí obrazu/Saliency)

11. Rozpoznávanie lineárne separabilných a neseparabilných tried (Lineárne diskriminačné metódy, SVM, kernelový trik, Bayesovo pravidlo, rozhodovacie stromy, k-means ako metóda neriadeného učenia, učenie pri jednotlivých metódach, trénovacia a testovacia množina)

12. Neurónové siete (Konvolučné neurónové siete, spätná propagácia/Backpropagation, stochastická gradientná optimalizácia/Stochastic Gradient Descent, cenová funkcia, analýza natrénovaných filtrov/vrstiev siete, hyperparametre)


2AIN-BS2 - Blok S2: Umelá inteligencia

Študent si ťahá dve otázky bloku zamerania náhodne z rôznych predmetov.

2-AIN-137/15 Umelá inteligencia - M. Markošová

1. Pojem agent, jednoduchý agent, agent a jednoduché plánovanie pohybu v stavovom priestore (informované a neinformované prehľadávanie), hry (minimax).

2. Logické agenty, reprezentácia znalostí logickým formalizmom, metódy inferencie pre prvorádovú logiku: forward a backward chaining, rezolvenčný algoritmus (konjuktívny normálny tvar, substitúcia, unifikácia, rezolvenčné pravidlo, a rezolvencia) .

3. Bayesovské siete a bayesovské vyvodzovanie, klasické časové rady, časové rady s neurčitosťou a bayesovské siete, využitie bayesovských sietí v UI. Metódy analýzy trendu a periodicity v časových radoch (MA, double MA...)

4. Teória rozhodovania - jednoduché rozhodovanie (funkcia utility jedno a multi-atribútová, striktná, stochastická dominancia, stav, lotéria,), zložité rozhodovanie (Markov decision problém, Belmanova rovnica). Rozhodovacie stromy.

2-AIN-132/15, 2-INF-150/15 Neurónové siete a Strojové učenie - I. Farkaš, P. Petrovič, T. Vinař - Jedna skupina

5. Strojové učenie s učiteľom. Viacvrstvové perceptróny (MLP): učenie pomocou spätného šírenia chyby, zovšeobecnenie, validácia modelu, využitie v úlohách. Rekurentné neurónové siete (RNN): spôsoby zahrnutia časového kontextu, architektúry a typy úloh vhodných pre RNN, a spôsoby trénovania, príklad využitia.

6. Strojové učenie bez učiteľa. Zhlukovanie. Model samoorganizujúcej sa mapy (SOM), princíp algoritmu učenia: vektorová kvantizácia, topografické zobrazenie príznakov, redukcia dimenzie dát, príklad využitia.

7. Matematická teória strojového učenia. Výchylka a rozptyl. Preučenie a podučenie. PAC učenie a ohraničenia pre konečné a nekonečné množiny hypotéz. VC dimenzia.

2-AIN-246/15 Multiagentové systémy – A. Lúčny

8. Popíšte spôsob implementácie multiagentového systému ako middleware. Použite priamu komunikáciu a popíšte procesy v multiagentovom systéme, kde jeden agent pravidelne posiela druhému teplotu vody v bazéne a druhý ju zobrazuje na informačnú tabuľu.

9. Vysvetlite princíp subsumpcie na multiagentovom systéme s nepriamou komunikáciou, kde jeden agent posiela príkaz na dopredný pohyb do motora ľavého kolesa, druhý posiela príkaz na dopredný pohyb do motora pravého kolesa a kde pridáte tretieho agenta, ktorý dostáva detekciu nárazu a pomocou supresie zariadi otočenie robota.

2-AIN-144/15 Reprezentácia znalostí a inferencia - M. Homola

10. Ontológie a deskripčné logiky: Čo je to ontológia? Definujte základnú syntax a rozhodovacie problémy pre deskripčnú logiku ALC. Tablový algoritmus pre deskripčnú logiku ALC.

11. Nemonotónne usudzovanie a ASP. Vysvetlite a zadefinujte nemonotónne usudzovanie. Definujte normálny logický program (NLP), interpretáciu, a stabilný model. Nájdite všetky stabilné modely programu P = {b :- not a. a :- not b. c :- a,b.}

2-AIN-272/15 Spracovanie digitálneho signálu - M. Nagy

12. Fourierova transformácia (FT), spôsob výpočtu diskrétnej FT (DFT), rýchla DFT (FFT), vlastnosti DFT. Power spectral density (PSD), periodogram, korelogram, parametrické metódy (moving average - MA, auto regressive - AR, multiple signal classification - MUSIC)

2AIN-BS3 - Blok S3: Programovanie a tvorba informačných systémov

Študent si ťahá dve otázky bloku zamerania náhodne z rôznych predmetov.

2-AIN-118/14, 2-AIN-111/15 Programovanie v operačných systémoch a Webové technológie a metodológie – J. Šiška, M. Homola - Jedna skupina

1. Procesy a vlákna: spúštanie, synchronizácia a komunikácia. Popíšte proces zavedenia nového procesu/spustenia vlákna, rozdiel medzi dynamickým a statickým linkovaním. Popíšte mechanizmy na synchronizáciu a komunikáciu (prenos dát) medzi procesmi/vláknami dostupné v súčasných operačných systémoch, porovnajte ich výhody a nevýhody, prípadne vhodnosť na riešenie konkrétnych problémov/situácií.

2. Služby operačného systému: práca so súborovým systémom, sieťou a HW, správa pamäte. Popíšte základné služby operačných systémov a prístup k nim (systémové volania, správa pamäte), rozdiel medzi privilegovaným a neprivilegovaným kódom (userspace, kernelspace), ovládače.

3. Vysvetlite pojem použiteľnosť (usability). Uveďte 5-bodovú definíciu použiteľnosti podľa Jacoba Nielsena. Vysvetlite metodiku user-centered design, a rolu prototypov, tzv. persón a testovania v tejto metodike.

2-AIN-2139/14 Kompilátory a interpretre - Ľ. Salanci

4. Princípy fungovania kompilátora a interpretra: - objasnite princípy fungovania lexikálnej analýzy, syntaktickej analýzy, generovania kódu - na ukážke vysvetlite rozdiel medzi interpretáciou a kompiláciou - porovnajte jazyky Java, Python, C++ z pohľadu kompilátorov a interpretrov

5. Spracovanie programových konštrukcií: - objasnite algoritmy pre spracovania programových konštrukcií kompilátorom a interpretrom - na ukážte ilustrujte reprezentáciu krátkeho programu pomocou syntaktického stromu - porovnajte náročnosť spracovania programových konštrukcií v jazykoch Java, Python, C++

6. Spracovanie výrazov s operátormi rôznej priority: - vysvetlite algoritmus pre vyhodnotenie výrazov podľa priority operátorov - na ukážte ilustrujte generovanie syntaktického stromu pre jednoduchý výraz - porovnajte problémy spracovania výrazov v jazykoch Java, Python, C++

7. Virtuálne mašiny: - vysvetlite princíp fungovania virtuálnej mašiny - na ukážke ilustrujte generovanie kódu pre vašu virtuálnu mašinu - porovnajte jazyky Java, Python, C++ z pohľadu rýchlosti bežiaceho kódu

8. Premenné, parametre, volanie podprogramov: - objasnite algoritmy a údajové štruktúry pre kompilovanie podprogramov s premennými - na ukážke ilustrujte alokáciu pamäte pre lokálne, globálne premenné a parametre - porovnajte možnosti jazykov Java, Python, C++ z pohľadu menných priestorov

2-AIN-116/14 Funkcionálne programovanie - P. Borovanský

9. Lambda kalkul - popíšte syntax, sémantiku (interpretáciu), typovanie a vlastnosti tejto teórie. Typovaný lambda kalkul - vlastnosti teórie, vysvetlite algoritmy pre type-checking a type-inference.

10. Churchove čísla - vysvetlite význam, konštrukciu a základné aritmetické operácie s nimi. Monadické programovanie - uveďte princípy a príklad použitia list, maybe a state monád.

2-AIN-133/15 Extrémne programovanie - F. Gyarfaš

11. Agilný verzus vodopádový vývoj softvérových projektov. Agilný vývojový cyklus. Princípy unit testingu, testami riadeného programovania, refaktorizácie. Dôvody refaktorizácie a jej riziká.

12. Zdedený kód: definícia, podmienky pre prácu s ním, obaľovanie testami, využívanie techník ako seam, sprout, wrap, príklad na niektorú z techník.

2-AIN-131/14 Pokročilé programovanie v JAVE (JavaEE) - P. Petrovič

13. Vysvetlite aký je rozdiel medzi webovým a aplikačným serverom, čo je servlet a ako funguje, čo sú session-scoped beans a application-scoped beans a uveďte a vysvetlite príklad aplikácie, kde by ste ich účelne využili. Na príklade vysvetlite nejakú technológiu, ktorá umožňuje prepojenie týchto objektov s výstupom renderovaným na webovej stránke.

14. Vysvetlite rozdiel medzi prístupom k dátam pomocou JDBC a pomocou ORM. Ako sa ORM realizuje v Java EE? Uveďte príklady anotácií, ktoré sa pri ORM v Java EE používajú - ktoré z nich umožňujú automatické aktualizovanie viacerých tabuliek v relácii? Pokúste sa vysvetliť rozdiel medzi SQL a JPQL.

2-INF-145/15 Tvorba internetových aplikácií - R. Ostertág

15. Popíšte návrhový vzor MVC. Popíšte nejaký MVC framework podľa vášho výberu a vysvetlite ako je v danom frameworku vzor MVC implementovaný.

16. Popíšte výhody oddelenia obsahu od prezentácie. Aké možnosti oddelenia ponúka štandardne CSS, a aké ponúka napr. nejaký template engine (Smarty, alebo iný)? Popíšte tiež oddelenie obsahu od funkcionality, ktoré umožňuje knižnica JQuery.

17. Porovnajte objektovo orientované jazyky založené na triedach (napr. Java) a prototypoch (napr. Javascript).

2AIN-BS4 - Blok S4: Tvorba softvéru pre vzdelávanie

Študent si ťahá dve otázky bloku zamerania náhodne z rôznych predmetov.

2-AIN-117/15 Interaktívne programovanie - I. Kalaš

1. Rekurzívne dáta a výpočty - charakterizujte rekurzívne dátové štruktúry a rekurzívne funkcie na prácu s číslami a rekurzívnymi dátovými štruktúrami, ilustrujte na logovských zoznamoch a výpočtoch s nimi - vysvetlite, aké uplatnenie má rekurzívne programovanie pri tvorbe interaktívnych aplikácií (v kontexte vzdelávania)

2. Paralelné procesy - vysvetlite pojem paralelné procesy a spôsoby práce s paralelnými procesmi logovského typu (prípadne iného) - vysvetlite, ako používame paralelné procesy pri tvorbe interaktívnych aplikácií (v kontexte vzdelávania)

3. Násobné objekty (colonies of sprites, turtles... ) v interaktívnych aplikáciách (najmä v kontexte vzdelávania) - vysvetlite, prečo a ako pracujeme s násobnými objektmi v interaktívnych aplikáciách - popíšte spôsoby riadenia a komunikácie medzi objektmi, ilustrujte na príkladoch

4. Tvar korytnačky - charakterizujte rôzne spôsoby priradenia tvaru korytnačke, vysvetlite princíp animovaných grafických tvarov - vysvetlite princíp popisu tvaru pomocou programu, jeho výhody a využitie

5. Tvorba interaktívnych aplikácií - charakterizujte a na príkladoch ilustrujte, čo je interaktívna aplikácia (najmä v kontexte vzdelávania) - vysvetlite a ilustrujte, aké programovacie postupy a prvky používame pri tvorbe takýchto aplikácií, aby sme podporili interakciu aplikácie s jej používateľom

2-AIN-115/15 a 2-AIN-136/15 Softvér pre vzdelávanie a Tvorba edukačného softvéru - M. Tomcsányiová

6. Edukacný softvér a vzdelávanie - charakterizujte, ako môže používanie edukacného softvéru a digitálnych technológií zmenit vyucovanie a ucenie sa - vysvetlite rôzne obavy spojené s používaním digitálnych technológií a edukacného softvéru vo vyucovaní, navrhnite opatrenia na ich prevenciu, resp.minimalizáciu

7. Princípy tvorby edukacného softvéru - charakterizujte a ilustrujte vhodné grafické používatelské rozhrania (GUI) pre žiakov rôznych vekových kategórií - porovnajte GUI edukacných aplikácií pre desktopové a mobilné zariadenia

8. Výskum a výskumník pri vývoji edukacného softvéru - charakterizujte edukacný výskum a jeho stratégie výskum vývojom a akcný výskum - vysvetlite dôvody a formy spolupráce programátora s ucitelom a žiakmi pri vývoji edukacného softvéru

9. Klasifikácia a hodnotenie edukacného softvéru - charakterizujte rôzne spôsoby klasifikácie edukacného softvéru (podla vyucovacieho predmetu, podla vzdelávacej paradigmy, podla funkcie) a ilustrujte niektoré kategórie na príkladoch - vysvetlite rôzne spôsoby hodnotenia edukacného softvéru (z edukacného pohladu, z pohladu používatela, z hladiska technických požiadaviek)

10. Digitálne technológie pre osoby so špeciálnymi vzdelávacími potrebami - prezentujte klasifikáciu osôb so špeciálnymi vzdelávacími potrebami - charakterizujte potenciál digitálnych technológií a rôznych druhov asistenčných technológií pre osoby so špeciálnymi vzdelávacími potrebami

2-AIN-2139/14 Kompilátory a interpretre - Ľ. Salanci

11. Princípy fungovania kompilátora a interpretra: - objasnite princípy fungovania lexikálnej analýzy, syntaktickej analýzy, generovania kódu - na ukážke vysvetlite rozdiel medzi interpretáciou a kompiláciou - porovnajte jazyky Java, Python, C++ z pohľadu kompilátorov a interpretrov

12. Spracovanie programových konštrukcií: - objasnite algoritmy pre spracovania programových konštrukcií kompilátorom a interpretrom - na ukážte ilustrujte reprezentáciu krátkeho programu pomocou syntaktického stromu - porovnajte náročnosť spracovania programových konštrukcií v jazykoch Java, Python, C++

13. Spracovanie výrazov s operátormi rôznej priority: - vysvetlite algoritmus pre vyhodnotenie výrazov podľa priority operátorov - na ukážte ilustrujte generovanie syntaktického stromu pre jednoduchý výraz - porovnajte problémy spracovania výrazov v jazykoch Java, Python, C++

14. Virtuálne mašiny: - vysvetlite princíp fungovania virtuálnej mašiny - na ukážke ilustrujte generovanie kódu pre vašu virtuálnu mašinu - porovnajte jazyky Java, Python, C++ z pohľadu rýchlosti bežiaceho kódu

15. Premenné, parametre, volanie podprogramov: - objasnite algoritmy a údajové štruktúry pre kompilovanie podprogramov s premennými - na ukážke ilustrujte alokáciu pamäte pre lokálne, globálne premenné a parametre - porovnajte možnosti jazykov Java, Python, C++ z pohľadu menných priestorov

2-AIN-225/15 Tvorba multimédiálnych aplikácií a počítačových hier - Ľ. Salanci

16. Reprezentácia a zobrazovanie herného sveta: - objasnite, kde a akým spôsobom sa používajú objekty, polia, stromy a grafy v hrách - na ukážke ilustrujte algoritmy, ktoré sa používajú pri zobrazovaní objektov herného sveta - porovnajte niekoľko profesionálnych hier z hľadiska použitých reprezentácií

17. Pohyb objektov: - vysvetlite princípy testovania kolízií a využitia zjednodušených fyzikálnych modelov v hrách - na ukážke ilustrujte algoritmy pre pohyb, testovanie a riešenie kolízií objektov - uveďte možnosti ale aj nevýhody fyzikálnych simulácií v hrách

18. Cesty a dostupnosť cieľov: - vysvetlite princíp fungovania algoritmov pre hľadanie cesty: dijkstrov, A* - na ukážke ilustrujte niektorý z uvedených algoritmov - uveďte, v akých situáciách v hrách sa tieto algoritmy oplatí používať

19. Správanie herných objektov: - vysvetlite implementáciu správania objektov: pomocou automatov, grafmi - na konkrétnej ukážke porovnajte výhody a nevýhody jednotlivých prístupov - porovnajte niekoľko profesionálnych hier z hľadiska algoritmov správania sa objektov

20. Stratégia protihráčov: - vysvetlite princíp fungovania algoritmu MinMax + heuristického odhadu - ilustrujte na konkrétnej hre kroky výpočtu nasledujúceho ťahu - porovnajte rôzne typy hier z hľadiska výpočtovej náročnosti

2-AIN-224/15 Webové programovanie - R. Hrušecký

21. Manipulácia s objektmi webovej stránky - popíšte rôzne spôsoby zmeny objektu, resp. vlastností objektu (pomocou čistého JavaScriptu, resp. iných knižníc, napr. JQuery) - popíšte rozdiely v zmenách vlastností pomocou CSS a JavaScriptu na konkrétnych príkladoch, ich výhody/nevýhody, kedy je ktorý vhodnejšie použiť

22. Tvorba dynamických aplikácií na strane klienta - popíšte výhody a nevýhody vykresľovania pomocou HTML objektov, resp. objektu Canvas - uveďte príklady, kedy je vhodnejšie využiť HTML objekty, a kedy Canvas

23. Spôsoby komunikácie medzi klientom a serverom - popíšte rozdiely, výhody a nevýhody klasickej komunikácie klient-server a komunikácie na základe objektu XHR (XMLHttpRequest) - uveďte konkrétne príklady využitia takejto komunikácie

24. Ukladanie údajov na strane klienta - charakterizujte rôzne prístupy, rozdiely, výhody a nevýhody ukladania údajov na strane klienta - popíšte – v tomto kontexte – rozdiely medzi prehliadačmi, resp. medzi desktopovými a mobilnými zariadeniami - vysvetlite rozdiely rôznych prístupov z pohľadu bezpečnosti

25. Realtime komunikácia medzi prehliadačom a serverom - vysvetlite vzťah WebSocket, socket.io, a node.js - ilustrujte tieto vzťahy na konkrétnych príkladoch