Warning: Table './science/watchdog' is marked as crashed and should be repaired
query: INSERT INTO watchdog
(uid, type, message, variables, severity, link, location, referer, hostname, timestamp)
VALUES
(0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:7:\"warning\";s:8:\"%message\";s:138:\"realpath(): open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (/var/www/html/science/science.uni-obuda.hu)\";s:5:\"%file\";s:60:\"/var/www/html/science/science.uni-obuda.hu/includes/file.inc\";s:5:\"%line\";i:200;}', 3, '', 'http://science.uni-obuda.hu/node/941', '', '216.73.216.136', 1749606085) in /var/www/html/science/science.uni-obuda.hu/includes/database.mysql.inc on line 135
Warning: Table './science/watchdog' is marked as crashed and should be repaired
query: INSERT INTO watchdog
(uid, type, message, variables, severity, link, location, referer, hostname, timestamp)
VALUES
(0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:7:\"warning\";s:8:\"%message\";s:138:\"realpath(): open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (/var/www/html/science/science.uni-obuda.hu)\";s:5:\"%file\";s:60:\"/var/www/html/science/science.uni-obuda.hu/includes/file.inc\";s:5:\"%line\";i:200;}', 3, '', 'http://science.uni-obuda.hu/node/941', '', '216.73.216.136', 1749606085) in /var/www/html/science/science.uni-obuda.hu/includes/database.mysql.inc on line 135
Logo programnyelv a felsőoktatásban | science.uni-obuda.hu
LOGO A FELSŐFOKÚ PROGRAMOZÁS-TANÍTÁSBAN
LOGO FOR TEACHING PROGRAMMING IN HIGHER EDUCATION
Dr. Farkas Károly CSc
Budapesti Műszaki Főiskola, Neumann János Informatikai Kar, Szoftvertechnológia Intézet
ÖSSZEFOGLALÁS
A gondolkodásfejlesztésnek kiváló eszköze a programozás-tanítás. Az első programnyelv megválasztásakor ne a hatékonyság, ne az elterjedtség, ne a divat legyen a szempont, hanem a könnyen tanulhatóság, a nyelv általános, gondolkodásfejlesztő értéke. A Logot az oktatás számára fejlesztették ki, szemléletes, egyszerű szintaktikájú, motiváló. Jellemző sajátossága a teknőcgeometria, amely segítségével a szintoniát (a könnyű beleélhetőséget, az azonosulást) állítjuk a megértés, a tanulás szolgálatába. A Logo programnyelv episztemológiailag (ismeretelméletileg) is értékes. Tapasztaljuk, hogy az objektumorientált programozási szemléletmód oktatására is jól alkalmazható. A dolgozat, olyan tananyag példákat vázol, amelyeket elsősorban a Gépipari és Automatizálási Műszaki Főiskolán fejlesztettünk.
ABSTRACT
To develop thinking, teaching programming is a good tool. When you select the first programming language, do not consider if it is wide-spread or effectiveness, but rather its ease to learn and its contribution to the development of thinking. Logo was developed for education: it is demonstrative, easy to use and motivating. An important feature is turtle geometry, with which syntony serves understanding and learning. Logo is also interesting from the point of view of epistemology. It can be used for teaching OOP as well. This paper demonstrates some examples that were developed at the GAMF Faculty of Kecskemét College.
KULCSSZAVAK/KEYWORDS
Logo felsőoktatás objektumorientált
Logo higher education objectoriented
1. ELŐZMÉNYEK
Informatikát az ABC 80 számítógépek megjelenése óta tanítok, tanulok. A sorrend nem pontatlan, a számítógép használatakor nem szerepjáték, hanem mindennapi tény, hogy tanítványainkkal együtt fedezhetünk fel egy új világot, hogy együtt tanulunk. Először Szücs professzor vezetésével ismerkedtem az elektronikus aggyal, az Ural 2 számítógéppel Razdan-Algol nyelven próbálgattam kommunikálni. Mesteremtől ekkor tanultam meg, hogy „a gép is csak ember”. A számítógépet azon időben az emberiség még szinte kizárólag számítások elvégzésére használta. Aztán rájöttünk, hogy írógépként (majd telegráfként, telefonként, televízióként, könyvtárként) is hatékony. Napjainkra szinte kettévált a programozás és a digitális írástudás, az első erősen kapcsolódik a matematikához, a második a kiadványkészítéshez. A digitális írástudás az általános műveltség részévé vált, főként a szellemi munka szolgáló leánya (titkárnősködés). Az informatika a közoktatásban jelenleg gyakran csak ezzel foglalkozik, és sokszor csak a legelterjedtebb programcsomag, egy office szerszám használatára történő betanítás. Sok helyen a számítógépet ma arra használják, hogy segítségével a diákokat programozzák, idomítják a géphez (Papert). Ennél sokkal fontosabbnak tartjuk a programozást, hogy azt tanítsuk meg, hogy mi parancsolhatunk a gépnek, diákjaiknak a technika feletti uralkodás érzését adjuk meg. Ha az oktatáshoz választott programnyelv a gazdaságban, termelésben jól használható, nagy-tudású, akkor szükségszerűen összetett, elsajátítása szinte csak "betanítással" (kevésbé önálló tanulással, kevésbé kreatív kísérletezgetésekkel) történhet. Ezért inkább az oktatás céljára kifejlesztett programnyelveket javasoljuk használni a programozás tanítása során, még a felsőoktatásban is, legalábbis először. Ilyen például a Logo.
Milyen feladatokat oldjunk meg a tanulás során? Sokan látjuk, hogy a számítógép kommunikációs-eszköz szerepén túl van egy még jelentősebb funkciója is: a számítógép modellező eszköz. Az emberi fantázia, kísérletezés, kutatás kiterjesztésének új, hatékony eszköze. A számítógép „tudásgép” (TIETOKONE finn), gondolati kísérletek nagyteljesítményű kivitelezője. Szinte bármit tudunk vele modellezni, s így az általunk fontosnak tartott lényeget kiemelve megmutatni. Nem csak a valós világ dolgait, de azt is, amelyek túllépnek azon, hipotéziseket, ideákat. Ezt a harmadik funkciót - amelynek óvodai megvalósítása: a számítógépes játékok használata - szeretnénk fokozottabban használni az informatika felsőfokú oktatásában, példáink ilyen jellegűek.
A Kecskeméti Főiskola GAMF Karán is sokan gondoljuk, hogy a programozás-tanulás első lépéseként - főként hallgatóink azon hányadára gondolva, akik még csak próbálgattak, de nem tudnak programozni - szórakoztató tananyagot, tanítási módszert célszerű választani. Ennek látványos formáit fejlesztettük ki, alkalmazzuk: a robotika elemeivel való játékot [1], a projekt munkát [2], a Logo programnyelvvel való ismerkedést [3].
A továbbiakban a programozói készségek kialakítása céljából, a teknőcgeometria felsőfokú oktatásban való alkalmazására mutatunk be módszertani példákat, olyanokat, amelyeket főként a GAMF-on próbáltunk ki, fejlesztettünk.
2. A LOGO
Ma már eléggé köztudott, hogy a teknőcgeometria a Logo egyik specifika karakterisztikája. A teknőcgeometria a szemléltetést, a motiválást, a szintonia hasznosítását igen hatékonyan teszi lehetővé. Újszerű tézisünk szerint az objektumorientált programozói szemléletmód tanítására is ez az egyik legjobb módszer.
A geometriai ábrák, a rajzok szemléletes mivolta triviális. Seymour Paperttől megtanultuk, s sokszor tapasztaltuk, hogy a hallgatók nagyobb részének motiválóbb egy mozgó ábra készítése, mint pl. másodfokú egyenlet megoldása számítógéppel.
A tanulás könnyebb, ha a tananyag kellően kicsiny, "emészthető részekre" bontott. A Logo program kis lépésekből, rövid eljárásokból áll.
A Logo programnyelv a gondolkodásfejlesztésnek kiváló eszköze. Például „A Teknőc-geometria olyannyira megfelel Pólya elveinek, hogy azok megértetésére nem is nagyon van jobb módszer.” [4] Az oktatásban ezt tartjuk a Logo legfontosabb szerepének.
Az OO programozás pedig megint egy olyan gondolkodási rendszer, amelyet pl. mi magunk is a Logoban alkalmazva értettünk meg teljesen, a Logo episztemológiai értékeit használva.
Példáinkban az MWLogo Ex változatát, és az Elica Hungarica logo-nyelvjárást fogjuk használni. A programokban az utasításszavakat, elnevezéseket időnként magyarul írjuk (a képernyő szövegekkel azonosan a publikációnkban nem fordítjuk), ezzel is jelezve, hogy készítjük, használjuk a Logo nyelvjárások magyarított változatait is.
3. MÓDSZERTANI PÉLDÁK
3.1. Animáció
" ... az objektum információkat tárol, és kérésre feladatokat hajt végre. ... adatok (attribútumok) és metódusok (műveletek) összessége, " [5. 392. o] Mivel szemléltethetnénk egy objektumot képernyőn jobban, mint egy képernyő teknőccel, azzal a gondolati fogódzóval, amit tulajdonságokkal láthatunk el, amit műveletek elvégzésére taníthatunk.
A teknőcre jelmezt helyezhetünk, animálhatjuk, az eseményekhez viselkedési szabályokat (rules) rendelhetünk. Könnyebben elképzelhető, hogy egy teknőc „viselkedik, mozog, dönt, tanul, adatokat megjegyez”, mint hogy egy matematikai változó „kommunikál”.
Első jelenetünket; "Az Űr"-t a prezentációban "frissensültként tálaljuk". Két atom bolyongó mozgását szemléltetjük. A szereplőket menüpontok segítségével hívjuk elő, készítjük fel, és indítjuk.
Második jelenetünk az animáció felsőbb szintű alkalmazása, a Paradicsomban játszódik. Teremtünk egy teknőcöt, a teknőc ősosztály „t1” nevű elemét. Megváltoztatjuk alaptulajdonságait: Ádámnak nevezzük el, színét kékre állítjuk, a viselkedési szabálya pedig az lesz, ha rákattintunk, forogni kezd, forever rt 1 . Klónozással létrehozzuk Ádámból Évát: clone "Ádám , szabálya ez lesz: köt "Ádám
A köt eljárást (akár most, akár korábban) megírjuk:
to köt :a
;kötöm az aktuális teknőcöt az „a” teknőchöz
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
Ha Ádám forog, hozzákötött Éva körpályán kering.
Újabb szereplő a harmadik jelenthez Káin (fekete, és vastagabb vonalat húz.) Évához kötött Káin, Éva körül kering, Káin abszolút mozgása így ciklois. A teknőcöket külön-külön indítva jól láttathatjuk a szállító mozgást, a relatív mozgást, a kettő eredőjét. A szereplők közötti távolságok és a forgássebességek egymáshoz viszonyított változásával állíthatunk elő hurkolt vagy nyújtott, epi- vagy hipocikloisokat. A paramétereket célszerűen újabb objektumokkal, csúszkákkal állíthatjuk: Az 1. ábra hurkolt epiciklois mutat (az omega értéke a hurkok száma).
1. ábra Ádám forgatja Évát, Éva forgatja Káint
3.2. Gömb szintonikus rajzolása – mozgás három dimenzióban
A programozás (a gondolkodás) lényeges eleme az ismétlések alkalmazása, majd az ismétlések ismétlése. Ennek egyik lehetséges szemléltetése, a strukturálás, például a skatulyák egymásba ágyazása. Erre példát az Elica Hungarica Logoval (az Elica magyar változata, amelyet munkatársaimmal fejlesztünk) mutatok be.
A kör rajzolására Logo nyelven kanonikus algoritmus:
ismételd 360 [fd 1 rt 1]
Testszintonikusabb (mozgástapasztalatainkhoz jobban illeszkedő) az, az algoritmus, amellyel ugyancsak közelíthetjük a körvonalat:
Ismételd 360 [menj :sugár tollat_le menj 1 tollat_fel menj – (:sugár + 1) jobbra 1]
Az Elica Logoban a teknőcöknek többféle ősosztálya van. (Többféle alaptulajdonságú teknőc közül választhatunk). A make "defaultturtle "sphericalturtle paranccsal vehetjük elő a szférikus teknőcök osztályát. A szférikus teknőc gömbfelszínen halad, az mj 360 parancs hatására a gömb egyik kontúrkörét járja végig. Ha ez után jobbra fordul 1 fokot, és ismét előre lép 360 lépést, egy újabb hosszúsági kört rajzol meg. A gömb tehát szférikus teknőccel, ezzel az algoritmussal is megrajzolható:
Ism 18 [mj 360 ja 10]
Ezt az algoritmust Kecskeméten publikáltuk [6]. Most ennél még szintonikusabb gömbrajzoló algoritmust mutatunk:
to kör2 ism 90[tf mj 55 tl mj 1 tf mj -56 ja 4] end
to gömb2 ism 72[kör2 szf 5] end
2. ábra. Szintonikus gömb
3.3. Szuperponálás, spirálok
Sokféle matematikai görbét hozhatunk létre a különféle mozgások szuperponálása segítségével. Visszatérve "síkföldre" (az MWLogo nyelvjáráshoz), ottani negyedik jelenetünk helyszíne ismét az űr. „A világegyetem leggyakoribb alakzata a spirál”, írja Richard Feynman „Mai fizika” című könyvében. Ezen állítás alátámasztására már többször mutattuk be a spirálok családjait Logo-val. Most spirált két teknőc mozgásának eredőjeként generálunk. Legyen Ádám metódusa: run :a , és az „:a” parancs: forgás, make ”a [rt 1]. Éva metódusa pedig run :b , és a „b” parancs: lépés, a „b” értéke make ”b [make ”o [1] fd :o make ”o :o + :d]. Káin, aki végrehatja Ádámnak is Évának is a mozdulatait (a hozzá rendelt viselkedési parancs: run :a run :b ), spirált rajzol. Változtassuk ötödik jelenetünkben a :d differencia értékét és a spirálok látványos csoportjait generálhatjuk.
3.4. Szinuszgörbe, mint eredő
Ádám, Éva, Lucifer és Káin a szinuszgörbe kialakítását is szemléltetheti. A szinusz generálásának ezen módját már többször publikáltuk. Látványosságán kívül most azért mutatjuk be az eljárást ismét, mert ezt tartjuk a Logo felsőfokú alkalmazásában az egyik jellemző és figyelemre méltó példának. Érezhetjük így, mivel immáron többek számára volt ez a példa gondolati katalizátor, nemzetközi szinten is, például [7, 8].
3.5. Lissajous görbék:
A szinuszgörbe ontológiájának teknőcgeometriai megvalósítása indikálta a Lissajous görbék generálását. Ezt Izabella Foltynowitztól visszavéve a stafétabotot, mi objektumorientált szemlélettel oldjuk meg. A mostani ismételt publikáláskor a paraméterek állítására csúszkákat is beállítottunk.
Amennyiben hatodik jelenetünkben két teknőc köröz, (pl. Lucifer és Lili), két teknőc átveszi a köröző teknőcök mindenkori y illetve x koordinátáját, a két utánzó teknőc (Éva és Ádám) egymásra merőleges irányban fog harmonikus rezgőmozgást végezni. Ezen alternáló mozgások eredőjét az ötödik teknőcünkkel (példánkban Káin) rajzoltathatjuk meg. Az eredmény Lissajous görbe.
3. ábra. Paraméteres Lissajous görbe.
A körmozgások paramétereinek, a két összetevőmozgás kezdőpillanatának változtatgatásával látványos alakzatokat kapunk. Foltynowicz eljárásainak mintegy szétszedésével, a teknőcökhöz metódusok rendelésével, az utasítás- és a mozgás-rendszer lényegesen könnyebben érthető, elemeiben bemutatható. A teknőcök parancsaink alapján – pl. egy-egy képernyő-gombbal vezérelve - külön-külön húzhatnak nyomvonalat. Az objektumorientált programozási szemléletmód alkalmazására látványosnak és ugyanakkor könnyen érthetőnek találtuk ezt a példát.
4. ÖSSZEGZÉS
A programozáshoz meglehetősen gyorsan változó, váltakozó, nem éppen évtizedekig élő programnyelveket használunk. A programozói készség, de akár a célszerű gondolkodási struktúrák alakításához is számos programnyelv közül választhatunk. A Logo a programnyelvek között talán a gondolkodásfejlesztő hatása révén figyelemre méltó. Játékos, szemléletes, könnyű, ugyanakkor teljes-értékű programnyelv. Kiemelkedő értéke a szintonia, az, hogy könnyen azonosulhatunk a programnyelv szereplőjével, a teknőccel, egy gondolati fogódzóval. Ez a szintonia a felsőoktatásban is kihasználható, nem csak helyet kaphat, akár az objektumorientált programozási szemlélet alakításakor is, de szórakoztatóbbá, élvezetesebbé teszi a tanulást. A Logo helye – a mi meglátásunk szerint – olyan, mint az élőnyelvek között az Eszperantóé. Nem a legelterjedtebb, de könnyen tanulható, talán "csak játéka" (!) a nyelvtanulásnak.
A prezentációban bemutatásra kerülő példák, hosszasabb közép és főiskolai tanítási tapasztalat termékei. A korábban már publikált, példák közül azokat ismételtük, amelyeket több kolléga átvett, alkalmaz. Ezeket kiegészítve újakkal, a Logo példák azon csokrát mutattuk be, amelyek egyrészt látványosak, ugyanakkor az informatika oktatása során matematikai és/vagy fizikai ismereteket is hordoznak, az objektumorientált szemléletet példázzák. A Logoval a matematikai görbék generálása sokak számára a korábbi módszertanokkal történő bemutatásnál érdekesebb, érthetőbb, megjegyezhetőbb, a matfóbiát enyhítő. A különféle alakzatokat létrehozó algoritmusok megismerése, erősíti a matematika és a geometria egységét, a folyamatok és a struktúrák kapcsolatainak megértését.
Jól ismert pedagógiai tétel: amit hallunk elfelejtjük, amit láttunk, arra emlékszünk, amit megalkottunk, az megtanultuk. Példáink alkalmazása során a hallgatók - több-kevesebb segítségnyújtással - maguk alkotják meg a matematikai görbéket, a megismerés útját maguk járják be. Ezt az teszi lehetővé, hogy a Logo programnyelv és az objektumorientált szemléletű programozás használata, viszonylag egyszerű, viszonylag kevés programozási ismeretet kíván.
5. Irodalom
[1] Pásztor A.: A LEGO RCX és NXT robotok programozási és felhasználási lehetőségei. HungaroLogo XII. 2007, NJSZT, Budapest, 2007.
[2] Kiss L.: Projektek alkalmazásának hatása a felsőoktatásban. AGTEDU 7., Kecskeméti Főiskola, Kecskemét, 2006.
[3] Csink L. - Farkas K.: Turtle's Curves. 3rd International Conference ISSEP - Informatics in Secondary Schools, Torun, 2008.
[4] Papert S.: Észrengés. SZÁMALK, Budapest, 1988.
[5] Nyékiné szerk.: Programozási nyelvek. Kiskapu, Budapest, 2003.
[6] Farkas K.: Logo programnyelv a felsőoktatásban. A GAMF Közleményei XXI. Kecskemét, 2006-2007.
[7] Foltynowitz I.: Cycloids and limacons in the turtle graphics In: Proceedings of the 11th European Logo Conference 19 -24 August 2007, Bratislava, Slovakia
[8] Wursthorn B.: Informatische Grudkoncepte in Klasse 5 der Realschule Pedagogischen Hochschule. Ludwingsburg, 2006.
SZERZŐ
Dr. Farkas Károly CSc. főiskolai docens, szoftvertechnológia intézet, farkas.karoly@nik.bmf.hu
Jelenlévő felhasználók
Jelenleg 0 felhasználó és 120 vendég van a webhelyen.