IT történet – júliusban történt

IT történet blog bejegyzés sorozatunkban válogatunk a júliusban történt események közül – bármikortól napjainkig. A főbb témakörök: IT általában, számítástudomány, hardver, szoftver, platform, szoftverfejlesztés, játékprogramok, híres informatikusok, kibernetikusok, feltalálók, IT hírek, technológiai mérföldkövek. Természetesen nem törekedhetünk a teljességre, pusztán érdekességeket említünk röviden, tömören, amit illik tudni a szakterület iránt érdeklődőknek.


1999. július 1-jén, 22 éve történt:
A zenemegosztás kezdete. A Napster első béta változata illegális fájlcserélőként jelent meg. Shawn Fanning nevéhez fűződik.


1997. július 4-én, 24 éve történt:
A Mars Pathfinder – a Mars-kutatás egyik legsikeresebb űrszondája – leszállt a Mars felszínére és legördült róla a talajra a Sojourner marsautó.


1994. július 5-én, 27 éve történt:
Jeff Besos megalapítja az Amazon.com-ot – saját garázsában. Az online könyváruházként indult vállalkozás azóta az egyik legnagyobb internetes kereskedelmi céggé vált.


2003. július 8-án, 18 éve történt:
A Magyar Wikipédia napja. A Wikipédia magyar változata új verziójú programmal a hu.wikipedia.org címen történő elindításának emlékére jött létre.


2011. július 8-án, 10 éve történt:
Picaboo néven elindult a Snapchat multimédiás üzenetküldő alkalmazás, amelyen a a képek és üzenetek csak rövid ideig elérhetők, majd eltűnnek és elérhetetlenné válnak.


1982. július 9-én, 39 éve történt:
A Disney kiadta Tron, avagy a számítógép lázadása címmel az első mainstream filmet, amely kiterjedt számítógéppel generált grafikákat és speciális effektusokat használt.


1856. július 10-én, 165 éve történt:
Megszületett Nikola Tesla, aki a világ egyik legjelentősebb és leghíresebb tudósa és feltalálója volt, tevékenységét elsősorban az elektromosság, mágnesség és gépészet területén fejtette ki.


1995. július 12-én, 26 éve történt:
Tatu Ylönen, a Helsinki Műszaki Egyetem kutatója freeware-ként közzéteszi a Secure Shell (SSH) kriptográfiai hálózati (biztonsági) protokoll első verzióját.


2018. július 17-én, 3 éve történt:
Az emodzsi világnapja. Az Apple bejelentette, hogy 70 újabb emodzsit ad a rendszeréhez, melyek között ott lesznek a régóta várt vörös hajú, ősz hajú, hullámos hajú és a kopasz emodzsi is.


1968. július 18-án, 53 éve történt:
Létrejött az Intel Corporation amerikai vállalat, amely elsősorban mikroprocesszorairól ismert, de gyárt hálózati kártyákat, alaplapi chipkészleteket, videokártyákat és egyéb számítógépes eszközöket is.


1922. július 20-án, 99 éve történt:
Elhunyt Andrej Andrejevics Markov szovjet-orosz matematikus. 1906-ban bevezette a Markov-láncok fogalmát. Ezen alapul a Google PageRank algoritmusa: annak a valószínűségét adja meg, hogy odatalálunk egy weboldalra.


2008. július 25-én, 13 éve történt:
A Nemzetközi Űrállomáson (ISS) számítógépvírust észleltek. A világűrbe elsőként kikerült W32.Gammima.AG vírus egy űrhajós USB-meghajtójáról két laptopot fertőzött meg. A vírus célja volt ellopni a felhasználók online játékokhoz használt login adatait.


1963. július 26-án, 58 éve történt:
Geoszinkron pályára állt a Syncom-2, az első működőképes, amerikai távközlési műhold. Küldetése különféle kommunikációs tesztek elvégzéséből állt.


2000. július 26-án, 21 éve történt:
Elhunyt John Wilder Tukey amerikai matematikus, statisztikus. A számítógépek alkalmazásának egyik úttörője, ő alkotta meg a „bit” és a „szoftver” kifejezéseket.


2015. július 29-én, 6 éve történt:
Megjelent a Microsoft új operációs rendszere, a Windows 10. Úgy tervezték, hogy ez lesz a cég utolsó operációs rendszere.


Multimédia az oktatásban 2021

Multimédia az oktatásban logó

Multimédia az oktatásban 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 XXVII. Multimédia az oktatásban című online nemzetközi konferencia került megrendezésre 2021. június 10-11-é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.

24 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 a Dunaújvárosi Egyetemről élő közvetítésben zajlott a Pexip webkonferencia platformon. 2 nap alatt 13 szekcióban 65 előadás hangzott el 99 társszerzőtől. A rendezvényre 169 fő regisztrált és kb. 250-en követték az élő közvetítést 4 országból.

A plenáris előadások némileg számvetésre sarkalltak. Ez a 16. MMO-s anyagom 2009 óta. Ezek a szakmai előadások, magyar és/vagy angol nyelvű cikkek, poszterek megtalálhatók a publikációs listámban. Szakmai blogunkban több korábbi beszámoló is van: MMO 2020, MMO 2019, MMO 2018. Jövőre is szívesen csatlakozom a rendezvényhez. 2022-ben a Multimédia az oktatásban konferencia helyszíne a Zágrábban található Eszéki Egyetem lesz.

Részt vettem

2021-ben előadást tartottam „Python tanfolyam tapasztalatai az átalakuló szoftverfejlesztő OKJ képzésben” címmel 20 percben, amely a konferencia „Multimédia-fejlesztések, eredmények, alkalmazások bemutatása” című szekciójába került. Előadásom prezentációját ILIAS e-learning tananyagban tesszük elérhetővé tanfolyamaink résztvevői számára. Az anyagból készült 5 oldalas szakmai cikket is készítettem, amely elérhető lesz a hamarosan megjelenő konferencia kiadványban.

A cikk összefoglalója

A 2020/2021-es tanév átmenetet/átállást jelentett a szakképző intézményekben. Az informatika és távközlés ágazatban a korábbi szoftverfejlesztő képzést felváltotta a szoftverfejlesztő és –tesztelő képzés. A korábbi szabályozó és az új KKK, PTT dokumentumokat áttekintve több markáns különbség is adódik. Ezek egyike a Python programozási nyelv hangsúlyos beépülése. A kifutó kétéves OKJ képzést 2021-ben befejező diákok számára az it-tanfolyam.hu oktatói csapata kidolgozott és megvalósított egy Python tanfolyamot. Ők speciális célcsoport, mert már tanultak más programozási nyelveket, de Pythont még nem, vagy csak bevezetőként. Az előadás/cikk ismerteti a 2021. májustól elindult tanfolyam hátterét, tematikáját, szervezésének folyamatát, visszajelzéseit és összegzi a tapasztalatokat.

A cikk tartalomjegyzéke

  1. A szakképzés átalakulásának jogi háttere
  2. Tartalmi megújulás elemei
    1. Korábbi tartalom
    2. Új tartalom
    3. Releváns markáns különbségek
  3. Oktatók tapasztalatai
  4. A Python tanfolyam általános koncepciója
  5. A Python tanfolyam előkészítése, szervezése
  6. A tematika kiemelt elemei
    1. Adatszerkezetek
    2. Fájlok feldolgozása, adatbázis-kezelés
    3. Grafikus felhasználói felület – TKinter
    4. Webes alkalmazások – Flask és Django
    5. Mobil alkalmazások – Kivy
    6. IoT programozás – Raspberry Pi
    7. Mesterséges intelligencia
  7. Visszajelzések, tapasztalatok

Egy matematika érettségi feladat megoldása programozással 2021

érettségi logó

érettségi logóA 2021-es középszintű matematika érettségi feladatsor 12. feladata inspirált arra, hogy a programozás eszköztárával oldjuk meg ezt a feladatot. Szükséges hozzá néhány programozási tétel: sorozatszámítás, eldöntés, megszámolás, kiválogatás. Többféle megoldás/megközelítés is előkerül. Érdekes belegondolni, hogy mennyire más lehetne a problémamegoldás, ha programozhatnánk a matematika érettségi vizsgán. A teljes feladatsor a megoldásokkal együtt letölthető az oktatas.hu-ról.

12. feladat

A háromjegyű pozitív egész számok közül véletlenszerűen kiválasztunk egyet. Mennyi annak a valószínűsége, hogy a kiválasztott szám számjegyei különbözők? Megoldását részletezze!

1. megoldás

Az 1. megoldás egymásba ágyazott ciklusokkal behelyettesíti a szóba jöhető 900 db háromjegyű szám számjegyeit. A feltétel 648 esetben teljesül. Három számjegy azonosságát két részfeltétel és kapcsolatával eldönthetnénk a trichotómia miatt. Három számjegy különbözőségéhez három részfeltétel és kapcsolatából áll össze a feltétel. A válasz a kedvező és összes eset aránya/hányadosa, azaz 0,72. Másképpen 648 db szám a 900 db háromjegyű szám közül. A megoldás lépésszáma 900.

2. megoldás

Az egymásba ágyazott ciklusok lépésszáma összeszorzódik. A legbelső ciklus az előtte lévő feltételtől függően kevesebbszer is végrehajtódhat, hiszen a százas és tízes helyiértéken lévő számjegyek egyezése esetén nincs értelme az egyes helyiértéken lévő számjegy vizsgálatának. Így a 2. megoldás lépésszáma 810, azaz 10%-kal kevesebb. Ez a három részből álló feltétel két részre bontásával érhető el.

3. megoldás

A 3. megoldásban egyetlen ciklus végzi a vizsgálatot, a megszámolást. A ciklusváltozó már nem számjegy, hanem maga a háromjegyű szám, amiről döntést kell hozni: különbözik-e mindegyik számjegye vagy sem. Három beszédes nevű segédváltozó segít értelmezni a Java forráskódot. Ezek az egész osztás és a maradékos osztás műveleteivel állíthatók elő.

4. megoldás

A 4. megoldás logikai visszatérési értékű segédfüggvényt alkalmaz. Ez egy menekülőutas megoldás. Ha kizáró feltétel szerint már döntést tudunk hozni (például megegyezik a százas és a tízes helyiértéken lévő számjegy), akkor hamis értékkel menekülünk. Egyébként ág nélkül ezután következhet az egyes helyiértéken lévő számjegy összehasonlítása a többivel. A második feltétel az eddigiekhez képest tagadott, mert a menekülés a cél. Ha nincs menekülés amiatt, hogy volt két megegyező számjegy, akkor – a feltételek egymásra épülése miatt – nincs más hátra, mint igaz értékkel visszatérni (ami azt jelenti, hogy nem volt egyezés, azaz minden számjegy különbözött).

5. megoldás

Az 5. megoldás segédfüggvénye a háromjegyű szám esetén a különböző számjegyek darabszámával tér vissza. A röptében előállított százaz, tízes, egyes helyiértékeken lévő számjegyekből folyam adatszerkezet készül, aminek feldolgozását a Stream API műveletei (egyediesítő, megszámoló) végzik el. Ezt a vezérlő ciklusban hárommal összehasonlítva léptethető a megszámolást megvalósító változó, hiszen ha teljesül a feltétel, akkor eggyel több megfelelő szám van, mint előtte volt.

6. megoldás

Az 6. megoldás újra másképpen közelít. Ha könnyebbnek tűnik az a feltétel, hogy mikor nem jó (kedvezőtlen) nekünk egy szám, akkor beépíthetjük ezt is. Megszámoljuk azokat a háromjegyű számokat, amelyeknél egy vagy két számjegy azonos, majd ez kivonjuk a háromjegyű számok darabszámából.

7. megoldás

A 7. megoldás már mindent folyamokkal old meg, azok képességeire építve. Az összes háromjegyű számot előállítja, majd rajtuk kiválogatás programozási tételt (szűrőt) használ (az 5. megoldás segédfüggvényére építve), végül a folyamban maradó számokat megszámolja. Ez a megoldás már olyan haladóknak való, akik magabiztosan építik össze a Stream API műveleteit és a lambda kifejezéseket. Mindent egyben. Persze hol itt a hatékonyság? Hozzászólásokban megbeszélhetjük.

8. megoldás

A 8. megoldás szintén folyam adatszerkezettel működik, de négy egymást követő lépésben végez szűrést (kiválogatást). A 900 db háromjegyű számból indulunk ki. Az 1. szűrő kihagyja a 9 db AAA számot, amelyek számjegyei azonosak és így marad utána 891 db szám. A 2. szűrő után marad 810 db szám, mert kimarad az a 81 db AAB alakú szám (ahol a százas és tízes helyiértéken lévő számjegyek megegyeznek) az összesen 90 db-ból, ami még a folyamban maradt az 1. szűrő után. A 3. szűrő kihagy 81 db ABB alakú számot és meghagy 729 db számot. A 4. szűrő kihagy 80 db ABA alakú számot és meghagy 648 db ABC alakú számot.

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

Ajánljuk matematika érettségi feladat címkénket, mert a témában évről-évre blogolunk.

A feladat a Java SE szoftverfejlesztő tanfolyam szakmai moduljának 5-8. óra: Vezérlési szerkezetek, 13-16. óra: Tömbök, valamint 21-24. óra: Objektumorientált programozás, 2. és 3. rész alkalmaihoz kötődik.

 

IT történet – májusban történt

IT történet blog bejegyzés sorozatunkban válogatunk a májusban történt események közül – bármikortól napjainkig. A főbb témakörök: IT általában, számítástudomány, hardver, szoftver, platform, szoftverfejlesztés, játékprogramok, híres informatikusok, kibernetikusok, feltalálók, IT hírek, technológiai mérföldkövek. Természetesen nem törekedhetünk a teljességre, pusztán érdekességeket említünk röviden, tömören, amit illik tudni a szakterület iránt érdeklődőknek.


1978. május 3-án, 43 éve történt:
Gary Thuerk 393 címzettnek küldött egy hirdetést tartalmazó tömeges e-mailt az ARPANET-en. Ez volt az internet korához kötődő legkorábban dokumentált spam.


1946. május 7-én, 75 éve történt:
Létrejött a Sony Corporation tokiói székhelyű multinacionális vállalat, a világ egyik legnagyobb elektronikai, informatikai és szórakoztatóipari cége, médiakonglomerátuma.


2020. május 7-én, tavaly történt:
A thai AIS mobil és internet szolgáltató nyitva hagyott egy Elastic szervert, és szabadon hozzáférhetővé vált 8,1 milliárd rekordnyi felhasználói internetforgalmi adat, DNS, HTTPS és egyéb kérés, eszközazonosító.


1996. május 9-én, 25 éve történt:
A Linux 2.0.0 kiadása előtt egy hónappal Tux-ot a pingvint javasolták az operációs rendszer kabalájának.


2011. május 10-én, 10 éve történt:
A Microsoft Corporation megvásárolta a Skype internetes telekommunikációs alkalmazást 8,5 milliárd dollárért.


1997. április 11-én, 24 éve történt:
Véget ért a regnáló sakkvilágbajnok, Garry Kaszparov és az IBM Deep Blue nevű sakkszámítógépének párbaja. A gép 3,5:2,5 arányban legyőzte a világbajnokot.


1999. május 11-én, 22 éve történt:
A Sony bemutatta az AIBO robotkutya-sorozat első fogyasztói modelljét. Beagle-szerű volt a megjelenése.


1865. május 12-én, 156 éve történt:
Megalapítja a finn Nokia városban Fredrik Idestam a Nokia Corporation-t, amely azóta a világ egyik legnagyobb telekommunikációs vállalata lett.


2015. május 13-án, 6 éve történt:
Megjelent a Discord, egy közösségek létrehozására tervezett VoIP, azonnali üzenetküldő, hang- és videóhívásokat, privát csevegést, fájlküldést támogató platform.


1984. május 14-én, 37 éve történt:
Megszületett Mark Zuckerberg amerikai feltaláló, programozó, filantróp, milliárdos, a Facebook közösségi oldal készítője.


2006. május 16-án, 15 éve történt:
Megjelent a MacBook, az Apple Inc. első Intel Core Duo processzoros laptopja Max OS X operációs rendszerrel.


1865. május 17-én, 156 éve történt:
Az információs társadalom világnapja. Az ITU (International Telecommunication Union) határozata alapján tartják, megemlékezve az egyesület párizsi alapításáról.


1955. május 19-én, 66 éve történt:
Megszületett James Gosling, kanadai számítógéptudós, aki leginkább a Java programozási nyelv atyjaként ismert.


2012. május 20-án, 9 éve történt:
Elhunyt Eugene Polley amerikai mérnök és mérnök menedzser, akit leginkább a televíziózás első vezeték nélküli távirányítójának feltalálójaként ismerünk.


2017. május 20-án, 4 éve történt:
Elhunyt Jean E. Sammet amerikai számítástechnikus, aki részt vett a világ első számítógépes nyelvének, a FORMAC-nak a kidolgozásában az IBM-nél.


1980. május 22-én, 41 éve történt:
Megszületett a Pac-Man. A Namco cég terméke igazi klasszikussá vált, szinte minden platfomon elérhető. A világ egyik legismertebb videójátéka.


1926. május 31-én, 95 éve történt:
Megszületett Kemény János magyar-amerikai matematikus, számítástechnikus, a BASIC programozási nyelv megalkotója.


Keresztrejtvény készítése

Támogatjuk a keresztrejtvények készítését Java programmal. A program grafikus felülete eszköztárból és a keresztrejtvényből áll. Az elkészült programban 10×10-től 15×15-ig beállítható négyzetrács készíthető elő. A tiltott négyzetek száma 15-től 30-ig beállítható. Mivel a tiltott négyzetek helyzete véletlenszerű, így nem biztos, hogy az elsőre jó/szerencsés lesz, ezért újragenerálható a négyzetrács. A program a tipikus követelményeknek megfelelően sorfolytonosan sorszámozza a négyzetrács elemeit, ami alapján megadhatók hozzá a vízszintes és függőleges feladványok. A program az elfogadott négyzetrácsot többféle képformátumban is el tudja menteni.

Az elkészült Java program grafikus felülete

Objektumorientált tervezés

A keresztrejtvény ábrája egy négyzetrácsból áll, amelyben rejtvénymezők helyezkednek el. A rejtvénymezőnek megfelel egy örökítéssel felüldefiniált címkekomponens. A rejtvénymezőt körülveszi egy szegély/keret, tiltott vagy sem állapotától függően fekete vagy fehér a háttérszíne, valamint van a bal felső sarkához igazított kis méretű betűvel nem kötelezően megjeleníthető sorszáma. A tiltott és sorszám tulajdonságait kell tudni beállítani és megkérdezni. Ez a feladatban a RejtvenyMezo POJO. A négyzetrács sorai és oszlopai azonos méretűek (pixelre és darabszámra egyaránt).

Algoritmus a keresztrejtvény sorszámozására

A rejtvénymezők kétdimenziós négyzetes mátrixban/tömbben helyezkednek el. A sorszámozáshoz hasznos, ha a négyzetrácsot körbeveszi egy tiltott rejtvénymezőkből álló keret. Először a rács sorain és oszlopain végighaladó egymásba ágyazott ciklusok létrehozzák a POJO-kat úgy, hogy a négyzetrács keretén lévő rejtvénymezők tiltottak, a többi nem tiltott. Ezután véletlenszerűen ki kell választani – a még nem tiltottak közül – a szükséges mennyiségű tiltott rejtvénymezőt. Ezután sorfolytonosan sorszámozni kell azokat a rejtvénymezőket, ahol vízszintes vagy függőleges feladvány kezdődik. Ehhez is két egymásba ágyazott ciklus kell, amelyben minden még nem tiltott rejtvénymező egyre növekvő sorszámot kap, ha tőle balra tiltott és tőle jobbra nem tiltott rejtvénymező helyezkedik el, de akkor is, ha felette tiltott és alatta nem tiltott rejtvénymező található.

A keresztrejtvényt sorszámozó algoritmus Java megvalósítása

Továbbfejlesztési lehetőségek

  • A feladványok listázhatók és kideríthető a hosszuk.
  • A tiltott rejtvénymezők véletlenszerű elhelyezése helyett lehetne valamilyen szabály, stratégia az egymáshoz való helyzetükre, távolságukra, közvetlen szomszédságukra vonatkozóan. Figyelembe vehetnénk valamilyen szimmetriát is, mintákat, alakzatokat is. Véletlenszerű elhelyezésük nem biztos, hogy mindig jó/szerencsés: például a tiltott rejtvénymezők körbezárhatnak egy nem tiltottat, hosszabb feladványokat nehezebb találni…
  • A Java SE szoftverfejlesztő tanfolyam tematikájához kötődően többféle szótárból, fájlformátumból betölthetünk a feladványokhoz használható, például 7 betűs országnevek, 2 betűs kémiai elemek, női/férfi keresztnevek, autójelek, pénznemek, szinonimák…
  • A Java EE szoftverfejlesztő tanfolyam tematikához kötődően többféle webes adatforrásból, Wikipédiából, szótárból, API hívásokkal letölthetünk a feladványokhoz használható listákat, meghatározásokat, kulcs-érték párokat. A swing-es felületet lecserélhetjük böngészőben futó webes GUI-ra is.
  • A Java adatbázis-kezelő tanfolyam tematikájához kötődően a fentiek kiegészítéseként tervezhetünk és építhetünk helyben tárolt tudástárat, adatbázist, amiből hatékonyan lekérdezve adhatunk feladványokat a keresztrejtvényhez.
  • Miután a fentiek szerint valahogyan – tipikusan visszalépéses algoritmussal – meghatároztuk a feladványokat, a keresztrejtvényből menthetünk kitöltött változatot 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.