2020. október 17. 18:48 @ Pomáz, Magyarország

Hatodik félévem az egyetemen

2020 februárjában ismét folytattam tanulmányaimat az Óbudai Egyetem mérnökinformatikus képzésében. Ekkor kezdődött a hatodik, tehát az eredeti tervek szerint utolsóelőtti, alapképzésben töltött félévem, mely több szempontból különleges volt. A fő eltérést a korábbiakhoz képest a koronavírus-helyzet miatt kényszerűen meghozott átállás jelentette a távoktatási formára, mely a szemeszter megkezdése után bő egy hónappal meg is történt nálunk...

Ebben a félévben ismét tetőzött a felvett tárgyaim száma: 11 db-bal kellett megküzdenem, bár voltak köztük virtuálisabbnak tekinthetőek is. A képzésünk fő irányvonalától enyhén szólva idegen tárgy volt az Államigazgatási és jogi ismeretek, melynek nevében a két jelző sorrendjét, és még ki tudja mi mindent változtattak meg az előző tantervhez képest. Egy éve már párszor részt vettem ezen tárgy meditatív hangulatú tanóráinak utolsó percein, talán Rendszerelméletre várakozva. Akkoriban karonként külön tartották, nekünk viszont összevonták a kandósokkal és bánkisokkal, talán még a keletisekkel is. Ezzel összefüggésben nem a Bécsi úton, hanem a Kandó és a Keleti Tavaszmező utcai, a maga 14 évével legújabb épületében tartották meg a tárgy előadásait. A tanárnőt csak egyszer láttuk, utána egy ügyvéd tartotta az előadásokat, melyek nem örvendtek túlzott érdeklődésnek, csak a katalógus kötelező mivoltából adódó mértékben. Visszaevezve informatikai vizekre: az ASP.NET és MVC tárgy nekem kifejezetten tetszett, mert hasonló célú programokat írtunk mint Prog3-on Java servletekkel és JSP-vel, tehát dinamikus webalkalmazásokat, viszont sokkal újabb technológiákkal és MVC szemlélettel, ráadásul már a Microsoft nyílt forráskódú és multiplatform .NET Core-jára alapozva. Egy különleges tárgy volt a Bevezetés a számítógéppel támogatott sebészetbe, mivel ezt az egyetem Kiscelli utcából pár éve a Bécsi útra költöztetett robotlaborjában tartották. Nyilván nem váltam képzett sebésszé ennek a tárgynak a hatására, de megismerkedtem az orvosok munkáját segítő informatikai módszerekkel, modern műtéti eszközökkel, különös tekintettel a minimálinvazív sebészetben alkalmazott sebészrobotokkal. A Bevezetés az etikus hackelés gyakorlatába II. az előző félévben megkezdett tanulmányok közvetlen folytatása volt, ezúttal többek között a felderítés utáni jogosultságszerzésre és a buffertúlcsordulás kihasználási módjára koncentrálva. A Deep Learning II. jóval gyakorlatorientáltabb volt mint a tárgy első része, és immáron C# és CNTK helyett Pyhonon és a Keras keretrendszeren alapult, néhány egyéb könyvtár támogatásával. A Haladó algoritmusok volt talán az egyetlen kötelező szakirányos tárgy a félévben, amiben sztochasztikus, tehát véletlenségen alapuló, de ötletes, hasznos algoritmusokról tanultunk, mellyel különféle optimalizálási feladatokat lehet elvégezni. A Korszerű számítógép architektúrák I. tárgy folytatta a processzorok működésének bemutatását, de jobban koncentrálva a különféle CPU-családok, generációk újításaira mint az elvi alapokra. A Nagyvállalati szoftverfejlesztés Java alapon az EPAM cég enterprise Java és Spring tanfolyamára épült, melynek során szintén dinamikus webalkalmazások voltak a fókuszban, hasonlóan az ASP-hez. A Projektmunka III. és a Szakdolgozat I. gyakorlatilag ugyanannak az érmének a két oldala, a konzultációkat leszámítva megtartott tanórák nélkül. Előbbi a projektfeladat továbbfejlesztését, utóbbi pedig ennek dokumentálását, a szakdolgozat részbeni megírását jelentette. Volt még egy eredendően e-learning tárgyként indított kurzusom is: Webprogramozás (PHP), mely nem valamilyen keretrendszerről, hanem a PHP nyelv alapjairól szólt, sajnos nem elegendően sok és szerteágazó tananyaggal.

A szorgalmi időszak első napja február 10. volt. A sok tárgy ellenére az órarendemben sok lyuk volt, ezért már az első héttől kezdve ezeket a szüneteket ötletelésre, fejlesztésre fordítottuk a
projektmunka-társammal. Volt, hogy sok órával egy előadás vagy labor előtt értem be, volt, hogy tovább bent maradtam, hogy tudjunk haladni. Februárban Jogon a jogrendszer tagozódásáról, a jogcsaládok alapvető történelmével, hatályosságról, a jogalkalmazás gyakorlatáról, alapfogalmakról volt szó. ASP-n a Model-View-Controller felosztás megértésével, űrlapok feldolgozásával, a repository-k alkalmazásával foglalkoztunk. Sebészeten megtekintettük az egyetem robotjait, az orvosi képalkotásba kezdtünk bele, illetve a előzetes műtéti tervezésbe, a tervnek való megfelelés folyamatos kontrolljába. Valamelyik órán én is részt vettem az egyetemen is működő Da Vinci robot egyik kísérletében is. Mármint nem mint sebészeti beavatkozás áldozata, hanem a sebészrobot vezérlőivel kezelhető autószimulátort kipróbálva, amiben az volt a lényeg, hogy fejemet teljesen el kellett vennem a lefelé néző VR-szemüvegre hasonlító résztől, és addig telefonoztam, míg meg nem szólalt egy hang, amire gyorsan vissza kellett térnem a virtuális vezetési helyzetbe, és elkerülni a balesetet. Nem volt könnyű, mert itt nem lehetett a látótér perifériájára hagyatkozni, és szerintem a kormányt formáló karok is túl érzékenyek voltak a kis elmozdításokra. Etikus hack 2-n cross-site scriptinggel és kliens oldali, például Office-dokumentumokba ágyazott kódokat alkalmazó támadásokkal foglalkoztunk. Az első hetekben volt némi kavarodás, mert a Neptunba nem került be a tárgy ideje és helye, ezért csak a tanár téli jóslására tudtam alapozni, hogy valószínűleg ugyanott és ugyanakkor lesz most is. Az időszak stimmelt, tehát 3 órányi előadás+labor csütörtökön, de az első héten már más órát tartottak akkor a korábbi teremben. Pont időben adtam fel az ajtónál várakozást, és mentem le az aulába, amikor szembe jött a tanár, közölve, hogy a Kandó Kollégium 48 fős, tehát „dupla” laborjában leszünk. Csak néhányan vettünk részt a tárgy fizikailag megtartott, majd online változatán, de ez szerintem nagyban következett a Neptun adathiányos állapotából, mert az eléggé megnehezítette a tervezést, így valószínűleg olyanok se csatlakoztak hozzánk, akik korábban tervezték. Abban a néhány hétben, amíg nem otthonról zajlott a tanulás, voltak még problémák a hackelés helyszínével: a nyílt labor is le volt foglalva este, ezért néha járkálnunk kellett az épületek között. Olyan is történt, hogy a mozdonyos épületben kezdtünk az elméleti résszel, majd átmentünk a NIK-re, aztán óra közben mégis át kellett mennünk a kollégiumba. Néhány házit is kaptunk, például egy XSS játék megoldását. DL2-n először a Python alapjaival kezdtünk foglalkozni, amivel én már dolgoztam kb. fél évet, a projektmunka miatt, de hamar áttértünk a NumPy könyvtár adatkezelési lehetőségeire, majd a Kerasszal való neurális háló-tanítás alapjaira. Halalon, ahogy a tárgy honlapját készítő tanár, és mindenki más is hívja, a heurisztikus módszerek és az optimalizáció alapfogalmaival, illetve a legegyszerűbb sztochasztikus algoritmus, a hegymászó módszer két típusával ismerkedtünk meg. Ezek mellett fontos volt a problématér és a keresési tér közötti átjárás megértése is. Archi2-n a párhuzamos végrehajtásról, történeti áttekintésről, adat- és egyéb függőségek detektálásáról, kezeléséről, illetve a futószalag processzorok bevezetéséről esett szó. Javából nem voltak laborok, és fizikai előadások sem, hanem rengeteg előre rögzített videót és példakódokat kaptunk. Az első hetekben a SOLID-elvekről, tervezési mintákról, optimális működést célzó javás trükkökről szóltak ezek. Néhány online konzultáció is volt, párszor az Etikus hack 2 időpontjában, ezért előfordult, hogy a tanárt hallgatva, a kivetítőt és az asztali gépen futó VM-et is figyelve, még fél (vagyis egy) füllel a Java konzultáción is részt vettem laptopról. A Projektmunkán sokat dolgoztunk, de a program képlékeny mivolta miatt a beszámoló írásának még nem tudtunk ekkor nekiállni. PHP-ból az első hetekben nem is volt még tananyag feltöltve, a HTML+CSS ismétlési részen, ezekkel kapcsolatos egy-két teszten és néhány rövidebb beadandó feladaton kívül.

Kandó Kollégium

Márciusban csak másfél hétig volt engedélyezett az egyetem épületeinek látogatása. Az első jel, hogy valami készül, az Archi2 előadások levideózásának ismételt bevezetése volt. Jogból még 1-2 alkalommal látogattam a TG épület nagyelőadóját, illetve nagyobb előszeretettel az alagsor társasjátékozásra és blogírásra alkalmas részét, és már kaptunk jó néhány online tesztet is a nyakunkba. Az ügyvéd úr próbált hallgatóságára való tekintettel azért hasznosabb és kevésbé száraz tudást átadni, például a jogviszony, a jogi tények és a jogértelmezés témájában, illetve előszeretettel használta a managger szót. Ha jól emlékszem, egyszer említette, hogy az örökzöld növényről elnevezett médiavállalkozót is védte egyszer, és már a 70-es években részt vett valamilyen hibásan megtervezett irodaház kapcsán indított perben, szóval minden bizonnyal rendelkezik kellő gyakorlati tapasztalattal. A kedd esténként tartott ASP órákon elfogytak a prezentációk, és áttértünk 100%-ban a gyakorlatszerzésre. E hónapban főként az Identity-vel próbálkoztunk authentikációt és authorizációt is tartalmazó, tehát bejelentkezésre és jogkörökre alapuló alkalmazásokat készíteni, illetve egy labor zárthelyit is megírtunk március végén, már otthonról. Talán hirdetések listáját kellett egy adatbázisban eltárolni, és egy webes listában megjeleníteni, kezelhetővé téve. Sebészeten a különféle orvosi képalkotási módszereket, majd a ZEUS és a Da Vinci teleoperációs robotokat tárgyaltuk. Az egyik óra úgy volt megtartva, hogy bent ültünk a robotlabor melletti teremben, de a tanár Skype-ról jelentkezett be, a vírusgyanú miatti protokoll miatt. A hónap vége felé egy prezentációt is kellett tartanunk a féléves feladatunk előzetes tervéről. Természetesen a robotokkal vagy a 3D-nyomtatással kapcsolatos, gyakorlati feladatnak örültem volna, de a vírushelyzet keresztülhúzta a számításokat, ezért egy esszétémát kaptam. Etikus hack 2-n remote file inclusionnel és directory traversallal, tehát egy nem megfelelően védett szerveren saját kód futtatásával és a számunkra kijelölt könyvtár elhagyásával, majd pedig SQL injectionnel foglalatoskodtunk. A legelsőt egy kifejezetten sérülékenységek bemutatására készült webalkalmazáson kellett végrehajtani és részletesen ledokumentálni. DL2-n ebben a hónapban főként a tanár által összeállított – futtatható kódot és szöveges magyarázatot tartalmazó – Jupyter notebookok kipróbálása és megértése jelentette a tanulást. Overfittelés, többosztályú klasszifikáció, macska vagy kutya megállapítása képet, számfelismerés MNIST-tel. A tanárunk nagyon érti a dolgát az informatika ezen területén, de nekem nehézséget jelent az alapok megértése is. A hónap végén elkezdtem leprogramozni a beadandót is, aminek az lett volna a lényege, hogy képekké átalakított MIDI-kották alapján tanítva képes legyen a program új dallamokat generálni és előadni. Sokat dolgoztam az adatok oda-vissza alakíthatóságán, de sajnos a hálóba adagoláskor áthidalhatatlan akadályokba ütköztem. A tanár is tanácsolta, hogy inkább a projektmunkát vagy annak egy részét adjam be ide, és ne csináljak magamnak pluszmunkát egy önálló beadandóval. Végül neki lett igaza. Halalon a két téma a genetikus algoritmusok és a genetikus programozás volt, szóval bejöttek a képbe a biológiai inspirációjú, de persze nem teljes mértékben a földi valóságot leképező, viszont mindenképpen érdekes megközelítésű algoritmusok. Archi2-n folytattuk a futószalag CPU-kat, tanultunk a CISC és RISC architektúrák különbségeiről és az elágazáskezelésről is. Ezek után belekezdtünk a szuperskalár processzorok generációinak átvételébe. Javán a Git haladóbb funkcióiról, az XML és JSON formátumokról, a Maven nevezetű buildeszközről és a Spring keretrendszer alapjairól is szó volt. A hónap elején belekezdtem a beadandó konzolos változatába, mely egy egyszerűbb filmes adatbázison alapult, és később webes frontendet is kapott. A munka folytatódott a projektmunkán, kevesebb-több sikerrel. PHP-ból hiába vártuk a tananyagot, márciusban semmi nem került feltöltésre.

Blogírásra alkalmas alagsor

Az április, sőt már március második fele is teljesen távoktatási formában telt. Március 11-én, egy szerdai napon voltam utoljára az egyetem épületében, illetve később szeptember közepén, egy gyors ügyintézésre a Tanulmányi Osztályon. Az ominózus szerdán megtartottuk a szokásos reggeli projektmunkázást, aztán volt egy Archi2 előadás, amin a tanár is felhívta a figyelmünket, hogy mire számíthatunk hamarosan a COVID-19 miatt. A tanrend változása jóval hamarabb történt meg mint gondoltam, de az egyetem is igényelt némi időt az átszervezéshez, mert a következő hétre tavaszi szünetet rendeltek el, ami pedig nem igazán jellemző a NIK-en, a húsvét körüli pár napot leszámítva. Nyilván az első néhány hétben még furcsa volt megszokni az online oktatást, de később minden rendeződött, és rendes ütemben megkaptuk a tananyagokat. A tanáraim változatos módokon juttatták ezeket el hozzánk. Valaki narrált képernyőfelvételt tett közzé, valaki egy üres teremben vette fel az előadást, valaki szöveges tartalmat töltött fel, valaki pedig Skype-pal vagy hasonló eszközökkel tartott élő tanórát. Visszatérve az áprilisra, Jogból volt néhány Skype-on megtartott óra, de én már meg nem mondom, hogy miről volt szó rajtuk. Egyszer az is előfordult, hogy a tanár valamiért nem tudta elindítani a csoportos beszélgetést, ezért a majd' 200 fő (?) helyett csak ketten: egy csoporttársam és én tudtunk vele beszélni. Pár percig, mert utána a hívás megszakadt. 10-én a vizsgatesztet is kitöltöttük a Moodle-ben, sikeres eredménnyel. ASP-n próbálkoztunk JWT-vel megvalósított, token alapú authentikációval, és a beadandóval is el kellett kezdeni foglalkozni. Én nem feltétlen egyszerű feladatot választottam: az azóta határozatlan ideig szünetelt fejlesztésű, de általam naponta használt, 7perces névre hallgató Android alkalmazásomhoz próbáltam összerakni egy webes felületet, azzal a céllal, hogy később oda lehessen valamilyen módon feltölteni az edzésterveket és naptáradatokat. A kommunikációs része nem valósult meg, de a 10 táblás adatbázist nagy nehezen át tudtam ültetni, és néhány táblázatot is meg tudtam jeleníteni a feladatokról és egyéb egységekről, méghozzá base64 enkódolással eltárolt, betöltéskor mozgásba lendülő képekkel, melyek szintén az adatbázis részét képezik. A beadandóról – több korábbi tárgyhoz hasonlóan – néhány oldalas tervet kellett beadni előzetesen, ami nem feltétlen egyezik meg utána a kézzel fogható (?) valósággal. Az utólagos dokumentáció sem kellemes, de talán hálásabb műfaj ebből a szempontból. Sebészeten a katonai célú sebészrobotokról, a szabadalmaztatás és engedélyeztetés folyamatairól, betegbiztonsági kérdésekről, és a Da Vinci robot vetélytársairól esett szó. Elkezdtem írni a tárgyhoz szükséges fogalmazást is, ami eléggé nyögvenyelősen ment. A különféle szilikonok és egyéb műanyagok műtéti fantomokban történő felhasználásáról kellett írnom 20 oldalt, ami elképesztően sok és nehéz, mivel olyan orvosi, kémiai, biológiai és fizikai fogalmakról írtam, melyek nagy részéről nem hallottam előtte. Az információkat hiteles forrásból, tehát angol nyelvű tudományos publikációkból kellett begyűjtenem. Néha előfordult, hogy egy adott anyagról vagy témáról nehéz volt forrást találni, és persze a fontos szempontok kiemelése, és ezek alapján nem feltétlenül teljes mértékben helytálló, de önálló következtetések alkotása sem volt egyszerű. Etikus hack 2-n egy régebbi, kevésbé védett Windows programok sérülékenységét kihasználó buffertúlcsordulási hibával foglalkoztunk, majd jogosultság-kiterjesztéssel foglalkoztunk. A jó idő lévén sokszor előfordult, hogy az udvarhoz kapcsolódó teraszról, egy nyugágyból vettem részt az órán, bár ez a laptopom hőellátásának nem feltétlenül vált előnyére, nekem viszont igen. Persze a második, gyakorlati félben gyakran kellett egy Kali VM-mel dolgozni, amihez igénybe kellett vennem az asztali gépet is. A Sebészetre írt fogalmazást is sokszor írtam órákon át kint, egyszer még a Kraftwerk 3,5 órás válogatásalbumát is végighallgatva. DL2-n adatok időbeliségét figyelembe vevő, rekurrens neurális hálókról és transfer learningről, tehát már betanított háló részbeni felhasználásáról volt szó, illetve folytattam a hónap közepéig a féléves feladatomat, amit azóta sem sikerült befejeznem, még... Halalon raj alapú módszerekkel, többcélú optimalizálással (NSGA I. és II. algoritmus), tabu-kereséssel és a szimulált lehűtéssel ismerkedtünk meg. Közben a beadandó programon is elkezdtem dolgozni, amelyben a tanárunk C++ kódját kellett kiegészíteni az általa deklarált problémákat kezelő optimalizáló algoritmusokkal. Én függvényközelítést oldottam hegymászó algoritmussal, utazó ügynök problémát genetikus algoritmussal, és munkakiosztást NSGA-algoritmussal. Ezeket le is kellett dokumentálni, a kódrészek magyarázatát és az eredményeket tekintve. Az Archi2 ebben a hónapban sokféle dologról szólt: várakoztató állomás, ReOrder Buffer, SIMD és VLIW architektúrák, Intel Netburst, a méltán népszerű disszipációkezelés témája és a szálszintű párhuzamosság. Javából javában folyt a munka a beadandón, a Spring adatkezelési és webes lehetőségeit is már felhasználva, különböző mérföldkövekre bontva a teljes feladatot. A Spring használata előtt mindössze annyi volt a feladat, hogy a már bonyolódó konzolos alkalmazást a Maven segítségével buildeljük, de persze ezzel is akadtak problémák. A hónap elején végre megérkeztek a tananyagok – főleg hajnalban rögzített videók – a PHP Moodle-oldalára. Hasznos volt persze, és voltak beadandók is, de sajnos nem volt elegendő ahhoz, hogy igazán elmélyedjünk ebben a nyelvben annyira, ami később akár munkához, akár hobbiprojektekhez elegendő tudást nyújtana. Nem tudom, hogy ez a tanár leterheltsége, esetleges lustasága, vagy a tárgy e-learning formában rásózása miatt történt, de nem jött ki jól, mert valaki nyáron már vállalt volna PHP-vel kapcsolatos diákmunkát például. Volt néhány kisebb beadandó feladat és egy online teszt is, aztán ezekből állt össze a nem túlságosan nehezen megszerezhető jegy.

Kandó a Keletiből

Májusban sok számonkérés volt. ASP-ből a 3. mérföldkövet is fel kellett tölteni, ismét a Moodle rendszerén keresztül. A hónap közepén a második labor zh-t is megírtuk, továbbra is otthonról. Kb. az órarend szerinti időpontban, este 6 órakor kezdődött, és vagy fél 11-ig tartott. Az angularos frontenddel úgy emlékszem, akadtak problémák, és az authentikáció és az aszinkron értesítési rendszer sem akart egyből működni, de a REST-végpontok készítésébe jól beletanultam. Sebészetből még két előadás volt hátra, főleg a valóban távolról, akár az űrből elvégzett, de a Földről irányított sebészet korlátairól, problémáiról. Rendkívül nehezen, nagyon sokat írtam még a sebészeti fantomokról, de végül elkészült a 20 oldalas esszé, és a nem annyira érdekfeszítő prezentáció. Lehet hasznosabb lett volna a szakdolgozattal foglalkozni annyit mint ezzel, ráadásul csak 4-est kaptam, szerintem főleg a vizsga miatt, de mindegy, érdekes volt megtapasztalni ezt is, hogy milyen módon kell valódi tudományos forrásokat feldolgozni. Etikus hack 2-n májusban már nem volt prezentáció, legalábbis nem találtam markdown fájlokat, viszont voltak laborjaink, amiken főleg a buffer overflow házit beszéltük meg elvi és gyakorlati oldalról. Mindenki kapott egy .exét, ami egy túlcsordulás elleni védelemmel fel nem ruházott program volt. Ha kívülről pl. egy Python-scripttel nagyon hosszú bemeneti szöveget adunk át neki, egy hiba keletkezik, ami egy bizonyos memóriacímre való átlépést eredményez. Tool-asszisztációt igénybe véve amennyiben meghatározzuk, hogy pontosan milyen hosszú string kell ehhez, elő tudjuk idézni a hibát, és még az is kideríthető, hogy hova mutat a következő utasítás címét tartalmazó regiszter. Közvetlenül utána helyezkedik el egy verem, aminek maximális elemszáma determinálja, hogy milyen hosszú kártékony kódot tudunk majd belerakni. Az utasításra mutató EIP regiszter tartalmát egy veremmutatóra ugró utasítás címével kell felülírni, amit hasznos kis eszközökkel meg lehet találni egy programban. Fontos, hogy minden futásnál ugyanúgy legyen leképezve a program a virtuális memóriára, ami az újabb, jobban védett programoknál „sajnos” már nem történik meg. Ha sikerül tehát a verembe kártékony kódot helyezni, és elérni, hogy a crash során pont oda ugorjon a végrehajtás, lefuttathatóvá válik az. Persze arra is ügyelni kell, egy manuális teszt alkalmazásával, hogy mely karaktereket szűri ki a program, mert ez alapján kell kódolni a kártékony programot, ami lehet egy Meterpreter is, amivel sok kedves dolgot lehet művelni a gépen, a képernyőkép készítésén át a billentyűleütések naplózásáig, a fájlmásolást is beleértve. Ennél azért részletesebben kellett ledokumentálni az összes lépést, amihez én a CherryTree nevű, hierarchikus jegyzetkészítő programot használtam, rengeteg képernyőmentést is felhasználva. DL2-n a természetes szövegek generálásának különböző módszereivel ismerkedtünk meg. Nem is annyira egyszerű leutánozni a János vitéz vagy az Alice csodaországban nyelvezetét, mármint intelligenciahiányos program által. Nagyjából minden más tárggyal egyetemben a Deep Learning beadandót is be kellett küldeni májusban. Halalon többféle klaszterező algoritmus működését néztük meg, amik célja, hogy többdimenziós térben leképezhető adatokat csoportokba rendezze, viszont előre nem meghatározott szempontok alapján. Minél kevesebb kézzel megadandó paramétere van egy algoritmusnak, annál általánosabb lesz, tehát a DBSCAN ilyen szempontból jobb mint a K-means. Archi2-n a folyamatszintű párhuzamossággal, a DDR-memóriák generációs különbségeivel és a gyorsítótárakkal foglalkoztunk. Az egész tárgyról elmondható, hogy nem konkrét áramköröket, hanem részegységeket vagy folyamatfázisokat tartalmazó diagramokat néztünk. Már Archi1-en is meg volt említve jó párszor, hogy a mozgatható táblák és a liftek megtervezése és megjavítása is a mi feladatunk, de szerény véleményem szerint inkább a villamosmérnököké. Az egyik üres termes, táblás előadásvideó közben már hallottam is valami fúrást-faragást, szóval a liftek helyreállítása is elindult. Már csak a TO régi tárgyadatbázisát sajnálom, mert sokkal informatívabb volt mint az új. Javára befejeztem a beadandó Spring MVC-s, Spring Bootos, tavaszi rugós mindenes, illetve webes változatát. Ebben a hónapban dolgoztunk a legtöbbet a projektmunkán és a szakdolgozaton, így a program is drasztikus változáson esett át, a kísérletezés szellemében. A szakdolgozat hosszra is igen jól haladt, de még bizonyos szempontokat tárgyaló fejezetek és számszerű eredmények hiányoznak belőle, illetve azóta is történtek strukturális változások, szóval van mit átírni decemberig. A hónap vége felé kellett feltölteni a beszámolót, tehát a hosszú szöveget a korábbi irodalomkutatással egybekötve, illetve egy prezentációt is, ami az eddigi eredményekről szólt főként. A hónap végén egy videót is fel kellett tölteni az ASP beadandó működéséről. Szerencsére nem úgy jártam mint Prog4-ből, hogy egy pénteki napon este 7-kor adtam fel a további hibajavítást, és álltam neki az éjfélig feltöltendő videónak.

Keleti nagyelőadója

Június első napjaiban még folyt az előkészülés a szakdolgozat prezentációjára. 2-án vizsgáztam Sebészetből. Egyszerűbbnek mondható teszt, trükkös igaz-hamis. A pontos pontszámomat nem tudom sajnos, de meglett. 5-én egy csoportos Microsoft Teams hívásban, egy kijelölt bizottság előtt előadtam a szakdolgozatról szóló prezentációt, 10-én pedig 40 perc alatt voltam kénytelen ledarálni a kimondottan nem egyszerű Archi2 Moodle-tesztet. Talán 4 szekció volt, és mindig figyelni kellett, hogy az igaz vagy a hamis válaszokat kell éppen megjelölni. Egy mintavizsgában sokkal rosszabb kérdések voltak azért mint most. Ott tényleg a magyar nyelvtan eltérő értelmezésein múlt jó néhány válasz helyessége, nem az anyag megértésén. A hónap közepén elindult az előzetes tárgyfelvétel. Most már nagyon kellett angol tárgyat is felvennem, mivel a kötelező követelmény kettő ilyen. A PHP-beli tudásomat szerettem volna drasztikusan mélyíteni, ezért egy Symfony-keretrendszerről szóló angol tárgyat vettem fel, illetve egy informatikai újdonságokról szóló előadássorozatot. 19-én volt az utolsó vizsgám, méghozzá Halalból. Persze úgy vettem fel a vizsgát, ahogy szoktam, tehát a végső alkalomra jelentkezés lehetőségét meghagyva, de így is eléggé féltem tőle. Szerencsére nem kellett leírható módon bemagolni az algoritmusokat, de bármelyik részét illett érteni, és kérésre megmagyarázni, emellett sok szempont alapján össze is lehetett hasonlítani a megegyező célú algoritmusokat. Igyekeztem eleget gyakorolni, és meg is lett a gyümölcse: a raj alapú módszereket, a PSO-algoritmust kaptam, aminek gyakorlatilag szinte elhadartam a lényegét, majd egy-két kiegészítő kérdés után át is adhattam másnak a hívást. Összességében szerintem egész jól sikerült ez a félév, de ez nem amiatt történt, mert a távoktatási forma nem követelte meg a tanulást, beadandókkal való foglalatoskodást. A hónap utolsó egy-két hetében már elkezdtem foglalkozni a szakmai gyakorlat, tehát informatikával erősen összefüggő, valódi állás keresésén, főleg iskolaszövetkezeten keresztül. Több hirdetésben vártak 4-5 napot, ami persze az ősszel folytatódó egyetemmel nem összeegyeztethető számomra, de végül találtam egyet, ahol nagyjából olyasmit kértek, amit én is tudok, és az időbeli feltételek, a helyszín sem kizáró tényező.

A robotlabor felé igyekezve

Pont a gyomaendrődi fürdőben voltam, amikor először hívott a cég a jelentkezésem, a feltöltött programjaim és a kitöltött C# és Java tesztek alapján, de ez már július 5. napja körül történt. Teljesen véletlen volt épp a közelben a telefonom. Egy rövid hívásban időpontot egyeztettünk a továbbiakról. Pár nap múlva már következett is a több környi angol nyelvű interjú első felvonása, kis örömömre, mert a kiejtésemmel, a verbális adottságaimmal és a szavak észbe juttatási instant képességének fejlettségi fokával nem vagyok teljes mértékben megelégedve. Az egyetemen persze előfordult sokféle – programozási – nyelv: C++, Python, Kotlin, Java, de főleg a C# volt a jellemző, ezért a hónapban a Java nyelv sajátosságait igyekeztem áttekinteni és gyakorolni. Egyik nap el is jött a telefonos interjú: Java kulcsszavak, tervezési minták, a JVM működési fázisai, nagyjából ilyesmi. Aztán különféle szabadságolások miatt csak majdnem két hét múlva következett az utolsó kör, a webkamerás videóinterjú ismételten angolul, 3 fős bizottsággal, home office jelleggel. Meg kellett terveznem egy adatbázis felépítését, szó volt az általam ismert, és a cég által használt technológiákról, üzletköréről, lehetőségeiről. De ez utóbbik előtt még egy Java kódrészlet javítási pontjait is meg kellett találnom, ami csak adagolva sikerült, majd egy-két metódust is meg kellett írnom jegyzettömbben. Nem tudom, hogy hány pontot kaptam az interjúra, vagy egyáltalán milyen szempontok alapján zajlik az értékelés, de úgy éreztem, nem volt olyan rossz. És 3 napra rá kaptam is a hívást, hogy felvettek, aminek nagyon örültem. Adminisztratív okok miatt – amibe az iskolaszövetkezettel való bürökrácia-gyakorlás is beletartozott – csak augusztus utolsó hetében tudtam elkezdeni a munkát, tehát nem igazán nevezhető nyári munkának a gyakornokságom, de nem baj. Augusztus 24-én tehát végre el tudtam kezdeni a szoftverfejlesztő gyakornoki munkámat az [REDACTED]-nél, ami egy [REDACTED] fejlesztő, [REDACTED] méretű, [REDACTED] központú cég.

Egy munkanapom végén

Szeptember első hetében megtartotta az egyetem a végleges tárgyfelvételt. Idén jóval kevésbé volt problémás mint korábban, amihez valószínűleg az is hozzájárult, hogy folytattuk az online oktatást. Azért a Neptunba mégis bekerültek az órák helyszínei is, gondolom azért, hogy adott esetben vissza lehessen állni a hagyományos formára. Olyan tárgyról is hallottam, amit az egyetem valamely épületében tartanak, de tudomásom szerint nem ez a jellemző. Viszont szerencsére a kollégiumok újra nyitva tartanak, így fél év után sokan visszatérhettek oda. Nincs olyan sok tárgyam ebben a félévben, és igazából ez volt az a körülmény, ami miatt tudtam vállalni a heti 24 órát, tehát 3 munkanapot a cégnél, szerencsére rugalmas munkaidőben. Három tanterv szerinti tárgyam van: Szakdolgozat II. és Projektmunka IV., illetve Archi3, a többi szakirányos. A gyakornokságom november közepéig tart, utána fény derül a folytatás mikéntjére. Szeptember óta home office módon, tehát teljes mértékben otthonról dolgozom, amihez a cég biztosítja a technikai eszközöket és a kellő bizalmat is irányomba. Az irodában nagyon kevesen vannak mostanság, illetve itthonról időtakarékosabban is tudok dolgozni, mert 9 helyett 8-kor is el tudom kezdeni a feladatokat, mivel összesen vagy 3 órányi ingázást spórolok meg. Majd lehet írok a munkáról később is, egy részletesebb bejegyzésben, de a lényeg annyi, hogy túl vagyok egy egyéni, de mentorált projektben, aztán rákerültem egy kislétszámú, kevésbé közeli határidejű – általam is azzá tett – nemzetközi fejlesztésre, amelynek a bevezető szakaszán dolgozunk. Tetszik a gyakornokság, egyelőre az egyetemmel is össze tudom egyeztetni, és persze nyújt számomra technikai nehézségekből adódó kihívásokat, megismerendő koncepciókat vagy technológiákat, és önálló keresetet is.

-----

Tanulmányi átlag: 4,81
Megszerzett kreditek: 29+32+27+37+32+36/210 (BSc ~91,9%)
[26 EAdás: ~37,83 óra + 22 Labor: ~54,25 óra + 11 Konzultáció: ~8 óra]

Tantárgyak:
  • Államigazgatási és jogi ismeretek (3 kr, 5-ös)
    • [4 EA: ~6 ó]
  • ASP.NET és MVC (3 kr, 5-ös)
    • [5 L: ~11,25 ó]
  • Bevezetés a számítógéppel támogatott sebészetbe (3 kr, 4-es)
    • [10 EA: ~15 ó]
  • Bevezetés az etikus hackelés gyakorlatába II. (3 kr, 5-ös)
    • [4 EA: ~4,83 ó + 12 L: ~35,5 ó + 1 K: ~2 ó]
  • Deep Learning II. (2 kr, 4-es)
    • [5 L: ~7,5 ó + 3 K: ~2,5 ó]
  • Haladó algoritmusok (4 kr, 5-ös)
    • [3 EA: ~4,5 ó]
  • Korszerű számítógép architektúrák I. (2 kr, 4-es)
    • [5 EA: ~7,5 ó]
    • >> Korszerű számítógép architektúrák II. (2 kr)
  • Nagyvállalati szoftverfejlesztés Java alapon (5 kr, 5-ös)
    • [4 K: ~2 ó]
  • Projektmunka III. (2 kr, 5-ös)
    • [3 K: ~1,5 ó]
    • >> Projektmunka IV. (2 kr)
  • Szakdolgozat I. (6 kr, 5-ös)
    • >> Szakdolgozat II. (9 kr)
  • Webprogramozás (PHP) (3 kr, 5-ös)

MEGJEGYZÉSEK: