2020. március 15. 15:14 @ Pomáz, Magyarország

Ötödik félévem az egyetemen

2019 szeptemberében ismét folytatódtak mérnökinformatikai tanulmányaim az Óbudai Egyetemen. Ebben a félévben megint több szakirányos tárgyam volt, illetve megjelent néhány ahhoz kapcsolódó, vagy attól valamelyest független választható tárgy is az órarendemben...

Az előző félévről szóló bejegyzésemben már írtam a tárgyfelvétel viszontagságairól, legalábbis a tárgyalt félévben történtekről. Talán csak Menedzsmentből maradt el egy gyakorlat, illetve a Deep Learning I. nevezetű szakirányos kötvált volt nehéz fölvenni az előkövetelmények hibás megadása miatt, de ezeken kívül mondhatni minden rendben zajlott, legalábbis nekem. Adatpárhuzamos programozáson az NVIDIA videókártyák általánosnak tekinthető, tehát nem csak grafikával kapcsolatos párhuzamos kihasználását célzó CUDA-keretrendszer elvi hátterével és gyakorlati alkalmazásával foglalkoztunk. Az Android programozás Kotlin nyelven egy szakirányon belüli kötelezően választható tárgy, ami e-learning formában zajlott. A tananyag még nem volt szerintem teljesen kidolgozva, lévén új keretrendszerekről, megoldásokról szólt, illetve a korábban hosszabb ideig használatos Java-megoldások leváltódásának folyamata közben indult el. Szerintem jó lett volna, ha nem is minden héten, de lettek volna laboralkalmak is, illetve ha jobban érintette volna a multimédia területeit. A Bevezetés az etikus hackelés gyakorlatába I. tárgy talán szabadon választhatónak számít, de ebben nem vagyok biztos, mert idén a második része (valószínűleg utoljára) kötválként szerepel a Neptunban. Erre a tárgyra szokatlan módon lehetett bekerülni: meg kellett írni a regisztrációs héten egy válogató tesztet, ami alapján a 45-50 jelentkező közül 24-en bekerülhetnek a tárgyra. A teszten néhány webes technológiát kellett definiálni, és a tárggyal kapcsolatos motivációnkat leírni. A vicc a történetben, hogy nem mindenki vette észre a Neptun nem túlságosan szembetűnő megjegyzés rovatát, melyben írtak erről a válogatóról, emiatt ha jól emlékszem pont 24-en jöttünk csak el. Mindegy, a tesztet azért megírtuk. Miután az első laboron jelentkezés nélkül vettem részt, Deep Learning I-re végül sikerült bekerülnöm. A pomázi padon laptoppal és megosztott mobilnettel, 1-2 másodperces szerveridő-elcsúszással még nem, de otthon egy véletlen időpontban már igen. Ez egy szakirányos tárgy, melyben a gépi tanulás és mesterséges intelligencia elméleti, matematikai hátteréről volt szó, illetve konkrét feladatok megoldásáról, esetemben több-kevesebb sikerrel. A Képfeldolgozás alap algoritmusai nevével ellentétben korántsem volt egyszerű, ugyanis emberi szemmel és intuitív gondolkodás által könnyedén megoldható problémák mint például élek megjelölése, egy minta megtalálása egy másik képen, egy számítógépnek nagy kihívást jelenthet, vagy ha másnak nem, akkor a programozóknak biztos, mivel minden lépést algoritmizálni kell, tehát konkrét lépéseket és szabályokat kell definiálni. Ebből a tárgyból csak előadások voltak, amik érdekes problémákról és okos megoldásokról szóltak, matematikai háttérrel fűszerezve. Tetszett a tárgy, de sokszor kihívást jelentett a hallott dolgok felfogása. Előfordult többször, mint sok matekos tárgynál, hogy egy levezetés/gondolatsor legelejét nem teljesen értettem meg, viszont az arra felépített továbbiakat már logikusnak éreztem, ha úgy tettem, mintha érteném az elejét is. Menedzsment alapjain is volt szó dolgokról: a törzsanyagnál nagyobb súllyal fordultak elő anekdoták a tanár részéről, de talán jobb is volt ez így. A követelmények szokatlanok voltak, erre még kitérek. Modern szoftvertechnológián igazából azt folytattuk, amit Nagy rendszerek fejlesztésének technológiáján, csak ezúttal kizárólag külső előadók tartották az órákat: az EPAM cég munkatársai. Projektmunka II-n már irodalomkutatás helyett el kellett kezdenünk leprogramozni a tervünket, ami nem ment zökkenőmentesen. Egy háromrészes tárgysorozatba is belekezdtünk: a Számítógép architektúrák alapjai tárgyon a processzor és a számítógép hozzá kapcsolódó egyéb egységeinek működéséről hallhattunk. Azt nem tudom pontosan, hogy a korábbi évfolyamok a három közül melyik Archit emlegették mint nagyon nehéz buktatótárgyat, mindenesetre az első rész teljesítése sem volt triviális. A Vállalati információs rendszerek című tárgy nagyon közel állt a szívemhez, mivel gazdasági tárgyról van szó, megbolondítva némi elméleti adatbáziskezeléssel, és megannyi felsorolással. Bár, ha végiggondolom az előző mondatot, az nem is biztos, hogy jót jelent, ha valami túlságosan közel van egy emberi szívhez... Ezeken kívül még egy tárgyam volt ebben a félévben: Weblapszerkesztés, ami szabadon választhatóként indult, és eléggé találó címmel rendelkezett.

Erdei út az egyetem mögött
A szorgalmi időszak tehát szeptember 9-én kezdődött el, nagyjából végleges órarenddel, és rögtön két meglepetéssel. Egyrészt az órarendben akkor még nem szereplő reggel 8-as Menedzsment gyakorlatról délután kaptam e-mailt, hogy aznap már lett volna. Másrészt pedig a fél 3 és 4 között zajló óra után 19:35-től kb. 21 óráig ismét részt vehettem egy VIR előadáson. Ezek a hangulatos esti alkalmak talán háromszor is megismétlődtek, azzal az indokkal, hogy már a legelső óra előtt lemaradásban vagyunk a laborok tananyagához képest. A legtöbb előadáson nem szokott katalógus, tehát jelenléti ív lenni, ahogy ezeken sem, de a további lemaradást megelőzendő én mégis ott voltam mindegyiken. Szerdánként a Weblapszerkesztés órákat a Bánki kar épületében tartották, a Népszínház utcában, ami miatt lehetetlen volt időben odaérni a kezdésre. Utólag megtudtam, hogy az órák elején mindig volt egy kis ismétlés, ezért nem maradtunk le sokról. Kéthetente innen még vissza is kellett menni a Bécsi útra, mert a Menedzsment előadások ott kerültek megtartásra, de erre még túl sok időnk is volt. Ebben a hónapban Adatpárhuzamos programozáson a számítások GPU-val történő gyorsításának lehetőségeiről, illetve a feladatok részekre bontásáról, ezek szinkronizálásáról, az androidos e-learning tárgyon pedig a Kotlin programozási nyelv általános használatáról volt szó. Előbbiből laborok is voltak: először tömbök és mátrixok videókártyára másolásával kezdtünk foglalatoskodni. Etikus hacken beszélgettünk a hackerek szerepköreiről, felderítési technikákról, illetve direkt ilyen célra összerakott virtuális gép feltörését is megnéztük. 19-ére már hasonló házi feladatot kaptunk, tehát egy könnyen felismerhető sérülékenységekkel rendelkező VM felett kellett átvenni az uralmat. Deep Learningen a gépi tanulás hátterében lévő mátrixműveletekről, illetve a gradient descent optimizáló algoritmusról, Képfeldolgozáson pedig alapvető (?) intenzitástranszformációkról és a maszk/ablak alapú műveletekről kezdtünk tanulni. Ahogy az előbb említettem, a második héten volt Menedzsment előadás, ami a vezetői szerepkörről szólt valahány százalékban. A tanár úgy kezdte az órát, hogy ő 40 éve tanít, és sosem használt mikrofont, ezért most sem fog. Ez nem is lett volna probléma, ha nem a nagyelőadóban vagyunk, ahol elég nagy távolságok lehetnek, amit nehezen tesznek meg a hanghullámok. Még sokszor úgy sem értettem a mondanivaló felét, hogy a 3-4. sorban, tehát nem hátul, viszont annak a széléhez közel ültem. Egy gyakorlatunk volt a hónapban, amin a tartalmilag/mennyiségileg megfelelő prezentációk készítése, a jó előadásmód követelményei volt a téma. Szofttechen optimális kódot eredményező javás trükkökről és a Git használatáról hallottunk, illetve agilis módszerekről. A Projektmunkához elkezdtünk foglalkozni a Pythonnal és hozzá több keretrendszerrel. Vagy két hétig csak a telepítgetésekkel szenvedtünk. Igazán leírhatták volna pl. a Tensorflow honlapján, hogy 64 bites Pythonra van szükség, de lehet csak az én figyelmemet kerülte el. Programozás mellett többé-kevésbé rendszeresen beszéltünk a konzulensünkkel, akit tájékoztattunk az eredményeinkről, terveinkről, gyakorlati problémáinkról. Archi 1-en először elméleti alapfogalmakat vettünk végig: számítási modellek összehasonlítása, adattípusok, műveletek, regiszterek és memóriák alapelvei. Előző években ez a tárgysorozat második részéhez kapcsolódott, de nekünk ebben a félévben voltak az Archi laborjaink is, amiken 8086-os Assembly kódokat írogattunk. Ez egyáltalán nem egyszerű, mert teljesen más programozói szemlélet szükséges hozzá, ami részben a nem minden helyzetben általánosan felhasználható regiszterek amúgy is korlátolt számából adódik. Korábban már említettem, hogy Vállalati információs rendszerekből extra előadásokat is kaptunk, így már a szorgalmi időszak első hónapjában nagyon sok dologról szó eshetett. Egy vállalat digitális leképződése informatikai alrendszerek kapcsolataiban, cikk- és készletadatok tárolási struktúrája, ajánlatkérés és számlázás informatikai folyamatai. Webszerkesztésen pedig a HTML és a CSS lényegének átfogó áttekintése történt meg, részben e-learning anyagokból. Különféle szövegjelölő címkék, táblázatok, CSS-kijelölők, stb. Etikus hackre fogalmazást kellett egy kevésbé ismert szoftvereszközről, ami a Kali Linux részét képezi. Én kicsit hibásan a DirBustert választottam, abból kiindulva, hogy a "kali+dirbuster" keresőszóra a Google nem adott olyan sok találatot. A hónap végéig emellett egy pároldalas szoftvertervet is kellett írni a saját ötletet igénylő Képfeldolgozás beadandóról.

"SZAM?!" – Nem sokkal a videó feltöltése után 
Október második napjáig beküldtem néhány képernyőmentést a Weblapszerkesztés beadandó első fázisaként. A feladat ugyanis az volt, hogy egy kisvállalkozás létező honlapját kellett újragondolni, és esetleg bizonyos tartalmakat átemelve újratervezni, szemantikailag szabványos HTML- és CSS-használattal. Mindezt persze a cég megkérdezése nélkül, de a honlapot nem publikussá téve. A tárgy laborjain elkezdtünk a Bootstrap-könyvtárral kezdtünk hasábkezeléssel, reszponzív honlapok készítésén dolgozni. CUDA C-ben mátrixok GPU memóriájába másolásával, szálak és blokkok létrehozásával kezdtünk foglalatoskodni. A tárgy előadásain a videókártyák memóriájának részeiről, optimalizált mátrxiszorzásról és néhány atomi műveletről volt szó. Etikus hacken az Nmap portszkennelési lehetőségeit, néhány webes felderítő módszert próbálgattunk, illetve a Metasploit keretrendszerrel igyekeztünk ilyen célra készített virtuális gépet feltörni. Deep Learningen a kevésbé elterjedt CNTK keretrendszerrel készítgettünk egyszerű neurális hálókat, főleg táblázatos adatokból összefüggések megállapítására. Ha jól emlékszem emberek néhány felszínes adata alapján kellett a programmal pontszámot adatni arra, hogy mennyire lenne jó házastárs. Képfeldolgozáson élek és sarokpontok automatizált keresésénel elméleti hátterével, megoldások összehasonlításával, jellemző pontokkal és képpiramisokkal foglalkoztunk. Ezekhez a témákhoz valamennyi matek is társult. Egyik órán a képek bitszintű feldolgozásáról is szó volt, ami elengedhetetlen a (közel) valós idejű működéshez. Menedzsmenten a vezetők szerepköreiről, higiénés és motivációs tényezőkről volt szó, legalábbis ezeket jegyzeteltem le. A Szofttech előadások további clean code technikákról, build toolokról és CI+CD-ről, illetve tesztelésről szóltak. A telepítési problémák leküzdése után nekilendültünk a Projektmunka programozásának, illetve a kotlinos Android beadandómat is elkezdtem a hónap közepén, ami még mostanában is fejlesztés alatt áll, már csak hobbiszinten. Archin a CPU részeivel, különféle számábrázolási, -tárolási megoldásokkal, minél hatékonyabb aritmetikai-műveletvégzéssel foglalkoztunk. A laborokon érdekes kis programokat készítettünk: felhasználói bevitel szűrése, vermek, ferde hajítás szimulációja, pixeles rajzolás, stb. VIR-en a számlák adatainak tárolásáról, azonosítók elnevezési konvencióiról volt szó. Érintettünk általam érdekesnek talált témákat, de az alaptémával, vagyis a közgazdaságtant továbbra sem szerettem meg, illetve az összetett adattáblák részeinek megjegyzése is nehézségeket okozott. Az október 21-ei zh-ra igyekeztünk eleget tanulni, ami néha átcsapott az adatbázisbeli táblák némely oszlopainak létjogosultságának vagy helyének vitatásába. Ez egy tesztes dolgozat volt, nem mondom, hogy nem többéves hagyományokat követve, összeállításához hozott anyagot felhasználva. Szerencsére sok logikus gondolkodást igénylő kérdés volt köztük, szóval nem a magolás eredményének prezentálását várta el, ezért elég jól sikerült. Talán a hónapban voltak már néha indokolatlanul elmaradó laborok is VIR-ből, amik nekem közvetlenül az Etikus hackelés után, csütörtök este 6-tól fél 8-ig tartottak. Sokszor nehezemre esett figyelni, ezért inkább a világ szép helyeit fedeztem fel a Google Maps utcakép módjában. Talán az első laboron például a teafőzés nagyon részletes folyamatábráját készítettük el, aztán meg a tárgyfelvételi időszakokat kellett hasonló módon lemodellezni. 30-án Webszerkesztésből írtunk egy félig elméleti, de konkrét HTML+CSS feladatokat is tartalmazó zárthelyit. Ezután ugye visszamentem a Bécsi útra, mert Menedzsment alapjai is van a világon. Óra közepén egyszer csak váratlanul mondta a tanár, hogy most írni fogunk egy röpdolgozatot, amivel 30%-kal fel lehet javítani a több hét múlva esedékes zh eredményét. Talán vezetői magatartásokat kellett abból következő hatásokhoz párosítani. A támasztott követelményeket majdnem mindannyian teljesítettük, ezért megkaptuk az engedményt. A helyzetkomikum forrása viszont az volt, hogy a 200 főből csak 20-an voltunk jelen, ezért sokan lemaradtak erről a kiváló lehetőségről. Október 31. különleges nap volt a számomra, ugyanis pont 10 évvel azelőtt töltöttem fel életem első videóját a YouTube-ra, ami egy fehér lapra tett sárga LEGO-kocka Movie Maker effektussal szívárványszínűvé tételét mutatta be. Gondoltam, hogy a régi videóim egymás után vágott gyűjteményét pont ezen évforduló alkalmából teszem újra nyilvánossá. Mindent nagyon gondosan előkészítettem: a válogatást már egy hónappal előtte összeraktam, megírtam a videó leírását, és aznap reggel már az otthoni gépről fel is töltöttem, de még nem tettem közzé. A videófájl és a leírás le volt töltve a laptopomra és a pendrive-omra is, egy hordozható TeamViewerrel együtt, hogy iskolai gépről is tudjam távolról vezérelni a folyamatokat. Beültem a VIR-laborra, egy konnektor melletti helyre, és beüzemeltem a távoli vezérlést, egyszerre két módszerrel, hogy minden be legyen biztosítva. Elkezdtem az egyetem hálózatáról is feltölteni a videót, hogy kiküszöböljem a reggel óta emiatt járatott otthoni gép esetleges hibáit. Bevallom, nehezen tudtam figyelni az óra első 40 percében, amikor vártam a 18:35:40-es időpontot, ami az első videó renderelésének befejezési ideje volt 10 éve. Pontosan az említett másodpercben rákattintottam a "Közzététel"-gombra, a pontos időhöz igazodva. A YouTube kicsit megtréfált, mert 3 másodpercig még feldolgozta, tehát nem pontosan a kívánt időpontban került fel a videó, de én minden tőlem telhetőt megtettem ennek érdekében. Még gyorsan felraktam a videók közé beékelődött három zenét is SoundCloudra, taktikusan egy perccel később, hogy az a blogomon később jelenjen meg. Jó lenne, ha lennének új videóötleteim is, de legalább a régiek is ismét megnézhetőek.

ZÁRT Labor
Már több mint egy órája egyébként a Tavaszmező utcában vagyok, Keleti Károly Gazdasági Kar épületének alagsorában. Három óra múlva kezdődik a méltán kedvelt, ebből adódóan kiemelkedően nagy számban látogatott Államigazgatási és jogi ismeretek előadás. Visszatérve a múlt eseményeire, november 4-én ismét írtunk Vállalati információs rendszerekből, de ezúttal gyakorlati feladatokból. Meg voltak adva készlet- és cikkadatok, illetve tranzakciók: ezekből először meg kellett állapítani, hogy egyedi beszerzési áras vagy mérlegelt átlagáras modellt használ a példa, és ki kellett bővíteni a megkezdett táblázatokat. Nem volt egyszerű. Az elegendő felkészülést bizonyítja, hogy még papíron osztani is megtanultam újra, és ezzel nem voltam egyedül. Adatpárhuzamos programozáson ebben a hónapban a videókártyák optimalizáció miatt ismerendő tulajdonságairól, az úgynevezett "occupanciról", a streamekről és eseményekről beszéltünk, laborokon ezzel kapcsolatos feladatokat oldottunk meg, vagy kezdtünk beléjük. Androidhoz adatkötéssel, viewmodellel, adatbáziskezeléssel, illetve teszteléssel kapcsolatos tananyagokat töltöttek fel; egy részüket talán még októberben. Én főleg az alkalmazásom logikájával szenvedtem, miután készítettem hozzá pixeles animációkat. Az nehezítette meg a fejlesztést, hogy az utóbbi pár évben sok, korábban minden fejlesztő által használt keretrendszert, modult, fejlesztési technikát elavultnak nyilvánítottak, így csak a korlátozott mennyiségű új oktatóanyagból, leírásból kellett kiindulni. Ezzel együtt Java helyett Kotlin megoldásokat kellett keresni, mert az a korszerű. Mondjuk vicces, hogy a komplett Android API Javában van megírva, és sok függvényt nem is lehet (még) Kotlinból elérni, de azért utóbbi lett kinevezve hivatalosnak. Etikus hacken offline és online jelszótörési módszerekkel foglalkoztunk: főleg szótár alapúakkal, kiegészítve szabályfájlok alkalmazásával, amik közül temérdek mennyiségűt gyártottak. Egy milliós jelszólista minimum könnyen megszázszorozható, ilyenek használatával. A hónapban elkezdtem dolgozni a Deep Learning beadandón is. Azt találtam ki, hogy korábbi angol focimeccsek félidős és meccsvégi adataiból talán lehetne következtetni az esélyekre, ha megadjuk az összecsapó feleket. Sajnos ez nem bizonyult igaznak, mert a datasetben, amit találtam, nem a legmegfelelőbb adatok voltak, illetve hiába tápláltam be a rendszerbe több ezer meccs adatait, ha azóta többször kicserélődtek már a csapatok tagjai. A Projektmunka mellett a Képfeldolgozás házin is igyekeztem eleget dolgozni, bár már októberben előfordult, hogy hetekre megakadtam benne. Egy webkamerát használó, tehát élő, egyszerű képszerkesztőt próbáltam OpenCV és egyéb Python könyvtárak felhasználásával, viszont az egyes transzformációk logikai részét önállóan megírva. Első problémám akkor jelentkezett, amikor élőben próbáltam negatívvá tenni a kameraképet, ami nagyon lassú volt. Próbáltam adatpárhuzamosságot elérni, tehát több szálra bízni a kép különálló területeinek átváltoztatását, de ez sem segített semmit. Végül a Python nyelvben mágikus képességekkel rendelkező kettőspont használata mentett meg. Csináltam a programba negálás mellett fényerőt, kontrasztot, színhőmérsékletet változtató funkciót, illetve hisztogram-kiegyenlítést, sajnos sokáig hibásan működő kontraszt-nyújtást is. Utóbbiakhoz a kép hisztrogramjának elkészítésére volt szükség, ami nem működött valós időben. Először tíz, majd csak 1-2 másodpercet igényelt. Az előadásokon egy objektum pontjainak több koordinátarendszerhez viszonyításának, illetve eltolási és/vagy forgatási műveletek geometriai hátteréről beszéltünk (vagy inkább rajzoltunk), illetve küszöbölési technikákról és egész képre vonatkozó leírókról (pl. lánckód, szignatúra). Ja és persze nem szabad és nem is lehet megfeledkezni a valahányadrendű nyomatékokról és a nyomatéki főtengelyről. Bevallom, a legtisztábban annyi rémlik, hogy egy folt területe megegyezik a nulladrendű nyomatékával. Eddig nem nagyon írtam a Menedzsment gyakorlatokról, mert szinte mindegyik nagyon hasonló volt. Minden órára készítettek néhányan egy 10 perces prezentációt valamilyen menedzsmenttel kapcsolatos témáról, vagy kivételes esetben a hobbijukról, amit a gyakorlatokon elő kellett adni. Én az önmenedzselést kaptam, amiről körülbelül semmi objektív információt nem találtam, csak mindenféle gyakorlati tanácsot, tippet. Egyszer előfordult az is, hogy személyiségteszteket kellett kitölteni. Én nem nagyon szeretem az ilyesmit, mert egyrészt nem az szokott kijönni belőlük eredményként, ami tényleg igaz rám, és az is torzítja a képet, hogy sokszor egyszerű rájönni, hogy melyik kimenetel érdekében milyen válaszokat kell adni. Ezen az órán néhány fa lerajzolása is feladat volt. Én mindenféle iróniát mellőzve egy élekből és csomópontokból, csúcsokból álló fa adatszerkezetet rajzoltam, gondolván, hogy majd valamiket rá kell írni. Erre kiderült, hogy növényt kellett volna. Jó, ha ez kell, akkor legyen: rajzoltam egy szép egyszínű fát, madárfészekkel és körmét erősítő macskával együtt. Erre kiderül, hogy annak is jelentése van, hogy a lapon hová rajzolom a fát. Mivel a lap tetejéből már elvett valamennyi helyet a valódi informatikai fa, ezért persze elcsúszott a növény is. Ebből a megalkuvás meg nem tudom mi jött ki, de elég értelmetlen volt ez a teszt. A következő lapra ismét le kellett a növényt rajzolni, emlékezetből. Persze nem pont ugyanolyan irányokba hajlottak az ágak, illetve textúra gyanánt húztam vonalakat a fa törzsére. Elvileg nem vagyok elég kalandvágyó, vagy nem tudom micsoda, amiért a lap felső részére rajzoltam a második fát, ahelyett, hogy elhasználtam volna a papír egészét. 13-án, tehát az előző röpdolgozatot követő előadáson ismét váratlan dolog történt: ezúttal egy teljes zárthelyi kiváltására alkalmas elődolgozatot írhattunk meg, az évfolyam tizede, aki véletlen ott volt. A többiek gondolom nem számítottak rá, hogy a két héttel azelőtt elmulasztott javítási lehetőség után még egy ilyen történik. Bár lehet, hogy nem lett volna, ha sokan jövünk el az órára... Az előző mondat óta eltelt körülbelül 8 nap, most már otthonról írok. Szombat van, szerdán még voltam az egyetemen, aztán meglepődve tapasztaltam, hogy másnaptól már megtiltották az épületek látogatását, illetve a kollégiumokat is el kellett hagyni a napokban. Utóbbi intézkedés szerencsére engem nem érint, de gondolom sokaknak okoz problémát. Csütörtökön már volt egy online laborom, jövő héten eddigi években nem igazán egzisztáló tavaszi szünet lesz, utána pedig a lehető legtöbb tárgyból távoktatás. Több tárgyam teljesítése igényel önálló programozást, amit eddig is otthonról, vagy szünetekben az aulából végeztem, tehát előbbi helyszínen ez a továbbiakban is folytatható. Visszatérve a novemberi eseményekre: következő hét hétfőjén én is előadtam kis prezentációmat az önmenedzselésről, főként időbeosztással kapcsolatos gyakorlati tippeket, az ahhoz szükséges jellemvonásokat bemutatva. Mindezt 9-10 diában, 10 perc alatt elmondva, szóval nem túl mélyenszántóan, de mint korábban említettem, nem is nagyon találtam hozzá megfelelő forrásokat. MSZT-n a Java Message Service-ről, skálázható adattárolásról, Dockerről és egyéb konténer-technológiákról hallottunk, Archin pedig többek között a CPU és egyéb eszközök között adatot továbbító buszrendszerekről, a DDR memóriák generációiról és a Direct Memory Accessről, ami a processzor válláról (?) vesz le terhet az I/O-eszközökkel való kommunikációban. Vállalati információs rendszerek hátralévő két előadásán biztonsági mentésről, visszaállításról, egyéb szerviz funkciókról, és az üzleti partnerek közötti kommunikációs lehetőségekről esett szó. Majdnem megfeledkeztem annak megemlítéséről, hogy miket csináltunk a VIR-laborokon. Csapatokra osztva megpróbáltuk lemodellezni egy valamilyen fizikai terméket raktározó és eladó, kisebb/közepes méretű cég működését. Még októberben mindenki beosztásra került valamelyik részleghez. Gyors kézfelemelések és jelenléti íven végrehajtott randomizációk útján én két hallgatótársammal a SZAM, vagyis a Szállítói Ajánlatkérés Megrendelés csoportba kerültem. Első házi feladatként azt kaptuk, hogy egy táblázatba vigyünk be szolgáltatásokat, amiket egy ilyen részlegnek kell nyújtania, megfontolva, hogy ezekhez mely más részlegekkel kell kapcsolatot létesítenie, tekintettel az adandó és kérendő adatokra. A SZAM kapcsolatban kénytelen állni a cikk- és készletnyilvántartást vezetőkkel, a számlázást végző csoporttal és a szállítócégek adatait kezelőkkel is. Utóbbiak létének céljáról megoszlottak a vélemények.

Bliss.jpg
December első napján, este 23:59-ig kellett beküldenem az összes házit Etikus hackre, köztük az offline jelszórörésről szólót is, melyben kitalált felhasználók hash-stringjeiből kellett visszafejteni – lehetőleg nem hónapokat igénybe véve – könnyebb-nehezebb jelszavait. Ehhez GPU-val gyorsított, szótárfájlt és szabályokat felhasználni képes, automatikus jelszótörő alkalmazásra volt szükség. Előfordult, hogy a popkulturális utalást tartalmazó névből (pl. "Mézga Géza") kiindulva kellett hozzá kapcsolódó szavakat tartalmazó listát készítenem. Lehet, hogy konfigurációs problémák okozták, de Frodo jelszavát nem sikerült sehogysem megfejtenem, hiába engedtem rá egy A Gyűrűk Ura könyvek teljes szövegét, illetve több Wikipédia-oldal tartalmát tartalmazó angol-magyar szótárfájlt. Még egy speciális karakterek előfordulása miatt nagyon hosszadalmas bruteforce-támadással is dolgoztattam a gépemet, mindhiába. Bár így utólag visszagondolva, lehet a "Frodo" név a L'art pour L'art társulat "Osztályfőnöki óra" című mesterművének Laár András által megtestesített szereplőjére utalt... Voltak még Nmap-pel végzendő portszkennelést, egyszerű sérülékenység-keresést igénylő házik is, illetve az Nmap néhány HTTP-scriptjét is ki kellett próbálni. Következő héten zh-dömping volt: szerdán Számítógép architektúrák alapjai labor, nem sokkal utána Képfeldolgozás elméleti majd gyakorlati számonkérés, csütörtökön pedig egy becsapós kérdésekkel teli Modern szoftvertechnológia teszt. Arra is készültem, bár igyekezhettem volna jobban is, ugyanis az Archi laboron sajnos egyest kaptam. Mivel rendszeresen beküldtem az órán elkezdett, de otthonra maradt feladatokat – melyekben két-három csoporttársam sokat segítettek, tehát nekik ismét köszönöm – a ketteshez a 6-ból mindössze két feladatot kellett teljesíteni, viszont azokat hiba nélkül. Egyetlen sikerült is, viszont leütött billentyűk számként vagy betűként besorolása, és szimmetrikus forma (pl. A-betű, rombusz) ciklusok alkalmazásával történő kirajzolása már nem, hiába oldottunk meg korábban hasonló feladatokat. A korábban nem teljesen megértett időzítésen alapuló programrészbe, és a kapu és labda kapcsolatán alapuló egydimenziós focis játékba is belekezdtem, de sajnos részen belüli részpontokat nem lehetett kapni. Képfeldolgozásra előző nap egy hosszú Discord-beszélgetés alkalmával elég sokat készültünk. Előtte is tanulgattam rá, de sok dolgot a zárthelyi előtti pár napban értettem meg. Mint említettem, gyakorlati része is volt a dolgozatnak, ami Excelben néhány számmal reprezentált, tehát kisfelbontású képen élkeresési és hisztogrammal kapcsolatos feladatokból állt főként. Emellett papíron kellett egy ábra lánckódját felírni, egy másikról pedig szignatúra-grafikont készíteni. Pluszpontért meg lehetett volna még egy feladatot oldani, de az térlátást igényelt volna, amiben én nem bővelkedek. Nagy meglepetésemre – mivel emlékeim szerint kevésbé általam kedvelt témákat is taglalt – több mint 80%-ot értem el az elméleti részben, a gyakorlatin pedig 50-et, részproblémák miatt. Az MSZT tesztre erős négyest kaptam, amivel bekerültem azon szerencsések körébe, akik megajánlott jegyet kapva mentesültek a szóbeli vizsga alól. Ehhez nagyban hozzájárult, hogy minden órán igyekeztem kvantitatív és kvalitatív szempontból is megfelelő jegyzetet írni. Ez nem csak nekem jött jól, vizsgára készülve tíznél is többen köszönték meg. Talán még nem említettem, hogy a 2. VIR zh-ra bináris értékelést (igen/nem) kaptunk, vagy ha precízebb akarok lenni, akkor Boolean? típusút, mert voltak, akik hiányoztak. Nekem sikerült szerencsére, bár a tízperces időkeretből vagy öt elment a példában szereplő árazási modell megállapítására. A laborok egy része elmaradt, mondván, hogy a szolgáltatások táblázatát javítgassuk, bővítgessük. 5-én be kellett fejezni az utolsó házit: a szolgáltatásainkhoz folyamatábrákat kellett gyártani a díjnyertes Signavio üzleti folyamat modellező programmal. December 9-én, hétfőn elővizsgán is részt vehettünk a tárgyból, ami egy nem túl hosszú tesztsor volt. Sokakkal együtt négyest kaptam, így ebből a tárgyból is megúsztam a szóbelit. Ezen eredményeknek egy másik vizsgára nagyon pozitív hatása volt, de erről még később. Előző héten, a Modern szoftvertechnológia teszt után csoporttársaim és a tanár árgus tekintetei előtt prezentálni kellett a CUDA-beadandómat. A demó nem sikerült zökkenőmentesen, mert a tanári gépen jóval lassabban futott az átlagos idő mérése miatt egymás után többször végrehajtott éldetektálás, én meg menet közben meg is nyitottam a képfájlt, így a Windows folyamata meg is fogta azt, tehát jogosultsági összetűzés alakult ki. Nagyon nem voltam egyedül az élkeresési feladattal, de azért mindenki kicsit máshogy oldotta meg. Hármast kaptam, ami a bemutatás minősége mellett szólt a nem legoptimálisabb végrehajtásnak is, és persze a kiemelkedő beadandókat is értékelni kell a rosszabbakhoz viszonyítva. Vasárnap este volt a Weblapszerkesztés és a Képfeldolgozás beadandó beküldési határideje. Előbbin nagyon sok dolgot át kellett dolgozni az utolsó napokban, hogy a konzultáción említett, főleg használhatósági és szemantikai szempontoknak megfeleljen. Utóbbihoz pedig egy utólagos dokumentációt is gyártani kellett, melyben az egyes funkciók működését magyaráztam, illetve beletettem néhány képet a működésről, ha később nem működne annyira látványosan. Még nem említettem, hogy teljesítménnyel, programozással és időbeosztással kapcsolatos problémák miatt ugyan kihagytam tervezett funkciókat, de bele is raktam néhány újat a webkameraképpel dolgozó élő képszerkesztőmbe. A fényeket, színeket módosító lehetőségek mellett megvalósítottam a kontraszt nyújtást, hisztogram kiegyenlítést, a binarizálást hiszterézises küszöböléssel, illetve a zöldháttér Windows XP-ből ismert Bliss.jpg-re cserélését is lehetővé tettem, hogy legyen valami talán kicsit ötletesebb, látványosabb funkció is. Ez utóbbit úgy valósítottam meg, hogy a kép egy pontjára kattintva kijelölhető annak színe, majd csúszkákkal kijelölhető az a színtartomány vagy tűréshatár, amin belül átlátszóvá válnak a pixelek, így kicserélhetővé válhatnak bármilyen képre. Valamiért nem minden színre működött tökéletesen, de még rossz fényviszonyok között is látványos tudott lenni, ha jól belőttem a tűréshatárokat. Következő kedden bemutattam a focival kapcsolatos neurális hálómat, ami sajnos minden erőfeszítésem ellenére nagyon gyengén működött csak, gyakran 50%-nál is rosszabban. A tanítóadatok sem voltak a meccs kimenetelének becslésére teljesen megfelelők, és biztosan én is elrontottam pár dolgot. Miután prezentáltam "eredményeimet", a tanár mondta, hogy a másik csoportban is csinált valaki hasonló programot, szintén az angol focicsapatokról, de neki sem lett sokkal pontosabb. Remélem a hármast nem a plagizálás alaptalan gyanúja miatt kaptam. Egyetlen oka volt, amiért angol csapatokat választottam a feladathoz: amikor először megnyitottuk az esetlegesen másolt lemezről a FIFA 2002-t, a nagyapám azt tanácsolta, hogy válasszam az Arsenalt, mert az egy jó csapat. Ezt sem megerősíteni, sem megcáfolni nem tudom, mert "nem értek a focihoz". Az előző szerdához hasonlóan ez is eseménydús volt. Reggel megírtam a javító zh-t Archiból. Előző héten minden kérdésemet feltettem a labvezünknek, hogy később ne érjenek meglepetések. A dolgozat közben is inkább megmutattam több feladatmegoldásomat is, hogy biztosan elfogadható-e mint hibátlan rész, annak érdekében, hogy nehogy ismét egyest kapjak, viszont ezúttal abban a tudatban, hogy elegendő pontom lett. Szerencsére (és gyakorlásra) 6-ból 5 feladat hibátlan lett, szóval végre ezen is túl voltam. Következő órán a képszerkesztőt is bemutattam, kicsit szégyenkezve a jobbnál jobb, érdekes és kreatív projektek árnyékában. Egy zöld dossziét is vittem magammal, bizonyítékok tárolása helyett zöldháttér gyanánt. Ezután következett a Weblapszerkesztés gyakorlati zh, viszont egy csoporttársammal nem tudtunk volna időben odaérni a Népszínház utcába, így a tanár engedélyét megkapva távolról is megírhattuk a dolgozatot. A helyszín a 12 év után felújított Kandó Kollégium egyik tanulószobája volt, ahol konnektor és LAN-kábel is van. Különböző képernyőméreteken megjelenítve kaptunk screenshotokat egy honlapról, ami ha jól emlékszem, valamilyen orvosi vizsgálatról és időpontfoglalásról szólt. A feladat célja nem a tartalom, hanem az elrendezés rekonstruálása volt, így elég eklektikus eredmény született: az azóta elkészült, egy kiskereskedést és annak termékeit bemutató féléves feladatom szövege és képei keveredtek össze az orvosi vizsgálattal kapcsolatos címsorokkal. Eléggé megterhelő zárthelyi volt ez és a weboldal néhány részét időhiány miatt ki is kellett hagynom. Négyest kaptam rá, de azt alulról súrolta. Körülbelül ezzel be is fejeződött a szorgalmi időszak, és nekikezdtünk a vizsgaidőszaknak. Korábban említettem, hogy két tárgyból is megúsztam a szóbeli vizsgát. Ez azért jött nagyon jól, mert így körülbelül két hetem volt, hogy a nagyon sok anyagrészt felölelő Archi 1 vizsgára felkészüljek. Karácsony előtt vagy egy hétig jó sokat fejlesztettem az Android beadandómon is, amiről eddig még véletlen le sem írtam, hogy milyen témájú. Ezért most sem írom le, majd a következő bekezdésben. Pár hét várakozás után megkaptuk VIR-ből a laborteljesítményt méltányló aláírásokat, méghozzá a Neptunban úgy elkönyvelve, mintha december 31-én 23:30-kor vettünk volna részt egy vizsgán. Fotókkal, videókkal és cellainformációkkal tudom alátámasztani, hogy akkor valamiért nem tartózkodtam az egyetem egyik épületében sem.

Hét év után ideje volt megtisztítani...
Az Archi vizsgára eléggé hibrid módon készültem. Hallgattam az előadásokról készült videókat, amihez közben hasonlítgattam a OneNote-ban írt jegyzetemet. Kéznél volt a füzetem is, mert főleg a rajzokat, hosszabb levezetéseket oda írtam, illetve egy felsőbbéves által írt páréves jegyzetbe is néha belenéztem. A saját jegyzetemben kijavítottam a talált hibákat, hogy az újbóli átnézéskor már pontosabb információkat vehessek alapul. Biztosra mentem: a két hét alatt háromszor teljesen, egyszer pedig csak bizonyos részeket érintve megnéztem a jó sok tábla teleíródását bemutató videókat, és igyekeztem nem bemagolni, hanem megérteni az anyagot. Voltak ábrák, logikai áramköri rajzok, amiket a pont elegendően kiterjedt filces táblámon többször táblára vetettem. Az anyagban nagyon sok lista van: valaminek a típusai, részei, működési módjai, egy folyamat lépései, csoportosításának szempontjai, stb. Ezeket volt a legnehezebb megtanulni. A rajzok és néhány ilyen lista megtanulására azt a módszert alkalmaztam, hogy átnéztem őket este, de nem egyből, hanem csak másnap reggel rajzoltam/írtam le őket a táblára, anélkül, hogy aznap rájuk néztem volna. Persze nem mindent tudtam egyből helyesen táblára vetni, viszont így legalább objektívebben mérhettem meg, mennyire emlékszem, mintha átnézés után egy perccel, a rövidtávú memóriám alapján egyből lerajzoltam volna. Sokat készültem tehát, de így is aggódtam a vizsga miatt. Január 7-én, estefelé el is jött az alkalom, amin már annyira vártam, hogy végre túllegyek, de persze nem kívánva, hogy értékes napok fussanak el a vizsga előtti kritikus átnézési időszakban. A vizsgára 75-en jelentkeztünk, legalábbis a Neptun nekem azt írta ki. Nekem úgy tűnt, hogy ennél többen vagyunk, mert a 270 fős teremben alig lehetett helyet szerezni. Persze az is nehezítette a helyzetet, hogy az igazolványok ellenőrzése és az együttműködés elkerülésének érdekében egy-egy sort mindig ki kellett hagyni, és talán ezt az oszlopokkal is meg kellett tenni. Egy elég nagy, talán A3-as papírra voltak kinyomtatva a feladatok: tesztkérdések három témára bontva, és két kifejtős feladat a másik oldalon. Összesen talán 50 tesztkérdés volt, az én csoportomnak számábrázolással, tárolóeszközökkel és megszakításokkal kapcsolatosak. Vigyázni kellett, mert egyik feladatban csak a hamisakat, másikban csak az igazakat volt szabad bejelölni, a hibás, vagyis felesleges jelölés pedig pontlevonással járt. Ez azt jelentette, hogy ha nem voltam biztos egy válaszcsoport valamelyik tagjában, akkor biztonságosabb volt kihagyni, mert a nulla pont még mindig jobb mint a negatív. Eléggé megszenvedtem a kérdésekkel, mert nem a lexikális tudást kérték számon, hanem főként a megértést. Egy-kettő megfogalmazását sem tartottam egyértelműnek. A megoldást egyébként nem is a tesztekkel, hanem a több időt igénylő kifejtősökkel kezdtem, hogy azokon hamar túllendülhessek. Az egyikben egy BCD-összeadó logikai áramkörét kellett lerajzolni, beépített korrekciós áramkörrel, és egy konkrét összeadás bitjeit végigjelölgetni a bemeneteken és kimeneteken. Emlékszem, hogy felkészüléskor nehezen értettem meg ezt az áramkört, ezért nagyon jól tettem, hogy a vizsga napjának délelőttjén újra felrajzoltam és átnéztem. A másik feladatban az adattér részeit, tehát a regiszterteret és a memóriateret kellett jellemezni, és talán a valós és virtuális címzést kellett röviden összehasonlítani. Ezeket a feladatokat úgy éreztem, hogy közel hiánytalanul megoldottam, tehát már csak a teszteken múlt, hogy elérem-e az áhított 60%-ot (ami a tavalyi 66%-os kettes ponthatárhoz képest egy lényeges könnyítés). Legjobb tudásom szerint kitöltöttem a teszteket, kihagytam azt a néhányat, amiben nem voltam biztos, aztán hazamentem és vártam az eredményt. Pontosabban két hét kihagyás után folytattam az Android beadandóm programozását, hogy kicsit többet tudjon a január 14-ei bemutatásra. És akkor meg is ragadnám az alkalmat, hogy leírjam, milyen témájú ez a féléves feladatom. 2016 januárja óta van első majd második generációs Pebble okosórám, amin nem elégszer, de használtam a 7-Minute+ alkalmazást, amivel egy pálcikaember mozdulatait követve lehet az elvileg tudományosan megalapozott 7 perces edzést elvégezni. Az órámon futó programból inspirációt gyűjtve úgy gondoltam, hogy készítenék én is egy hasonlót, csak androidos telefonokra. Előtte soha nem készítettem pixeles animációkat, de októberben ezeket is megcsináltam az erre a célra szerintem tökéletes Aseprite programmal. Mind a 12 feladathoz maximum 8 képkockából álló, egy pálcikaembert és maximum egy padlót, falat vagy széket tartalmazó kis animációkat csináltam. Az oldaltámasznál először véletlen lemaradt a figura egyik karja, egy-két hét után pedig a végtagok eltérő színével igyekeztem nagyon minimális térhatást elérni. Az én alkalmazásom az órával is megoldható rezgés mellett a feladatok nevét is bemondja, és még vissza is számol, változtatható gyakorisággal. Ha jól emlékszem, pont a január 14-ei bemutatásra sikerült megoldanom azt is, hogy a háttérben az ébresztőóra API-ját, vagy valami hasonlót használva napi értesítést is tudjon küldeni a felhasználónak, hogy csinálja meg a feladatokat. A tárgy követelménye volt, hogy valamilyen adatbázist is tartalmazzon az applikáció. Én az edzés végrehajtásainak dátumát és idejét tároltam el első körben, az 1970. január 1. óta eltelt ezredmásodpercek rögzítésével. A havi edzések számát, az átlagos befejezési időt és a nagyon undorító kóddal, nagyon nehezen kiszenvedett szériaszámot, illetve persze a dátumokat és időket egy naptárban is megjelenítettem. 14-én tehát bemutattam a programomat, a feltételeknek megfelelt. A fejlesztés viszont nem állt le, mert még pont egy hónapon keresztül folytattam azt, míg február 14-én meg nem akadtam határozatlan időre, néhány felhasználói felülettel kapcsolatos hiba miatt. A vizsgaidőszak és szünet további részében a program összes adatát, tehát az egyes feladatok variációit, neveit, idejeit és az edzéstervekhez rendelését – most még az animációk képkockáit leszámítva – jó sok táblát tartalmazó, biztonsági menthető adatbázisban kezdtem tárolni. Minderre azért volt szükség, mert egy még nem teljesen megvalósított célom a 7percessel, hogy lehessen benne teljesen egyéni feladatokat rögzíteni, személyre szabott időtartamokkal, nevekkel, fotókkal. Az adatbázis ehhez majdnem teljesen megfelelő, viszont ahogy az előbb említettem, a felhasználói felület kidolgozásában megakadtam február közepén. És persze közben el is kezdődött a hatodik félév, szóval nem is volt időm Androiddal foglalkozni. Azért nem szeretném örökké így félbehagyni, szóval lehet jövő héten megint nekiveselkedek. Karácsony óta minden nap, tehát 83-szor megcsináltam az edzést. Általában túlságosan későn, egyszer konkrétan 0,6 másodperccel a szériát lenullázó éjfél előtt (!) fejeztem be, de a lényeg, hogy egy napot sem hagytam ki. Legalább ezt csinálom, ha futni nem is futok. Majdnem kifelejtettem az Archi vizsga eredményét! Nagyon meglepődtem, amikor a Neptun-kód–pontszám párokat tartalmazó táblázatban azt olvastam, hogy nem sok társammal együtt én is ötöst kaptam?! Azért persze reméltem, hogy kettes és négyes között lesz valahol az eredmény, de ötösre semmiképpen nem számítottam, mert voltak kérdéses kérdések (és válaszok) a vizsga tesztes részében. Nagy örömmel mentem be a megtekintésre is, ahol azt láttam, hogy egy-két hiányjelet azért kaptam a kifejtős részre, és néhány tesztkérdésnél rosszul karikáztam, de mégis összességében egész jól sikerült. Majd meglátjuk, hogy megy a tárgysorozat második és harmadik része.

Február elején ismét végleges tárgyfelvétellel egybekötött regisztrációs hét volt, most jóval kevesebb problémával mint tavaly. Nem mondom, hogy nem dőlt el egy-két tárgy sorsa 3 másodperc alatt, de mégis. Sajnos angol tárgyat még mindig nem tudtam felvenni, mert vagy csak ősszel indult, vagy ütközést okozott volna. Legalábbis azok, amiket kinéztem. Felvettem az Etikus hackelés második részét. Na, azzal voltak kavarodások, de ez maradjon inkább a következő félévről szóló bejegyzésembe, így is túl hosszúra sikeredett ez is.

Már a novemberről szóló bekezdésbem említettem, hogy szerdán voltam határozatlan ideig utoljára az egyetem épületében, mert a koronavírus-fertőzés továbbterjedését lassítandó távoktatást rendeltek el az összes egyetemen. Nálunk jövő héten tavaszi szünet lesz, utána pedig senki nem tudja, meddig marad még érvényben a veszélyhelyzet. A BME-n például augusztus 31-ig meghosszabbították a szorgalmi időszakot, hogy a laborméréseket és egyéb, csak helyben elvégezhető számonkéréseket meg tudják csinálni. Az Óbudain tudomásom szerint még nem hosszabbították meg, de simán elképzelhető, hogy itt is meglépik ezt. A kollégiumokat is el kellett hagynia a napokban a magyar lakcímmel rendelkezőknek, ami tudomásom szerint a MÁV-ra is nagy nyomást helyezett. Azóta bezárták az iskolákat is, itt Pomázon, meg gondolom sok más helyen is tegnap óta az óvodákat és bölcsődéket is. Én itthonról igyekszem a programozást igénylő beadandóimmal haladni, aztán kíváncsian várom, hogyan fogják megszervezni a távoktatást mind az egyetemeken, mind a többi oktatási intézményben.

-----

Tanulmányi átlag: 4,34
Megszerzett kreditek: 29+32+27+37+32/210 (BSc ~74,8%)
[85 EAdás: ~121,25 óra + 59 Labor: ~93,5 óra + 6 GYakorlat: ~óra + 5 Konzultáció: ~óra]

Tantárgyak:
  • Adatpárhuzamos programozás (2 kr, 3-as)
    • [6 EA: ~9 ó + 6 L: ~9 ó]
  • Android programozás Kotlin nyelven (3 kr, 5-ös)
    • [1 K: ~1 ó]
  • Bevezetés az etikus hackelés gyakorlatába I. (3 kr, 5-ös)
    • [13 EA: ~20 ó + 12 L: ~18 ó]
    • >> Bevezetés az etikus hackelés gyakorlatába II. (3 kr)
  • Deep Learning I. (2 kr, 3-as)
    • [12 L: ~18 ó]
    • >> Deep Learning II. (2 kr)
  • Képfeldolgozás alap algoritmusai (4 kr, 4-es)
    • [11 EA: ~16,5 ó + 1 L: ~1,5 ó]
  • Menedzsment alapjai (3 kr, 5-ös)
    • [5 EA: ~7,5 ó + 6 GY: ~9 ó]
  • Modern szoftvertechnológia (2 kr, 4-es)
    • [13 EA: ~19,5 ó]
  • Projektmunka II. (2 kr, 5-ös)
    • [3 K: ~1 ó]
    • >> Projektmunka III. (2 kr)
  • Számítógép architektúrák alapjai (4 kr, 5-ös)
    • [13 EA: ~19,5 ó + 12 L: ~18 ó]
    • >> Korszerű számítógép architektúrák I. (2 kr)
  • Vállalati információs rendszerek (4 kr, 4-es)
    • [15 EA: ~22,5 ó + 6 L: ~9 ó]
  • Weblapszerkesztés (3 kr, 4-es)
    • [9 EA: ~6,75 ó + 10 L: ~20 ó + 1 K: ~3 ó]
Varga László írta...

Óriási munka van a leírás hátterében. Nagyon elismerjük a kitartó, eredményes munkádat. További sikeres tanulmányokat kívánunk!!!

MEGJEGYZÉSEK: