(Tähän juttuun on kuvitusta tarjolla: https://www.flickr.com/photos/myscience/sets/72157644742760547/)
Helsingin yliopistolla, tietojenkäsittelytieteen laitoksen yhteydessä toimiva Linkki-resurssikeskus on järjestänyt lapsille ohjelmointitoimintaa ja opettajille koulutusta vuodesta 2011 lähtien. Tarkoituksena on toisaalta välittää ohjelmoinnin hauskuus ja into eteenpäin seuraaville sukupolville, toisaalta kehittää hyviä toimintamalleja ohjelmoinnin opetukseen.
Kesäisin Linkki järjestää intensiivisiä ohjelmointileirejä ja kouluaikana ohjelmointikerhoja, jotka kokoontuvat viikoittain. Linkki tarjoaa myös erilaisia polkuja eteenpäin osallistumalla tietojenkäsittelytieteen laitoksen kilpaohjelmointitoimintaan ja tekemällä yhteistyötä MOOCin kanssa, joka tarkoittaa tietojenkäsittelytieteen laitoksen kaikille avoimia ohjelmointikursseja.
Vuosien mittaan Linkissä on kertynyt paljon kokemusta siitä, miksi ja eritoten miten lapsille kannattaa ohjelmointia opettaa. Niinpä Linkki on merkittävä asiantuntemusta ja resursseja tarjoava taho. Tällä hetkellä Linkin toimintaa rajoittaa eniten käytettävissä olevien ihmisresurssien ja vapaaehtoisten määrä.
Lapset ovat luonnostaan luovia ja haluavat kokeilla monenlaista. Mitä lapset luovat, riippuu heidän käytössään olevista välineistä ja heidän saamistaan virikkeistä. Jos lapsella on kiviä, hän rakentaa niistä jotain; jos Minecraft-ohjelma, hän tekee virtuaalimaailmoja; mutta jos lapselle antaa ohjelmointityökalut, hän pystyy tekemään niillä lähes mitä vain. 7-9 vuoden ikä on erittäin otollinen ohjelmoinnin aloittamiseen, mutta ei haittaa olennaisesti, vaikka sen aloittaisi aiemmin tai myöhemmin.
Ohjelmoinnin rajattomuudesta seuraa kaksi tärkeää asiaa. Ensinnäkin lapset pystyvät ohjelmointileikissä oppimaan paljon sellaista, mitä ei pysty oppimaan mistään muualta, ja monta muuta asiaa helpommin kuin millään muulla tavalla. Esimerkiksi muuttujan käsite opitaan ohjelmoinnissa työvälineenä, asiana, jolla on oikeasti mahdollista helpottaa omaa työtään - eikä vaikeana konseptina, jota tarvitaan tietynlaisista laskutehtävistä puhumiseen. Vain ohjelmoimalla voi oppia, miten tehdään tyhjästä sävelmä, kuva, animaatio, peli tai maailma käyttäen pelkkiä sanoja, ja kuinka pienikin ero näissä sanoissa vaikuttaa lopputulokseen. Ohjelma on kuin loitsu, joka tekee asioita oleviksi vain selittämällä, millaisia ne ovat.
Toiseksi, koska ohjelmoimalla voi tehdä mitä vain, on sitäkin tärkeämpää antaa aina uusia mielenkiintoisia tehtäviä ja haasteita, koska suurin osa ohjelmoinnin mahdollisuuksista ei ole käsin kosketeltavissa, eivätkä ne tule ilmi ohjelmointiympäristöistä. Esimerkiksi se, mihin kaikkeen aliohjelmaa voi käyttää ja miten rakennetaan rekursio, avautuu vasta pitkän ajan ja monien esimerkkien jälkeen. Ohjaajalla tai opettajalla on suuri vastuu, että asiat esitellään sellaisessa järjestyksessä ja tavalla, että lapsi pystyy heti näkemään niiden hyödyn ja kokeilemaan niitä erilaisissa tilanteissa.
Ohjelmoinnin opetusta on hyvä kehittää nyt, kun 1980-luvun ohjelmoijasukupolvi on kasvanut siihen ikään, että heillä on omia lapsia. Tämän edellisen sukupolven ohjelmoijilla on omakohtaista kokemusta siitä, miten ohjelmointia opitaan pienestä pitäen.
Linkki on toimintansa aikana kokeillut monenlaisia työvälineitä ja lähestymistapoja ohjelmointiin. Arvot ovat kuitenkin pysyneet samoina: lapsen kunnioittaminen, omaehtoinen toiminta ja luovuuden ilo.
Oppimista ei tapahdu ilman motivaatiota. Lasten motiivit voi jakaa karkeasti kolmeen ryhmään: ulkoisiin motiiveihin, lopputulokseen ja leikkiin. Ulkoinen motiivi on palkinto, esimerkiksi karkki, jonka saa joka kerralla, kun tekee jotain oikein. Ulkoisten motiivien ongelma on se, että huomio kohdistuu palkintoon ja palkinnon välineestä (kuten ohjelmoinnista) tulee helposti vain pakollinen välivaihe, joka tehdään helpoimman kautta ja halutaan unohtaa. Lopputulokseen liittyvät motiivit, siis esimerkiksi halu tehdä hieno peli, ovat kylläkin sisäisiä ja aitoja motiiveja, mutta ohjelmoinnissa lapsilla ei ole mitään keinoa arvioida tavoitteidensa haastavuutta. Riippuu iästä ja temperamentista, riittääkö motivaatio loppuun asti vai onko innolla aloitettu projekti lopuksi pettymys. Lisäksi tiettyyn lopputulokseen pyrkivä lapsi tarvitsee paljon ohjaajan apua, jolloin oppiminen alkaa muuttua opettajavetoiseksi.
Parhaan oppimistuloksen saa, kun lapsen motivaatio on ohjelmointitoiminnassa itsessään. "Jos laitankin nämä käskyt näin päin, mitähän siitä seuraa?" - "Voisinkohan liikutella tätä uutta kuvaa aikaisemmin tekemälläni animaatio-ohjelmalla?" Tällaisia kysymyksiä pohtiessa oppiminen on parhaimmillaan, aitoa leikkiä, jossa lapsi (tai aikuinen) haltioituu jatkuvasti omien kättensä töistä ja haluaa siksi tehdä lisää.
Koska leikki on paras motivaatio, tarvitaan ohjelmointiympäristöjä, joissa ohjelmien tulokset on helppoa nähdä (tai kuulla, tuntea, haistaa) ja joissa asioita on helppoa kokeilla. Tämä tarkoittaa käytännössä, että kaikki ylimääräinen vaiva on liikaa. Lapsen ei pidä joutua miettimään syntaksin välimerkkejä, ohjelmien tallettamista ja ajamista (puhumattakaan kääntämiseen liittyvistä komennoista), kryptisiä virheilmoituksia tai mystisiä ohjelmointiympäristön kaatumisia. Tähän mennessä parhaat ohjelmointiympäristöt ovat olleet Scratch ja Logo, jotka molemmat ovat saaneet alkunsa MIT:n laboratorioista - tosin ensinmainittu 2000-luvulla mutta jälkemmäinen jo 1970-luvulla. Linkin ohjelmoinnissa on käytetty myös esimerkiksi Python-kieltä, Javaa ja Turtle Royta.
Linkillä ei ole muodollista prosessia rekrytoimiseen, mutta mukaan toimintaan pääsee esimerkiksi liittymällä IRCnetin kanavalle #linkki. Yksi mahdollinen tapa olla mukana Linkin toiminnassa on kokeilla tulla apuohjaajaksi kerhoon, mutta myös tiedottajille, oppimateriaalin kirjoittajille, uusien ohjelmointi-ideoiden esittäjille ja verkostoitujille on tarvetta. Lapset ilmoittautuvat Linkin leireille ja kerhoihin Linkin www-sivun kautta (http://linkki.cs.helsinki.fi/) ja mukaan otetaan kaikki, jotka suinkin mahtuvat.
Tärkeää on tietenkin, ettei ohjelmoinnin opetus jää vain yksin Linkin vastuulle. Kannattaa harkita, voisiko perustaa oman ohjelmointikerhon esimerkiksi työpaikalleen tai lastensa kouluun. Linkki voi toimia tällöin myös foorumina, jossa voi vaihtaa kokemuksia siitä, mikä toimii ja mikä ei.
Tämä on yksi tärkeä Linkki verkostossa, joka toivottavasti ajan mittaan antaa tuleville sukupolville sekä välineet että halun tehdä maailmasta sellainen kuin he tahtovat.
Pikalinkit: