Farkas Károly: A Logo programnyelv szerepe a felsőoktatásban
A Logo programnyelv szerepe a felsőoktatásban Dr. Farkas Károly CSc. tudományos főmunkatárs, Mérnökpedagógiai és Médiatechnikai Csoport Összefoglaló: Az elsőként tanított programozási nyelv a felsőoktatásban is lehet a Logo. Ennek a nyelvnek a használata igen hamar sikerélményeket nyújt. A programozás megértéséhez jelentős segítség a szintonia. Az algoritmus, a struktúra, a programfutás szemléltetését jól szolgálja a teknőcgeometria. A Logoval látványosabb, érdekesebb, a felsőfokú tananyagokhoz is illeszthető példákat citálhatunk. A Logo kiemelkedő érdeme az intenzív gondolkodásfejlesztő hatása. .
1. Melyik programnyelvet tanítsuk főiskolán? Napjainkban a programozás tanítása főiskolai szinten csaknem valamennyi hallgató számára szükséges. Természetesen különböző célból, szinteken, és terjedelemben. A nem informatika szakos hallgatóknak ezt elsősorban a gondolkodásfejlesztés szempontjából tartom fontosnak. Nekik, olyan programnyelvet, példákat javasolok tanítani, amelyek viszonylag könnyen érthetők, amelyeknél kevés az előzőleg elsajátítandó speciális ismeret. De ugyanez lehet cél az informatika szakos hallgatók esetén is, az első programnyelv megválasztásakor. A programozásba való bevezetés miért ne legyen szórakoztató? Az informatika szakos hallgatóknak ugyanakkor az első programozási nyelv természetesen legyen korszerű, átfogó, sokoldalú, alapozó. A programozás oktatása kezdetére a következő lehetőségekből választhatunk: 1. Programnyelvtől független bevezetés 2. Több nyelv párhuzamos használata 3. Valamelyik programnyelv alkalmazása A programozás elmélet tanítására, az algoritmizáló készség, a problémamegoldó készség fejlesztésére bőségesen található kiforrott tananyag. Ezek a tantárgyak általában megelőzik, előkészítik a programnyelvek használatát, oktatását. Erre két példa a Bécsi Műszaki Egyetemen Gerald Futschek tantárgya [1], a Budapesti Műszaki Főiskolán Csink László kurzusa [2]. Klasszikus tanítási forma először az ismeretek közlése, majd azok gyakorlása. Sokan tapasztaljuk, hirdetjük, hogy ennek a fordítottja, az individuális tapasztalatok alapján történő következtetések levonása kellemesebb, időnként hatékonyabb. Természetesen látjuk, hogy ez gyakran hosszasabb és oktatásszervezés szempontjából költségesebb. Így az ismeretek elsajátításához az elmélet és gyakorlat sorrendjének megválasztására általában kisebb egységek váltogatása, a kvázi párhuzamosság az optimális. Több programnyelv egyidejű alkalmazásával oktatni, fejleszteni vitathatatlanul értékes út, de talán ez a legnehezebb, mind a tanár, mind a hallgatók számára. Az ELTE.n, a BMF-en ilyen jellegű próbálkozások után más módot választottak. Mindegyik tantárgyban a gyakorlatok igen jelentősen segítik a megértést, a tanulást. Nem feledve a tanár előkészítő, motiváló szerepét, talán nem is túlzás, hogy a tulajdonképpeni tanulás végső soron individuális tevékenység. Ezt a tanítás, a tanár „csak” előkészítheti, elősegíti, de valójában a hallgatón múlik az elsajátítás sikere. Zsolnai véleménye szerint: „Valóságosan pedig tudjuk, hogy csak az számít, amit önmagunk, önállóan tanulunk meg. Csak azt tudjuk hasznosítani.” [3] Az egyéni tanulást, a tanulás egyénhez való igazítását, ezzel hatásfokának jelentős javítását segíti a számítógép alkalmazása. Papert, sokunk szerint a ma élő legnagyobb pedagógus ezt írja az oktatás változásáról: „A másik trend episztemologikus, a tudásról való gondolkodásunk forradalmi változása. … a tanulás értéknövekedésében az új technológiáknak, az egyéni stílus alakításának széleskörű támogatásában, a személyes média megteremtésével van részesedése.” [4] A programozásba való bevezetés során a
Farkas Károly: A Logo programnyelv szerepe a felsőoktatásban kezdetektől való, és folyamatos gyakorlás könnyebben valósítható meg egy kiválasztott programnyelv alkalmazásával. Ezért is ez a leggyakoribb metodika talán a sorolt háromféle lehetőség közül. De melyik legyen az elsőként tanított programnyelv, melyik legyen a programozói anyanyelv? Ennek eldöntésében időnként a piaci szempontok domináltak, s nem a pedagógia, az oktatás tudományos megszervezésének lehetősége. Ennek igazolására példa az informatika alkalmazása (de részben a programozás oktatása terén is) a következő: Napjainkban mivel a gazdasági életben legelterjedtebb az Office programcsomag, így az informatika tananyag, kis túlzással, minden szinten az Office. Csak kicsivel körültekintőbb, csak kicsivel átfogóbb az ECDL tananyag. Ezek egy része valóban ma már az általános műveltséghez tartozó, de nem feledve, és értékelve az egységesítés, a szabványosítás előnyeit, jó volna, ha az informatikai kultúra kevésbé kapcsolódna egy termékhez, egy gyorsan változó ismerethez. A programnyelv, mint tananyag megválasztásakor ugyancsak sokszor döntő szempont volt, hogy melyik a divatos, a piaci siker: Algol, BASIC, Pascal, C valamelyik változata, Delphy vagy Dot.net. Természetesen a jó tanárok, a betanítás helyett mindenkor megpróbálták nem a példát, nem a programnyelvet tanítani, hanem a példával tanítani, jelen esetben a programozást. Ez talán leginkább a Pascal változataival sikerült. Mindenkor voltak irányzatok, amelyek szerint elsősorban ne a nyelv alkalmazásának gyakoriságát, az elterjedés mértékét vegyük figyelembe a tanítandó programnyelv megválasztásakor, hanem a tanulás törvényszerűségeit, a tanulót. E vélemények szerint olyan programnyelvet válasszunk, amely könnyen tanulható, intenzíven fejleszt, maradandóbb készségeket alakít. Az Elan, az Eifel stb. ilyen programnyelvek. Közülük mára kiemelkedett a Logo.
2. A Logo nyelvről A Logo érdeme az, hogy egyike a legkönnyebben elsajátítható programnyelveknek, egyike a leghamarabb sikerélményeket nyújtó programozási eszközöknek. Programozni, értsd a számítástechnikai piac számára programokat alkotni, csak nagyon kevés embernek kell megtanulnia, s bár a Logo számukra is alkalmazható1, sokkal inkább alkalmas arra, hogy segítségével szórakoztatóan ismerkedjünk meg a programozás elemeivel, játszva fejlesszünk programozói készségeket, szokásokat. Ezt sok pedagógus felismerte, és nyilván ezért terjedt el hazánkban is, kellő mértékben a Logo. Van azonban a Logo-nak egyik másik, a pedagógia, az emberfők kiművelése szempontjából talán még jelentősebb értéke, nevezetesen az intenzív gondolkodásfejlesztő hatása. Ebben hasonlít a matematikára. Tézisem szerint a matematikai képzés-nevelés áldásainak többségét a logo-pedagógia keretében alkalmazott Logo nyelv élvezetesebben, hatékonyabban, korábbi életkorban, biztosabban eredményezi. Még egy előny: amíg a matematika tanítása esetén sajnos gyakran kialakul a matekfóbia, a gyermekek, és hallgatók számítógéphez viszonyuló „szerelmi kapcsolata”2 jóvoltából az informatikafóbia ritkább. A Logo programnyelv kategorikusz imperativusza a teknőc geometria. Ennek talán legjelentősebb kidolgozói, mesterei Papert munkatársai Abelson, és diSessa. [5] Ez olyan ismeret, amelyet bizonyos mértékig célszerű minden diáknak elsajátítani. A képernyőn, ha a rajzlapot megnyitjuk, egy pontot és egy irányt képviselő teknőc jelenik meg. A képernyőteknőc (vagy még szerencsésebb esetben egy kibernetikai modell, mint például a padló-teknőc) egy objektum, amely jó „gondolati fogódzó”, a szemléltetést, a szintonia kihasználását segíti elő. A Logo elsősorban testszintonikus, tehát a használó saját testével kapcsolatos tapasztalatokra, saját mozgásával összhangban tudja a Logo alaputasításait értelmezni. Nem csak népszerűségében hasonlít a Logo a LEGO játékra, de a konstrukciók struktúrájában is. Mindkettő egyszerű, sokféleképpen variálható elemekből, hatékony kapcsolásokkal építkezik, mindkettőben lehet, mindkettőben célszerű, részegységeket létrehozni, alkalmazni. A Logo és a Dominó játék között a hasonlóság a részelemek egymáshoz kapcsolhatóságában van. A dominóval még egy kognitív jellemző köti össze a Logót: „a keresztbe fektetett dominó elv”. Így neveztem már korábban is azt a programozói hozzáállást, módot, amely szerint az összetettebb programokat, külön-külön előre kipróbált részekből (eljárásokból, függvényekből, szubrutinokból, 1 2
Például: Imagine programnyelv és fejlesztési környezet Papert jellemzi így a viszonyt.
Farkas Károly: A Logo programnyelv szerepe a felsőoktatásban unitokból) építhetjük össze, a hosszabb folyamatot pedig, előre kipróbált részfolyamatok csatolásával valósíthatjuk meg. Az eldőlő dominósor építésekor keresztbe tett elemekkel szakaszoljuk az építményt. „Oszd a feladatot részekre!” - tanácsolta Pólya György is. Az alkotás, és az ennek alapján történő tanulás: próbálgatással, a hibákból tanulva történhet. A teknőc a forward parancs hatására a parancsszó utáni számnak megfelelő teknőclépésnyit, képpontnyit halad előre. A right utasítás végrehajtásakor a paraméternek megfelelő mértékben fordul saját irányához képest jobbra. A repeat 360 [fd 1 rt 1] utasítás eredménye tehát kör. A szintonia meghatározására Papert ezt írja: [6] „A kört rajzoló teknőc esete a szintonikus tanulást illusztrálja. Ezt a kifejezést a klinikai pszichológiából kölcsönöztük, a már tárgyalt disszociált vagy összefüggéstelen tanulás ellentéteként. Sokszor összetételben használjuk, ami a szintonicitás típusára utal. A teknőccel való körrajzolás például testszintonikus abban az értelemben, hogy szorosan kapcsolódik a gyerek saját testére vonatkozó, fiziológiai-fizika állapotával összehangolt ismereteihez és érzékeléséhez. Másrészt önszintonikus, amennyiben összefügg azzal, ahogy a gyermek önmagát szándékokkal, célokkal, vágyakkal, vonzalmakkal és ellenszenvekkel felruházott emberként érzékeli. A Teknőccel kört rajzoló gyerek kört akar rajzolni; s ha ez sikerül, izgalmat okoz és sikert jelent. A Teknőc-geometria éppen a szintonicitás révén tanulható meg. De más dolgok megtanulásához is hozzájárul, mert a problémamegoldó matematikus stratégiák szándékos és tudatos bevezetésére ösztönöz. Pólya György szerint a problémamegoldás általános módszereit tanítani kellene. A Teknőc-geometriába alkalmazott stratégiák egyes esetekben a Pólya által javasolt módszerek speciális esetei. Így például, Pólya azt ajánlja, valahányszor nekilátunk egy problémának, pörgessünk le fejben egy sor heurisztikus ellenőrző kérdést, mint például: „Nem lehetne ezt a problémát egyszerűbb részproblémákra bontani?” Vagy: „Nem kapcsolódik ez egy olyan problémához, amelynek már ismerem a megoldását?” Az ilyesfajta gyakorlatokra a Teknőc-geometria nagyon jó terep. A körrajzolás megoldásának kulcsa egy igazán jól ismert probléma – a körben járás – megoldásával való kapcsolat felfedezésében rejlik.”
Kört rajzolni a teknőccel a gyerekek ma már általános iskolában tanulnak. De miért ne használhatnánk ki a testszintoniát a felsőfokú oktatásban is?
3. Példák a GAMF-on bevezetett Logo stúdium tananyagából A 2006/2007 tanév első félévében hirdettük meg, és tartottuk először az 1+0+1 órás Logo tantárgyat két csoport, tanulmányaikat kezdő informatika szakos hallgató számára. A következő példák a tananyag originális részleteiből valók.
3.1. Rajzoljunk kört a teknőcgeometriában, két teknőc szerepeltetésével! Két teknőcöt használjunk, mint a körző két hegyét! Nevezzük azokat Ádámnak és Évának. Ádám, a „teremtés koronája” áll a kör középpontjában, Éva tőle sugárnyi távolságban. Évát parancsszóval (az objektumhoz rendelt metódussal) hozzákötjük Ádámhoz, majd Ádám forogni kezd. A „forog” nevű eljárásban tehát felhasználjuk, a köt parancsszót. (Van olyan Logo verzió, pl. MicroWorlds Logo for Mac, amelyben a „köt” alaputasítás: stick_to. E tanulmány példáiban alkalmazott MicroWorlds for Windows Logo változatban nincs ilyen alaputasítás. A Logoban természetes, ha nincs valamilyen Logo parancsszavunk, azt megírjuk.) to forog Éva, köt "Ádám Ádám, rt 1 forog end
Farkas Károly: A Logo programnyelv szerepe a felsőoktatásban
to köt :a towards :a make "d distance :a make "alfa ask :a [heading] make "x ask :a [xcor] make "y ask :a [ycor] setpos list :x + :d * sin :alfa :y + :d * cos :alfa end Adjuk ki a forog parancsot! Ádám forog, Éva körülötte köröz. Ez a körrajzoló modell véleményünk szerint a legszintonikusabb, hiszen a körözés, a kör megtapasztalása, a körbeforgás során, a kézzel elérhető kör által határolt terület birtokbavételével kezdődik.
1. ábra. „Majd ő dolgozik, és én irányítom, tanácsokkal látom el.” 3
3.2. A spirál, mint két mozgás eredője Ádám és Éva szerepeltetésével jól érthető és jól eljátszható módon (szintonikusan) mutathatjuk be a spirál görbét is. Amennyiben Éva engedelmeskedik és engedi magát forgatni, de ezen kívül még önállóan is mozog, halad Ádám felé, a szállító körmozgásra szuperponálunk egy sugárirányú egyenes mozgást, eredőként spirált kapunk. Ádám tehát forgat, Éva előre lép: to spirál Éva, köt "Ádám fd 0,2 Ádám, rt 1 spirál end
2. ábra. Spirál
3
Idézet Mark Twain: Ádám és Éva naplója. Móra Ferenc Könyvkiadó, Budapest, 1957.
Farkas Károly: A Logo programnyelv szerepe a felsőoktatásban Két vagy több teknőc szerepeltetésével további sok, a teknőcgeometria előtti korban nehezen ábrázolható matematikai alakzatot könnyedén rajzolhatunk meg. A mozgások szuperponálásával, összegzésével e görbék kialakítása szintonikusabb módon mutatható be. Nézzünk további példákat!
3.2. Ciklois Három teknőc közül az egyik végezheti a szállító, a második a relatív, a harmadik az eredő mozgást. to szuperponálás :a :b ask [t1 t2] [run :a] ask [t1 t3] [run :b] szuperponálás :a :b end
3. ábra. Ciklois A hurkolt ciklois, a fekete színnel rajzolt görbe – a kör, és az egyenes mozgás eredője. A szuperponálás eljárás :a paramétere: setx xcor + 1 , a :b paramétere: fd 1 rt 1
3.3. Szinusz hullám A cikloisok változtatgatásával – a vízszintes szállító mozgás, és a körmozgás egymáshoz viszonyított sebességének változtatásával (pl. a setx xcor + 1 parancsban az 1 módosításával) a ciklois egyre nyújtottabb, egyre jobban hasonlít a szinusz szögfüggvény görbéjéhez A cikloisok nézegetésekor értettem meg, hogy a szinusz a cikloisok határértéke. A körmozgást végző pont y irányú vetületei adják a szinusz függvényértékeket. A vízszintes szállító mozgásnak végtelen naggyá kell válnia, vagy a körmozgás vízszintes összetevőjét kell zérushoz közelítenünk. Ez utóbbi eset könnyen modellezhető, ha a relatív körmozgás síkját a szállítómozgásra merőlegesen állítjuk. Egy negyedik teknőcöt hívjunk segítségül! A negyedik segédteknőc (ha tetszik Lilyt) köröz, és az általa rajzolt kör függőleges vetületét mindenkor átvéve, annak megfelelő mértékben tér ki a vízszintes vonaltól Éva. (A modellt úgy is értelmezhetjük, miszerint Lilyt síkját beforgatjuk Éva síkjába.) Éva tehát nem egyenletes sebességgel végzi alternáló mozgását. A szállító mozgás, és a relatív mozgás eredője a szinuszos mozgás. Ezt a mozgást az a teknőc hajtja végre, amelyik mind az a, mind a b paraméter szerint fut.
4. ábra. Szinuszgörbe.
Farkas Károly: A Logo programnyelv szerepe a felsőoktatásban 3.4. Pólya György iskolája [7] Logo tantárgyunk kezdetén téma: a teknőcgeometriai klasszikus példája a ház rajzolása. Ez a probléma a pólya-féle részekre bontás, és a korábbi modulok, megoldáselemek felhasználásának mesteri szemléltetése. A ház rajzolásának műveletsora például az alábbi részekre bontható: NÉGYZET áthelyezés HÁROMSZÖG visszatérés
NÉGYZET
áthelyezés
HÁROMSZÖG
visszatérés
5. ábra. „Oszd a problémát részekre!” Az áthelyezés: fd 55 rt 30 révén kerül a tető megfelelő magasságba és irányba. A visszatérés az eljárás teljessé tételére szükséges. „A rendes teknőc ugyanolyan helyzetbe fejezi be a munkát, ahogyan kezdte.” A visszatérés az áthelyezés teljes inverze: „menj fordulj” helyett, „fordulj menj”, és a pozitív paraméterek helyett, azok negáltjai: fdj 55 rt 30 helyett rt -30 fd -55 . Idézek ismét Papert „Az észrengés” című könyvből: „A teknőc-geometria azután kiváló alkalmat ad arra, hogyan gyakoroljuk magunkat a nehézségek feloszlatásának mesterségében. A HÁZ például a HÁROMSZÖG és a NÉGYZET megoldására támaszkodott. Egyszóval úgy gondolom, a Teknőc-geometria olyannyira megfelel Pólya elveinek, hogy azok megértetésére nem is nagyon van jobb módszer. A Teknőc-geometria tehát egy heurisztikus stratégia általános gondolatainak közvetítésére is szolgálhat.”
Az idézetből kiemelem: A Teknőc-geometria olyannyira megfelel Pólya elveinek, hogy azok megértetésére nem is nagyon van jobb módszer! Ezt az állítást évtizedek óta tapasztalom és hirdetem.
3.5. A térszemlélet fejlesztése Logoval Erre kiválóan alkalmas a teljesen objektumorientált Elica Logo. [8] A program szabadon használható, a teljes változat letölthető a netről. 3.5.1. Kocka Az Elica Hungarica felhasználásával kockát könnyen rajzolhatunk az oldalakon végighaladva, „spagetti programmal”, amikor is addig mászkálunk, amíg mindegyik oldalt bejárjuk. De, milyen tömörebb, rövidebb, elegánsabb, strukturáltabb algoritmusok léteznek? Pólya tanácsára keressünk már megoldott hasonló problémát! A kocka nyilván kapcsolatban van a négyzettel. A négyzetrajzoló eljárást, algoritmust nevezzük négyszög-nek to négyszög ism 4[mj 55 ja 90] end
Farkas Károly: A Logo programnyelv szerepe a felsőoktatásban Vajon a kocka körülhatárolására hat négyzetet kell a térben rajzolnunk? A hat négyzet, hatszor négy, azaz huszonnégy oldalél. Ennyit nem kell rajzolnunk, mivel a kockának csak tizenkét éle van. Nem kell lapokat rajzolnunk (hatot), csak éleket (3*4-et). Négy megfelelően elhelyezett négyzetlap oldaléle körülhatárolja a kockatestet. Elegendő tehát a kockatest alakú „gyufásdoboz” tokját végigjárnunk. Képzeljük ezt a tokot olyan helyzetben, hogy benne a fiók vízszintesen helyezkedhetne el. A rajzoláshoz az egyik megfelelő algoritmus: a négyzet (alaplap) rajzolása után oldalélnyit emelkedünk (ej – emelkedj), jobbra hemperedünk negyed fordulatot (fordulj jobbra – fj), és az eddig tartó algoritmusrészt ismételjük. A kocka oldallapokat a teknőc így belülről járja körbe. to kocka ism 4[négyszög ej 55 fj 90] end
6. ábra. Kockarajzoló algoritmus. A teknőc a jobb-alsó-hátsó csúcsból indult, az onnan előre, felénk tartó élen. (Négyszer rajzolunk négy oldalélet, és négyszer emelkedünk és csavarodunk.) 3.5.2. Kör a vertikális síkban Vertikális síkban a teknőc kört a következő parancsra járja végig: Ism 360[mj 1 sz -1]
7. ábra. Kör a szaltózó teknőccel. Sz -1 jelentése szaltó hátra (negatív irányban) 1 foknyit. Ez a megfogalmazás persze a paperti algoritmus (kis lépés, kis fordulás), csak egy másik dimenzióban. 3.5.3. Menet Menetspirál rajzolására is egyszerű az utasítás a térbeli szintonia alapján. Például, a paperti köröző algoritmus minden lépése és fordulása után kicsit emelkedjünk (ej 0.1): ism 360[mj 1 ja 1 ej 0.1]
Farkas Károly: A Logo programnyelv szerepe a felsőoktatásban
8. ábra. Menet. 3.5.4. Tetraéder A kockarajzolás algoritmusa után a tetraéderé is tanulságos. A tetraéder rajzolási algoritmusának megalkotásához is vegyük figyelembe Pólya tanácsát: „Keress hasonlót!”. A tetraéder körülhatárolása a kockánál alkalmazott módhoz hasonlóan történhet a három – egymásnak dőlő – oldallap körbejárásával. Így az algoritmus lehet három alkalmasan elhelyezett háromszög megrajzolásának utasítássora: to háromszög ism 3[mj 55 ja 120] end to tetraéder ism 3[fj -70.5 háromszög fj 70.5 mj 55 ja 120] end
9. ábra. Tetraéder A 70,5-es fordulásértéket iterálással, próbálgatással hamar megtalálhatjuk. Ha például 60 fokos forgással próbálkozunk, akkor láthatjuk, hogy a tetraéder még túl zárt „három szirmú”, a szirmok egymást túlfedik. Kilencven fokos forgásra túl nyitott lesz a „virág”, (minden oldallap vertikális). A 65 fok még mindig zárt „bimbó”, a 75 még nyitott, és így tovább, hamar megtalálhatjuk az éppen kinyíló „bimbót”. Számítógép használata esetén különösen nem kell idegenkednünk a próbálgatástól, a találgatástól. A gép számolósebessége olyan nagy, hogy jól megválasztott keresési stratégiával, célszerű iterálási algoritmussal, (jelen esetben két irányból történő közelítéssel) gyakran hamarabb célhoz érünk, mint egzakt megoldások keresésével. Természetesen főiskolán a fordulási szög szabatos kifejezése sem okoz gondot, pl. így: to tetraeder make "szög 2*arcsin 1/(sqrt 3) ism 3[fj -:szög háromszög fj :szög mj 55 ja 120] end Hallgatóink úgy a kocka, mint a tetraéder, majd a gömb megrajzolására még további algoritmusokat találtak. Az algoritmusok összevetése, minősítése érdekes, hasznos volt. 3.5.5. A gömbfelszíni teknőc mikrovilágáról Felsőfokú oktatásban kiemelkedően értékesnek látom a szférikus (gömbfelszíni) teknőc használatát. Vajon hány ember tudja a helyes választ az alábbi kérdésre: Van olyan háromszög, amelynek mindhárom szöge derékszög? Avagy merre is van észak a Déli-sarkon, merre mutat ott az iránytű?
Farkas Károly: A Logo programnyelv szerepe a felsőoktatásban A szférikus teknőc a földfelszíni geometriát modellezi. Szférikus tulajdonságait egy parancsra veheti fel a teknőc. make "defaultturtle sphericalturtle Sokszögek a gömbfelszínén A szférikus, gömbfelszíni teknőccel rajzoltathatunk egyenlő oldalú, háromszor kilencven fokos (szögeinek összegében 270 fokos) háromszöget: ism 3[mj 90 ja 90] Egy demo 300 parancs kiadása után jól látható, hogy az eredmény a gömb felszínére rajzolt, gömbi háromszög.
10. ábra. Egyenlő oldalú gömbi háromszög. Avagy hogyan lehetséges, hogyha bizonyos mennyiséget haladok előre, s ez után elfordulok 90 fokot (vagy akármennyit!), majd ugyanannyit haladok egyenesen, hazaérkezem? A szférikus teknőc szemlélteti, ha a haladás mértéke 180 teknőclépés (félkör), utána bármerre fordulva ismét 180 lépés után visszaérünk a kiinduló pontba: Ism 2[mj 180 ja 90]
11. ábra. Gömbi „kétszög” Az egyenlő oldalú gömbi háromszög, és „kétszög” logikai sorába illik az „egyszög”, az önmagába visszatérő „gömbi egyenes”. Gömbfelszínen („teknőc egységgömb” esetén) a menj 360 eredménye egy kör, (egy gömbi főkör). make "defaultturtle sphericalturtle mj 360
Farkas Károly: A Logo programnyelv szerepe a felsőoktatásban
12. ábra. Kör a gömbi teknőccel. A fenti gondolatsor könnyebben elfogadhatóvá teszi a tér valószínűsíthető görbült szerkezete esetére vonatkozó azon hipotéziseket, amelyek szerint idővel megvalósítható galaktikus messzeségekbe való eljutás. (A legtávolabbi pont eléréséhez csak egy parányit kellene lépnünk egy másik dimenzióban.) A logo-pedagógia egyaránt szolgálja a matematikai, a technikai, a tudományos gondolkodás alakítását, és a kreativitás, a fantázia fejlesztését is. Gömb rajzolása a gömbi teknőccel A gömb szférikus teknőccel való rajzolásának egyik algoritmusa ezek után: Ism 18[mj 360 ja 10]
13. ábra. Gömb. Gömb rajzolása a hagyományos teknőccel Ha visszatérünk az alapteknőchöz, és azzal rajzoljuk a gömböt, a to kör ism 36[mj 10 ja 10] end to gömb ism 36[kor sz -10] end eljárások segítségével, a 14. ábra szerint két, egy kisebb és egy nagyobb gömböt (pontosabban kettő, két pontban érintkező ellipszoidot) kapunk. (Most a 360 oldalú szabályos sokszög helyett 36 oldalú sokszögek „megforgatásával” alakítottuk ki a gömböt. A bemutatásra kerülő jelenség azonban természetesen 360 oldalú sokszöggel való közelítés esetén is fennáll. A durvább közelítéssel nem csak gyorsabb a rajzolás, de a torzító hatás jobban látható.)
Farkas Károly: A Logo programnyelv szerepe a felsőoktatásban
14. ábra. „Duplagömb” Ezt a kört poligonnal való közelítésekor fellépő jelenséget, Pavel Boytchev (az Elica alkotója) side effect-nek, oldaleffektusnak nevezi. Mi ennek az oka? A magyarázatot meglátjuk, ha még durvábban közelítjük a kört, például hatszöggel: to hatszög ism 6[mj 10 sz -360/6] end to torzgömb ism 6[hatszög ja 360/6] end
15. ábra. Torz „gömb” A „kettős gömb” függőleges tengely körüli forgatás során alakult, függőleges síkban rajzoltuk a „kört” és vízszintesen forgattunk, de nem a kört közelítő hatszög szimmetriatengelye körül, hanem a kört közelítő hatszög jobb-alsó és jobb-felső csúcsát összekötő egyenes, mint forgástengely körül. Ezért súrolt a hatszög négy, és másik két oldala: egy-egy, összesen két gömbfelületet. Ha a körrajzoló algoritmus nem szimmetrikus (előre lépünk valamennyit és fordulunk valamennyit), mindenkor fellép ez a hatás. Ezt az oldaleffektust kiküszöbölhetjük, ha a hatszög rajzolására a következő algoritmust választjuk: to hatszög2 ism 6[mj 5 sz -60 mj 5] end Az előrelépést két részre osztottuk. A hatszög forgatása így annak szimmetriatengelye körül történt: to javítottgömb ism 6[hatszög2 ja 60] end
16. ábra. Javított „gömb”.
Farkas Károly: A Logo programnyelv szerepe a felsőoktatásban
4. Következtetések A pólya-féle „Gondolkodás iskola”, és a kreativitás fejlesztése a tanulás, a képzés minden szintjén nélkülözhetetlen, és a teknőc-geometriával hatékonyan gyakorolható. Tapasztalataim alapján a Logo programnyelv a legkülönfélébb életkorokban értékes játék, hatékony kísérletező, gondolkodás- és fantázia-fejlesztő eszköz. A GAMF-on bevezetett tantárgy igazolta azon hipotézisemet, hogy ma már a Logo nem csak a gyermekek programnyelve, nem csak bevezetés a programozásba, de a főiskolai oktatásnak is egyik lehetséges tananyaga. Mivel az általános és középfokú informatikaoktatásban kellően elterjedt, erre alapozva az informatika, a programozás felső fokának tanítására, mint alapozott programnyelv is alkalmas. Korszerű változatai révén a különféle programozási paradigmák, imperatív, strukturált, objektumorientált, stb. fejlesztő környezetek látványos példázója. Kiemelkedően hasznos lehet mérnök-tanár hallgatóknak, mivel nem csak informatikai és informatikaoktatás módszertani ismereteiket növeli, de pedagógiai nézetüket is jelentős alakítja. Örülök, hogy hazánkban a GAMF elsők között tanítja felsőfokon a Logo programnyelvet és oktatja a logo-pedagógiát! Az eredményességet az utolsó órai egyik feladat önálló hallgatói megoldásával példázom. A rekurziót fraktálok rajzolgatásával tanultuk. A faktoriális kiszámolására készítendő függvényt így írta meg egyik jeles tanulónk: to ! :n if :n < 2 [op 1 stop] op :n * ! :n – 1 end
IRODALOM [1] Gerald Futschek: http://www.ifs.tuwien.ac.at/~gerald/ Letöltés időpontja: 2006. december 15. [2] Csink László: http://www.nik.bmf.hu/szti/oktatok/csinklaszlo.html AAO követelményrendszer (2006 ősz) Letöltés időpontja: 2006. december 15. [3] Zsolnai József: Vesszőfutásom a pedagógiáért. Nemzeti Tankönyvkiadó, Budapest, 2002. [4] Seymour Papert: The Children’s Machine. Harvester Whatsheaf, New-York, stb, 1993. [5] Abelson H., diSessa A.: Turtle Geometry. The Computer as a Medium for Exploring Mathematics. The MIT Press. 1986. [6] Seymour Papert: Észrengés. A gyermeki gondolkodás titkos útjai. SZÁMALK, Budapest, 1988. [7] Pólya György: How to Solve It (A gondolkodás iskolája); Induction and Analogy in Mathematics (Indukció és analógia a matematikában) Princeton University Press, Princeton, 1954; és Patterns of Plausible Inference (A kézenfekvő következtetési sémák) Princeton, N. J. Princeton, 1969. [8] Pavel Bojtchev: http://elica.net Letöltés időpontja: 2006. december 15.