Táblázatos komponens testreszabása

táblázat logo

táblázat logoA Java programozási nyelv egyik ismert GUI csomagja a swing. Ennek népszerű grafikus komponense az adatok táblázatos megjelenítését biztosító JTable komponens. A táblázatos megjelenítéshez több beállítás is szükséges. A JTable egy MVC komponens, így külön kezelendők a modell, nézet és a vezérlő funkcióihoz kötődő beállítások. A modell tárolja az adatokat például DefaultTableModel típusú objektumban, amiben szétválaszthatók a fejlécben és a többi cellákban található adatok. A nézethez tartozik a betűméret, a cellák színezése, az adatok igazítása, megjelenítése, a gördítősáv. A viselkedést, a felhasználói reakciót a vezérlő határozza meg, például rendezés, görgetés, fókusz, kijelölés, oszlopok sorrendjének cseréje.

Feladat

Készítsünk olyan Java swing-es kliensprogramot, amely tetszőleges adatforrásból (XML vagy JSON a hálózatról, JDBC adatbázis kapcsolatból, ORM leképzésből származó objektumokból) képes az átvett adatok grafikus felületen való táblázatos megjelenítésére JTable komponenssel! Építsünk arra, hogy az adatokon kívül metaadatok is rendelkezésünkre állnak! A megoldás legyen univerzális!

Képernyőképek

OracleHR képernyőkép

Modell

A táblázatos GUI komponenst kezdetben inicializálni kell, illetve a benne tárolt adatok is törölhetők, ha újrahasznosításra kerül a sor:

Ki kell nyerni a tároláshoz és a megjelenítéshez kötődő adatokat (1. lépés). A metaadatokból a for() ciklus előállítja az oszlopTomb-öt, és az oszlopTipusTomb-be kerülnek az Oracle adattípusból Java objektumtípusként megfeleltetett adatok. Előbbi a fejléc feliratainak szövegeit tartalmazza, és az utóbbi befolyásolja az egyes cellákban az igazítást, illetve hatással van adott oszlop rendezésére is:

Ki kell nyerni a tároláshoz és a megjelenítéshez kötődő adatokat (2. lépés). A while() ciklus végigjárja az eredménytábla sorait és Object típusú tömböt állít elő az összetartozó rekord mezőiből. Ezek először generikus listába kerülnek, majd onnan kétdimenziós Object típusú tömbbe:

Mi indokolja a tömbökből álló generikus lista ( adatLista) alkalmazását?

A while() ciklus végrehajtása előtt nem tudjuk lekérdezni, hogy mennyi rekordot kaptunk vissza, így nem tudjuk rögtön az adatTomb-be tenni az adatokat. A Java nyelvben a tömbök mérete fix, és a deklaráció során meg kell adni. Az eredménytábla metaadatai között megtalálható a mezők száma, ami felhasználható a kétdimenziós tömb oszlopszámaként. A generikus lista dinamikus, annyi elemből fog állni, ahány lépésben végrehajtódik a while() ciklus. Ezután a listától lekérdezhető az elemszáma ( adatLista.size()), és ezzel megvan a kétdimenziós tömb sorainak száma, ami eddig hiányzott. Persze használhatnánk Vector-t is a tömbökből álló generikus lista helyett (mert a DefaultTableModel-nek van olyan túlterhelt konstruktora, ami átvenné paraméterként), de ezt inkább nem tesszük, hiszen a Vector már régóta obsolete kollekció.

Előállítjuk a vizuális komponens mögötti adatmodellt. Öröklődéssel kiegészítjük két hasznos függvénnyel, így cellák rajzolása/renderelése és rendezése megkaphatja a szükséges adattípust ( getColumnClass()), valamint letiltható a cellák szerkeszthetősége ( isCellEditable()). Utóbbiak inkább a vezérléshez kötődnek, de modellen keresztül itt és így kell beállítani:

Végül a vizuális komponens mögötti adatmodellt kell átadni:

Nézet

Adott betűtípus, betűstílus és betűméret használható a táblázat fejlécében, celláiban, illetve a betűmérettől függhet a sorok magassága:

Hasznos ha JScrollPane típusú gördítősáv tartozik a táblázathoz, így dinamikusan megjeleníthető/elrejthető a függőleges/vízszintes gördítősáv:

Vezérlés

Az adatokhoz valahogyan hozzá kell jutni. Most JDBC kapcsolatot használunk és az Oracle HR sémából kérdezünk le adatokat, de a forráskód-részlet univerzális. A folyamat a következő:

  • Betöltjük a driver osztályt.
  • Autentikációval c kapcsolatot nyitunk az adatbázis-szerver felé.
  • Végrehajtjuk a lekérdező SQL parancsot.
  • Feldolgozzuk az eredményül kapott ResultSet típusú rs objektumot.
  • Végül lezárjuk a c hálózati kapcsolatot.

Ha engedélyezzük, akkor a megjelenő táblázat fejlécében az egyes oszlopok felirataira kattintva elérhetjük, hogy az adott oszlop típusának megfelelően növekvő vagy csökkenő sorrendbe átrendeződjenek az adatok:

A kivételkezelést nem részleteztük a fenti forráskódoknál, de természetesen kötelezően adott.

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 45-52. óra: Adatbázis-kezelés JDBC alapon, illetve Java adatbázis-kezelő tanfolyam 9-12. óra: Oracle HR séma elemzése, 33-36. óra: Grafikus kliensalkalmazás fejlesztése JDBC alapon, 2. rész alkalmaihoz kapcsolódik.

IT történet – decemberben történt

IT történet blog bejegyzés sorozatunkban válogatunk a decemberben 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.


2010. december 2-án, 11 éve történt:
Megjelent a Viber okostelefonokra készült ingyenes VOIP alkalmazás – a Skype vetélytársaként. Először csak iPhone-on működött.


1924. december 3-án, 97 éve történt:
Megszületett John Backus amerikai matematikus, informatikus. Megalkotta a BNF jelölésrendszert, amely programozási nyelvek nyelvtanának leírására használható.


2020. december 3-án, tavaly történt:
Kínában elérték a kvantumfölényt a Jiuzhang nevű kvantumszámítógéppel, amely percek alatt végezhet el olyan számításokat, amikhez a világ legerősebb szuperszámítógépének kétmilliárd évre lenne szüksége.


2020. december 4-én, tavaly történt:
Megtörtént a világ első célzott kibertámadása, postai csomagpont hálózat ellen. Egyszerre kinyitották a PickPoint cég Moszkvában lévő csomagautomatái közül 2732-nek az ajtajait.


2001. december 8-án, 20 éve történt:
Elhunyt Betty Holberton. Az ENIAC egyik programozója volt 1946-ban. Feltalálta a töréspontokat, amelyeket a számítógépes hibakeresés (debugging) során használunk.


1815. december 10-én, 206 éve történt:
Megszületett Ada Lovelace angol matematikus és írónő, akit az első számítógép-programozónak tekintünk.


2005. december 10-én, 16 éve történt:
Megjelent Európában az Xbox 360, a Microsoft által fejlesztett hetedik generációs otthoni videójáték-konzol, az Xbox utódja.


2008. december 11-én, 13 éve történt:
A Google Inc. kiadta számítógépeken és mobil eszközökön is ingyenesen használható Chrome webböngészőjének első stabil verzióját.


2020. december 15-én, tavaly történt:
Átadásra került az a villaépület, amelyet a MEET (Middle East Eng. Technologies) két hét alatt 3D nyomtatott a Sharjah emírségben.


1990. december 20-án, 31 éve történt:
A CERN részecskefizikai kutatóközpontjában dolgozó Tim Berners-Lee létrehozta a világ első weboldalát, amivel megkönnyítette az intézményen belüli kommunikációt. Az oldalt kilenc hónap múlva publikálta.


1995. december 21-én, 26 éve történt:
Megjelenik a Ruby 0.95, interpreter alapú, általános célú, magasszintű programozási nyelv első változata. Tervezője és megalkotója a japán Yukihiro Matsumoto.


1834. december 23-án, 187 éve történt:
Charles Babbage angol matematikus és korai számítógép-tudós elkészítette az analitikai gép terveit. Ez volt az első mechanikus számítógépek egyike.


1957. december 25-én, 64 éve történt:
II. Erzsébet brit királynő elfogadta a BBC felkérését és élő adásban felolvasta televíziós karácsonyi üzenetét. Emberek milliói, akik a legszentebb családi ünnepeken otthonukban ülnek, először csatlakoztak a királynőhöz az otthonában.


1992. december 26-án, 29 éve történt:
Elhunyt Kemény János magyar-amerikai matematikus, számítástechnikus, a BASIC programozási nyelv megalkotója.


1903. december 28-án, 118 éve történt:
Megszületett Neumann János magyar születésű matematikus. Kvantummechanikai elméleti kutatásai mellett a digitális számítógép elvi alapjainak lefektetésével vált ismertté.


Kik vettek részt projektmunkában?

projektmunka logó

projektmunka logóHasonlítsuk össze a részlegeket fókuszálva arra, hogy az alkalmazottak mennyire vettek korábban részt projektmunkákban! Hányan igen és hányan nem? Van(nak) olyan részleg(ek), amelyik vezetője egyetlen alkalmazottat sem vont be projektmunkába? Van(nak) olyan részleg(ek), ahonnan mindenki csatlakozott? Vannak a feladatkiosztásban olyan aránytalanságok, amelyek kimutathatók és így a későbbiek során korrigálhatók? Készítsünk egy kimutatást arról, hogy részlegenként hány fő vett részt projektmunkában és mi a létszám! (Persze tudjuk, hogy nem minden munkakörből vonhatók be alkalmazottak.) Milyen projektjeink szoktak lenni? Van olyan részleg, ahol érdemes bővíteni a létszámot, esetleg átcsoportosítani oda erőforrást? Ezekre a kérdésekre keressük a választ.

Tervezés

Az Oracle HR sémában három tábla kapcsolódik a feladathoz: JOB_HISTORY, EMPLOYEES, DEPARTMENTS. A kapcsolatok fokszámai láthatók az alábbi ábrán. Egy részlegben több alkalmazott is lehet. Egy alkalmazott részt vehetett korábban több projektmunkában is.

Oracle HR séma

A DEPARTMENTS táblában található a részleg azonosítója ( DEPARTMENT_ID, kulcs) és neve ( DEPARTMENT_NAME). A többi adat most nem kell. 11 olyan részleg van, amihez tartozik alkalmazott.

A JOB_HISTORY tábla tárolja, hogy a már befejeződött projektekben ki ( EMPLOYEE_ID, külső kulcs) és melyik részlegből ( DEPARTMENT_ID, külső kulcs) vett részt. A dátumokat ( START_DATE, END_DATE) és a munkakör külső kulcsát ( JOB_ID) most nem használjuk. Minden projekt lezárt. 10 lezárt projekt van.

Az EMPLOYEES táblából szükséges az alkalmazott azonosítója ( EMPLOYEE_ID, kulcs), valamint részlegének azonosítója ( DEPARTMENT_ID, külső kulcs). A többi adatra most nincs szükség, de egy részletesebb – például név szerinti – kimutatáshoz már igen. 106 olyan alkalmazott van, akihez tartozik részleg (1-nek nincs).

Hozzunk létre négy oszlopból álló eredménytáblát: DEPARTMENT_ID, DEPARTMENT_NAME, COUNT_PROJECT_EMPLOYEES, COUNT_EMPLOYEES. Ennek áttekintésével választ kaphatunk a fenti kérdésekre.

1. megoldás

Induljunk ki abból, hogy a JOB_HISTORY táblában lévő DEPARTMENT_ID-hez hozzárendeljük a DEPARTMENTS táblából a DEPARTMENT_NAME-t. Ezekre csoportosítva könnyen aggregálható az adott részlegből projektmunkát végző alkalmazottak száma: COUNT_PROJECT_EMPLOYEES. Végül egy belső lekérdezés (összekapcsolva a JOB_HISTORY és az EMPLOYEES táblákat) megadja az adott részleg alkalmazotti létszámát. Az SQL lekérdezés:

SQL-megold1a

A részeredmény:

SQL-eredmeny1a

Ezután állítsuk elő a hiányzó adatokat! Tudjuk, hogy azokban a részlegekben, amelyek DEPARTMENT_ID-je nem szerepel a JOB_HISTORY táblában, de szerepel az EMPLOYEES táblában, azok léteznek, de nem „adtak” projektmunkára alkalmazottat (azaz COUNT_PROJECT_EMPLOYEES=0). Nevük és alkalmazottaik száma ugyanúgy megadható, ahogyan az előbb. Az SQL lekérdezés:

SQL-megold1b

A részeredmény:

SQL-eredmeny1b

A két részeredményt egyesíteni kell és egyben hasznos DEPARTMENT_NAME szerint növekvő sorrendbe rendezni az alábbi lekérdező paranccsal:

SQL-megold1c

Az eredmény:

SQL-eredmeny1c

2. megoldás

Kiindulhatunk abból is, hogy a DEPARTMENTS egy szótártábla, így közvetlenül hozzáférhető a DEPARTMENT_ID és a DEPARTMENT_NAME, de össze kell kapcsolni az EMPLOYEES táblával, hogy csak olyan részlegeket adjon vissza a lekérdezés, ahol van(nak) alkalmazott(ak). Az eredményhez szükséges további két oszlop könnyen aggregálható az adott részlegre vonatkozóan: a JOB_HISTORY táblában előforduló EMPLOYEE_ID-k száma adja a COUNT_PROJECT_EMPLOYEES-t (probléma nélkül tud 0 lenni) és az EMPLOYEES táblában előforduló EMPLOYEE_ID-k száma adja a COUNT_EMPLOYEES-t. A rendezés most is szükséges. Lényegesen tömörebb lekérdező parancsot kapunk:

SQL-megold2

Az eredményül kapott táblázat megegyezik az 1. megoldás eredményével.

A két megoldás teljesen különböző gondolatmenettel született. Mindkettőben vannak olyan elemek, amelyek – konkrét feladatból általánosítva – univerzálisan használhatók. Természetesen összehasonlítjuk a két megoldás végrehajtási tervét és részletesen elemezzük 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 feladat a Java adatbázis-kezelő tanfolyam 9-12. óra: Oracle HR séma elemzése, 13-16. óra: Konzolos kliensalkalmazás fejlesztése JDBC alapon, 1. rész, 33-36. óra: Grafikus kliensalkalmazás fejlesztése JDBC alapon, 2. rész alkalomhoz kapcsolódik.

IT történet – novemberben történt

IT történet blog bejegyzés sorozatunkban válogatunk a novemberben 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.


1988. november 2-án, 33 éve történt:
A Cornell Egyetem diákja, Robert Tappan Morris útjára bocsátotta 99 sornyi kódból álló programját, a később róla elnevezett Morris worm-ot, amely az első internetes féregvírus.


2007. november 5-én, 14 éve történt:
Az Android mobil operációs rendszer „születésnapja”. Megjelent az Android béta változata.


1977. november 7-én, 44 éve történt:
Megszületett Paul Buchheit amerikai informatikus, vállalkozó, aki létrehozta a Gmail-t. A Google 23. felvett alkalmazottja.


1983. november 9-én, 38 éve történt:
Elhunyt Kozma László, Kossuth-díjas villamosmérnök. Nevéhez fűződik az első magyarországi digitális számítógép, a MESZ–1 megtervezése és üzembe állítása (1957).


2005. november 9-én, 16 éve történt:
A feltalálók napja, amelyet Ausztriában, Németországban és Svájcban tartanak 2005 óta, az osztrák származású Hedy Lamarr feltaláló születésének évfordulóján.


2020. november 12-én, tavaly történt:
A Sony Interactive Entertainment megjelentette a PlayStation 5 (PS5) otthoni videójáték-konzolt Japánban, amely már a 9. generációt képviselte.


1929. november 17-én, 92 éve történt:
Elhunyt Herman Hollerith német származású amerikai statisztikus, feltaláló, üzletember, aki lyukkártya-feldolgozó gépet fejlesztett és szabadalmaztatott.


2007. november 20-án, 14 éve történt:
Lemond Paul Gray, a brit királyi adó- és vámhivatal elnöke, miután kiderült, hogy eltűnt két számítógépes adathordozó, amelyeken a brit felnőtt lakosság felének minden adó- és bankszámla-adata rajta volt.


2013. november 22-én, 8 éve történt:
Megjelent az USA-ban az Xbox One, a Microsoft nyolcadik generációs videójáték-konzolja, az Xbox 360 utódja.


2014. november 25-én, 7 éve történt:
A NASA bejelentette, kinyomtatta az első tárgyat a Nemzetközi Űrállomáson lévő 3D nyomtató. Ez az első olyan használati eszköz, amelyet a Földön kívül gyártottak, súlytalanság állapotában.


1852. november 27-én, 169 éve történt:
Elhunyt Ada Lovelace angol matematikus és írónő, akit az első számítógép-programozónak tekintünk.


1985. november 27-én, 36 éve történt:
A Microsoft Corporation kiadta első grafikus felhasználói felülettel rendelkező operációs rendszerét, a Windows 1.0-t.


1902. november 28-án, 119 éve történt:
Megszületett Kozma László, Kossuth-díjas villamosmérnök. Nevéhez fűződik az első magyarországi digitális számítógép, a MESZ–1 megtervezése és üzembe állítása (1957).


1915. november 29-én, 106 éve történt:
Megszületett 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.


1972. november 29-én, 49 éve történt:
A Nolan Bushnell és Al Alcorn által alapított Ataritól játéktermekbe került a világ első kereskedelmileg is sikeres videojátéka, a Pong.


Programozási Hét 2021 – CodeWeek.eu

Programozási hét CodeWeek.eu

Programozási hét CodeWeek.euAz Európai Programozási Hét idén 2021. október 9-24-ig került megrendezésre. Ez egy önkéntesek által működtetett, alulról szerveződő kezdeményezés. Az önkéntesek saját országukban a Programozási Hét nagyköveteként népszerűsítik a programozást. Ehhez nyílt és ingyenes (online és offline) eseményeket hirdetnek meg a CodeWeek.eu weboldalon.

A Programozási Hét célja

  • a programozással való alkotás megünneplése,
  • az emberek felvértezése képességekkel,
  • az emberek összekapcsolása,
  • még több ember érdeklődésének felkeltése a tudomány, a technológia, a mérnöki ismeretek és a matematika iránt.

Miért jó ez az érdeklődőknek/résztvevőknek?

  • A programozás szórakoztató!
  • Programozni kreatív tevékenység! Az emberiség a kezdetektől fogva alkot: agyagból, kőből, téglából, papírból vagy fából. Manapság programozással is alkotunk.
  • A programozás felvértez! Sokkal többre is képesek vagyunk annál, hogy csak fogyasszuk a digitális tartalmat; programozással sokféle dolgot alkothatunk, és azokat milliók számára elérhetővé tehetjük. Létrehozhatunk weboldalakat, játékokat, irányíthatunk egy számítógépet vagy egy robotot.
  • Értsük meg a világot! Manapság egyre több minden össze van kapcsolva. Ha némi rálátásunk van arra, hogy mi történik a színfalak mögött, akkor a világot is jobban megérthetjük.
  • A programozás megtanítja nekünk a számítógépes gondolkodást, fejleszti a problémamegoldást, kreativitást, kritikus érvelést, analitikus gondolkodást, valamint csapatmunkára késztet.
  • Manapság a munkahelyek 90%-a digitális készségeket, köztük programozási ismereteket követel a munkavállalóktól.

2015-től veszünk részt az esemény szervezésében, programozást népszerűsítő előadások, laborgyakorlatok meghirdetésével és megtartásával. 2020-ben világszerte 80+ országban 3,4 millió érdeklődő résztvevő csatlakozott.

Meghirdetett eseményeink

2021-ben is három it-tanfolyam.hu-s eseményt hirdettünk meg a Programozási Hét 2021 rendezvényen.
Helyszín: 1056 Budapest, Váci utca 47., 3. emelet 309-es terem, megközelítés
Dátum és időpont: 2021. október 16. 9:00-11:55-ig
Az események ingyenesek voltak, de a részvétel előzetes regisztrációhoz kötött.

Rendezvényünk plakátja

A rendezvény jó hangulatban telt, közel 40-en látogattak el hozzánk. Többféle motivációval érkeztek: a fiatalabbak inkább a kíváncsiság, pályaorientáció, első szakma, az idősebbek inkább a karrierváltás miatt. Igazán tartalmasan telt el idén is ez a rendezvényre szánt három óra. Köszönjük mindenkinek, aki részt vett a Programozási hét 2021 – CodeWeek.eu rendezvényünkön. Az előadások prezentációit és a röptében írt forráskódokat tanfolyamaink hallgatói számára – a témához kapcsolódó témakörökhöz, ILIAS-ra feltöltve – tesszük elérhetővé.

9:00-9:55 – Szegedi Kristóf: Játékprogramok nyerő stratégiáinak elemzése
A tudásalapú rendszerek elméleti alapjaihoz tartoznak a mesterséges intelligencia különböző megoldáskereső módszerei, az állapottér-reprezentáció és a klasszikus keresési stratégiák. Egy játék állapotait valahogyan nyilvántartjuk egy adatszerkezetben. Lehet, hogy néhány lépést előre kalkulálunk (kiterjesztünk) és ezek elágazásaiból fát (fa adatszerkezet) tudunk építeni. Ezeket hatékonyan karban kell tartani konstrukciós és szelekciós műveletekkel. Döntéseket is kell hozni. Vajon melyik állapot a jobb, vagy kevésbé rossz, legalább olyan jó mint ahol járunk? Ki kell értékelni és abba az irányba érdemes haladni, amelyben végül a döntések sokasága igazolja és egyben adja a nyerő stratégiát. Ha ez nem megy, akkor még mindig játszhatunk nem vesztő stratégiával, azaz lehet cél a hosszabb játékmenet, vagy akár a döntetlen állapot is. Az előadás ismertet néhány tipikus problémaszituációt, játékteret leképező reprezentációs gráfbeli navigációt és összehasonlít néhány fabejáró/gráfbejáró stratégiát. A program mindhárom Java tanfolyamunk orientáló moduljához kötődik. Előismeretként feltételezünk némi jártasságot a programozási alapismeretek, programozási tételek, ciklusok, metódusok, tömbök témakörökből.

10:00-10:55 – Kaczur Sándor: Java kollekciók hatékonysága
Adott egy ismert algoritmus egy ismert problémára. A gyakorlati bemutató példákat mutat arra, hogy az ismert Java kollekció keretrendszer különböző adatszerkezeteinek funkcionalitását/szolgáltatásait felhasználva mennyire eltérő megoldásokat tudunk készíteni. Mindegyik megoldás ugyanazt az eredményt adja, de alapjaiban más gondolatmenettel születtek. Vajon melyik tekinthető hatékonyabbnak? Mennyi tárhelyet igényelnek? Mennyi idő alatt hajtódnak végre? Mennyire bonyolultak, azaz mennyire könnyű/nehéz megérteni/dokumentálni/elmagyarázni? Előkerülnek különböző Set, Queue, List, Map implementációk, programozási tételek. Amit csak lehet, mérünk, összehasonlítunk, elemzünk. Végül az eredmények alapján javaslatokat adunk: mikor, miért, mit (mit ne), hogyan (hogyan ne) használjunk. A program a Java SE szoftverfejlesztő tanfolyamunk tematikájához kötődik. Előismeretként feltételezünk némi jártasságot a programozási alapismeretek, programozási tételek, ciklusok, metódusok, tömbök, listák, halmazok, lambda kifejezések témakörökből.

11:00-11:55 – Kiss Balázs: Gondolkodjunk logikusan!
Az előadás során áttekintjük az intelligencia, a kreatív problémamegoldó és logikus gondolkodás összefüggéseit és izgalmas feladatokból válogatva közösen megoldunk néhány fejtörő feladatot. Néhány példa: Hány éves a kapitány?CHOO + CHOO = TRAIN, Logikus gondolkodás teszt. A program mindhárom Java tanfolyamunk orientáló moduljához kötődik. Előismeretként feltételezünk némi jártasságot az algoritmusok, programozási alapismeretek, programozási tételek témakörökből.