Multimédia az oktatásban 2019

NJSZT-MMO logó

NJSZT-MMO logóA Neumann János Számítógép-tudományi Társaság (NJSZT) „Multimédia az oktatásban” Szakosztály által – évente – szervezett XXV. Multimédia az oktatásban című nemzetközi konferencia az Ericsson Magyarország Kft. K+F Központjában került megrendezésre 2019. június 6-7-én.

A konferencia célja

  • elősegítse az oktatás, a kutatás és a fejlesztés különböző területein dolgozó szakemberek tapasztalatcseréjét és találkozását,
  • bemutatkozási lehetőséget adjon az oktatóknak, kutatóknak és PhD hallgatóknak az új kutatási eredmények széleskörű szakmai megismertetésére és megvitatására előadások, kiállítások és kiadványok segítségével.

21 témakörben hirdették meg az előadóknak a jelentkezési lehetőséget, köztük néhány hozzánk kötődő

  • multimédia alkalmazása,
  • mLearning/eLearning és környezete,
  • felhőalapú szolgáltatások,
  • multimédia és a tudományos kutatás összefonódása,
  • multimédiafejlesztések, eredmények, alkalmazások.

Letölthető a konferencia programja.

A plenáris előadásokról

Ez a 25. jubileumi rendezvény áttekintette a szakosztály eddigi tevékenységeit például a plenáris ülésen Dr. Berke József alapító tag, első szakosztályelnök „Multimédia az oktatásban szakosztály története” fényképes előadásával. Dr. Magyar Miklós professzor alapító tag, alelnök „Egy Baby Boomer rendhagyó gondolatai a multimédiáról”, című Skype-on keresztül tartott előadásával képet adott arról, hogy a „kortárs szemtanú az egymást követő generációkkal, nemzedékekkel együttműködve tapasztalhatta meg a változásokat, a fejlődés átalakulási szakaszainak történéseit”. Majd az elmúlt év kutatásairól, a szakma irányvonalairól, gyakorlati eredményeiről szóló előadások következtek két napon két-két szekcióban. Kerekasztal beszélgetés keretében a közeljövőben megvalósítandó felnőttkori kötetlen, önálló tanulásra szolgáló (multimédia) tananyagok minősítésének kidolgozandó rendszeréről beszélgettünk Dr. Elsayed Hassan, Dr. Gerő Péter, Dr. Seres György és Sulyok Tamás moderálásával.

MMO2019 résztvevők

A szekció-előadásokról

Már számos alkalommal részt vettem előadóként a nyár eleji MMO konferenciákon szakmai előadással, magyar és/vagy angol nyelvű cikkel, poszterrel az oktatói csapat tagjaival, illetve mentorált hallgatóimmal együtt. Legutóbb tavaly is, lásd Multimédia az oktatásban 2018.

2019-ben „A magyarországi felsőoktatásban oktatók és hallgatók e-eszközhasználati attitűdje – Egy félig strukturált interjús mintakutatás eredményei” címmel tartottam előadást 20 percben, amely a konferencia „Multimédia-fejlesztések, eredmények, alkalmazások bemutatása / mLearning, eLearning és környezete” szekciójába került.

Ahogy absztraktomban írtam, „Az előadásban a tanár–hallgató interjúalanyok e-learning attitűdjébe kapunk bepillantást annak kapcsán, hogy mit jelent számukra az e-learning, hogyan értelmezik, mi tartozik az elearning kifejezés ernyője alá? Tanítási/tanulási munkájuk során milyen arányban használnak e-eszközöket? Milyen e-eszközöket és miért, hogyan használnak? Hogyan fejlesztik e-eszköztárukat? Az e-elemek tanításba bevonása hogyan hat a hallgatói motivációra és eredményekre a tanárok és a hallgatók szerint? Ha nem lennének e-eszközök, mi hiányozna számukra a leginkább? Melyik, miért és mennyire fontos a hallgatók és a tanárok számára a következők közül: tananyag, tanári magyarázat, tudományos alapok, trendiség? A kutatás alapja lehet egy széleskörű, nagy létszámú magyarországi és határon túli tanári–hallgatói populációkat vizsgáló kvantitatív kutatásnak.”

Mentorált hallgatóim/volt hallgatóim kiváló előadásokat tartottak. Öt díjat nyertek el a már második évben meghirdetett szakdolgozatok és TDK-dolgozatok versenyben, illetve szekcióikban tartott előadásukkal, a konferencia-kiadványban megjelent cikkükkel.

Vidovenyecz Zsolt, volt konzultáltam, barátom idén is elhozta „utazó kiállítás” keretében gyűjteménye egy részét, amelyhez kapcsolódva „A magyar számítástechnika hőskorának „leg”-jei” címmel tartott tárlatvezetést. Virtuális múzeuma a https://www.holdcomputers.com/-on tekinthető meg.

MMO2019 Régi magyar számítógépek kiállítás, Hungarian Old Computers kiállítás

Kaczur Sándor kolléga minden résztvevő számára érdekes multimédiás előadást tartott az MMO 2019 konferencián „Térképek dinamikus ábrázolása Google Charts, Java és JavaScript eszközökkel” címmel. Ez az előadás a „Multimédia és a tudományos kutatás összefonódása/ Multimédiafejlesztések, eredmények, alkalmazások bemutatása” szekcióba került.

„A Google Charts egy weblapokba beágyazható, JavaScript-re épülő keretrendszer/példatár, amely kiválóan használható az oktatásban úgy, hogy különféle adatforrásból származó – vagy dinamikusan előállított – adatokból egyszerű, látványos, weblapokon könnyen megjeleníthető grafikus objektumokat hozunk létre. A hozzá kapcsolódó felhő alapú szolgáltatások ingyenes és fizetős formában is rendelkezésre állnak. Az ismertetett esettanulmány egy hálózatos Java projekt, amely webről összegyűjtött adatok alapján, többféle Google Charts objektumot állít elő. A termék JavaScript-re épülő weboldalak sokasága, amely tipikus felhasználói igényeket/követelményeket kielégíthet. A megvalósítás kivételkezelést alkalmaz, HTML és JSON tartalmat olvas és generál, valamint elvégzi/elvégezteti az adatok térképen való megjelenítéséhez szükséges geokódolást. Az előadás ismerteti a specifikáció és a tervezés lépéseit, az implementációt, a tesztelést, valamint továbbfejlesztési javaslatokat is ad.” – írja Sándor absztraktjában.

Sándor előadásának prezentációját ILIAS e-learning tananyagban tesszük elérhetővé tanfolyamaink résztvevői számára.

Sándor előadásának témája a Java EE szoftverfejlesztő tanfolyam 1–4. óra: Elosztott alkalmazások, webszolgáltatások és 13–16. óra: JSON feldolgozás alkalmaihoz kapcsolódik.

A fotópályázatról

Az MMO Szakosztály által meghirdetett fotópályázaton Táj kategóriában Szűcs Tibor különdíjban részesült Pirkadat című pályamunkájával:

Az MMO Szakosztály által meghirdetett fotópályázaton Táj kategóriában Szűcs Tibor különdíjban részesült Pirkadat című pályamunkájával

„A fotó 2018. július 2-án készült, Japán legmagasabb hegyén/vulkánján a Fujin. Július elején a napfelkelte nagyjából 4 órára esik, ám már fél órával korábban elkezd világosodni az égbolt alja, és a napfelkelte nagyjából egy órán át nyújt számunkra fényekben gazdag izgalmakat. A Fujiról fontos megemlíteni, hogy sok esetben mágnesként vonzza a felhőket. Nekünk mázlink volt. Nem is kicsi, ugyanis végig csillagos ég alatt másztunk, a napfelkelte felhőmentes volt, ám miután leértünk a hegy lábához, az egész vulkán felhőbe öltözött.

A terv az volt, hogy éjszaka felmászunk a vulkán peremére, majd a keleti oldalon megvárjuk a napfelkeltét, hiszen a felkelő nap országának legmagasabb pontjáról megnézni a felkelő napot meglehetősen vagányul hangzik. De ott fent lenni nem csak egy menő gondolat beteljesedése, hanem olyan élmény, melyet mindenkinek látnia kellene. Egyetlen baj van vele: elkezd a nap felkelni, aztán a következő pillanatban huss, már magasan jár. Természetesen ha nem is a szó szoros értelmében vett pillanatról van szó, de azért a kb. 10 percnyi páratlanul csodás élményért – amíg a nap felbukkan a horizonton – megéri hat órán keresztül hegyet mászni – a metsző szélben és közel zéró fokos hőmérsékletben fagyoskodni -, valamint kihagyni az éjszakai alvást, és másnap kókadozni.

Ebbe a kb. 10 percbe kell belezsúfolni mindent, az egyszerű emlékfotót, a pillanatról készült kiváló képeket, és természetesen a napfelkeltében elmerengeni. Nem egyszerű, mindenesetre mozgalmas, izgalmas, lenyűgöző, szívbe markoló és legfőképpen egy életre szóló élmény.” – írja a fényképről Tibor.

Doktoranduszok programoznak

it-tanfolyam.hu doktoranduszok programoznak

it-tanfolyam.hu doktoranduszok programoznakSaját doktorandusz csoporttársaimmal többször beszélgettünk már arról, hogyan tudnák/tudják használni a programozás eszköztárát, módszereit, lehetőségeit saját kutatási munkájukban, beépítve a kutatási folyamat egyes lépéseibe, illetve disszertációjuk elkészítésébe.

Mivel a 10 fős csoportban mindenkinek más az alapvégzettsége, így szoftverfejlesztéshez, programozáshoz közös szókincs és terminológia haladó szinten természetesen nincs, viszont közös bennünk, hogy mindannyian alkotunk különféle modelleket és elemzünk adatokat.

Különféle modelleket alkotunk

  • a mérnökök, fizikusok, geográfusok, biológusok többféle kísérletet végeznek el, szimulációkat terveznek és futtatnak, mérőeszközöket és műszereket használnak,
  • az informatikusok különböző matematikai eszközöket alkalmazva objektumorientált – vagy másféle – modellezést végeznek, szoftvereket terveznek, javítanak, újraírnak.

Adatokat is elemzünk, ki-ki előképzettségének megfelelően

  • kérdőívező szoftverekből exportálva valamit,
  • Excel munkalapokon, függvényekkel, adatbázis-kezelő funkciókkal, kimutatásokkal (Pivot táblák),
  • különböző fájlformátumokkal (CSV, XML, JSON, egyedi) dolgozunk és konvertálunk A-ból B-be,
  • távoli adatbázisokhoz, felhőbeli adattárházakhoz csatlakozunk, lekérdezünk és kapunk valamilyen – többnyire szabványos – adathalmazt,
  • matematikai, statisztikai szoftvereket használunk, például: MATLAB, Derive, Maple, SPSS.

Önszerveződően összeállítottunk egy olyan két részből álló tematikát, ami mindannyiunk számára hasznos. A 64 óra két 32 órás modulból áll: Java programozás és SPSS programrendszer.

Java programozás modul

  • 1-8. óra: Objektumorientált modellezés, MVC rétegek, algoritmus- és eseményvezérelt programozás
  • 9-16. óra: Fájlkezelés és szövegfeldolgozás (XLS, CSV, XML, JSON formátumú adatok írása, olvasása, feldolgozása)
  • 17-24. óra: Adatbázis-kezelés JDBC alapon (SQL parancsok, CRUD műveletek, hierarchikus lekérdezések)
  • 25-32. óra: Komplex adatfeldolgozási feladatok megoldása programozási tételek használatával

SPSS programrendszer modul

  • 1-8. óra: Bevezetés az SPSS-be, interakciós eszközök, adatmátrix, menük: Transform, Analyze, szkriptek futtatása
  • 9-16. óra: Alapstatisztikák kérése, kereszttáblázatok készítése, hipotéziselmélethez kötődő funkciók, normalitásvizsgálat, minták összehasonlítása t-próbával
  • 17-24. óra: Regresszió-analízis: lineáris, nemlineáris, többváltozós; Idősorok elemzése: szűrés, periodogram, trendelemzés
  • 25-32. óra: Mesterséges neuronhálózatok: matematikai modell és működése

Mivel mindenki doktorandusz a csoportban, így a különböző MSc-s alapvégzettsége ellenére mindannyiunknak vannak strukturális programozáshoz kötődő alapismeretei, valamint adatok elemzéséhez szükséges elméleti matematikai/statisztikai alapjai. Az én részem a 32 órás Java programozás modul, ami 2018.10.28-án kezdődött és 2018.12.09-ig fog tartani hétvégi napokon. Ez nagyban lefedi a Java SE szoftverfejlesztő tanfolyamunk tematikáját és kapcsolódik a Java EE szoftverfejlesztő tanfolyamunk és a Java adatbázis-kezelő tanfolyamunk tematikájához is.

A koncepciót once-in-a-lifetime jelleggel dolgoztuk ki azzal a fő szándékkal, hogy hatékonyabban működjünk együtt a jövőben.

Stream API lambda kifejezésekkel

lambda kifejezés logo

lambda kifejezés logoKorábban blogoltunk már a Stream API-ról és a lambda kifejezésekről: Ismerkedjünk lambda kifejezésekkel! Most másképpen közelítve újra foglalkozunk a témával.

Tanfolyamainkon szinte minden adatszerkezethez, tömbhöz, kollekcióhoz, fájlkezeléshez kötődő témakörben használjuk mindkettőt. Áttekintjük az ezekhez szükséges minimális verziószámot, a szintaktika fejlődését, az együttes használat elvi és gyakorlati lehetőségeit. A szükséges alapfogalmakat definiáljuk: hozzárendelési szabály, funkcionális interfész, metódus referencia, alapértelmezett metódusok, típus kikövetkeztetés képessége, generikus és funkcionális programozás. párhuzamos adatfeldolgozás lehetőségei.

Összehasonlításokat is végzünk: a lambda előtti verziók lehetőségei, korlátai, tipikus lambda hibák, mikor mit érdemes és mit nem érdemes használni, paraméterek típusait megadjuk vagy elhagyjuk, hagyományos kollekciós műveletek (azért a generikusság előtti időkre már nem térünk ki) és folyam feldolgozás (adatforrás meghatározása, közbenső és végső műveletek).

Most azokat a Stream API-hoz és lambda kifejezésekhez kötődő bevezető mintapéldákat ismertetjük, amiket részletesen elemzünk tanfolyamaink szakmai moduljának kontakt óráin. Ezek közül közösen meg is írunk néhányat, kombinálunk is néhányat egy-egy összetett adatfeldolgozó művelet megvalósítása során. Programozási tételenként specifikáljuk a feladatokat és megmutatunk néhány megoldást.

1. Adatforrás

100 db olyan véletlen kétjegyű számot állítunk elő generikus listában, amelyek között biztosan előfordul legalább egyszer a 80.

2. Elemi programozási tételek

2.1. Sorozatszámítás

Kiírjuk, hogy mennyi a listában lévő számok összege:

2.2. Eldöntés

Két kérdésre adunk választ. Van-e a listában lévő számok között 35 (konkrét elem), illetve páros (adott tulajdonságú elem)?

2.3. Kiválasztás

Kiírjuk, hogy a biztosan előforduló (legalább 1 db közül balról az első) 80, hányadik helyen (index) található meg:

2.4. Keresés

Keressük a 35-öt az eldöntés és a kiválasztás összeépítésével:

2.5. Megszámolás

Kiírjuk, hogy hány db öttel osztható szám (adott tulajdonságú elem) található a listában:

2.6. Szélsőérték-kiválasztás

Kiírjuk a listában lévő legkisebb számot (értéket, nem indexet):

3. Összetett programozási tételek

3.1. Másolás

Készítünk egy másolatot a lista elemeiről (közben esetleg mindegyiket meg is változtathatjuk):

3.2. Kiválogatás

A listában lévő számok közül kiválogatjuk az öttel osztható számokat:

3.3. Szétválogatás

Külön-külön szétválogatjuk a listában lévő páros és páratlan számokat:

3.4. Unió

A korábban szétválogatott páros és páratlan számokat tartalmazó halmazok unióját állítjuk elő:

3.5. Metszet

A korábban szétválogatott páros és páratlan számokat tartalmazó halmazok metszetét állítjuk elő:

3.6. Összefésülés

A korábban szétválogatott páros és páratlan számokat összefésüljük:

4. A program eredménye a konzolon

A bejegyzéshez tartozó teljes forráskódot ILIAS e-learning tananyagban tesszük elérhetővé tanfolyamaink résztvevői számára.

A feladat a Java SE szoftverfejlesztő tanfolyam, a Java EE szoftverfejlesztő tanfolyam és a Java adatbázis-kezelő tanfolyam szakmai moduljának több alkalmához és az orientáló moduljának 1-4. óra: Programozási tételek alkalmához is kötődik. A Stream API-val és a lambda kifejezésekkel sokszor foglalkozunk.

Korábban is blogoltunk már a Stream API-ról és a lambda kifejezésekről: Ismerkedjünk lambda kifejezésekkel!

Időjárás Budapesten

Talált időjárás Widget

A Widgets constructor – OpenWeatherMap weblapon nézelődve megtetszett ez a Widget:

aktuális időjárás Budapest

Főleg az volt nagyon szimpatikus, hogy milyen egyszerűen beépíthető mindez egy webes/mobil felületre az alábbi JavaScript forráskóddal:

Mindössze egy regisztráció szükséges hozzá a Members OpenWeatherMap weboldalon a fenti forráskódba behelyettesítendő API kódért. Az egy sorba ömlesztve kapott forráskódot a Javascript Viewer, Beautifier and Formatter, Editor weblapon formáztam könnyen olvashatóvá.

Saját fejlesztés

Kedvet kaptam ezt a funkcionalitást összerakni úgy, hogy a hálózati kommunikációra helyeztem a hangsúlyt.
A nézet réteg ezért igen egyszerű, Java swing felületen, JFrame form-ként varázsolt az alábbiak szerint, mindössze JPanel és JLabel vizuális komponensekből áll. Egy JLabel osztályú komponens képes szöveg és/vagy kép megjelenítésére is.

aktuális időjárás Budapest

1. feladat

A modell rétegben tárolt település nevét és a szolgáltatás igénybevételéhez szükséges API kulcsot összerakva a Current weather data – OpenWeatherMap oldal specifikációját követve, megkapjuk az adatok lekérdezéséhez szükséges URL-t:

időjárás API URL

2. feladat

A hálózati kapcsolatot felépítve el kell kérni ( GET) az URL-ről kapott JSON formátumú adatot és tárolni kell azt a modellben ( jsonPuffer). A kivételkezelést nem részleteztem, mert most nem ezen van a hangsúly.

A jsonPuffer objektum ezt tartalmazza:

IdojarasJSON

A könnyen átlátható formátumot a JSON FORMATTER & VALIDATOR weblapon állítottam elő.

3. feladat

A JSON-t fel kell dolgozni és a különböző adatokat formázni/konvertálni kell, alkalmazkodva a megjelenítés igényeihez (például hőmérséklet Celsius fokban egész számra kerekítve, szélsebesség egytizedes pontossággal, hónap neve angolul, szükségesek a megfelelő mértékegységek). Külön gondoskodni kell arról, hogy az aktuális időjárást szimbolizáló ikonhoz (képként külön letöltve) is hozzájussunk, mert az API csupán az útvonalát jelentő URL-ből csak a fájl nevét (azonosítóját) adja meg. A kivételkezelést itt sem fejtettem ki.

4. feladat

Végül a modelltől elkért adatokkal frissíteni kell a nézetet.

Az eredmény

IdojarasBudapest


IdojarasLondon

IdojarasHouston

IdojarasTokyo

Aki kedvet kapott, annak többféle API is rendelkezésére áll, dokumentációval és példákkal együtt a https://openweathermap.org/api weboldalon. Kísérletezni bátran szabad, illetve érdemes megnézni és értelmezni azokat az adatokat, amiket JSON formátumban visszakapunk, de ehhez a feladathoz nem volt rájuk szükség.

A bejegyzéshez tartozó teljes forráskódot ILIAS e-learning tananyagban tesszük elérhetővé tanfolyamaink résztvevői számára.

A feladat a Java EE szoftverfejlesztő tanfolyam 9-12. óra: XML feldolgozás és 13-16. óra: JSON feldolgozás alkalmaihoz kapcsolódik.

Denevérek a barlangban

Évekkel ezelőtt hálózatos Java EE esettanulmányt akartunk készíteni Lengyel Borisz kollégával. Ötleteltünk: milyen technológiával és hogyan kommunikáljon egymással a szerver és a kliens(ek). A távoli metódushívás (Remote Method Invocation) mellett döntöttünk és elkészült a denevérek a barlangban projekt, amely evolúciós projektként azóta több változatot is megélt. A felhasználói felület (barlang) betölt néhány képet (denevér kliensek), amelyek a szerver segítségével mozognak.

Ismertetjük a tervezés folyamatát, a kliens és szerver funkcióit részletesen, végül ötleteket adunk a továbbfejlesztésre.

A főbb feladatokat így határoztuk meg:

  • az RMI kommunikációs módszer megismertetése,
  • az RMI szolgáltatás reprezentálása látványos grafikus/swinges klienssel,
  • alternatíva nyújtása a TCP protokoll közvetlenül csatlakozó socket-jére.

Elkészítettük az alábbi osztálydiagramot (persze ez nem az első változat):

Denevérek a barlangban - Osztálydiagram

A szerver és kliens funkcióit megvalósító osztályok/interfészek feladatait így határoztuk meg:

BarlangDenevérInterfész interfész:

  • véletlen 5 és 10 közötti a denevérek száma,
  • méretek a GUI-hoz.

Denevér osztály:

  • megvalósítja az RMI kliens funkciót,
  • JLabel leszármazott, külső képfájlt tölt be ( bat.jpg),
  • egyedi azonosítója van,
  • eldönti mozgásának irányát (4) és léptékét (3), mintha ultrahangot adna,
  • a szerver megadja neki, hogy az új helyre elmozdulhat-e,
  • saját magát képes mozgatni.

Pozíció interfész:

  • öröklődik a java.rmi.Remote interfészből,
  • két távolról hívható metódus fejét tartalmazza.

BarlangSzerver osztály:

  • megvalósítja az RMI szerver funkciót,
  • implementálja a Pozíció interfészt,
  • JFrame leszármazott,
  • figyel arra, hogy a denevérek ne mozogjanak ki a barlangból.

BarlangFelület osztály:

  • JFrame leszármazott,
  • GUI az RMI kliensek megjelenítéséhez.

BarlangSzerverTérkép osztály:

  • JPanel leszármazott,
  • GUI a szerveren a kliensek mozgásának követésére.

Ha futtatjuk az elkészült szerver és kliens programot, akkor ezt láthatjuk:

Denevérek a barlangban - animáció

A fejlesztés és tesztelés közben sok-sok továbbfejlesztési ötletet/javaslatot fogalmaztunk meg:

  • háttérkép a barlangról,
  • a háttérkép megvalósíthat labirintust, koordináta-rendszert,
  • átlátszó illetve egyedi képfájlok a denevéreknek,
  • a denevérek mozgásának tetszőleges iránya (360°),
  • a denevérek mozgásának egyedi léptéke,
  • a denevérek figyeljenek egymásra (ne ütközzenek össze),
  • a denevérek figyeljenek a környezetükre (ne ütközzenek bele sziklákba, cseppkövekbe),
  • a szerver követheti a denevérek útvonalát,
  • a szerver archiválhat, szerializálhat, készíthet statisztikát.

A bejegyzéshez tartozó – több lépésben továbbfejlesztett – forráskódot ILIAS e-learning tananyagban tesszük elérhetővé tanfolyamaink résztvevői számára.

A feladat a Java EE szoftverfejlesztő tanfolyam 21-24. óra: RMI alapú kommunikáció alkalmához kapcsolódik.