Rácsrejtjelezés

Időnként készítünk oktatóprogramokat is tanfolyamainkon. Most az volt a cél, hogy kódolás/dekódolás szakterület egyik ismert betűkeveréses algoritmusának működését mutassa be lépésről-lépésre az oktatóprogram. A rácsrejtjelezést választottuk.

Az elkészült program Java swing-es felületű és Windows Classic look-and-feel bőrrel így néz ki működés közben:

A rácsrejtjelezés a képernyőképen látható 4×4-es Kódrács használatán alapul.

A titkosítandó szöveget karakterenként beleírjuk az aktuális kódrácsba soronként lefelé, azon belül balról jobbra haladva. Ha a négy pozíció betelt, akkor el kell fordítani a kódrácsot az óramutató járásával megegyező irányban 90 fokkal. Ha a szöveg hosszabb 16 karakternél, akkor elölről kell kezdeni. Ha készen vagyunk, akkor soronként haladva leírjuk egymás után a kódrácsban található karaktereket.

A megfejtéshez ismernünk kell a titkosított karaktersorozaton kívül a felhasznált kódrácsot is. A karaktersorozatot soronként lefelé haladva beírjuk a kódrácsba, az ismert kódrácsot ráhelyezve soronként lefelé, azon belül balról jobbra haladva kiolvashatjuk a megfejtést. Természetesen a kódrácsot most is forgatni kell minden negyedik karakter után.

Megfigyelhető, hogy bármely karaktert tudunk titkosítani és megfejteni. Ezért a rácsrejtjelezés ebből a szempontból univerzális módszer.

A kódrács ismerete nélkül a titkosított szöveg nem fejthető meg, tartalmára csak nehézkes következtetést adhatunk. Például, ha tudjuk, hogy milyen nyelvű a titkosított szöveg, akkor támpontot adhat a megfejtéséhez a nyelv ábécéjében előforduló betűk ismert gyakorisága.

A képernyőkép éppen a megfejtés egyik pillanatában készült. A feladó továbbította a titkosított szöveget és a kódrácsot a címzettnek, aki elkezdte annak megfejtését. A negyedik karakter a b volt, utoljára erre kattintott a (4;4) pozícióban. Ezt követte egy rácsforgatás, amelyhez tartozik egy ablak, amely megjeleníti a „Rácsforgatás következik.” szöveget. Ezután a kódrács elfordult, és a következő cella a második sor első cellája lesz. Ha hibás cellára, pozícióra kattintunk, akkor a következő hibaüzeneteket kaphatjuk: „Hibáztál! Folytathatod a titkosítást.” vagy „Hibáztál! Folytathatod a megfejtést.” Ha befejeztük a titkosítást, vagy a megfejtést, akkor a következő üzeneteket kaphatjuk: „A kódolás sikerült.” vagy „A megfejtés sikerült.”

A program tartalmaz egy gyakorlást támogatandó szövegkészletet. Ennek minden eleme 16 hosszúságú, az egyszerűség kedvéért – így nem kell véletlenszerű karakterekkel feltölteni a rács kimaradt celláit, illetve nem kell 16-os csoportokkal foglalkozni.

A Titkosítás és megfejtés fülön látható egy véletlenszerűen kiválasztott szöveg, amelyet karakterenként kódolni lehet a kódrács megfelelő cellájára kattintva. Ha kész, a Továbbítás gombbal a feladó elküldi a címzettnek a titkosított karaktersorozatot, aki hasonlóan megfejti. „Útközben” megfigyelhető, hogy éppen hányadik elforgatásnál tartunk és természetesen megjelenik az aktuális ráccsal titkosított szöveg is.

Az űrlapon lévő Kódrács csoportablak az aktuálisan, véletlenszerűen legenerált kódrácson kívül a kiválasztott cellák pozícióit is tartalmazza. Az (1;1) pozícióban a bal felső cella található. A kódrács a Másik nyomógombbal véletlenszerűen újragenerálható. Ennek megvalósításakor több probléma, ötlet is felmerülhet. Például használható visszalépéses keresés algoritmus.

Most nem specifikáljuk részletesebben, például objektumorientált tervezés, eseménykezelés, háttérbeli objektumok vagy GUI komponensek működésének/vezérlésének szintjén. Aki kedvet kapott és úgy érzi, hogy meg tudja ugrani ezt a kihívást, akkor bátran elkészítheti. Hajrá! Mivel oktatóprogram, szükséges hozzá Leírás és Teszt is.

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 Java SE szoftverfejlesztő tanfolyamunkon, a szakmai modul Objektumorientált programozás témakörét követő 29-36. óra Grafikus felhasználói felület alkalmain már tudunk egyszerűbb oktatóprogramot tervezni, kódolni, tesztelni.

Kódolás órája az Óbudai Egyetemen 2023

Az Hour of Code egy 2013-ban kezdődött globális mozgalom 180-nál több országban. Több tíz millió embert érint világszerte. Célja, hogy mindenki megismerkedjen a programozás alapjaival, egy órányi közös tanulás alkalmával. Az Óbudai Egyetem Neumann Informatika Karán 7. alkalommal került sor a Kódolás órája rendezvényre 2023. december 18-án.

A rendezvény weboldalán megtalálható néhány hívószó, szemléletformáló gondolat:

  • Miért tanuljak programozni? Azért, mert megtanít gondolkodni! A programozás egy tanulható, elsajátítható készség, amely fejleszti a logikai érzéket és a rendszerszemléletet.

  • Világszerte, így hazánkban is, olyan általános igény van informatikusokra, amelyet az álláskeresők tömege sem tud kiszolgálni.

  • A munkaerőpiacon is értékes tudás a programozás ismerete.

Korábbi saját rendezvényeink (Programozd a jövőd! – IT a jövőd, STEM nyári tábor, Digitális Témahét, Kutatók éjszakája, CodeWeek.eu) résztvevői közül toboroztunk egy csapatot, regisztráltunk és részt vettünk a Kódolás órája rendezvényen.

9 órakor kezdődött a plenáris megnyitó.

9:30-kor indult a feladatmegoldás a NIK számítógépes laborjaiban. Kezdő és haladó szintű feladatok, kihívások, számítógépes játékokban való vezérlés, stratégia tervezése, megvalósítása, tesztelése. Mindez igény szerint egyénileg vagy kiscsoportosan zajlott. A használt online felület élményalapú tanulást, gamifikációt biztosított. Többféle programozási nyelv közül lehetett választani, attól függően, hogy kinek milyen előismeretei voltak. A többség Python vagy JavaScript nyelveket választott.

11 órától – újra plenárisan – a NIK bemutatkozására került sor. Dr. Kertész Gábor – a NIK kutatási dékánhelyettese – ismertette a kar képzéseit, az alapképzések felépítését és a választható specializációkat. Természetesen a nyílt napokra jellemző erősségeink, hallgatók támogatása, ipari kapcsolatok, kari kutatások, munkavállalás hallgatóként kötelező elemek sem maradtak ki.

12 órától két ismeretterjesztő előadás következett. Az első előadás – a NJSZT részéről – a Neumann 120 rendezvénysorozat alkalmából Neumann János életét és munkásságát összegezte. Dömölki Bálint Neumann, a polihisztor című kutatásából megtudtuk, hogy Neumann összesen hat különböző szakterületen publikált. Ezek: „tiszta” matematika; analízis, alkalmazott matematika; logika, halmazelmélet; fizika, kvantummechanika; számítástudomány; gazdaságtan, játékelmélet. A második előadás – a NIK részéről – egy kategóriájában nyertes TDK (Tudományos Diákkör) munka ismertetése volt. Csippán György – a NIK hallgatója mesterséges intelligencia szakirányon – tartotta Szavakon túl: beszédvizualizáció MI segítségével, az elragadó vizuális média létrehozásáért címmel. Ismertette a beszélt mondatok rögzítéséhez, videó létrehozásához, valós idejű futtatás biztosításához kötődő metodológiáját, valamint felhasznált két generatív modellt, amelyeket össze is hasonlított kutatómunkájában.

Végül 13 órától a résztvevők megtekintették – szakszerűen felkészült tárlatvezetővel – a kar épületének 1. emeletén található IT Evolúció 2.0 című kiállítást. Az 52 db vitrinben található eszközök az alábbi témakörökhöz, szakterületekhez kötődnek: nyelv és beszédtechnológia, írás és írástechnológia, műszaki rajzolás eszközei, könyvnyomtatás, hang- és képrögzítés, elektromos távközlés, számítógépek, személyi számítógépek, az internet hazai megvalósítása, mobil és okos technikák. A kiállítás Dr. Kutor László, az Óbudai Egyetem címzetes egyetemi tanárának több mint 40 évnyi gyűjtő és rendszerező munkájával kifejlődött magángyűjteményéből jött létre.

Beszámoló: it-tanfolyam.hu STEM nyári tábor 2023

A STEM mozaikszó eléggé közismert: a tudományos-technológiai tudományágakat (természettudomány, technológia, mérnöki tudomány és matematika) foglalja egybe, interdiszciplináris megközelítésben. A STEM területén való elmélyedés során a hangsúly nem a mit tanulunk/tanítunk, hanem inkább a hogyan tanulunk/tanítunk. Nem azonnal ad kézzel fogható válaszokat, de kitartó próbálkozással – saját élménnyel – elérhető az eredmény.

Az it-tanfolyam.hu oktatói csapata 2023-ban először hirdetett STEM nyári tábort. Erről számolunk be röviden ebben a blog bejegyzésben. Tervezzük, hogy a jövőben rendszeresen fogunk szervezni STEM nyári tábort.

A STEM nyári tábor koncepciója

2023. nyarán 4 turnusban hirdettünk programozás fókuszú STEM nyári tábort:

  • 1. turnus: július 3-7-ig,
  • 2. turnus: július 10-14-ig,
  • 3. turnus: július 17-21-ig,
  • 4. turnus: július 24-28-ig.

Előzetes tudás- és igényfelmérést végeztünk, így alakítottunk ki 3 db csoportot, ezek: Java kezdő, Python kezdő, Python haladó. A kiinduló célcsoportot tanfolyamaink karrierváltó hallgatóinak gyermekei jelentették, akik mellé toboroztunk még. A korosztály a 16-20 éves diákok voltak a 11-14. évfolyamról. A 11-12. évfolyamosok közül sokan informatika, digitális kultúra érettségi előkészítő fakultációra jelentkeztek, jártak, járnak és ebből érettségiznek/érettségiztek. A már korábban érettségizett 13-14. évfolyamosok körülbelül fele az OKJ utód szakmajegyzékhez tartozó szakképzésben tanult.

Mindegyik turnus azonos tematikával valósult meg. Turnusonként 3 db párhuzamos, 10-12 fős csoportokat indítottunk. Voltak közös elméleti programok, szakmai kirándulás, illetve külön-külön Java és Python nyelven megvalósuló gyakorlati programok, valamint projektbemutatóra is sor került. Igyekeztünk érinteni sokféle STEM területet: fizika, kémia, biológia, csillagászat, térinformatika, mesterséges intelligencia, szimuláció, játékprogramok, matematika, orvostudomány; mindegyiket a programozáshoz kapcsolva. Végeztünk tervezést, kódolást, tesztelést is. Belefért némi pályaorientáció is.

A STEM nyári tábor órarendje

Turnusonként 4 oktató kollégával és vendégelőadókkal hétfőtől-péntekig minden nap 8 és 18 óra között biztosítottuk a jelenlétet, felügyeletet. 40 órában szakmai programokat (elmélet+gyakorlat) kínáltunk. Reggelenként és késő délutánonként 1-1 órában offline, egyéni vagy csoportos játékok voltak kipróbálhatók. Ez mindösszesen 50 órát jelentett. Délelőttönként 20, 30 és 60 perces programokat terveztünk, délutánonként 120 és 240 perceseket. Szerdára szakmai kirándulást, gyárlátogatást ütemeztünk be. Íme az órarend áttekintő formában:

Íme az órarend naponként lapozható formában, benne a részletekkel:

Előzetes tapasztalataink

Előzetes tapasztalatainkat több forrásból merítettük, inspirálódtunk:

Köszönetnyilvánítás

Köszönjük résztvevő diákjainknak az aktivitást, a lelkesedést, a sok-sok elgondolkodtató kérdést, az offline kapott/szerzett élményeket, a pozitív visszajelzéseket.

Szeretnék köszönetet mondani együttműködő partnereinknek: LEGO Manufacturing Kft., REGIO Játékkereskedelmi Kft., Revolt Kereskedelmi Kft., Pannon Kincstár Humán Szakképző Központ.

Végül szeretnék köszönetet mondani minden oktató kollégámnak konstruktív részvételüként, kitartásukért a projekt teljes életciklusában. A tervezési, a szponzorszerző, a promóciós és a megvalósítási szakaszokban egyaránt 2023. április elejétől július végéig. Kiemelem korábbi és az aktuális projekthez kötődő tananyagfejlesztési tevékenységüket. A sikeresen lezárt projektünket augusztusban kipihenjük. 😉

Magyar Informatika Napja 2023

1959. január 21-én – 64 éve -, az MTA Kibernetikai Kutatócsoportnak köszönhetően kezdett el működni az első magyar elektronikus számítógép, az M-3. A 64. évforduló az informatikusok körében kerek számnak tekinthető ;-). Ezt a napot – a Neumann János Számítógép-tudományi Társaság kezdeményezésére – tekintjük a magyar informatika megszületésének.

Ebből az alkalomból szerveztünk egy rendezvényt mára 9-12 óráig meghirdetve, offline és online egyaránt. Tanfolyamaink hallgatói közül többen is élénk érdeklődést és elkötelezettséget mutatnak a számítástudomány, IT történet, hardver eszközök iránt. Így oktatóinkon kívül őket is felkértük a közreműködésre.

Rendezvényünk programja

  • Kiss Balázs: Köszöntő
  • Marton Zsombor: Az M-3 alkatrészei és műszaki paraméterei, építése, átadása
  • Kaczur Sándor: Az M-3 számítási teljesítménye – összevetve a holdra szállások során használt számítógépekkel, a 2000-es évek Mars rovereivel, valamint egy mai „átlagos” mobiltelefonnal
  • Szegedi Kristóf: Az M-3 üzemeltetése, történeti érdekességei és néhány „éles” alkalmazása
  • Kiss-Kovács Andrea: Virtuális tárlatvezetés Vidovenyecz Zsolt Régi magyar számítógépek – Hungarian Old Computers weboldalán, a ritkaságok és 3D tárlat megtekintése
  • Nyújtó Péter Zoltán: Virtuális tárlatvezetés a Szent-Györgyi Albert Agóra területén található Informatika Történeti Kiállításon (ITK)
  • Kiss Balázs: A Neumann 120 emlékév szakmai programjainak áttekintése
  • Hollós Gábor: Válogatás az Álmok álmodói sorozat, híres magyarokat bemutató 5 perces epizódjaiból
  • Horváth János: Virtuális tárlatvezetés az Óbudai Egyetem Neumann János Informatikai Karának aulájában található IT Evolúció 2.0 kiállításon
  • Hollós Gábor: Múzeumok éjszakája – összefoglalók: 2018-ból, 2019-ből, 2020-ból, 2021-ből, 2022-ből
  • Szegedi Kristóf: Fényképes élménybeszámoló Nikola Tesla – Mind from the Future kiállításról és a World of Robots interaktív kiállításról
  • Kaczur Sándor: Fényképes élménybeszámoló a müncheni Deutsches Museum állandó tudományos és technológiai kiállításairól (elektronika, távközlés, számítástechnika, űrkutatás)
  • Kiss Balázs: Zárás

Köszönöm a résztvevők lelkesedését és színvonalas előadásaikat, élménybeszámolóikat.

A téma iránt érdeklődőknek ajánlom az alábbi négy magyar nyelvű könyvet:

Tankocka – Legyen Ön is milliomos! – Programozás Java nyelven

Utolsó megosztott tankockánkkal lezárjuk a 12 részes Tankockák blog bejegyzés sorozatunkat.

A Legyen Ön is milliomos! típusú tankocka mindig 6 db, egyre nehezedő kérdést tesz fel. Egy kérdés mindig 4 válaszlehetőséget tartalmaz és ezek közül mindig egy és csak egy lehet a helyes válasz. A kérdésbank nehézségi szintek alapján csoportosított: egészen könnyű (500), nagyon könnyű (1’000), közepes nehézségű (5’000), mérsékelten nehéz (50’000), kicsit nehéz (250’000), nagyon nehéz (1’000’000). A kérdésbank 60 db kérdést tartalmaz. A játék azonnal véget ér az első hibás válasznál, és ekkor újra is kezdhető. A szakmai tartalom a korábban elkészült 11 tankockára épít és rendszerező, szintetizáló jellegű ismétlés, kötődik két tanfolyamunk tematikájához: Java SE szoftverfejlesztő tanfolyam és Java EE szoftverfejlesztő tanfolyam.

Tartalmas időtöltést kívánok! Tessék bátran gyakorolni!

Aki mindegyik nagyon nehéz kérdésre tudja a választ és ezt a megkapott LearningApps kóddal igazolni tudja, az kap egy it-tanfolyam.hu logós csokoládét, amit bármelyik következő rendezvényünkön átvehet: Digitális Témahét, Kutatók éjszakája, Programozási Hét – CodeWeek.eu.