Egy májusi vasárnap délután hirtelen eszembe jutott, hogy a következő nap Anyák napja van, én pedig még semmit sem vettem anyumnak. Azon kezdtem törni a fejem, hogy ugyan mit is vegyek neki Anyák napjára. Arra gondoltam, hogy mi lenne, ha készítenék neki egy interaktív anyák napi kártyát, a Srcratch nevű szoftverrel, amit a kutatócsoportommal fejlesztünk az MIT Média laborjában. Azért fejlesztettük ki, hogy az emberek egyszerűen tudjanak interaktív történeteket, játékokat és animációkat készíteni, majd megosztani azokat másokkal. Ezért úgy gondoltam, hogy ez egy jó lehetőség számomra, hogy egy interaktív képeslapot csináljak anyukámnak a Scratch-el. Mielőtt nekikezdtem volna a saját készítésű anyák napi képeslapnak, gondoltam, előbb körülnézek a Scratch honlapján. Nos az elmúlt néhány év alatt, gyerekek a világ minden tájáról, - 8 évesektől egész nagyokig - megosztották saját projektjeiket. Kíváncsi voltam, hogy vajon a három millió projekt közül gondolt-e esetleg valaki más is arra, hogy anyák napi képeslapot készítsen. Úgyhogy a kereső mezőbe írtam: "Anyák napja" Meglepődve, és egyben elragadtatva tapasztaltam, amint a több tucat anyák napi képeslapot tartalmazó lista felugrott a Scratch honlapján. Sok közülük az elmúlt 24 órában készült, olyan halogatók által, mint amilyen én is vagyok. Elkezdtem átnézni őket. (Zene) Láttam egy olyat, amiben egy kiscica az anyukájának kíván boldog Anyák napját. A készítő pedig nagyon tapintatosan felajánlotta az újrajátszást az anyukájának. Aztán egy másik interaktív projekt olyan volt, hogy az egeret a "Boldog Anyák napját" felirat fölé húzva egy egyedi boldog anyák napi szlogen jelent meg. (Zene) Ebben meg a készítő elmeséli, hogyan is guglizta ki, hogy mikor van Anyák napja. (Gépelés) Mikor aztán megtudta, hogy mikor van Anyák napja, egy sajátos anyák napi üdvözlést adott, amiben megmutatta, hogy mennyire szereti az anyukáját. Nagyon élveztem a projektek közötti böngészést, jó volt nézegetni őket. Annyira megtetszettek, hogy ahelyett, hogy sajátot csináltam volna, elküldtem anyukámnak egy tucat hivatkozást ezekre a projektekre. (Nevetés) És hál' Istennek úgy reagált, ahogy azt reméltem. Azt írta vissza, hogy: "Olyan büszke vagyok arra, hogy az én fiam egy olyan szoftvert készített, ami lehetővé teszi, hogy a gyerekek anyák napi kártyákat csinálhassanak az édesanyáiknak." Úgyhogy anyukám boldog volt, ez engem is boldoggá tett, de volt valami, ami még ezt is fokozni tudta. Méghozzá az, hogy ezek a gyerekek úgy használták a Scratch-et, ahogy mi azt eredetileg szerettük volna. Az interaktív anyák napi kártyák készítése közben valójában az új technológiák gördülékeny használatát sajátították el. Mit értek gördülékenység alatt? Azt, hogy képesekké váltak az önkifejezésre, saját ötleteik kifejezésére. Amikor gördülékennyé válik a nyelvhasználat, képesekké válunk bejegyzéseket írni a naplónkba, vagy egy viccet elmesélni egy jó barátunknak. Ez valahogy így van az új technológiákkal is. Azzal, hogy írnak, készítik az interaktív anyák napi kártyákat azt bizonyítják ezek a gyerekek, hogy igenis gördülékenyek az új technológiák terén. Ez talán nem is olyan meglepő, mivel az emberek egyre gyakrabban érzik úgy, hogy a fiatalok manapság mindenfélét tudnak csinálni az új technológiák segítségével. Bizonyára mindannyian hallották már, hogy a fiatalokat "digitális őslakosoknak" nevezik. Azonban én egy kicsit szkeptikus vagyok ez ügyben. Nem hinném, hogy úgy kéne gondolnunk a fiatalokra, mint digitális őslakosokra. Ha közelebbről megnézzük: Leginkább hogyan használják a fiatalok az új technológiákat? Sokszor ilyen helyzetben látjuk őket, vagy ilyenekben. És kétséget kizáróan, a fiatalok igencsak járatosak a böngészésben, a csetelésben, az sms-ezésben és a játszásban. De ettől még nem igazán gördülékenyek a technológiák alkalmazását tekintve. Tehát manapság sok fiatal rendelkezik tapasztalatokkal és ismeretekkel az új technológiák használatáról, viszont sokkal kevesebben képesek készíteni új technológiákat, vagy kifejezni magukat a technológiák segítségével. Ez majdnem olyan, mintha tudnának olvasni, de nem tudnának írni az új technológiákkal. Nagyon kíváncsi vagyok, hogy hogyan is tudnánk segíteni a fiataloknak, hogy gördülékenyen tudjanak új technológiákkal írni. És ez valójában azt jelenti, hogy képesek legyenek megírni saját programjaik forráskódját. Az emberek egyre inkább kezdik felismerni a forráskódírás tanulásának fontosságát. Az elmúlt években több száz olyan szervezet és weboldal jött létre, melyek segítik a fiatalokat a forráskódírás tanulásának folyamatában. Ha utánanézünk online, olyan helyeket találunk, mint a Codecademy és olyan eseményeket, mint CoderDojo, esetleg olyan oldalakat, mint a Lányok, akik kódolnak, (Girls Who Code) vagy a Fekete lányok kódolnak. (Black Girls Code) Úgy tűnik, hogy mindenki bekapcsolódik. Ez év elején, újévkor New York City polgármestere, Michael Bloomberg azt az újévi fogadalmat tette, hogy a 2012-es évben megtanul forráskódot írni. Pár hónappal később Észtország úgy döntött, hogy az összes elsős alapiskolásnak meg kell tanulnia forráskódot írni. És mindez egy vitát nyitott meg az Egyesült Királyságban arról, hogy vajon az összes gyereknek kell-e tudnia forráskódot írni. Bizonyára vannak itt olyanok, akiknek furán hangzik, hogy mindenkit meg kéne tanítanunk forráskódot írni. Általában az emberek úgy gondolnak a forráskódírásra, mint olyasmire, amit az embereknek csak egy szűk részcsoportja csinál. Úgy gondolják, hogy a forráskódírás valahogy így néz ki. Ami azt illeti, ha valóban ilyen a forráskódírás, akkor tényleg csak az embereknek egy olyan szűk részcsoportja fogja művelni, akik speciális matematikai és technológiai háttérrel rendelkeznek. De a forráskódírásnak nem feltétlenül kell így kinéznie. Hadd mutassam meg, hogy milyen forráskódot írni a Scratch-ben. Nincs más dolgunk, minthogy elemeket pattintsunk össze. Itt például fogjuk a mozgatás elemet, összekapcsoljuk a halommal, és így az elemek halmaza vezérli a játékunkban, vagy a sztorinkban szereplő karakterek, esetünkben eme nagy hal viselkedését. Miután elkészült a programunk, a "share"-re kattintva, megoszthatjuk azt másokkal, hogy aztán mások is felhasználhassák, vagy továbbfejlesszék a projektet. Persze nem csak halas játékot lehet készíteni a Scratch-el. A Scratch honlapján lévő milliónyi projekt között van minden: animált történetek, iskolai tudományos projektek, anime szappanopera, virtuális építőkészlet, klasszikus videójáték- feldolgozások, politikai véleményformálások, háromszögtani oktatóvideók, interaktív műalkotások, és persze interaktív anyák napi kártyák. Úgy gondolom, hogy rengeteg módja van annak, hogy ennek segítségével az emberek kifejezzék magukat, hogy megvalósíthassák és megoszthassák ötleteiket az egész világgal. És nem kell, hogy csak a képernyőn maradjon. Olyan forráskódot is írhatunk, amivel a fizikai világgal tudunk interakcióba lépni. Itt egy példa Hong Kong-ból, ahol néhány gyerek csinált egy játékot, majd megépítették a saját, fizikai interfész eszközüket, tettek rá egy fényérzékelőt, ami, ha lyukat érzékel a táblán, tehát amikor mozgatják a fizikai fűrészt, a fényérzékelő érzékeli a lyukat, és így vezérli a virtuális fűrészt a képernyőn, ami elfűrészeli a fát. Folytatni fogjuk az új dolgok felderítését, amivel összekapcsolhatjuk a fizikai világot a virtuálissal, így kapcsolatba lépve a körülöttünk lévő valós világgal. Ez itt egy példa a Scratch egy új verziójára, melyet a következő hónapokban útjára engedünk, és reméljük, hogy ezzel új irányok felé terelhetjük a felhasználókat. Itt egy példa. Ez egy webkamerát használ. A kezem mozgatásával kipukkanthatom a ballonokat, vagy mozgathatom a bogarat. Kicsit olyan ez, mint a Microsoft Kinect, ami lehetővé teszi, hogy mozdulatokkal irányítsunk. De ahelyett, hogy más játékát játszanánk, lehetőséget kapunk saját játékok elkészítésére, és ha meglátjuk más játékát, egyszerűen "belenézünk", és észrevesszük az elemek halmazait, amik vezérlik azt. Itt például van egy olyan elem, ami a képkockaváltozást figyeli, majd, ha az meghalad egy bizonyos értéket, akkor kipukkantja a ballont. Ugyanúgy, ahogy ez a kamerát használja arra, hogy információt juttasson a Scratch-be, használhatjuk a mikrofonunkat is. Itt egy példa egy projektre, ami mikrofont használ. Most lehetővé teszem mindannyiuk számára, hogy a hangjukkal irányítsák ezt a játékot. (Tücsökciripelés) (Kiáltások) (Rágcsálás) (Nevetés) (Taps) Mialatt a gyerekek ilyen projekteket készítenek, megtanulnak forráskódot írni, de ami még fontosabb, forráskódot írva tanulnak. Mivel a forráskódírás tanulása lehetővé teszi számukra, hogy új dolgokat tanuljanak, a tanulás új lehetőségeit tárja fel előttük. Itt újra hasznos az írás és olvasás analógiáját megemlíteni. Mikor megtanulunk írni és olvasni, az sok más lehetőséget kínál nekünk, sok más dolog megtanulására. Miután megtanultunk olvasni, olvashatunk, hogy tanuljunk. Ugyanez a helyzet a forráskódírással. Ha tudsz kódolni, kódolhatsz, hogy tanulj. Nos pár megtanulható dolog elég nyilvánvaló. Például az, hogy hogyan működik a számítógép. De a móka csak itt kezdődik. A forráskódírás rengeteg új dolog megtanulását teszi lehetővé. Hadd mutassak egy példát. Itt egy másik projekt, amit akkor vettem észre, mikor az egyik számítógépes klubházban jártam. Ezek amolyan iskola utáni tanulóközpontok - melyek létrejöttét segítettük - ahol a kevés jövedelemmel rendelkező közösségek fitaljai megtanulhatják kifejezni magukat és kreativitásukat az új technológiákkal. Szóval amikor egyszer egy ilyen klubházban jártam, láttam egy 13 éves fiút, aki épp a mi Scratch szoftverünket használta, hogy egy hasonló játékot készítsen. Nagyon boldog volt, büszke volt a játékára, de többet szeretett volna. Mérni akarta a pontszámot. Ez egy olyan játék volt, amiben a nagy hal megeszi a kis halat, de ő mérni akarta a pontszámot, hogy minden alkalommal, amikor a nagy hal megeszi a kis halat, a pontszám emelkedjen. Nem tudta, hogyan álljon neki, úgyhogy segítettem neki. A Scratch-ben lehet ún. változókat használni. Én pontszámnak hívom. És ez pár új elemet hoz létre, valamint egy kis eredményjelzőt is készít, így ha a "change score"-ra kattintok, akkor növeli a pontszámot. Megmutattam ezt a klubháztagnak - nevezzük Viktornak - és amikor Viktor ezt meglátta, azonnal tudta, hogy hogyan alkalmazza. Fogta az elemet, betette a programjába, pont oda, ahol a nagy hal megeszi a kis halat. Így minden alkalommal, mikor a nagy hal megeszi a kis halat, emelkedik a pontszám, egy pont adódik hozzá. És ami azt illeti, működik. Amikor a kisfiú ezt meglátta, annyira izgatott lett, kinyújtotta felém a kezét, és azt mondta, "Köszönöm, köszönöm, köszönöm." És az jutott eszembe, hogy vajon a tanárok hányszor kapnak köszönetet a diákjaiktól a változók megtanításáért? (Nevetés) A legtöbb osztályteremben ez nem történik meg, mivel mikor a változókról tanulnak, a gyerekek nem tudják, hogy miért tanulják azt. Hisz nem tudják hol felhasználni. Amikor a Scratch-en tanul az ember ilyesmiket, az valóban értelmes és motiváló jellegű. Így már van értelme változókról tanulni, és mi azt látjuk, hogy a gyerekek sokkal mélyebben és egyben hatékonyabban tanulják meg azokat. Biztos, hogy Viktornak is tanították az iskolában a változókat, de ő nem igazán figyelhetett oda. Most volt oka arra, hogy megtanulja a változókat. Így amikor forráskódírást tanulunk, és egyben kódírással tanulunk, értelmes kontextusban tesszük azt, és ez a legjobb módja a tanulásnak. Mikor a Viktorhoz hasonló gyerekek ilyen projekteket készítenek, olyan fontos fogalmakat tanulnak meg, mint a változók. Bár ez még csak a kezdet. Viktor, miközben ezen a projekten dolgozott, nemcsak forráskódot hozott létre, hanem a design folyamatát is tanulta, valamint azt is, hogy egy szikrányi ötletet, hogyan alakítson egy teljes értékű, működő projektté, amilyen ez is itt. Tehát megtanulta a dizájnkészítés alapvető szabályai mellett azt is, hogyan kísérletezzen az új ötletekkel, hogyan bontson szét összetett ötleteket, egyszerűbb részekké, hogyan működjön együtt más emberekkel a projekt keretein belül, hogyan találja meg és javítsa ki az apró hibákat, hogyan legyen szívós és kitartó olyankor, amikor csalódás éri, amikor valami nem jól sikerül. Na ezek a fontos képességek, amelyek nemcsak a forráskódírás szempontjából fontosak. Sok más tevékenység esetében is fontosak. Ki tudja, hogy mikor Viktor felnő, nem éppen egy programozó, vagy egy professzionális informatikus tudós lesz belőle? Ez nem olyan nyilvánvaló, de függetlenül attól, hogy mi lesz belőle, hasznát fogja venni ezeknek a képességeknek. Függetlenül attól, hogy marketingmenedzser, autószerelő, vagy közösségi szervező, lesz belőle, ezek az ötletek mindenki számára hasznosak. Érdemes visszagondolni a nyelvi analógiánkra. Nem azért tanulunk meg folyékonyan írni és olvasni, hogy hivatásos írók legyünk. Nagyon kevés ember válik hivatásos íróvá. Viszont mindenki számára hasznos az írás és olvasás elsajátítása. Így van ez a forráskódírással is. A legtöbb emberből nem lesz profi programozó és informatikus, viszont a kreatív gondolkodás, szisztematikus gondolkodás, együttműködés - képességek, melyeket a Scratch-et használva fejlesztünk ki - olyan dolgok, amiket minden ember fel tud használni a munkájában. És nem csak a munkáról van szó. A forráskódírás lehetőséget ad arra is, hogy kifejezzük ötleteinket és érzéseinket a magánéletünkben is. Hadd fejezzem be egy újabb példával. Ezt akkor kaptam anyukámtól, miután elküldtem neki az anyák napi kártyát. Úgy döntött, hogy ő is megtanulja a Scratch-et. Így készült el ez a projekt, amit a Scratch segítségével készített a szülinapomra. Az biztos, hogy ez a projekt nem fog a dizájnja miatt díjat kapni, és biztosíthatom Önöket, hogy a 83 éves anyukám nem készül sem profi programozónak, sem informatikusnak. De ezen a projekten dolgozva kapcsolatba tudott lépni valakivel, akit fontos a számára, valamint segített neki új dolgok megtanulásában, kreativitásának gyakorlásában, és az önkifejezés egy új módjának fejlesztésében. Így hát amikor körülnézünk, és azt látjuk, hogy Michael Bloomberg forráskódírást tanul, úgy, mint Észtország összes gyereke, és az én anyukám is, szerintem jogos a kérdés, miszerint: Nem kéne nekem is ezt tanulnom? Ha felkeltettem érdeklődését, merem ajánlani, hogy látogasson el a Scratch honlapjára, - scratch.mit.edu - és próbálja ki a forráskódírást. Köszönöm szépen. (Taps)