Tankocka – Szókereső: rendezési algoritmusok

Folytatjuk Tankockák blog bejegyzés sorozatunkat. A feladatban 8 db rendezési algoritmus nevét kell megtalálni a szókeresőben. Ez a témakör főként a Java SE szoftverfejlesztő tanfolyamunkhoz kötődik. A rendezési algoritmusok alapvető működését akkor is érdemes ismerni, ha tudjuk, hogy van sokféle beépített, implementált megoldás a Java JDK-ban, a Stream API-ban.

Érdemes tudni jellemezni a rendezési algoritmusokat a hatékonyság klasszikus szempontjai alapján: lépésszám, tárigény, bonyolultság. Azt is hasznos tudni, hogy egyes beépített rendezési algoritmusok hogyan működnek. Valójában milyen implementált algoritmus fut, ha meghívunk például egy  sort() metódust, vagy egy  ORDER BY záradékot? Többféleképpen csoportosíthatók a rendezési algoritmusok: vannak iteratívak és rekurzívak, helyben rendezők és kiegészítő helyet használók, egyszerűek (buták) és optimalizáltak (ellenőrzéseket végzők). Ezeken kívül a rendezési algoritmusok futása során létezik legrosszabb eset, átlagos eset, legjobb eset. Hasznos teljes képernyőn megjeleníteni ezt a tankockát.

Tankocka – Keresztrejtvény: programozási tételek

Folytatjuk Tankockák blog bejegyzés sorozatunkat. A feladatban a 12 db programozási tétel nevének beírásával meg kell fejteni a keresztrejtvényt. Ez a témakör főként a Java SE szoftverfejlesztő tanfolyamunkhoz kötődik. A programozási tételek olyan alapfeladatok, amelyek univerzálisan használható építőkövek és bizonyított, hogy mindegyikük helyes. A programozási tételek fontosak a programozáshoz szükséges gondolkodásmód kialakításához, formálásához.

A programozási tételeket csoportosíthatjuk: elemi és összetett. Az elemi programozási tételek közös jellemzője, hogy bemenetük egy sorozat és kimenetük egyetlen adat (ami nem feltétlenül része/eleme a sorozatnak). Az összetett programozási tételek már több sorozattal működnek: lehet több bemenetük és több kimenetük is. Például egy bemeneti sorozatból előállítanak 2-3-több (nem biztos, hogy előre tudjuk, hogy hány darab) kimeneti sorozatot (vagy éppen fordítva). Más is lehet a csoportosítás alapja, például egyediek a sorozat elemei vagy lehetnek azonos elemek a sorozatban, számít az elemek sorrendje vagy nem. No vajon mi a keresztrejtvény megfejtése?

Multimédia az oktatásban 2022

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 XXVIII. Multimédia az oktatásban nemzetközi konferencia hibrid (jelenléti és online) formában került megrendezésre 2022. július 6-7-én.

A konferencia célja

A szakmai rendezvény célja, hogy elősegítse az oktatás, valamint a kutatás és fejlesztés különböző területein dolgozó, oktató hazai és külföldi szakemberek, PhD és felsőoktatási hallgatók kapcsolatfelvételét, tapasztalatok és jó gyakorlatok cseréjét, egyes képzési szakterületekhez kapcsolódó kreditek gyűjtését.

28 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ő

  • élethelyzethez igazított tanulás,
  • a multimédia alkalmazása a felsőoktatásban és a felnőttképzésben,
  • mLearning, eLearning és környezete,
  • a tanulási környezet technikai, technológiai változása,
  • felhőalapú szolgáltatások,
  • multimédia és a tudományos kutatás összefonódása,
  • multimédia-fejlesztések, eredmények, alkalmazások bemutatása.

A konferencia programja

Letölthető a konferencia programja. A konferencia az Eszéki Josip Juraj Strossmayer Egyetem Bölcsészettudományi Karáról (University of Osijek) élő közvetítésben zajlott Teams-en. 2 nap alatt 10 szekcióban 30 előadás hangzott el, valamint sor került plenáris előadásokra és műhelymunkára is.

Részt vettünk a konferencián

Oktatóink rendszeresen részt vesznek az MMO konferencián. Szakmai blogunkban több beszámoló is van, lásd MMO címke. Kaczur Sándor oktatónk publikációs listájában szerepelnek a megjelent szakmai cikkek. Jövőre is szívesen csatlakozunk a rendezvényhez.

2022-ben Sándor két előadást tartott előadást tartott 20-20 percben, amelyek a konferencia „Multimédia-fejlesztések, eredmények, alkalmazások bemutatása” című szekciójába kerültek. Az előadások prezentációit ILIAS e-learning tananyagban tesszük elérhetővé tanfolyamaink résztvevői számára. Négy szerző (köztük én is 🙂 ) együttműködésével elkészült egy 5 és egy 7 oldalas szakmai cikk is, amelyek elérhetők a konferencia kiadványban.

Szakmai cikkeink összefoglalói

Kaczur Sándor, Szegedi Kristóf, Bánki Benedek: Variációk egy témára – Szilassi-poliédert megjelenítő grafikus programok fejlesztése

A számítógépes grafika alkalmazásának egyik speciális területe az, amikor saját fejlesztésű, egyedi grafikus objektumokat jelenítünk meg. Ehhez szükséges néhány előismeret, például: modelltér, kü­lönböző koordinátarendszerek, grafikus primitívek, grafikus 2D és 3D leképezések, vetítő algoritmusok, vászontechnika, koordináta- és ponttranszformációk. Ezekre építve a továbblépést a következők megisme­rése biztosítja: adott programozási nyelv(ek) beépített grafikus képességei, korlátai, sajátosságai, osztály­könyvtárai, kiegészítő API-jai, plugin-jai. Természe­tesen a grafikus fejlesztés megvalósítása objektumori­entált megközelítéssel, életciklus modellben, MVC architekturális tervezési mintával, eseménykezelés al­kalmazásával történik – hiszen a korszerű megközelí­tés és az interakció alapkövetelmény.

Az előadás/cikk ismerteti a feladatspecifikációt, majd egy közös koncepcionális tervet mutat be. A cél a Szilassi-poliéder megjelenítése saját fejlesztésű, egyedi grafikus objektumként. Elkészült többféle fejlesztői környezetben és többféle programozási nyelven né­hány implementáció Java és Unity alapon. Az előadás/cikk bemutatja az elkészült esettanulmányokat, elem­zi, teszteli, össze is hasonlítja azokat és megfogalmaz néhány továbbfejlesztési lehetőséget.

Kaczur Sándor, Kiss Balázs: Tankockák – Java szoftverfejlesztésben használt interaktív tanulási környezet

A 20. századig három jellegzetes pedagó­giai paradigma és ezeknek megfelelő didaktikai rendszer alakult ki: ismeretátadás, szemléltetés és cselekedtetés. Két kérdés merül fel: milyen szerepük van a tanításban ezeknek, illetve milyen a tanítási-tanulási folyamatban a tanár és tanuló szerepe.
A 21. században megjelenő folyamatok – a résztvevők együttműködve közös tudásobjektumot alkotnak és a megosztásra alapozva a hálózatiság élményét kapják – következménye a negyedik didaktikai paradigma, amelynek kulcsszavai: hálózatalapú tanulási formák, konnektivizmus, hipertanulás, e-learning.

Nahalka szerint a „tanítási – tanulási folyamat terve, az értékelési technikái, az elképzelt tanulási folyamat elképzelt logikája, koncepcionális háttere, a munka megszervezésének körülményei, azok a speciális eljá­rások, amelyeket az elképzelt folyamatban fel kívá­nunk használni, a gyermekek közötti, valamint a pe­dagógus – gyermek interakciók jellege, lehetőségei, a felhasznált információhordozók és más eszközök egy rendszert alkotnak”. Ez a negyedik paradigma tanu­lási környezete, amelynek biztosíthatnak egyéni és csoportos, offline és online tanulást, számítógéppel se­gített tanulást vagy kommunikációt, valamint aszink­ron és szinkron kommunikációt. Prensky megalkotta a „digitális bennszülött” és „digitális bevándorló” fo­galmait. Jukes és Dosaj ezekre alapozva meghatározta a „született digitális tanuló” és az „emigráns digitális tanár” jellemzőit.

Az előadás és a cikk egyrészt ismerteti a fenti folyamat tipikus mérföldköveit. Másrészt pozicionálja, hol tart ebben a folyamatban az it-tanfolyam.hu oktatói csa­pata az e-learning tananyagaik és online tartalmaik tekintetében. Harmadrészt bemutatásra kerül 12 db tankocka – interaktív tanulási környezetként –, ame­lyek elérhetőek az it-tanfolyam.hu szakmai blogban. Ezek élményszerű tanulást biztosító gamifikációs ele­mek, interaktív, weboldalakba ágyazható kisalkalma­zások, amelyek kiválóan használhatók gyakorlásra, rendszerező összefoglalásra Java szoftverfejlesztés, Java programozás témában.

Tankocka – Egyszerű sorbarendezés: Java forráskód

Folytatjuk Tankockák blog bejegyzés sorozatunkat. A feladatban helyes sorrendbe kell állítani a Java forráskód sorait. Ez főként a Java SE szoftverfejlesztő tanfolyamunk tematikájához kötődik.

A Java program véletlenszerű ötöslottó szelvényt állít elő. Adatszerkezetként generikus listát használ: létrehoz, bővít, karbantart, rendez, listáz. Amikor csak lehet, épít a kollekció beépített képességeire (eldöntés, sorozatszámítás, rendezés). Az eldöntés a véletlenszámok egyediségéhez kapcsolódik: tartalmazza-e a lista az új generált véletlenszámot? A sorozatszámítás a kiíráshoz kapcsolódik: a lista minden elemével ugyanaz a művelet történik. A rendezés miatt a megfelelően az ötöslottó szelvényen tárolt számok „emelkedő számsorrendben” jelennek meg. Ez a kifejezés tipikusan része a szakterület szókincsének. A konzolos kiírás kompromisszuma a lista kiíró metódusára építve megjeleníti a szögletes zárójelpárt. Autoboxing is megjelenik megvalósításban. A forráskódban nincs jelölve a csomag, importok, behúzás, tagolás, igazítás. Hajrá: fogd-és-vidd módszerrel!

Tankocka – Párkereső: csomag, osztály, interfész

Folytatjuk Tankockák blog bejegyzés sorozatunkat. A feladatban 12 összetartozó párt kell megtalálni az ismert Java csomagok, osztályok, interfészek témakörben. Ez a témakör mindhárom tanfolyamunkhoz kötődik: Java SE szoftverfejlesztő tanfolyam, Java EE szoftverfejlesztő tanfolyam, Java adatbázis-kezelő tanfolyam. Ezek egyszerű lexikális ismeretnek tűnhetnek, de jóval túlmutat azon.

Tipikus hibaforrás, ha az osztály és/vagy interfész neve a különböző csomagok esetén megegyezik és megszokásból, rutinból, figyelmetlenségből rossz csomagból importálunk. Nem biztos, hogy rögtön triviális: mi a hiba, miért az a hiba, hogyan oldjuk meg. Például Timer osztály van a java.util és a javax.swing csomagokban is és nagyon nem mindegy, hogy mikor melyiket (és persze mire, hogyan) használjuk.