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

Tietojenkäsittelytieteen opiskelija Petteri Timonen palkittiin tiedekilpailussa Yhdysvalloissa

Petteri Timonen, 19, on sijoittunut toiseksi omassa sarjassaan Intel International Science and Engineering Fair (ISEF) -tapahtumassa Phoenixissa, Arizonassa.

 

Tietojenkäsittelytiedettä Helsingin yliopistossa opiskeleva Petteri Timonen palkittiin perjantaina 13.5. Arizonassa 1500 Yhdysvaltain dollarin eli noin 1330 euron arvoisella stipendillä Systems Software -kategoriassa Intel ISEF -tiedekilpailussa.

Timosen kilpailutyö on SPR:n Veripalvelulle kehitetty ohjelmistotyökalu, jolla liikkuvat verenkeräystilaisuudet eri puolilla maata saadaan suoritettua mahdollisimman kustannustehokkaasti. Timonen toteutti työnsä yhteistyössä Veripalvelun kanssa.

Työ on saanut laajemminkin kansainvälistä huomiota, sillä vastaava työkalua ei tiettävästi ole kehitetty muualla. Timonen on käynyt sähköpostikeskusteluja myös Yhdysvaltain Punaisen Ristin kanssa.

Renewed Carat App Gives a Smart Boost to Battery

 
The Carat Project Team at the University of Helsinki, Department of Computer Science, has published a new version of the popular mobile energy-awareness application.

After launch in June 2012, Carat has helped over 850,000 users, of which 41 per cent have been Android and 59 per cent iOS users, respectively. The new user interface follows modern application design guidelines and presents battery information in a more intuitive and easy to use manner.

- In addition to the new user interface, we have increased the accuracy of the energy saving recommendations of Carat, says Professor Sasu Tarkoma, the leader of this research done at the university.

The user interface features the number of energy intensive applications (Hogs), energy anomalies (Bugs) and user recommendations (Actions) at a glance on the main screen as well as global energy statistics for the device community.

Lainaa vain? - väitös musiikkiesitysten lainakappaleiden tunnistamisesta

Miksi musiikkiesitysten lainakappaleiden automaattinen tunnistaminen on niin vaikeaa kuin se on, kysyy Helsingin yliopistossa aiheesta väittelevä Teppo E.Ahonen.

Lainakappeleiksi kutsutaan musiikkiesityksiä, jotka ovat eri esittäjän tekemiä uusia tulkintoja kappaleen alkuperäisen esittäjän tekemästä versiosta. Lainakappaleet voivat olla hyvinkin samanlaisia alkuperäisversioiden kanssa, ja joskus versioilla on vain nimellisesti yhtäläisyyksiä.

Ihmisille lainakappaleiden tunnistaminen on yleensä helppoa, jos alkuperäisesitys on tuttu.

- Lainakappaleiden automaattinen, algoritmeihin perustuva tunnistaminen, on kuitenkin huomattavan haastava ongelma, eikä täysin tyydyttäviä ratkaisuja ole vielä esitetty, sanoo Teppo E. Ahonen, joka katsoo, että ongelman ratkaisulla olisi tutkimuksellisesti ja kaupallisesti potentiaalisia sovelluskohteita; sellainen olisi esimerkiksi plagioinnin automaattinen tunnistaminen.

Hae opiskelijaksi tietojenkäsittelytieteen laitokselle! Yhteishaku 16.3.-6.4.2016

Hae opiskelijaksi mm. huippulaatuisista kandiohjelmista palkitulle tietojenkäsittelytieteen laitokselle! 
 
Tietojenkäsittelytieteen LuK-tutkinnossa opitaan niitä taitoja, joilla vaikutetaan tulevaisuudessa sekä työelämässä että tieteen tekemisessä. Tutkinnon pääpaino on ohjelmoinnissa ja ohjelmistojen kehittämisessä nykyaikaisilla menetelmillä, mutta tutkintoon sisältyy myös muita tulevaisuuden kannalta tärkeitä alueita, kuten tietoliikennettä, tekoälyä ja tietoturvaa sekä ihmisen ja koneen vuorovaikutusta.