Vissza az előzőleg látogatott oldalra (nem elérhető funkció)Vissza a tananyag kezdőlapjára (P)Ugrás a tananyag előző oldalára (E)Ugrás a tananyag következő oldalára (V)Fogalom megjelenítés (nem elérhető funkció)Fogalmak listája (nem elérhető funkció)Oldal nyomtatása (nem elérhető funkció)Oldaltérkép megtekintése (D)Keresés az oldalon (nem elérhető funkció)Súgó megtekintése (S)

Informatika oktatása / Az ismeretkörök részletezése

Tanulási útmutató

Összefoglalás

Ebben a leckében áttekintjük az informatika egyes ismeretköreinek lehetséges tananyagát, korcsoportonkénti bontásban.

Az ismeretkörök részletezése

A. Algoritmizálás

Ezen ismeretkör célja elsősorban az algoritmikus gondolkodás kompetencia fejlesztése. Azaz foglalkozni kell benne algoritmusok megértésével, végrehajtásával, tervezésével és megvalósításával. Az itt tanult ismeretek azonban nagyon jól használhatóak a modellezés, a problémamegoldás, valamint a rendszerszintű gondolkodás fejlesztésére is. Nem szabad megfeledkezni arról sem, hogy az algoritmus- és programkészítés egyben alkotómunka is, magasabb szinten pedig biztosan csoportmunkát is igényel.

Ebben az ismeretkörben a hétköznapi algoritmusok világától fokozatosan eljutunk a programozási ismeretek egy meghatározott köréhez – a számítógépes algoritmusoknál a világ dolgait adatokkal írjuk le, az adatokból egy program kiszámít más adatokat, amelyeket megjelenítve megismerhetjük a valós világot.

Az algoritmikus gondolkodás mellett nagyon fontos cél a körülöttünk levő – mesterséges – világ megértése, ami a kiszámíthatóság fogalmának megismerésén keresztül mélyíti el az algoritmusokkal kapcsolatos ismereteinket.

Az egyes korosztályok ismereteinek olyannak kell lennie, hogy arra a következők építhessenek, azt ne kelljen megcáfolniuk. Így például, mivel a végcél strukturált algoritmusok készítése, ezért már a kezdet kezdetén is ehhez kell illeszkednie a tanár által megfogalmazott algoritmusoknak.

1-4. osztály (6-10 éves kor)

Ebben a korosztályban a cél: algoritmusok megértése és végrehajtási képessége. Ehhez első lépésként persze meg kell érteni, hogy mit is nevezünk algoritmusnak.

Első lépésként meg kell ismerkedni hétköznapi életből származó algoritmusokkal. A számítógépes algoritmusvilág fogalmainak jelentős része ugyanis megjelenik már a hétköznapi algoritmusok világában. Ha a tanítás során jól ismert fogalmakra, módszerekre építünk, akkor tanításunk sikeresebb, alaposabb lesz. Meg kell érteni, hogy azok hogyan működnek. A működéshez elengedhetetlen azon „dolgok” megismerése, amelyekkel az algoritmusok működnek. Ezek ezen a szinten elsősorban még a külvilág objektumai lehetnek.

A második lépés kétféle is lehet. Egyrészt érdemes új algoritmusokat megfogalmazni, meglevőket átalakítani, másrészt meg kellene tanulni a mindennapi életben előforduló algoritmusokat végrehajtani (reggeli napirend, úton áthaladás).

Ki kell alakítani azt a felismerést, hogy az algoritmusok minden egyes lépésének egyértelműen végrehajthatónak kell lenni. Az elemi lépések olyanok, amelyeket végrehajtóként egyértelműen el tudunk végezni. Az egyes lépések sorrendjére az algoritmusok világában egyértelmű szabályok vannak:

Ha egy lépés nem egyértelmű elemi lépésnek, akkor az egy újabb algoritmussal írható le, amelyet érdemes külön megfogalmazni – az eljárásfogalom, mint a gyenge absztrakció eszköze, nagyon hamar kialakítható.

Meg kell jegyeznünk, hogy a klasszikus programozási tematikák felépítésével szemben ebben a korosztályban az egyszerű ismétlést tartalmazó algoritmusok gyakoribbak és természetesebbek, mint az elágazást tartalmazó algoritmusok.

Jó eszközök választása esetén az algoritmizálás fejlesztheti a tájékozódásai képességet is (Logo programozás [KI], robotika [PAPSzRLTE, PMPB]), amely messze túlmutat a programozási ismereteken. Azaz itt kell megtanulni a tájékozódás alapfogalmait, az irányokat, a távolságok mérhetőségét. Ezt elsősorban algoritmikus játékok (gondolati, cselekvéses, mozgásos) segítségével érhetjük el.

Matematika órán sok olyan kézi adatfeldolgozási feladat előfordul, amelyeket később az algoritmusírás során felhasználhatunk: például színek, geometriai formák tanulásakor olyan kérdéseket tehetünk fel, hogy miből van több (megszámolás), van-e piros háromszög (eldöntés), válogasd ki a csak egyenes vonalakkal határolt alakzatokat (kiválogatás).

5-6. osztály (11-12 éves kor)

A kitűzött cél itt bővülhet az algoritmusok elemzésének és tervezésének képességével.

Előtérbe kerülhet az algoritmusok szabatos megfogalmazása, egyszerű, a mindennapi életben előforduló algoritmusok megtervezése (pl. reggeli napirend, teakészítés receptje, úton áthaladás)!

Fontos, hogy olyan algoritmusokat alkossanak, amelyeket akár saját maguk is eljátszhatnak, de számítógéppel is végrehajthatóak legyenek! [SMPJJW] Erre legalkalmasabb terület a mozgás és rajzolás.

Az algoritmus fogalom pontosítható (lépésekre bontható; a lépések maguk is algoritmusok; végrehajtható, rögzített végrehajtási sorrenddel; a lépések során valamivel valami történik)! A tanulók absztrakciós képessége alapján szétválaszthatóvá válnak az adatok és a rajtuk „operáló” algoritmusok.

Az algoritmusok felépítésében használható háromféle elem közelíthet a szakmában elfogadott algoritmikus (vezérlési) struktúrákhoz

Fontos kitérni arra, hogy a hétköznapi algoritmusok világában sokszor találkozhatunk nemdeterminisztikussággal (két egymás utáni tevékenység tetszőleges sorrendben elvégezhető; két tevékenységből választáskor ugyanazon feltétel teljesülése esetén bármelyik választható), de a számítógépes algoritmusok világában ezeket először determinisztikussá, egyértelművé tesszük. Hasonló a helyzet a párhuzamosság kérdésével is.

Mivel az algoritmus egyes lépései maguk is lehetnek újabb algoritmusok, s ezek elnevezhetők, kialakulhat az eljárásfogalom. Ez akkor jó, ha az eljárások valamely jól látható egységekhez tartozhatnak. Azaz itt is határozottan előnyös lehet a konstruktív grafikára alapozott Logo-programozás. Ez a megközelítés akkor is nagyon pozitív hatású lehet, hogy az algoritmus készítés közben hibákat követünk el. Egy grafikus programozásra épülő világban a hibásan működő programok is adhatnak érdekes, látványos eredményeket, azaz a hibák nem veszik el a kedvünket a programozástól.

Az algoritmusok tehát ebben a korosztályban már szabatosan leírandók, de úgy gondoljuk, hogy egy megfelelően választott programozási nyelv esetén (magyar alapszavas, kevés formális szabályt alkalmazó nyelv) ez a számítógépnek szóló algoritmusok leírására szolgáló eszköz maga a programozási nyelv is lehet.

7-8. osztály (13-14 éves kor)

Itt a cél az előző korosztályban szerzett képességek elmélyítése. Ennek fontos eszköze az absztrakció, a felülről lefelé tervezés. Ugyanilyen fontos azonban az elkészítendő algoritmusok alulról felfelé összeépítése, kipróbálása.

Erre az életkorra váljon tudatosabbá a lépésenkénti finomítás elvének alkalmazása! Tudjanak részalgoritmusokat önállóan megfogalmazni, elnevezni, paraméterezni, algoritmusok felépítésében használni!

Fontos az algoritmikus absztrakció eszközeinek (eljárások, függvények, rekurzió) megértése és használata. A rekurzió ebben a korosztályban azonban csak akkor vezethető be, ha valamilyen vizuális élményhez kapcsolható. Emiatt mindenképpen a grafika világában felismerhető rekurziókra, a fraktálokra, spirálokra és más rekurzív ábrákra gondolunk.

Az előző korosztályban tapasztalati, vizuális módon megismert algoritmikus szerkezetek itt már következetesen és pontosan használhatók, bevezethető a számítástechnikában szokásos elnevezésük (szekvencia, elágazás, ciklus, eljárás). A logikai formulákban megjelenhetnek az alapvető logikai műveletek – és, vagy, nem.

Itt már egyértelműen el kell választani az algoritmizálásai és adatmodellezési ismereteket a hétköznapi algoritmusok világától.

Le kell írni az információkezeléshez szükséges bemenő-, illetve eredményadatokat, és azokat egymáshoz rendelni! (Az absztrakt gondolkodás e fontos állomásánál már képesek szétválasztani, s külön kezelni a tevékenységek részleteit, a tevékenység céljától; vagyis képesek a tevékenységekkel „fekete dobozként” operálni.) Azaz egyrészt megjelenik a specifikáció kezdetleges formája (mit ismerünk, mire vagyunk kíváncsiak), másrészt az algoritmus tevékenységsorozat helyett kiszámítássá alakul. Tudatosul az, hogy a valós világ objektumait adatokkal írhatjuk le (Adatmodellezés ismeretkör), ezen adatok valahogyan bejutnak a számítógépbe, amelyekből a számítógép kiszámít valamely más adatokat. A kiszámított adatokból pedig valamilyen következtetéseket vonhatunk le a valós világra vonatkozóan.

9-10. osztály (15-16 éves kor)

Elemi algoritmusok típusfeladatokra (összegzés, eldöntés, kiválasztás, lineáris keresés, megszámolás, maximum-kiválasztás, kiválogatás, legalább egyféle rendezés). Ezek megvalósítása számítógépen.

Fontos az algoritmikus absztrakció eszközeinek (eljárások, függvények, operátorok) megértése és tervszerű használata.

Alapvető követelmény, hogy a megírt programok kellően beszédesek legyenek, azaz elegendő információt szolgáltassanak, adjanak módot a felhasználó és a gép közötti párbeszéd lebonyolításának.

Avi Cohen és Bruria Haberman 5 nyelvet definiál cikkében, ami azóta széles körben elterjedt (http://www.dabuka.co.il/UpLoad/Chamsa-Published%280%29.pdf):

The languages that we recommend to acquire are as follows: our language (mother tongue), their language (an elective international foreign language), a language of science (mathematics), a language of art and body, and a language of technology (Computer Science).

Ezek szerint az algoritmizálási, programozási ismeretek nemcsak az algoritmikus gondolkodási kompetencia miatt fontosak, hanem azért is, hogy megértsük a körülöttünk levő technológiai világot. Erre a célra a legideálisabb időszak a középiskolai oktatás ideje.

Legyenek tudatában annak, hogy program egy termék, s a programkészítő egy termékelőállító iparos, s ennek minden következményével – a terméknek használhatónak kell lenni, a terméknek „szépnek” kell lenni, a terméknek ára van, ....

11-12. osztály (17-18 éves kor)

Ebben a korosztályban algoritmizálásai ismeretekre azoknak van szükségük, akik informatikai pályára készülnek. A kitűzött cél emiatt csak az lehet, hogy a szükséges ismeretekkel alapozzuk meg a felsőoktatásbeli tanulmányokat.

Elemi algoritmusok típusfeladatokra (összegzés, eldöntés, kiválasztás, keresés, számlálás, maximum-kiválasztás, kiválogatás, szétválogatás, rendezések, halmazműveletek), visszavezetés típusfeladatokra [HÉSzPZsL]. A rekurzió a feladatok, az adatok és az algoritmusok világában.

Fontos a klasszikus problémamegoldási stratégiák egyszerű szinten való megfogalmazása:

A programkészítést úgy kell elképzelni, mint egy termékelőállítási folyamatot (feladat meghatározás, tervezés, kódolás, tesztelés, hibakeresés, hatékonyság- és minőségvizsgálat, dokumentálás), annak minden következményével együtt. Egy terméknek ára van, tulajdonosa van, a termékről a használó értelmes leírást szeretne kapni. A termék életpályáját is követni kell, javítások, továbbfejlesztések tartozhatnak hozzá.

Jól láthatóan még itt sem szándékozunk beszélni az objektumelvű programozásról. Ennek oka, hogy az objektumelvű programozás lényege az objektumok párhuzamos működése, kommunikációja feladatok megoldása érdekében. Ennek megértéséhez szakítani kell azzal a gondolattal, hogy magunkat képzeljük a végrehajtó szerepébe és szekvenciálisan mindent mi végzünk el. Véleményünk szerint az ehhez tartozó rendszerszintű gondolkodás elmélyítése az informatikus szakképzés és felsőoktatás dolga.

Vissza a tartalomjegyzékhez

Új Széchenyi terv
A projekt az Európai Unió támogatásával, az Európai Szociális Alap társfinanszirozásával valósul meg.

A tananyag az ELTE - PPKE informatika tananyagfejlesztési projekt (TÁMOP-4.1.2.A/1-11/1-2011-0052) keretében valósult meg.
A tananyag elkészítéséhez az ELTESCORM keretrendszert használtuk.