Peliohjelmointia Kumpulassa kesällä 2011

Tietojenkäsittelytieteen laitoksella toimintaansa aloitteleva Linkki-klubi järjesti kaksi peliohjelmointileiriä kesä- ja heinäkuun vaihteessa. Ensimmäinen leiri (27.6.-1.7.) oli suunnattu 10-12-vuotiaille ja toinen leiri (4.-8.7.) 13-16-vuotiaille. Leirien aikana osallistujat tutustuivat tietokonepelien ohjelmointiin.

Toisin kuin usein kuulee, tietokonepelien pelaaminen ei ole puhdasta ajanhukkaa. Esimerkiksi LUMA-sanomat on nostanut tietokonepelejä esiin niiden luomien oppimismahdollisuuksien takia. Uutisissa ovat olleet muun muassa Minecraft ja Fate of the World -pelit. Minecraftia on tutkittu avoimena oppimisympäristönä sen pelimaailman vapauden takia – pelissä voi tutkia, rakentaa ja toimia melko rajoittamattomasti, minkä lisäksi pelimaailma mahdollistaa yhteistoiminnan muiden pelaajien kanssa. Fate of the World taas tutustuttaa pelaajia ilmastonmuutokseen ja antaa mahdollisuuden kokeilla erilaisia skenaarioita energianlähteiden käyttöön liittyen. Osa tietokonepeleistä perustuu joukkueiden ja ryhmien toimintaan, ja harjoittaa sitä kautta tärkeitä ryhmädynamiikkaan liittyviä taitoja. Tietokonepelien hyödyt on huomattu myös yritysmaailmassa. Esimerkiksi IBM on erittäin kiinnostunut online-roolipeleissä käytetyistä johtamiskäytänteistä ja johtajuuden kehittämisestä eri maailmankolkkiin hajautetuissa työyhteisöissä (1).

Pelaamisessa ja ohjelmoinnissa on isoja eroja. Pelaaja näkee usein vain pelin kehittäjien viimeisimmän tuotoksen, joka on käynyt läpi jopa satojen päivien kehitysprosessin. Suurimpia hittipelejä on kehittämässä kymmeniä ihmisiä samaan aikaan. Heistä jokainen luo peliin uutta toiminnallisuutta ja sisältöä – peliä kehittävässä tiimissä jokaiselle tekijälle on oma paikkansa. Pelien luominen, kuten ohjelmointikin, vaatii paljon harjoittelua ja ideoiden testaamista ja läpikäyntiä. Hyvänä esimerkkinä harjoittelun tärkeydestä voi käyttää John Carmackin antamaa vastausta kun anonyymi Internet-käyttäjä kysyi apua pelien tekemisessä kehittymiseen: “When he was young, John Romero made a game for every letter of the alphabet. That was wise.” (2).

Ohjelmoinnissa on useita ulottuvuuksia. Puhtaan ohjelmointikielen syntaksin tuottamisen lisäksi ohjelmoidessa suunnitellaan ohjelmien loogista rakennetta, pohditaan pelimaailmassa esiintyvien esineiden syy-seuraus-suhteita, ideoidaan toiminnallisuutta ja yleistetään opittua tietoa yksittäisiä tapauksia yleisempiin tapauksiin. Esimerkkien yleistäminen muihin ongelmiin ei ole helppoa tietojenkäsittelytieteen laitoksen opiskelijoillekaan. Olikin erityisen mahtavaa nähdä miten peliohjelmointileirin osallistujat punnersivat eteenpäin uudessa ympäristössä.

Pelien luomisessa vaaditaan ohjelmoinnin lisäksi sisältöä, esimerkiksi pelin tavoite, grafiikka ja musiikki. Leirin lähtökohtana oli se, että jokaisella on oma osa-alue jossa he loistavat sekä osa-alueita joissa he voivat kehittyä. Oleellista oppimisessa ja kehittymisessä on tarjottu tuki, tsemppaus ja usko. Nuoret tekevät huikeita asioita kun heihin uskotaan ja heitä tuetaan heidän matkassa eteenpäin – annetaan heille aikaa ja kuunnellaan heitä.

Kesäleirin ohjelmointikieleksi oli valittu python, jolle on olemassa pelien tekemistä helpottava pygame-kirjasto. Pygame tarjoaa valmiita välineitä hiiren ja näppäimistön tapahtumien käsittelyyn, ruudulle piirtämiseen tarvittaviin perustoimintoihin ja äänten soittamiseen. Leirille ei vaadittu aiempaa ohjelmointikokemusta, tietokoneen käynnistystaito riitti alkuun pääsemiseen. Ohjaajat huomasivat nopeasti, että leiriläisten tietokoneen peruskäyttötaidot olivat erinomaisella tasolla.

Osallistujat toivat omaa lahjakkuuttaan esiin eri osa-alueilla. Osa panosti enemmän grafiikkaan, toinen ideoihin sekä toiminnallisuuteen ja kolmas toteutuksen yksityiskohtiin. Oli huikeaa nähdä miten eräs osallistuja keksi käyttää pelissä oman sukulaisensa säveltämää musiikkia – toinen taas skannasi käsin piirtämänsä kuvan pelin taustakuvaksi.

Yhtenä leirin salaisista teemoista oli matematiikka ja sen käyttäminen. Pelimaailmoja luodessa tutustuttiin ja syvennyttiin muun muassa koordinaatistoon ja erilaisiin laskuoperaatioihin. Jokainen osallistuja teki huomaamattaan kaksiulotteisessa koordinaatistossa tapahtuvia siirtymiä. Ohjelmointi ja pelien tekeminen mahdollistaa kokeilevan matematiikan. Esimerkiksi pinnan päälle pääseminen vaatii sen, että osataan laskea pinnan ja hahmon törmäyskohta. Mahtavia tilanteita leirille loivat sekä tarkoitetut että tarkoittamattomat pohdintaa herättävät “oho”-tilanteet: “Miten se pelihahmo nyt tuonne pääsi?”.

On ollut mielenkiintoista huomata miten kasvatustieteestä tunnettua Piaget’n teoriaa lapsen kehityksestä voi soveltaa osittain myös ohjelmointitaidon kehitykseen. Piaget’n teoria olettaa että lapsen sosiaalinen, henkinen ja fyysinen kehitys etenee samaa tahtia, eikä lapsi voi olla yksittäisellä alueella huomattavasti muita alueita edellä. Formaalisten operaatioiden vaiheessa, joka oletettavasti ajoittuu suunnileen ikävuosille 11-12, opitaan abstraktiin symbolit sisältävään ajatteluun. Ohjelmoinnissa käytetään huomattavasti muuttujia eli symboleja, jotka tallentavat tietoa ohjelman tilan (esimerkiksi pelin etenemisen), ylläpitämiseen ja mallintamiseen. Nuorempien osallistujien leirillä ohjaajat neuvoivat osallistujia huomattavasti enemmän, ja osa tekijöistä haki selkeästi tukea esimerkeistä ja teki peliä mallia käyttäen. Oli huikeaa huomata että nuorimmillekin osallistujille (9v) muuttujien käyttö oli kutakuinkin sujuvaa harjoittelun jälkeen. Huomasimme uudelleen ja uudelleen että ohjelmointi on hyvä väline ongelmanratkaisutaidon ja abstraktin ajattelun harjoittamiseen – kun motivaatio tekemiseen tulee tekijältä.

Nuorempien leirin viimeisenä päivänä järjestettiin pelien esittelytilaisuus, jossa oli paikalla paljon sekä leiriläisten vanhempia että tietojenkäsittelytieteen henkilökuntaa. Tilaisuuteen osallistui hieman yli 50 henkilöä, ja jokainen pelileiriläinen sai ansaitsemansa aikansa parrasvaloissa sekä raikuvat aplodit. Leiri päätettiin perjantai-iltapäivällä rauhoittumishetkeen, jonka aikana osallistujat saivat myös diplomit peliohjelmointileirille osallistumisesta. Vanhempien leirillä perjantai päätettiin kevyemmin leiriporukan yhteisellä demotilaisuudella, jota ennen oltiin käyty kiinalaisessa syömässä.

Kahden viikon aikana tapahtui huikeita asioita, ja odotamme jo innolla ensi kesää! Linkki ja Tietojenkäsittelytieteen laitos järjestävät myös tulevana lukuvuotena lukion opettajille suunnatun peliohjelmointiin tutustuttavan täydennyskurssin, jonka tavoitteena on mahdollistaa peliohjelmointikurssin järjestäminen lukiossa. Lisätietoja leiristä syksymmällä LUMA:n sivuilta (3).

Ohjaajina leirillä toimivat: Emilia Hjelm, Antti Laaksonen, Pekka Mikkola ja Arto Vihavainen.

Teksti: Arto Vihavainen

Kuvat: Thomas Vikberg

(1) http://domino.watson.ibm.com/comm/www_innovate.nsf/pages/world.gio.gaming.html

(2) http://twitter.com/#!/ID_AA_Carmack/statuses/80755403104854016

(3) http://www.luma.fi

Luotu

27.07.2011 - 16:43

Kjell Lemström laitoksen uudeksi opintoesimieheksi

Jaakko Kurhilan lähdettyä Avoimen yliopiston johtajaksi on laitokselle haettu uutta opintoesimiehenä toimivaa yliopistonlehtoria pikaisella aikataululla. Hakijoita oli kaiken kaikkiaan 28 kappaletta, joista esikarsinnan, arviointien, haastattelujen ja laitosneuvostokäsittelyn jälkeen tehtävään valittiin Kjell Lemström (KL). Hän on aloittanut laitoksen opintoesimiehenä 2.3.2015, joten laitoksen johtajan (JP) suorittama työhöntulohaastattelu oli paikallaan heti samalla viikolla.

Kjell ei ole suinkaan ensimmäistä kertaa laitoksen palveluksessa. Hän on mm. väitellyt vuonna 2000 aiheesta ”String Matching Techniques for Music Retrieval” ja toiminut sekä sitä ennen että sen jälkeen lukuisissa opetus- ja tutkimustehtävissä, kunnes siirtyi (onneksi vain) tilapäisesti Laurea-ammattikorkeakouluun vuonna 2011.

MOOC-kurssi käynnissä

Helsingin yliopiston tietojenkäsittelytieteen laitos avasi taas kevään pääsykoe-MOOCin, joka on kaikille ilmainen verkossa toimiva ohjelmointikurssi. Kurssia on järjestetty vuosittain keväästä 2012, ja viimeisen kolmen vuoden aikana tarjotuilla verkkokursseilla ohjelmointia on harjoitellut jo yli 10000 osallistujaa. Ohjelmointia opettavia ohjelmointitehtäviä on tänä aikana tehty jo yli miljoona.

Kurssin kautta voi saada tutkinnonsuoritusoikeuden tietojenkäsittelytieteen opintoihin. Ensisijainen edellytys on tehtävien palautusaikataulujen noudattaminen. 

Opintoesimies Jaakko Kurhila Avoimen yliopiston johtajaksi

Laitoksen opintoesimies, yliopistonlehtori Jaakko Kurhila  on vastikään valittu Helsingin yliopiston Avoimen yliopiston johtajaksi. Kisa oli kivenkova: tehtävään saatiin yhteensä 39 hakijaa, joista osa Mercuri Urvalin tekemän suorahaun (”headhunting”) kautta. Konsulttiarvioinnin, haastattelujen ja soveltuvuusarviointien jälkeen tehtävän valmisteluryhmä, Avoimen yliopiston johtokunta ja yliopiston rehtori päätyivät yksituumaisesti Jaakkoon, ja työsopimusta ollaan jo sorvaamassa.

Johtajaksi valinta kovatasoisesta hakijajoukosta ja huolellisen prosessin jälkeen on kiistaton osoitus Jaakon pätevyydestä ja hänen nauttimastaan laajasta arvostuksesta yliopistoyhteisön keskuudessa. Laitoksen väki onnitteleekin mitä lämpimimmin Jaakkoa hänen uudesta urakehityksestään ja on ylpeä oman pojan menestyksestä.

Silta Internet-tutkimuksen ja standardoinnin välisen kuilun yli

Neljäs Kuukauden tutkimustulos -kolumni käsittelee NODES-ryhmän yhteistyötä Cambridgen yliopiston NetOS-ryhmän kanssa. Tämän yhteistyön tuloksena syntynyt, ACM Computer Communications Review -lehdessä tammikuussa 2014 julkaistu artikkeli sillan rakentamisesta Internet-tutkimuksen ja standardoinnin välille palkittiin mm. "Best of CCR" -palkinnolla kuluvan vuoden ACM SIGCOMM-konferenssissa.