UUSI AIKA UUDET TAIDOT Valtakunnalliset virtuaaliopetuksen päivät 2010 Lehtori, FT Vesa Lappalainen Yliopistonopettaja, FM Antti-Jussi Lakanen Tietotekniikan laitos, Jyväskylän yliopisto
Vesa Lappalainen FT 1985, matematiikka Ohjelmoinnin opetusta alkaen 1982 Jyväskylän yliopiston palveluksessa alkaen 1982 Tutkimusaiheita: InSitu: vuorovaikutus massaluennolla ComTest: testilähtöinen ohjelmistokehitys yksinkertaiseksi käsitykset ohjelmoinnista varhaiset rekrytointimuodot IT-alalla Pelitausta: 80-luvun pelejä, opetuksessa usein esimerkkinä Kaksi "pahimmassa peli-iässä" olevaa poikaa
Antti-Jussi Lakanen FM 2010, tietotekniikka Ohjelmointi, opiskelijarekrytointi Jyväskylän yliopiston palveluksessa alkaen 2009 Tutkimusaiheita Pelinomainen lähestymistapa alkeisohjelmoinnissa (CS1) ja vaikutus opintomenestykseen Pelitausta: "diginatiivi" Kotoa löytyivät Commodore 64, Amiga 500,... Enemmän huvia kuin hyötyä
Linkkejä https://trac.cc.jyu.fi/projects/npo https://www.jyu.fi/it/laitokset/mit/opiskelu/nuortenk urssi Facebook-ryhmä: http://www.facebook.com/#!/group.php?gid=11434543 5260705
Session ohjelma Taustaa Esimerkki pelin tekemisestä Kurssitoteutuksista Nuorten tekemiä pelejä Alan tutkimus maailmalla Havainnot ja tutkimustulokset Kysymyksiä?
Kiitokset Jyväskylän yliopisto / Tietotekniikan laitos Vuoden 2009 kurssit ja Jypelin kehityksen rahoitus Teknologiateollisuuden 100-vuotissäätiö Vuosien 2010 ja 2011 kurssit Agora Center Tutkimusta pelikehityksestä Microsoft Ohjelmistot, peliohjaimet
Taustaa Opiskelijapula luonnontieteissä ja erityisesti tietotekniikassa (kauppatieteet vielä vetävät) Läpäisevien opiskelijoiden määrä puoliintunut vuodesta 2004 Yleinen "matematiikkavastaisuus" yhteiskunnassa Kuinka saada nuoret valitsemaan koulussa luonnontieteitä? Ja aikanaan jatkamaan opintoja näillä aloilla "Mulle kaikki heti" -asenne
Idea Nuorten peliohjelmointi -kurssista Mitä nuorilla on mielessä? Tarvitaan jotakin, joka herättää mielenkiinnon. Millä saataisiin mukaan myös "oikeaa" asiaa? Haluttiin näyttää että yläkoulun matematiikan ja luonnontieteiden käsitteillä on käyttöä siinä ympäristössä missä nuoret viettävät aikaa (ks. esimerkkipeli). Miksi yläkoulu, miksei lukio? Halusimme vaikuttaa jo ennen lukiovalintoja Lukiolaisten kanssa olisimme jo myöhässä
Pelit nuorten arjessa Pelit ja pelaaminen ovat ainakin jollain tavalla osa lähes kaikkien ihmisten elämää Ainakin jonkin verran digitaalisia pelejä pelaa 72 % suomalaisista 10-75-vuotiaista 10-19-vuotiaat ja digitaaliset pelit pelaa aktiivisesti 93 % (p 97 % / t 89) pelaa silloin tällöin 98 % (p 99 % / t 98 %) Keskimäärin kolme tuntia viikossa Internetin pienpelit erityisen suosittuja alle 20-vuotiaiden tyttöjen ja nuorten naisten keskuudessa (60 %) Karvinen, J., Mäyrä F. 2009: Pelaajabarometri 2009 - Pelaaminen Suomessa. Tampereen yliopisto.
Sisällölliset tavoitteet ja motivaatio 1. Motivointi fysiikan peruskäsitteisiin Suureita, kuten aika, matka, nopeus, kiihtyvyys ja voima Syy-seuraussuhteet ja kappaleiden väliset riippuvuudet Fysiikan käsitteitä, kuten vetovoima, kitka, liike- ja tasapainoilmiöt, voimien vaikutukset liikkeeseen Kappaleen massa ja sen vaikutukset Tasainen ja tasaisesti kiihtyvä liike
Sisällölliset tavoitteet ja motivaatio 2. Motivointi matematiikan peruskäsitteisiin Ongelmanratkaisu Funktion käsite, tulkitseminen ja piirtäminen Lukuparin esittäminen koordinaatistossa Geometria: suorat, skaalaukset, muodot Yhtälöt ja niiden ratkaiseminen Todennäköisyys ja satunnaisuus Totuusarvot, logiikka Tapausten yhtäläisyyksiä ja säännönmukaisuuksia Vektorit Asteet ja radiaanit
Peliteema ohjelmoinnin opetuksessa K12/CS0(/CS1 = Computer Science 1) Pelitoteutuksia maailmalta... Kaksi päävaihtoehtoa toteutukselle 1. Visuaalinen ohjelmointi Alice, vapaa 3D-tarinankerrontaympäristö, tuottaa ohjelmakoodin näköistä tallennusmuotoa Lego-robotti (vrt. teollisuusympäristöjen ohjelmointi National Instruments / LabView) Microsoft Kodu, peli luodaan pelkästään XBox-peliohjaimella 2. Tekstuaalinen (perinteinen) ohjelmointi
Kodu Game Lab
Alice Käytetään paljon mm. CS1-kursseilla, erityisesti USA:ssa Ei varmoja tutkimustuloksia siitä, että auttaako vai haittaako oppimista
Jypeli-kirjasto -- suunnittelun tavoitteita Tekstuaalinen ohjelmointi Aivan ensimmäisen pelin tekeminen helpoksi Yksinkertaisten graafisten elementtien luominen "Realistinen" fysiikka Ohjaimet, tapahtumapohjaisuus (event driven) Mahdollisuus mennä myös syvemmälle Oikeiden ammattilaistyökalujen käyttö (Visual Studio) Mahdollisuus siirtää pelit XBox-konsolille ja tulevaisuudessa kännykkään (Windows Mobile 7)
Jypeli-kirjasto Ohjelmoija määrittelee mitä tapahtuu kun peli käynnistyy, kappaleet törmäävät, pelaaja käyttää ohjainta tms. Kirjasto hoitaa kappaleiden liikeradat, kimpoamiset, törmäämiset, yms fysiikan ilmiöt Helppo tehdä yksinkertaiset asiat eli ensimmäiset pelit syntyvät helposti, kurssilaisilta jo kurssin ensimmäisenä iltapäivänä Kuitenkin oikeaa ohjelmointia (vrt. visuaalinen ohjelmointi jossa kokonaisuus usein katoaa)
Esimerkkipeli public class Peli : PhysicsGame { ExplosionSystem rajahtelija; protected override void Begin() { Level.CreateBorders(); Level.BackgroundColor = Color.Black; PhysicsObject pallo = new PhysicsObject(100, 100, Shapes.Circle); Add(pallo); Keyboard.Listen(Key.A, ButtonState.Pressed, Potkaise, "Laita pallo liikkeelle", pallo); AddCollisionHandler(pallo, PalloTormasi); rajahtelija = new ExplosionSystem(LoadImage("liekki"), 200); Add(rajahtelija); } void Potkaise(PhysicsObject pallo) { Vector impulssi = new Vector(300, 300); // Vektori, jonka koordinaateista saadaan suunta ja suuruus pallo.hit(impulssi); } } void PalloTormasi(PhysicsObject tormaaja, PhysicsObject kohde) { //tormaaja.destroy(); rajahtelija.addeffect(tormaaja.x, tormaaja.y, 50); }
Kaksi kesää, 7 kurssia Kesän 2009 saldo Kaksi kurssia 45 oppilasta: 7 tyttöä, 38 poikaa 3 keskeytti (7 %) Opettaja + 3-4 apulaista Kesän 2010 saldo Viisi kurssia, joista yksi leirimuotoisesti 105 oppilasta: 6 tyttöä, 99 poikaa 6 keskeytti (6 %) Opettaja + 4 apulaista
Kaksi kesää, 7 kurssia 2009 2010 Yhteensä Kursseja 2 5 7 Ohjaajia 1 + 3-4 1 + 4 Oppilaita 45 105 150 Tytöt / pojat 7 / 38 6 / 99 13 / 137 Ikä keskiarvo mediaani nuorin / vanhin 13.8 13 12 / 16 14.2 14 11 / 17 Keskeyttäneet 3 (7 %) 6 (6 %) 9 (6 %)
Oppilaiden taustat Pääsääntöisesti vähän tai ei lainkaan ohjelmointikokemusta (78 %) Kokeneita ja itsevarmoja tietokoneen käyttäjiä (58 %) Pelaavat paljon 59 % joka päivä 37 % muutamana päivänä viikossa 3 % harvemmin Puolella oppilaista ei ollut ennakkokäsitystä ohjelmoinnista (49 %)
Oppilaiden taustat Kokeiluja jonkin verran eri kielistä: mm. Java (20), Basic (17), C++ (17) Ohjelmointitehtävissä työskentely kiinnostaa (57 %) Johtopäätös: Oppilaat olivat kiinnostuneita ja valmiiksi motivoituneita, mutta eivät tienneet mitä odottaa.
Kurssin ohjelma Viisi päivää, 25 tuntia opetusta Opetuksen koostumus Opetustuokiot 9 h (3, 2, 2, 1, 1) Harjoitukset 4 h (2, 2, 0, 0, 0) Oman pelin suunnittelu 2 h (0, 1, 1, 0, 0) Oman pelin tekeminen 8 h (0, 0, 2, 4, 2) Perjantaina "seminaari", jossa esiteltiin oma peli, ja äänestettiin parhaat pelit 2h
Kurssin lukujärjestys Maanantai Tiistai Keskiviikko Torstai Perjantai 9:00-9:50 Alkuinfo Aliohjelma Silmukka, satunnais-luvut Jypeli-kirjaston ominaisuuksia Kuinka pelejä jatketaan kotona 10:00-10:50 Työkaluihin tutustuminen Ensimmäisen pelin muokkaaminen Oman pelin suunnittelu ja tekeminen Oman pelin tekeminen Oman pelin viimeistely 11:00-11:45 Ensimmäisen pelin tekeminen Ensimmäisen pelin viimeistely Oman pelin tekeminen Oman pelin tekeminen Oman pelin viimeistely 12:15-13:30 Algoritmit Törmäysten käsittely Jypeli-kirjaston ominaisuuksia Oman pelin tekeminen Pelien esittelytilaisuus 13:45-15:00 Ensimmäisen pelin muokkaaminen Oman pelin suunnittelu Oman pelin tekeminen Oman pelin tekeminen Pelien esittely ja palkintojen jako
Kokemukset kursseilta Oppilaiden palautteet Tutkimustulokset
Yleistyytyväisyys kurssilla Kokonaistyytyväisyys: 4.71 (2009) ja 4.56 (2010) Täytti odotukset: 4.1 (2009) ja 3.9 (2010) 85 % oppilaista suosittelisi kurssia ystävilleen (2010) (Asteikko 1 Täysin eri mieltä -- 5 Täysin samaa mieltä)
Mikä kurssilla oli vaikeinta 42 % vastauksista liittyi uuteen kieleen ja kielioppiin "uuden kielen oppiminen" "koodin kirjoittaminen" "kielen syntaksi" Virheiden löytäminen Virheettömän koodin kirjoittaminen
Onko ohjelmointi vaikeaa? Suurin osa oppilaista ilman aiempaa ohjelmointikokemusta (2009: 89 %, 2010: 73 %) 68 % vastasi että ohjelmointi EI ollut vaikeampaa kuin mitä etukäteen odotti 49 % oppilaista ilmoitti käsityksensä ohjelmoinnista muuttuneen Luuli olevan vaikeampaa Peliohjelmointi oli hauskempaa kuin mitä odotti Ohjelmointi oli hauskempaa kuin mitä odotti Johtopäätös: Ohjelmointi on työlästä, mutta hauskempaa, ja vähemmän vaikeaa kuin mitä ennakkoon odotti
Kiinnostus luonnontieteiden opiskelua kohtaan Alkukysely Loppukysely + / - Samaa mieltä tai osittain samaa mieltä Eri mieltä tai osittain eri mieltä 37.9 % 43.6 % +5.7 % 27.9 % 17.9 % -10.0 % Keskiarvo 3.16 3.41 +0.25 Keskihajonta 1.19 1.16-0.03
Auttaako? "Hyvien perheiden lapset" eivät amerikkalaisten tutkimusten mukaan kuitenkaan mene alalle opiskelemaan. Meillä ei luonnollisesti ole vielä 3-4 vuoteen mahdollisuutta seurata vaikutuksia. Toki ympäröivän yhteiskunnan muutkin trendit vaikuttavat paljon, mm. alan negatiivinen tiedotus.
Lyhytkurssin haasteita Mitä kurssilaiset todella oppivat Mittaaminen haasteellista Vai onko tarkoituskaan oppia? Riittääkö positiivinen kokemus? Kurssin jälkeinen elämä Yhteydenpito kurssilaisiin Facebook Jokin muu tapa?
Peliteema ja yliopisto-opinnot Ohjelmointi 1 -kurssi toteutettu peliteemalla JY:ssa ensimmäisen kerran keväällä 2010 Seuraavaksi keväällä 2011 Tietotekniikan laitos aloittaa vuodesta 2011 alkaen urapolun Pelinomaiset järjestelmät Ei pelkästään pelit, vaan kaikki mikä sivuaa pelejä, ml. nykyaikaiset input-laitteet (vrt. Microsoft Kinetics, Wiimote), mobiililaitteet, tietoliikenne, teollisuusympäristöt, Laaja-alainen kokonaisuus
Opintoja lukiolaisille Lukio-opiskelijat voivat suorittaa yliopisto-opintoja lukioaikanaan Esim. Ohjelmointi 1 peliversiona Opinnot hyväksiluetaan heille yliopisto-opintojen alettua Etua myös valintakoepisteissä