Az algoritmikus gondolkodás fejlesztése általános iskolában
A tanulmány megvilágítja az algoritmikus gondolkodás fogalmát, elemzi azokat a gondolkodási helyzeteket, feladatokat, amikor algoritmikus gondolkodásra van szükség. Bemutatja, milyen módszerekkel fejleszthető az algoritmikus gondolkodás. A szerző arra a következtetésre jut, hogy a tanításban törekedni kell arra, hogy a különböző tárgyak keretében elsajátított gondolkodási sémák algoritmus-rendszerré szerveződjenek.
"Tökéletes a megoldási módszer akkor,
ha kezdettől fogva előre látjuk,
sőt be is bizonyítjuk,
hogy azt követve elérjük célunkat."
Leibniz
1.
Akarva-akaratlan, tudatosan vagy spontán módon alakítunk ki naponta ismétlődő eljárásokat (algoritmusokat), amelyeket lépésenként hajtunk végre. Ezek a folyamatok általában nem tudatosak (bár jó volna, ha azok lennének). Viszont minden tervszerű, átgondolt tevékenységünket algoritmusok mentén éljük, végezzük. Az algoritmusok struktúrát, rendet visznek életünkbe, gondolkodásunkba, tevékenységünkbe. Sok pszichikus energiát takarítunk meg azzal, ha az egyszer már felállított algoritmust alkalmazzuk újra.
Azok a szabályok, amelyeket gyerekkorunkban belénk nevelnek, legyen az matematikai vagy egyszerű hétköznapi szabály, belsőnkké válnak. Megtanuljuk a sorrendet, és követjük azt. A kialakított szabályok, szokások, algoritmusok jelentősége - vagy ennek elmulasztása esetén a "veszteség" - tehát igen nagy. Az algoritmikus szemléletmód állandóságot, stabilitást jelent gondolkodásunkban, tágítja szellemi tevékenységünk körét, célt és formát ad a probléma megoldásának.
A gyerekeknek - akár a felnőtteknek - fontos, hogy tapasztalataikban, a megoldásra váró feladatokban megtalálják a rendet és az értelmet. Természetes vonzalmuk, késztetésük van a szabályok, algoritmusok alkotása, igyekszenek valamilyen logika szerint gondolkodni. Ez a logikai út - ami szerintünk helyes - a tapasztalatok által nyer megerősítést.
Az algoritmus fegyelmezett gondolkodásra késztet. A lépéseken végighaladva a tanuló értékeli az adott helyzetet, elveti vagy megerősíti saját gondolatát. Minden sikeres lépés és főképpen a sikeres feladatmegoldás erősíti az önértékelést.
Ha a gyerekek nem boldogulnak valamilyen probléma megoldásával, gyakran próbálkoznak a találgatással. Fontos, hogy megmutassuk nekik: a hétköznapi helyzetekkel, főleg a gyakorlati (matematikai) feladatokkal jobban boldogulnak, ha arra algoritmust állítanak fel.
Az oktatásban rejlő algoritmusokat - a nevelés tudatos voltából következően - tervszerűen kell kialakítanunk. Célunk, hogy az elemeire bontott eljárások a tanulókban tudatosuljanak, rögzüljenek, hogy a gyakorlás folytán később egyszerűbb esetekben "eszközzé", rutinná váljanak, bonyolultabb műveleteknél támpontot jelentsenek a probléma megoldására kialakítandó algoritmushoz. A tanulók előtt világosnak kell lenniük az elemeknek, és annak, hogy a lépések "egymásutánisága" (időbeli, téri) szigorú logikai sorrendet követ.
Mindennapi iskolai gyakorlatunkban (az életben) sokszor mondjuk, halljuk:
Gondold végig a feladatot! (Mit ismersz, mit keresel?)
- Hogyan kellene elindulni?
- Mi a következő lépés?
- Hogyan jutottál el a megoldáshoz?
- Helyes a kapott megoldás?
A fenti kifejezések is azt sugallják, hogy a gyerekek a problémák megoldásában kövessenek egy logikai utat, vizuális ábrát, elgondolt folyamatot.
A tanulók gondolkodásának fejlesztésével foglalkozó szakkönyvek alig említik az algoritmikus gondolkodást - bár nyílt vagy rejtett formában mindegyikben fellelhető -, mintha nem is tartozna a témához, pedig az emberi gondolkodásra inkább jellemző a tartalomspecifikus, egyes tartalmakhoz szorosan kötődő gondolkodási sémák használata, mint a tartalomtól nem függő műveletvégzés (Csapó 1999).
Vajon ez a megállapítás mennyiben érvényes a tanításunkra? Kell-e a tananyagban az egymáshoz kötődő fogalmakból, műveletekből sémákat, algoritmusokat kialakítani? Valóban hatékonyabbá teszi-e ez a munkánkat? Meggyőződésem, hogy tanításunk is eredményesebb lenne, ha nagyobb súlyt fektetnénk az általánosítható, bővíthető, átalakítható, a tudatból könnyen előhívható algoritmusok kialakítására a tanórákon.
2.
A gondolkodás fejlesztése az oktatás alapvető feladata, ennek fontosságát senki nem vitatja. Ugyanakkor megfigyelhetünk egy olyan sajátos jelenséget, amelynek már van bizonyos negatív hatása is. Az utóbbi időben ugyanis a hangsúly - legalábbis a szavak szintjén - az intuitív, a kreatív stb. gondolkodás fejlesztése felé tolódott, és lassacskán minden eltűnt a tankönyvekből és a napi tanári gyakorlatból, amire rá lehetett sütni a "mechanikus művelet" címkét. Az algoritmikus gondolkodásmód így kikerült mind a kutatók, mind a gyakorló szakemberek látóköréből, vagy talán tudatosan háttérbe szorítottuk. Természetes, hogy nem jellemezheti tanításunkat csak a műveletvégzés, a kiszámítás jellegű racionalitás.
De miért lett ez a gondolkodási mód mostoha? Valószínűleg a nem megfelelő gyakorlat tette azzá, amely az algoritmusokat nem úgy alakította ki, nem úgy alkalmazza, hogy azt a tanulók a feladat- és problémamegoldásban hatékonyan, rugalmasan használni tudnák. Tanárként meglepve tapasztalhatjuk, hogy miközben küzdünk a gépiesség, a magolás, a mechanikus műveletvégzés ellen, sok tanuló még a mechanikus végrehajtásra sem képes, a kialakított algoritmusok nem tudatosulnak, nem válnak eszközzé, így nem jelentenek "kapaszkodót". A megtanult algoritmusok is elszigeteltek maradnak, nem kötődnek korábban kialakult sémákhoz, s hozzájuk is alig kötődik újabb ismeret, információ.
Az algoritmus bizonyos konkrétan meghatározott műveleteknek olyan - leggyakrabban időrendi - sorrendje, amely megadja az azonos típusú feladatok megoldásmódját. Használatakor: folyamat, azaz olyan tudatosan elvégzett, végrehajtott műveletsor, amely elvezet a feladat (a probléma) megoldásához.
Az algoritmikus gondolkodásnak az a lényege, hogy a műveleteket a problémával kapcsolatos dolgok megjelenítésével végezzük. Ezek lehetnek: szavak, jelek, képek, ábrák, jelképek stb.
Tehát a gyerekek ne műveletekben, hanem eljárásokban, megoldásmódokban, tervekben, műveletek folyamatában gondolkozzanak. Ezáltal valódi, azaz rugalmas, más helyzetekben is alkalmazható, nagyobb transzferhatású tudás jöhet létre.
Gyakori, hogy a pedagógusok a gondolkodási készség fejlesztését inkább a gyakorlás mennyiségének növelésében látják. Nem fejlődik a gondolkodásmód, ha mindig a feladatban lévő számokat, mennyiségeket használjuk az algoritmus felállításához. Gond az is, hogy a problémamegoldás során a tanuló a tanult eljárásokat, szabályokat igyekszik illeszteni az előtte álló problémára. Ez ritkán vezet eredményre. Inkább a megoldási elvhez kötődő algoritmus, séma segíthet. A sémák alkalmazása néha gátolja (megakadályozza) a megoldást, főleg akkor, ha új helyzethez alkalmazzuk a kialakult sémát (Pléh Csaba). A fentieket akkor tudjuk kiküszöbölni, ha el tudjuk kerülni az algoritmus funkcionális rögzülését.
A gyakorlásnál tehát ne a konkrét feladaton legyen a hangsúly, hanem azon, hogy a gyereket rávezessük, "alkalmassá tegyük" a számára eddig ismeretlen, új eljárás megtalálására. Ha ezt tesszük, akkor juttatjuk el a divergens, a kreatív gondolkodáshoz. Az új eljárás juttat el az új ismerethez. Ne felejtsük el, hogy a gondolkodási stratégiák lényegüket tekintve szintén algoritmusok!
Természetesen nem szeretném mindenek fölé emelni az algoritmikus gondolkodást, hiszen ugyanilyen fontos az intuitív, a divergens, a konvergens stb. gondolkodás, és így ezek iskolai fejlesztése is. De szeretnék rávilágítani erre a problémára, és megmutatni az algoritmikus gondolkodás fejlesztésében rejlő lehetőségeket.
3.
Pedagógiai gyakorlatunkban az algoritmustanítás egyszerre cél és eszköz is.
Cél abban az értelemben, hogy az algoritmusok kialakítása, az eljárások tudatosítása, hatékony alkalmazása tervszerűséget, önkontrollt, biztonságot, sikerélményt ad a tanulóknak.
Eszköz, mert megismerése, használata segítséget nyújt a feladatmegoldásban. Hasonló típusú problémák megoldásakor az eljárást eszközként tudja alkalmazni. Nélküle az algoritmikus gondolkodás fejlesztése nem valósítható meg.
A tudásnak van egy olyan rétege is, amelyet sem a tények és absztrakciók egységével jellemzett, sem az információk különböző válfajaiba besorolt ismeretek sajátosságaival nem lehet meghatározni.
A tudásnak a ténybeli része a fejlődés során fokozatosan elhalványodhat, s az adott tudás nemsak egyszerűen tényismeret vagy absztrakció többé, hanem általánosítássá vagy műveletté alakul.
Az ismeretek széles körének jelentős része ilyen jellegű tudássá válhat. Függetlenné válik attól a tényanyagtól, amelynek elemzéséből származott. Nagy Sándor ezt a réteget algoritmusnak nevezi.
Az algoritmikus gondolkodás szintjeit a következőkben lehet meghatározni, illetve kapcsolni más gondolkodási módokhoz (Buda Mariann javaslata alapján).
1. szint
Alkalmazás esetén: amikor az emlékezetből csupán elő kell hívni azt a meghatározott (megadott, megnevezett) eljárást, amelynek segítségével a tanuló úrrá lesz az adott problémán. (Pl.: Határozd meg a közös nevezőt! Ekkor a tanuló kiválasztja, előkeresi a megnevezett eljárást, algoritmust.)
Végrehajtás: deduktív gondolkodás (az általános formában tárolt - vagy megadott - algoritmus alkalmazása a konkrét esetre).
2. szint
Az algoritmus megalkotása, vagyis az a folyamat, amelyben a lépéseket igyekszünk felismertetni, a szabályokat, általánosításokat kezdjük kialakítani; alapjaiban induktív gondolkodást igényel.
Lényege: a tanuló a problémamegoldás során megfigyel egy szabályszerűséget (szabályt), azt többször is észreveszi, majd ezt valamilyen értelmes módon kódolja (rögzíti).
3. szint
Az algoritmusok felkutatására, kiválasztására irányuló tudatos törekvés. Újabb hasonló esetben egészében vagy kissé módosított formában - adott probléma megoldásakor - felidézi, követi, használja.
Analogikus gondolkodás.
4. szint
Az algoritmus módosítása, "illesztése": az algoritmusok hatékony, rugalmas átalakítása, egybefűzése. Az alapalgoritmusból új eljárásmód kialakítása.
Kreativitás.
Az általános iskolai tanításban különösen fontos az algoritmikus gondolkodás kialakítása, hiszen ebben az életkorban rögzülnek az alapvető tanulási technikák, az egyes tantárgyakkal kapcsolatos beállítódások.
Az algoritmikus gondolkodás fejlesztésekor két utat járhatunk be:
- Általános törekvések a sémaalkotásra. Minden egyes feladat megoldásakor ösztönözzük, hogy a tanuló törekedjen az "egyszer használt" algoritmus felismerésére, tudatosítására, rögzítésére, és ezt tudatosítjuk.
-
Minden általánosítás az egyszeri esetből indul. Mindig az egyedi feladat megoldása indíthatja el a szabály sejtését, felismerését, és több azonos vagy hasonló feladat juttat el az általánosításig.
- Kiépíteni azokat az általános algoritmusokat, amelyekre az általános iskola egy-egy tantárgyának tananyaga épül. Ragadjuk meg azokat a lehetőségeket, amikor egy általános, de bármikor átalakítható, újraépíthető algoritmust állíthatunk fel. "Egységet" alakítson ki a gyerekben a tanult ismeretek, eljárások között.
A kialakítandó algoritmus az általános iskolában (főleg 5-7. osztályokban) ne legyen (nem lehet) több négy-hat lépésnél. Ilyen méretű eljárásmódot a gyerekek meg tudnak jegyezni, a lépéseket képesek helyes sorrendben követni (természetesen ez gyerekenként változhat). Többet a 10-13 éves gyerekek nem tudnak igazán alkalmazni. Lényeges, hogy ez a négy-hat lépéses algoritmus tudatosuljon, mélyüljön, raktározódjon el a tanulók tudatában. Az ilyen méretű algoritmus alapsémát jelentsen, olyat, amely a későbbiek során biztonsággal használható, bővíthető.
Az általános iskolában az algoritmusok kialakításakor a következő stratégiai szinteket követjük:
elemi műveletek → feladatmegoldó rutinok → eljárások → problémamegoldási stratégiák
A szinteket nem választja el éles határ, nem állapítható meg, hogy hol ér véget az egyik szint, és hol kezdődik a következő.
Az algoritmikus gondolkodásra nevelés akkor hatékony igazán, ha rugalmasságra épül, és a gyerekekben tudatosul, hogy a mindennapi problémák megoldására vannak kész, alkalmazható eljárások. Meggyőződésem, hogy motiváltabbá tehetjük (tesszük) a gyereket, ha a tanítandó anyag kapcsolódik az előző ismerethez, a számára is elfogadott, begyakorolt sémákhoz, amit nevezhetünk algoritmusnak is. Az algoritmus használatakor, felidézésekor azonban az eljárást ne csak reprodukáljuk, hanem rekonstruáljuk, alkossuk újjá. A gyerek így belátja, elfogadja, hogy az algoritmus egy "alap", amelyre építeni lehet, ugyanakkor a feladat igényéhez alakítható. Nincs olyan algoritmus, amely ne engedne meg tökéletesítést, egyszerűsítést, optimalizálást. Az így kialakított algoritmus új helyzetekben nagyobb adaptivitást biztosít. Ha ilyen formában fejlesztjük az algoritmikus gondolkodást, akkor nem lesz merev, formális.
Az algoritmikus gondolkodást úgy lehet fejleszteni, ha a tanulókat probléma elé állítjuk, és az önállóan vagy közösen megalkotott algoritmust tudatosítjuk. Az algoritmus továbbfejlesztésénél fontos, hogy a korábban kialakult sémához tudjuk kapcsolni az újonnan tanultakat. A kapcsolat ne legyen erőltetett sem a tananyagban, sem az eljárásmódban, a tanulók lássák meg az összefüggéseket, az új lépést tudják beépíteni a régi algoritmusba.
Az algoritmus tárolása a hosszú távú emlékezetben viszonylag tartós, azaz ellenáll a felejtésnek, ha az algoritmusnak a lényeges, alapvető fogalmait, jegyeit tároltatjuk, a séma jellegzetes pontjait emeljük ki, ezeket erősítjük, próbáljuk rögzíteni (ily módon könnyebb felidézni az egészet). Fontos, hogy a tanuló lelki szemeivel mindvégig lássa a folyamatot, melyen végig fog haladni. A tárolás akkor tartós, ha megfelelő szintű és minőségű gyakorlást, teret, időt, lehetőséget biztosítunk az elmélyülésre.
Az általános iskolai tanításban az indirekt hatást kell kihasználni. Azt, hogy az algoritmusokkal való ismerkedés, alkalmazás serkentő lehet újabb eljárások keresésére, tágabb értelemben való alkalmazásra, újabb problémák megoldására (algoritmikus transzferhatás).
Ezt úgy érhetjük el, ha
- praktikus algoritmusokat alakítunk ki a feladatra,
- a gyerek látja, hogy hasznos az alkalmazás,
- ha végrehajtása sikerélményt jelent.
Sajnos gyakori eset, hogy amikor a tanulóknak már alkalmazniuk, használniuk kellene az algoritmust, mi elmondjuk, megmutatjuk a problémamegoldás menetét, s a gyerekek már csak a mechanikus műveleteket végzik el. Ez nem fejlesztő hatású, az algoritmus itt nem tölti be a neki szánt szerepet.
Az algoritmikus gondolkodás kialakításánál veszélyt jelent, ha a tanár irányító munkája túl erős, ha csak az általa elképzelt és megtervezett eljárás dominál, ha a gyerekek elképzelése, elgondolása nem érvényesül. Ekkor a gyerek a tananyagot nem feldolgozza, hanem raktározza. Kialakult ugyan az egyetlen (a tanár által jónak ítélt) algoritmus - típusfeladatokra ez jó is lehet -, de csupán egy formális, merev algoritmus raktározódik el. Ez nem lehet a tanítás célja. Természetesen különbséget kell tenni, hogy az algoritmus még a kialakulás vagy már az alkalmazás fázisában van. A tanár irányító munkája az első esetben fontos, de a későbbiekben jobb, ha visszaszorul.
Lényeges kiemelni azt is, hogy az iskolai gyakorlatban az algoritmikus gondolkodás (problémamegoldás) során a célhoz általában nem egyetlen út vezet. Mutassuk meg, hogy több is létezik; hasonlítsuk össze a lehetséges utakat az alkalmazott eljárás (algoritmus) célszerűsége szempontjából is.
A tankönyvek inkább ismerettár jellegűek, amelyek az új információk, fogalmak bemutatását tartják fontosnak, nem tudatosítják igazán az algoritmust és annak szerepét. A gyakorlat az, hogy az új fogalmakat, eljárásmódokat egy-egy mintapéldán vezetik be, a megoldás levezetésében időrendi sorrendet követve. A könyv nem hangsúlyozza eléggé, így nem tudatosítja a tagolást, azaz ezeknek a lépéseknek a sorrendjét, kapcsolódásuk logikáját; azt, hogy miért éppen ezt az eljárást követjük; hogy mik az alkalmazás feltételei, milyen más eljárás vezetne el a probléma megoldásához stb. Miközben azon aggódunk, nehogy sablonossá tegyük a gyerekek gondolkodását, nem látjuk el őket azokkal a stratégiai alapeljárásokkal, amelyeket biztonságosan elsajátítva képessé válhatnának továbbépítésükre, kombinálásukra. A különböző gondolkodási módok, stratégiák kialakítását tehát a tankönyv nem támogatja eléggé, így szinte minden a tanáron múlik. Ő dönthet, hogy mely gondolkodási módot tartja lényegesnek, hogy a tanulók gondolkodását hogyan, milyen irányban fejleszti. Ez még önmagában nem lenne baj, ha biztosak lehetnénk abban, hogy ez a feladat minden tanárban tudatosul, és ezzel a tudatossággal végzi a tanulók gondolkodásának fejlesztését.
Az algoritmus hagyományos megjelenítési formája a folyamatábra, amelynek szimbólumai megmutatják a megoldáshoz vezető utakat. Tanításunkban azonban ne törekedjünk mindenáron az elvont, kisebbek számára nehezen értelmezhető folyamatábra (főleg nagy elágazásos ábrák) felállítására. Az algoritmus inkább a tudatban rögzüljön. Annak, hogy időt töltsünk el a rajzolgatással, nincs igazi haszna. Inkább a folyamatra, a sorrendiség fontosságára fordítsunk nagyobb figyelmet.
A magyar közoktatás céljai között egyre nagyobb hangsúlyt kap a gyerekek kognitív képességének fejlesztése, értelmének kiművelése. A pedagógia kognitív szemlélete hangsúlyozza (Nahalka, Csapó, Pléh), hogy új ismeret csak akkor épül fel a tanulók tudatában, ha korábbi információhoz, előzőleg kialakult sémákhoz kötődik.
4.
Az algoritmikus gondolkodás kialakításának legfontosabb elemei a következők.
Tudatos, tervező magatartás kialakítása
Tegyük konkréttá a gondolatokat, majd fűzzük sorrendbe.
Fontos, hogy tudatossá tegyük a gondolkodási lépéseket.
Módja lehet: hangosan gondolkodás, képek, ábrák rajzolása.
Időt kell hagyni az átgondolásra (önkontroll kialakítása)
A logikai út végiggondolásához - bármilyen rövid is legyen - időre van szükség. Arra, hogy a gyerek rendezze, megkülönböztesse, osztályozza gondolatait, elképzeléseit.
Tudjon tervet készíteni, mérlegelje saját stratégiáját, ne vonjon le elsietett következtetést.
A tanárnak fontos szerep jut abban, hogy tanítványait segítse a végiggondolásban, ötleteik kidolgozásában. Ha nem tesszük, a tanulók feladatmegoldását próbálkozások, ösztönös késztetések vezérlik.
Értékelés - tudatosítás
Az értékelés célja, hogy a tanuló teljességében lássa a megoldandó problémát, a végigjárt folyamatot - a kísérleteket, rossz irányú próbálkozásokat is - és a megoldást, az eredményt. Felidézi a tapasztalatokat, tárolja, és majd felhasználja a legközelebbi tervezésnél.
Az algoritmusok tehát fejlesztik a tanulók kognitív képességeit, ugyanakkor segítik a tananyag tartalmának elsajátítását.
A feladatmegoldás közben támaszkodnak rá, a tananyag tanításakor kialakítható olyan algoritmus, amely kapaszkodót ad a gyengébb tanulóknak, segíti a jobb képességűeket, hogy újabb és újabb algoritmusokat alakítsanak ki.
Az algoritmikus gondolkodás igazán akkor válik teljessé, ha az eljárásmódot iskolán kívüli problémák megoldására is biztonsággal fel tudják használni a tanulók. (A problémamegoldást mindig megelőzi a korábban tanult sémák, algoritmusok kialakulása.) Ez összetettebb rugalmasabb, divergens gondolkodást igényel.
Az algoritmikus gondolkodás alkalmas a gyerekek kognitív képességének a fejlesztésére. Az persze irreális elvárás, hogy minden gyereknél kialakuljon a magas színvonalú algoritmikus gondolkodás. Ez csupán a gyerekek néhány százalékánál érhető el. De mindig törekednünk kell arra, hogy fejlődjenek ezen a téren.
A fenti megállapítást ábrával is szeretném szemléltetni.
Fontos, hogy ez a fejlesztés tudatos, tervszerű és rendszeres legyen, mint minden pedagógiai tevékenység. Szükséges a tananyagban az egymáshoz kötődő fogalmakból, műveletekből sémákat, algoritmusokat kialakítani. A pedagógiai gyakorlatban lényeges, hogy széttagolt (úgy is tanult) algoritmusok között új kapcsolatot alakítsunk ki. Jól sikerült alsémák összekapcsolása révén a tanulókban "megvilágosodik" a nehéznek tűnő megoldás. Tudásuk, gondolkodásuk koherensebbé válik, a tanult eljárást újszerű környezetben is alkalmazni tudják.
Ez hatékonyabbá teszi munkánkat, s a kialakított algoritmusok új helyzetekben - például felvételi feladatok megoldásakor - kapaszkodót adnak a gyerekeknek.
Fontosnak tartom, hogy az algoritmikus gondolkodásra nevelés foglalja el megérdemelt helyét a tanításunkban. Vesse le a ráragasztott mechanikus, formális jelzőket, és a gyakorlatban az ismeretközpontú tanítással párhuzamosan folyjon az eljárásmódokat, algoritmusokat kialakító tanítás.