Napjainkban hatalmas érdeklődés övezi a nagyméretű adatok hatékony tárolására, kezelésére és elemzésére alkalmas Big Data eszközöket. Több szektor, többek között a telekommunikációs és a pénzügyi, hatalmas mennyiségű adatot generál napi szinten, melynek gyors és hatékony elemzése elengedhetetlen. A hallgató feladata megismerni a Big Data világában uralkodó tervezési elveket, illetve a jelenleg legelterjedtebb eszközök egy csoportját, a Hadoop stack-et. A hallgatónak össze kell állítania egy (single-node) tesztkörnyezetet, amelyen dolgozni fog. Meg kell oldania az adatgyűjtést, illetve a keletkezett adat betöltését Hadoop fájlrendszerbe. A betöltött adatokon adattisztítási műveleteket kell Spark segítségével megvalósítania, mely során elsajátíthatja a map-reduce paradigma és a funkcionális programozás logikájának alapjait. A megtisztított adatokon elemzéseket kell végeznie, amiben segítségére lesz a gépi tanulásra és statisztikai modellezésre kifejlesztett Spark MLlib. A feladatot az iparban jelenleg ezen a területen a két legkeresettebb programozási nyelv (Python és Scala) egyikén kell megoldania. A téma kidolgozása során betekintést nyerhet a két közel legfelkapottabb szakma, a data science és data engineering világába.
Kulcsszavak: adatelemzés, data science, data engineering, Big Data, Hadoop, Spark, MLlib, map-reduce, Python, Scala
Irodalom:
White: Hadoop - The Definitive Guide
Miner, Shook: MapReduce Design Patterns
Frampton: Mastering Apache Spark
A modern pénzügy egyik legnagyobb kihívása olyan befektetési stratégiák kialakítása, amelyek bizonyos szempontok szerint optimálisak – ez tipikusan a várható hozam maximalizálása, a kockázat minimalizálása, vagy a kettő valamilyen arányú keveréke. A hallgatónak először meg kell ismernie a numerikus optimalizálás módszereit, kiemelve a lineáris, egészértékű és kvadratikus programozást, illetve az ezek megoldására alkalmas Python vagy R nyelvben használható könyvtárakat. Meg kell ismernie továbbá a portfólió optimalizálás közgazdasági hátterét, a különböző kockázati metrikákat, valamint az ezekre épülő alapvető matematikai modelleket. A megismert stratégiákat le kell implementálnia és historikus adatokon a hatékonyságukat összehasonlítani, kiértékelni. A hallgató megpróbálkozhat új stratégia kidolgozásával, vagy megvizsgálhatja, hogy kiugró adatok (outlier-ek) és egyéb hibák hogyan befolyásolják a végeredményt, illetve robusztus statisztikai módszerek alkalmazásával ezek mennyire kezelhetők. További kérdés, hogy a modellek tanuláskor mekkora időtartamot vegyenek figyelembe visszamenőlegesen, mivel az idő folyásával a piac változik, így túl régi adatok már irrelevánsak lehetnek és negatívan érinthetik a folyamatot. A téma kidolgozása során betekintést nyerhet a hallgató a kvantitatív pénzügyek világába.
Kulcsszavak: befektetési stratégiák, numerikus optimalizálás, pénzügyi matematika, robusztus statisztika, kvantitatív pénzügyek, Python, R
Irodalom:
Boyd, Vandenberghe: Convex Optimization
Elton, Gruber, Brown, Goetzmann: Modern Portfolio Theory and Investment Analysis
Pfaff: Financial Risk Modelling and Portfolio Optimization with R
Szóbeli vizsgáknál nagy nehézséget okoz a hallgatók behívásának megfelelő ütemezése - figyelni kell arra, hogy a vizsgáztatók folyamatosan el legyenek látva hallgatóval, de a hallgatóknak is járjon a 45 perc kidolgozási idő, valamint ne kelljen túl sokat várniuk a kidolgozást követően arra, hogy valaki szólítsa őket. A feladatot nehezíti, hogy a vizsgáztatók száma is változhat, valamint a teljesítményük sem tekinthető konstansnak. A hallgató feladata az, hogy egy megfelelő sztochasztikus modellt kidolgozzon, amihez először meg kell ismernie a tömegkiszolgálás módszereinek egy egyszerűbb részét. A kidolgozott modell alapján meg kell terveznie egy kliens-szerver architektúrájú rendszert, amihez mind a front-, mind a back-end szükséges. Opcionálisan a front-end futhat hagyományosan web böngészőben (akár tetszőlegesen választott technológiával), vagy Android platformon is megvalósítható mobil alkalmazásként. Szintén opcionálisan a hallgató megismerkedhet a Unix alapjaival, illetve szerverek telepítésével/fölkonfigurálásával (érdeklődés esetén akár a manapság igen fölkapott microservice szemlélettel a Docker virtualizációs technológia segítségével).
Kulcsszavak: tömegkiszolgálás, szoftvertervezés, szoftverfejlesztés, kliens-szerver architektúra, Android, Docker, szabadon választható technológiák
Irodalom:
Györfi, Győri, Pintér – Tömegkiszolgálás
Fricsor, Krizsán, Mileff - Szoftverfejlesztés