Az informatikai kompetenciák elsősorban a digitális kompetenciához tartoznak, de kisebb-nagyobb súllyal minden kulcskompetenciával kapcsolatosak.
Az informatikai kompetenciák birtokában az egyén rendelkezik azzal a képességgel, hogy alkalmazni tudja az alapvető informatikai eszközöket és módszereket az ismeretszerzésben és a problémák megoldásában, a mindennapokban, otthon és a munkahelyen. Gyakorlatias módon tudja a tudását alkalmazni új technológiák, módszerek megismerésében és működtetésében, a problémamegoldásban, egyéni és közösségi célok elérésében, valamint az információs társadalom lehetőségeinek ismeretét igénylő döntések meghozatalában. [MJ]
Az informatikai kompetencia emiatt magában foglalja a főbb számítógépes alkalmazásokat – szövegszerkesztés, adattáblázatok, adatbázisok, információtárolás-kezelés, az internet által kínált lehetőségek és az elektronikus média útján történő kommunikáció – a szabadidő, az információ-megosztás, az együttműködő hálózatépítés, a tanulás és a kutatás terén. Az egyénnek ismernie kell az elérhető információ hitelessége és megbízhatósága körüli problémákat, valamint az informatikai eszközök interaktív használatához kapcsolódó etikai elveket.
A szükséges képességek felölelik az információ megkeresését, összegyűjtését és feldolgozását, a kritikus alkalmazást, a valós és a virtuális kapcsolatok megkülönbözetését. Idetartozik a komplex információ előállítása, bemutatása és megértését elősegítő eszközök használata, valamint az internet alapú szolgáltatások elérése, a velük való kutatás, az informatikai módszerek alkalmazása a kritikai gondolkodás, a kreativitás és az innováció területén.
Az informatikai kompetencia egyes részei az alábbiak lehetnek:
A mindennapi életben, tanulásban, munkában lépten-nyomon algoritmusokat hajtunk végre, algoritmusokat készítünk mások számára, tevékenységsorozatokat, információáramlási folyamatokat tervezünk, s ezt a világot csak az értheti igazán, aki tisztában van ezen tevékenységek alapjaival. [AC]
Szintjei:
Az algoritmikus gondolkodás legelemibb szintje az, amikor felismerünk algoritmusokat, algoritmussal megoldható problémákat.
Megfogalmazhatjuk, mit nevezünk algoritmusnak: lépésekre bontható; végrehajtható (tartozik hozzá végrehajtó), rögzített végrehajtási sorrenddel rendelkezik; a lépések során valamivel valami történik; a lépések vagy elemi tevékenységek (amit a végrehajtó már megért) vagy maguk is algoritmusok (további pontosítást feltételez).
A megértést két szintre bonthatjuk:
A miért kérdése már egy magasabb gondolkodási szinthez, az algoritmus elemzéséhez tartozik. Az elemzés az alternatívák felismerését, elvetését, variálását és szelektálását jelenti.
Ugyancsak különböző szintű tudás egy adott, ismert algoritmus megértése (mert pl. elmagyarázták), illetve új, eddig ismeretlen algoritmusok megértésének képessége. Ez utóbbi az algoritmikus gondolkodás harmadik szintjét alkotja.
A hétköznapokban számos rutinszerű tevékenységet végzünk. Ezek némelyikét környezetünk programozza belénk (felkelés, lefekvés), másokat magunk hozzuk létre hasonlók módosításával többnyire valamely megváltozott – gyakran – szükséghelyzetben (utazás iskolába).
Ha egy tőlünk független személytől (különösen függőségi viszonyban) lépésenként kapnánk az utasításokat, akkor minimális mérlegeléssel hajthatnánk végre az algoritmusokat, ha azonban magunknak kell ezt megtenni, akkor ennél többről van szó.
Az algoritmusok végrehajtási képessége egy fokozattal magasabb szintű, mint a megértési képesség. Itt nemcsak arra van szükség, hogy egy folyamatot megértsünk, hanem arra is, hogy a végrehajtása közbeni állapotokat folyamatosan kövessük (észben tartsuk, nyilvántartsuk, ...). Azaz nem arra kell figyelnünk, hogy mi történik, hanem arra, hogy mitől függően mit csinálunk.
E kompetencia birtokában képesek vagyunk érzékelni a végrehajtás szempontjából fontos állapothatározókat, állapot változásokat, és igazítani tudjuk a tevékenység egyes lépéseit az állapothoz.
Az algoritmusok elemzése részben arról szól, hogy felismerjük az algoritmusok alapvető felépítési szabályait:
Mivel az algoritmus egyes lépései maguk is lehetnek újabb algoritmusok, s ezek elnevezhetők (sőt a hivatkozás miatt elnevezendők), kialakulhat az eljárás absztrakt fogalma.
Az algoritmusok elemzése más szempontból azt jelenti, hogy megértjük, hogy az egyes részei miért vannak, mi volt a célunk vele, a teljes feladatmegoldást hogyan bontottuk részfeladatok megoldására, ... [HJKJ,HJ]
A fentieken túl algoritmusolvasási képességet is idesorolandó. Azaz valamely algoritmusleíró nyelven, más által megfogalmazott összetett tevékenységet képesek legyünk megérteni: az egyes részek célját, többiekkel való kapcsolatát lássuk, képesek legyünk elmagyarázni (a verbalizálás nem biztos, hogy azonos a megértéssel; sőt alighanem egy újabb, magasabb fokozat).
Aki képes algoritmusok megértésére, végrehajtására, az még nem biztos, hogy alkotni is tud újabb algoritmusokat. A többlet: itt először el kell képzelni, hogy
Ez egyrészt az olvasási tevékenység írási tevékenységre cserélését jelenti, de ennél sokkal többről van szó. Az alacsonyabb kompetencia-szinteknél voltak támpontjaink, amelyek a gondolkodásunkat segítették, itt azonban mindent magunknak kell kitalálnunk. Ez olajozottan csak úgy mehet, ha elsajátítunk valamilyen szisztematikus módszert algoritmusok (és hozzájuk kapcsolódó adatmodellek) alkotására. [SzPZsL2] Arra kell módszert találni, hogy az algoritmusok végtelen halmazát leszűkítsük kezelhetően kévés számúra. Természetesen ez nem megy, csak a feladatok nagyfokú korlátozásával, illetve csak akkor, ha megengedjük, hogy a kevés számú algoritmus helyett kevés számú algoritmus sémát adjunk meg. Az alkotás folyamata ez esetben a megfelelő algoritmus sémák kiválasztását, kombinálását és a konkrét tevékenységhez adaptálását jelenti. A sémarendszer felállítása analogikus és absztrakt gondolkodást igényel. A lényegi és lényegtelen jellemzők megkülönböztetése: absztrahálás; a hasonlóságok felismerése: analógia felismerés.
Ez már kifejezetten informatikai feladatról szól: az algoritmust le kell írni egy olyan eszközzel, amit egy automata (pl. számítógép) végre tud hajtani. Ez nyilván azzal is jár, hogy meg kell ismerni azt az eszközt (praktikusan programozási nyelvet), amellyel az algoritmust leírjuk.
Az egyes eszközökhöz is tartozik egy sajátos, rá jellemző gondolatvilág, amelyek megismerésére és átlátására szükségünk van:
Másrészről – mivel ritka lehet az az eset, hogy elsőre tökéleteset alkotunk – szükségünk lehet a megvalósított algoritmusok helyességének belátásra, a hibák felismerésére és kijavítására. Ez utóbbi látszólag az algoritmus egyszerű elemzését jelenthetné, az informatikában azonban ennél több lehetőségünk is van. Léteznek olyan komplex rendszerek (programfejlesztői környezetek), amelyek használatával ez a tevékenység a puszta gondolkodásnál hatékonyabbá tehető (bár természetesen nem pótolja a gondolkodást).
A kódolás jóval kevésbé fárasztó tevékenységgé tehető, ha megfogalmazzuk azokat a szabályokat, amelyekkel a megoldás lényegi leírását tartalmazó algoritmusból az adott nyelvű kódmegfelelőt hozzuk létre. Ilyen szabályok definiálhatók bármely nyelvhez, és az átültetés 90%-ig mechanikussá tehető. [SzPZsL2] Ára: a szabályok felismerése, megjegyzése.
A tesztelés nem szeretem kötelessége jóval több gondolkodást kíván, mint várnánk. A tesztelés célja: a kód helyesség-belátásának partitúrát, menetrendet adni. Ahhoz, hogy a célt elérhessük, módszert kell találni arra, hogy milyen adatokkal lehet a kódot minden pontján megmozgatni. Ehhez kézenfekvő a 3.-ként említett elemző képességre építeni, habár nem az egyedüli szisztéma. A feladat (tehát nem a megoldás!) értő ismerete segíthet a releváns esetek megtalálásában. A hibajelenség detektálása után a hibakeresésnél megint csak az elemző képesség jut szóhoz.
Meg kell jegyezzük, hogy a kódolás – az informatika oktatásban sem – csupán az algoritmus helyességének végső kimondásának az eszköze, hanem sokszor a problémamegoldás betetőzése (pl. a szimulációs modellezésnél [HLSzPZsL]).
Mások által készített algoritmus megértése is viszonylag könnyű feladat, egy saját algoritmus elkészítése is viszonylag könnyű feladat ahhoz képest, hogy egy más által elkészített algoritmust módosítanunk, továbbfejlesztenünk kell.
Itt ugyanis nemcsak a végrehajtást kell elképzelnünk, hanem meg kell értenünk, hogy az eredeti algoritmus készítője hogyan gondolkodott, miért úgy készítette az algoritmusát, ...
Azt is meg kell értenünk, hogy ebbe a más gondolatvilágba hol léphetünk be, mit módosíthatunk, milyen beavatkozás lesz hatásos, ... Ez sokkal nehezebb lehet, mint a semmiből egy saját algoritmust készíteni.
Sokszor kapunk másoktól pontatlanul megtervezett algoritmusokat (az informatika világában programokat), amelyek nem felelnek meg a céljainknak. Ezért képesnek kell lennünk ezek átalakítására úgy, hogy számunkra hasznosak legyenek!
Az algoritmusok méretének növekedésével a befektetett munka nem lineárisan növekszik. Előbb-utóbb elérünk arra a szintre, amikor egy lépésben nem látjuk át a megoldandó feladatot. Ekkor lehet határozottan erős szerepe az absztrakciónak, az algoritmusok szisztematikus tervezésének.
Itt jöhet szóba a részcélok kitűzése, az egyes részcélokhoz tartozó tevékenységsorozat megtervezése (a programozásban nem feltétlenül – bár nagy programrendszerek fejlesztésekor mindig, de a hétköznapi életben általában több ember együttes munkájaként). Természetesen az is komoly feladat, hogy belássuk: a részcélok teljesülésével, jó összeépítéssel a feladat megoldható.
Témakör | 1-4 | 5-6 | 7-8 | 9-12 |
---|---|---|---|---|
Az informatikai eszközök használata | Algoritmus megértése | Algoritmus megértése | Algoritmus megértése | Algoritmus megértése |
Informatika alkalmazói ismeretek | - | Algoritmus végrehajtása | Algoritmus elemzése | Algoritmus alkotása |
Infotechnológia | Algoritmus végrehajtása | Algoritmus megvalósítása | Algoritmus módosítása, átalakítása | Komplex algoritmus tervezése |
Infokommunikáció | - | Algoritmus végrehajtása | Algoritmus elemzése | Algoritmus alkotása |
Az információs társadalom | - | - | - | - |
Könyvtári informatika | - | Algoritmus megértése | Algoritmus végrehajtása | Algoritmus végrehajtása |
A fenti táblázatban az algoritmikus gondolkodás kompetencia az adott korcsoportra és témakörre meghatározott legmagasabb szinten szerepel. Az infotechnológiában való megjelenése természetes (hiszen az szól az algoritmizálásról, adatmodellezésről, problémamegoldásról), a többi terület azonban némi magyarázatot igényel.
Az informatikai eszközök (hardver, szoftver) használata mindig valamilyen algoritmus végrehajtását igényli, egy szoftver installálása sokszor addig ismeretlen algoritmusok megértése, majd végrehajtása elé állít minket.
Az alkalmazói ismertek egy része is algoritmus alkalmazás, magasabb szinten azonban megjelenhet benne akár új algoritmus alkotása is. Ez kézenfekvő lehet pl. a táblázatkezelési feladatoknál, ahol az algoritmus bizonyos képletek egymástól függő kiszámítását igényelheti. Kevésbé kézenfekvő esetek is vannak. Az egyik országos alkalmazói verseny feladatsorában például volt olyan feladat, amiben a versenyzők egy táblázat nyersanyagát egy egyszerű szöveges állományban kapták meg. Itt a szöveg még nem táblázatban szerepelt, még csak nem is tabulátorokkal volt tagolva, hanem a táblázat elemek között annyi szóközzel kiegészítve, hogy a táblázat nyomtatva jól nézzen ki. Ebből a táblázatból valódi táblázatot előállítani vagy hosszú gépelési-másolási munka 30-40 percben, vagy pedig egy ügyes algoritmus megalkotásával 3 perces feladat.
Logikusan az infokommunikáció is algoritmus végrehajtásból áll, de itt is többről van szó. Kommunikációs hálózatok megalkotása, kommunikációs hálózatokon üzenetek eljuttatás a megfelelő körnek komoly algoritmus alkotási (és nem mellesleg adatmodellezési) képességet igényel.
![]() ![]() |
![]() |
![]() |
A tananyag az ELTESCORM keretrendszerrel készült