Híres idézetek

hires_idezetekHí­res idé­ze­te­ket min­dig ér­de­mes fi­gye­lem­mel kí­sér­ni és hasz­nos né­ha el­gon­dol­kod­ni is eze­ken. Az alábbi­ak­ban prog­ra­mo­zás­hoz, szoft­ver­fej­lesz­tés­hez, illet­ve in­for­ma­ti­ká­hoz kö­tő­dő­en gyűj­töt­tem össze 12 idé­ze­tet. A hí­res em­be­rek kö­zött van­nak mér­nö­kök, ma­te­ma­ti­ku­sok, ku­ta­tók, akik prog­ra­mo­zá­si nyel­ve­ket al­kot­tak, akik hard­vert ter­vez­tek, cé­get ala­pí­tot­tak, akik in­for­ma­ti­kus­ként dol­goz­tak/dol­goz­nak. További idé­ze­te­ket szí­ve­sen fo­ga­dok.

„Tévedés azt hinni, hogy egy komplex rendszerhez tervezők és programozók hada szükségeltetik. Egy olyan rendszert, melyet teljesen vagy jelentős mértékig nem ért meg egyetlen személy, valószínűleg nem kell megépíteni.”

Niklaus Wirth (1934-), számítástudománnyal foglalkozó svájci matematikus, informatikus, a Pascal programozási nyelv tervezője és fejlesztője

„Amikor kommentárokat olvasok javaslatokról, hogy a C nyelvnek merre kellene haladnia, gyakran visszagondolok a múltra és hálát adok, hogy nem a széleskörű nyilvánosság tanácsait figyelembe véve végeztük a fejlesztését.”

Dennis M. Ritchie (1941-2011), amerikai számítógéptudós, a C programozási nyelv tervezője

„Szeretném látni, hogy a Perl-t használók kreatívan ragasztják össze a dolgokat, nem csak technikailag, hanem társadalmilag is.”

Larry Wall (1951-), amerikai programozó, a Perl programozási nyelv alkotója

„Ha a Java-n kívül más nyelvet választanék, akkor az a Scala lenne.”

James Gosling (1954-), kanadai számítógéptudós, a Java programozási nyelv atyja

„Tulajdonképpen utálom a programozást, de szeretek problémákat megoldani.”

Rasmus Lerdorf (1968-), dán-kanadai programozó, a PHP programozási nyelv tervezője

„Az emberek úgy gondolják, hogy a számítástechnika a zsenik művészete, de a valóság az ellenkezője: sokan csinálnak olyan dolgokat, amelyek egymásra épülnek, mint mini kövekből a fal.”

Donald E. Knuth (1938-), amerikai matematikus, az algoritmuselemzés atyja

„Az objektumorientált programozás egy rendkívül rossz ötlet, amely csak Kaliforniából származhatott.”

Edsger W. Dijkstra (1930-2002), holland matematikus, informatikus, a strukturált programozás fogalmának bevezetője

„A programozás ma a gyémántbányászat ellentéte. A gyémántbányászatban rengeteg szennyeződést ásunk ki, hogy egy kis értéket találjunk. A programozásnál az értékkel kezdünk, majd eltemetjük azt egy csomó szennyeződésbe.”

Charles Simonyi (1948-), magyar származású, USA-ban élő szoftverfejlesztő, az objektumorientált programozás bevezetője a Microsoftnál

„A szoftver egy nagyszerű kombináció a művészet és a mérnöki munka között.”

Bill Gates (1955-), amerikai szoftverfejlesztő, a Microsoft cég társalapítója

„Egész életemben olyan számítógépeket terveztem, amelyeket soha nem tudtam megépíteni.”

Steve Wozniak (1950-), amerikai elektromérnök, az Apple Computer cég társalapítója

„Néhányan amiatt aggódnak, hogy a mesterséges intelligencia elgyengít bennünket, de bárkinek – józan ésszel gondolkodva – alsóbbrendűségi komplexusa kellene, hogy legyen mindig, amikor egy virágra néz.”

Alan Kay (1940-), amerikai számítógéptudós, az objektumorientált programozás és a grafikus felhasználói felület koncepcióinak úttörője

„Ha egy gép várhatóan tévedhetetlen, akkor nem is lehet intelligens.”

Alan Turing (1912-1954), brit matematikus, a Turing-gép fogalmának megalkotója

FIRST® LEGO® League robot verseny 2018

First Lego LeagueA Nemzetközi LEGO® Robot versenyek azért jöttek létre, hogy a segítsék/erősítsék a műszaki, természettudományos és informatikai kompetenciák fejlesztésén túl a kooperatív csoportmunkát, a problémamegoldásra orientáló komplex gondolkodásmódot. A hazai oktatási rendszerben ezek az összetevők is egyre hangsúlyosabban jelennek meg. A Magyarországon is „játszható” nemzetközi versenyek közül kiemelkedik két verseny: a FIRST® LEGO® League (FLL) és a World Robot Olympiad™ (WRO).

2018. december 15-én FLL bíróként részt vettem az Edutus Egyetem által – már sokadik alkalommal – megrendezett FLL robotika verseny tatabányai regionális fordulóján. 3 fős zsűri tagjaként a feladatom a versenyre elkészült kutatási projektek értékelése volt.

First Lego League FLL kép1

Az FLL verseny 1998-ban indult, melyen 70 országból, mintegy 30 000 csapat vesz részt évente. Magyarország a Central Europe régióban vesz részt, ahol kb. 800-900 csapat mérkőzik meg egymással. Egy csapat 3-10 főből áll, választott csapatvezetőjük van és mindannyian 9-16 év közötti tanulók.

First Lego League FLL kép2

Minden évben van egy központi témája a versenynek, ami két szálon fut:

  • Kutatási projekt: a kutatási feladat témáját megismerve a csapatok egy problémát keresnek, amelyre az életkoruknak megfelelő megoldást kell adniuk és tevékenységükről 5 perces prezentációban számolnak be a versenyen. A zsűri értékeli a kutatási projekt megvalósítása során a probléma azonosítását, elemzését, a meglévő megoldások áttekintését, a csapat megoldását, a megjelenő innovációt, a prototípust, a prezentáció felépítését, hatékonyságát, eredetiségét, a csoportmunkát. Letölthető a 2018-as kutatási feladat leírása.
  • Robotika: egy kb. 3 m2-es akadálypályán tűznek ki 10-15 megoldandó feladatot, amelyre a csapatnak robotot kell tervezni, építeni és programozni. A robotnak 2,5 perc alatt kell önállóan, a programja által vezérelve megoldania a feladatokat. Az akadálypálya egységes, minden évben központilag készítik el. A feladatok teljesen probléma centrikusak, a csapat találja ki, hogyan oldja meg, nincs abszolút jó megoldás. A verseny során a robotot át lehet építeni, és csak a pálya kijelölt területén lehet kézzel hozzáérni. A zsűri értékeli a robot dizájnt, amely a megépített konstrukció ötletességét, hatékonyságát, valamint a programok forráskódjainak működését jelenti. Külön feladat alapján értékelik a csapatmunkát is. A nemzeti fordulókból a legjobbak jutnak tovább a nemzetközi fordulókba. Letölthető a 2018-as robotverseny feladat leírása.

A 2018-as verseny során az INTO ORBIT nevű projektet kellett megvalósítani, amelyben a csapatnak azonosítania kellett egy olyan fizikai vagy társadalmi problémát, amellyel szembe kell néznie az embereknek egy hosszú távú űrutazás során a naprendszerünkön belül, és javaslato(ka)t kellett tenniük a megoldására. A korábbi évek projekt témakörei is, illetve korábbi események hírei is elérhetők: Edutus 2017, Debrecen 2018, valamint nemzetközi és hazai robotversenyek általában.

First Lego League FLL kép3

First Lego League FLL kép4

A verseny teljes dokumentációja, specifikációja több száz oldal angol nyelven és részben nonverbálisan elérhető anyagból áll és évről-évre változnak a konkrétumok, de a koncepció (alapértékek: discovery, innovation, impact, inclusion, teamwork, fun) állandó. A 2018-as robotverseny akadálypálya megépítve így nézett ki:

First Lego League FLL kép5

First Lego League FLL kép6

5 csapat mérkőzött meg egymással: Refisek, RoboGo_5vos, Maros Robo Team, legÓÁG, FrankaRobotics. A kutatási projektben többféle megközelítést alkalmaztak. Volt, ahol a technológiai, informatikai eszközorientált, kommunikációs problémák, fiziológiai szükségletek domináltak, máshol inkább perspektivikusabb társadalmi, szociológiai aspektusok és a fenntarthatóság kerültek előtérbe. Három csapat igazán kiemelkedett a délelőtti zsűri előtti fordulóban prezentációjukkal és kaptak sok-sok ötletet, javaslatot. Ők délután még egyszer megtartották előadásaikat, immár a teljes – kb. 120 fős tanulókból, felkészítő tanáraikból, szülőkből, testvérekből álló – közönség előtt. Szeretném kiemelni, hogy – miközben több szálon is futottak az egész napos rendezvényen az események – a TOP 3 csapat tagjai kiegészítették, átdolgozták délutánra a délelőtti prezentációikat és figyelembe vették a kapott ötleteket, javaslatokat. Egy markáns példa: a Plútóra küldött expedíció vezetője délelőtt még erősen autokratikus diktátor politikusként jelent meg, de délutánra már inkább emberközpontú spirituális vezetővé szelídült.

Örülök, hogy részt vehettem az FLL 2018 versenyen. Tartalmasnak bizonyult ez a nap. A szervezés nagyon profi volt. Legközelebb is szívesen csatlakozom.

Télapó probléma

Télapó-problémaAz operációs rendszerek tervezésének fontos része az ütemezési, erőforrás- és szálkezelési feladatok problémamentes, holtpontmentes megoldása, szinkronizálása, amiről sok ismert szerző publikált már, néhányan közülük angol nyelven: W. Stallings, A. B. Downey, A. S. Tanenbaum, A. S. Woodhull., és magyarul is: Galambos Gábor, Knapp Gábor és Adamis Gusztáv. Ehhez a szakterülethez tartozik több népszerű probléma/esettanulmány, például a vacsorázó bölcsek problémája, illetve a Santa Claus Problem, vagyis a Télapó probléma.

A Télapó probléma specifikációját és megoldását a konkurens programozás eszközeire építve J. A. Trono készítette el (szemaforokkal), amire építve is – és kritizálva is azt – több Java implementáció is elkészült (például: P. Steiner), valamint több programozási nyelv szálkezelési lehetőségeinek összehasonlításáról is publikált J. Hurt és J. B. Pedersen és kliens-szerver elosztott környezetben is áttekintette a lehetőségeket D. Marchant és J. Kerridge. Ismert Haskell, Erlang, Polyphonic C# implementáció is.

A Télapó probléma meghatározása

A Télapó alszik az északi-sarki boltjában és csak akkor ébredhet fel, ha mind a 9 rénszarvas visszatér a dél-csendes-óceáni trópusi szigetén töltött rendes évi nyaralásukról, illetve ha akad néhány manó, akiknek nehézségei vannak az ajándékkészítés során. A 10 manó közül 1 manó problémája nem elég komoly ahhoz, hogy felébressze a Télapót (egyébként sosem aludna), így 3 manó megy egyszerre a Télapóhoz. Amikor a 3 manó problémáit közösen megoldották, akkor mind a 3 manónak vissza kell térnie a többi manóhoz, mielőtt egy újabb manólátogatás megtörténne. Ha a Télapó úgy ébred, hogy 3 manó várja őt a bolt ajtajánál és az utolsó rénszarvas is visszatért a trópusokról, akkor a Télapónak fontosabb, hogy olyan gyorsan elinduljon a szánnal, amilyen gyorsan csak lehetséges – így a manóknak várniuk kell karácsony utánig. Feltételezzük, hogy a rénszarvasok nem akarják elhagyni a trópusokat, ezért az utolsó pillanatig maradnak, amíg csak lehetséges. Lehet, hogy egyáltalán nem is jönnének vissza, ameddig a Télapó fizeti a számlát a paradicsomban… Ez is megmagyarázhatja az ajándékok kiszállításának gyorsaságát, hiszen a rénszarvasok alig várják, hogy visszatérhessenek oda, ahol meleg van. Az utolsóként érkező rénszarvas büntetést kap a Télapótól, mialatt a többi rénszarvas a meleg kunyhóban várja, hogy befogják őket a szán elé.

A Télapó probléma – egyik – megoldása

Találtam egy kb. 10 perces kiváló YouTube videót/animációt (The Santa Claus Problem – Thread Synchronization), amely lépésenként felépíti a feladatot, érzékelteti a közben felmerülő problémákat, és megoldást is mutat. Ezt ajánlom december 6-án minden érdeklődő figyelmébe:

A feladatot részletekbe menően és komplex módon gondolkodva kell megtervezni, és implementációi komoly nyelvi eszköztárat igényelnek. Érdemes P. Steiner Java megoldását részletesen átnézni, újragondolva – újabb nyelvi eszköztárral – implementálni.

A feladat a Java EE szoftverfejlesztő tanfolyam 1-4. óra: Elosztott alkalmazások, webszolgáltatások, illetve 5-8. óra: Szálkezelés, párhuzamosság alkalmaihoz kapcsolódik.