Ohjelmointi ja algoritminen ajattelu
Johdatus ohjelmointiin
Ohjelmointi ja ohjelmoinnillinen/algoritminen ajattelu tulee vahvasti esille uudessa opetussuunnitelmassa useiden eri oppiaineiden kohdalla. Käytännössä erilaiset ohjelmoinnillisen ajattelun käytänteet kuten ongelman purkaminen osiin, ohjeiden noudattaminen ja tekeminen tietyssä järjestyksessä sekä ratkaisujen soveltaminen muihin ongelmiin ovat olleet osa koulujen arkea jo vuosikymmenten ajan. Nyt näille vanhoille toimintatavoille on vain keksitty uusi nimi ja ne on lokeroitu ohjelmoinnillisen ajattelun alle.
Ohjelmoinnin ja ohjelmoinnillisen ajattelun opetus muuttuu haastavammaksi oppilaiden edetessä luokka-asteilla. 1-2. luokilla harjoitellaan oikeanlaista ajattelua erilaisten käskyjen, komentojen ja leikkien avulla. 3-6. luokilla harjoitellaan jo erilaisia graafisia ohjelmointiympäristöjä ja esimerkiksi ohjelmoitavia robotteja. Yläkouluun siirryttäessä jatketaan edelleen graafisten ohjelmointiympäristöjen (Kodu, Scratch, Koodaustunti jne.) parissa, mutta voidaan myös pikku hiljaa kokeilla niin kutsuttua "oikeaa koodaamista" eli kokeilla yksinkertaisten ohjelmien toteuttamista esimerkiksi C#-, Python tai Java-ohjelmointikielillä.
Ohjelmoinnin ja ohjelmoinnillisen ajattelun opetus muuttuu haastavammaksi oppilaiden edetessä luokka-asteilla. 1-2. luokilla harjoitellaan oikeanlaista ajattelua erilaisten käskyjen, komentojen ja leikkien avulla. 3-6. luokilla harjoitellaan jo erilaisia graafisia ohjelmointiympäristöjä ja esimerkiksi ohjelmoitavia robotteja. Yläkouluun siirryttäessä jatketaan edelleen graafisten ohjelmointiympäristöjen (Kodu, Scratch, Koodaustunti jne.) parissa, mutta voidaan myös pikku hiljaa kokeilla niin kutsuttua "oikeaa koodaamista" eli kokeilla yksinkertaisten ohjelmien toteuttamista esimerkiksi C#-, Python tai Java-ohjelmointikielillä.
Scratch
Scratch on graafinen ohjelmointiympäristö, joka soveltuu ohjelmoinnillisen ajattelun oppimiseen sekä monipuoliseen visuaaliseen ohjelmointiin.
Kodu Game Lab
Kodu Game Lab on Microsoftin kehittämä graafinen ohjelmointiympäristö, jolla voi luoda erilaisia 3D-pelejä ja -maailmoja. Kodu Game Lab soveltuu ehkä parhaiten vuosiluokille 5-6, mutta myös yläkouluikäisille oppilaille Kodu sopii mainiosti algoritmisen ajattelun kehittämiseen ja ohjelmoinnin opetteluun. Esittelyvideon Kodu Game Labista voit katsoa osoitteesta https://www.youtube.com/watch?v=3sVnEt96HOA.
Kodu Game Labin käyttö sujuu sujuvasti näppäimistön ja hiiren avulla, mutta sen käyttöliittymä on kuitenkin suunniteltu ohjattavaksi Xbox-ohjaimella. Kodu on ilmainen ja sen voi ladata osoitteesta: http://www.microsoft.com/en-us/download/details.aspx?id=10056
Tutoriaalien tekeminen
I Hate Trees
Race Time
Jump Jump Jump
Get Me Out Of Here!
Kodu Game Labin käyttö sujuu sujuvasti näppäimistön ja hiiren avulla, mutta sen käyttöliittymä on kuitenkin suunniteltu ohjattavaksi Xbox-ohjaimella. Kodu on ilmainen ja sen voi ladata osoitteesta: http://www.microsoft.com/en-us/download/details.aspx?id=10056
Esimerkkitehtäviä
Koduun tutustuminenTutoriaalien tekeminen
- First Tutorial
- Programming Kodu
- Add/Paint Terrain Tutorial
- Glass Walls Tutorial
- Luo tyhjä maailma pohjaksi
- Tutustu Kodun käyttöliittymään
- Kokeile rohkeasti erilaisia työkaluja ja toimintoja
- Tallenna nimellä PlayAround
- Luo peli, jossa hahmosi pystyy liikkumaan
- Luo maailmaan myös erilaisia asioita (esim. vuoria tai järviä)
- Luo maailmaan omenoita, joita pelihahmon on tarkoitus syödä
- Ohjelmoi peli päättymään, kun kaikki omenat on syöty
- Tallenna nimellä JustEatIt
I Hate Trees
- Luo peli, jossa hahmosi pystyy liikkumaan sekä ampumaan
- Luo maailmaan puita, joita pelihahmo ampuu
- Ohjelmoi peli päättymään, kun tietty määrä puita on ammuttu
- Luo peli, jossa hahmosi pystyy liikkumaan sekä ampumaan
- Luo peliin vihollisia, jotka liikkuvat ja ampuvat takaisin
- Aseta maailmaan kolikoita, omenoita tms. joiden keräämisestä saa pisteitä
- Luo peli, johon ilmestyy vastustajia tietyin väliajoin (vinkki: creatable, factory)
- Ohjelmoi pelihahmosi liikkumaan sekä ampumaan
- Ohjelmoi myös vastustajat liikkumaan sekä ampumaan pelihahmoa
- Luo erilaisia vastustajia, jotka käyttävät erilaisia aseita pelihahmoa vastaan
Race Time
- Ohjelmoi pelihahmosi liikkumaan
- Luo maailmaan tie
- Ohjelmoi maailmaan toinen hahmo seuraamaan jotain tiettyä reittiä
- Aseta tielle jotain kerättäviä objekteja (esim. kolikoita)
- Luo ajanotto pisteitä hyväksi käyttäen
- Luo rantaa muistuttava maailma (vesistö, hiekkaa, palmuja)
- Lisää veteen erilaisia vesikasveja
- Luo rannalle rata, joita voi ajaa useita kierroksia
- Tee kierroslaskuri pisteitä hyväksi käyttäen
- Luo maailmaan toinenkin ohjattava hahmo (toinen voi ohjata ohjaimella, toinen näppäimistöllä)
- Pyydä kaveri mukaan, jotta voitte ajaa kilpaa samassa maailmassa
Jump Jump Jump
- Luo pitkä ja kapea kenttä
- Ohjelmoi pelihahmosi liikkumaan
- Tee kentälle jokin "tausta"
- Aseta kamera-asetukset kuntoon (esim. sivusta, jotta saadaan 2D-tasohyppelyn kaltainen peli)
- Luo toinen Jump Jump Jump -pelin kaltainen kenttä
- Nosta maanpintaa korkeammalle, jotta kuopat voi täyttää vedellä
- Lisää peliin myös vihollisia, jotka voivat tuhota esimerkiksi hyppäämällä niiden päälle
- Lisää peliin myös kerättäviä objekteja (esim. kolikot, omenat) ja halutessasi myös pistelaskuri
- Lisää peliin "maali", johon pelihahmon päästyä peli loppuu
- Lisää tämän jälkeen ensimmäiseen Jump Jump Jump -kenttään Next Level -toiminto, joka siirtää pelihahmon Islands Jump Jump -kenttään
- Luo samantapainen tasohyppelypeli kuin aiemmatkin, mutta toteuta se tällä kertaa 3D:nä
Get Me Out Of Here!
- Luo pieni tila, josta peli alkaa. Tilasta eteenpäin lähtevä käytävä on kuitenkin tukittu. Tukoksena voi toimia esimerkiksi kivat, jotka katoavat tietyn pelihahmon saavutettua tietyn pistemäärän
- Luo tilaan toinen hahmo, joka vastaa pelihahmolle puhuttaessa ja avaa tien eteenpäin
- Lisää käytävän päähän esine tai alue, jonka avulla voidaan siirtyä seuraavaan kenttään
- Luo aluksi samanlainen kenttä, kuin Get Me Out Of Here -tehtävässä. Tällä kertaa toinen hahmo ei kuitenkaan avaa ovea
- Luo huoneeseen kaksi vipua, joita pitää vetää oikeassa järjestyksessä, jotta tie eteenpäin aukeaa
- Aseta vivut tuottamaan ääntä tai tekstiä, jotta pelaaja ymmärtää, että niiden koskettamisella on jokin merkitys
- Luo kenttä, jossa on kaksi saarta meren keskellä
- Luo ensimmäiselle saarelle jokin kulkuneuvo, jolla pelihahmo voi ylittää meren ja päästä toiselle saarella. Kun pelihahmo puhuu tälle kulkuneuvolle, se antaa hänellä tehtävän. Vasta tehtävän suorittamisen jälkeen pelihahmo voi hypätä kulkuneuvon kyytiin
- Luo toiselle saarelle pelihahmon koti, jota koskettamalla peli päättyy
Koodaustunti
Mikä ihmeen koodaustunti (hour of code)?
- Noin tunnin mittainen johdatus ”koodauksen” eli ohjelmoinnin ja muutenkin tietotekniikan maailmaan.
- Ilmainen ja helppokäyttöinen, ei tarvitse edes rekisteröityä jollei halua
- Kaikki tapahtuu osoitteessa koodaustunti.fi
- Toimii tietokoneilla, tableteilla ja mobiililaitteilla
- Tehtävät erilaisia loogista päättelyä ja ohjelmoinnillista ajattelua vaativia ongelmatilanteita
- Ei vaadita minkäänlaista aiempaa kokemusta, koodaustunti aloittaa aivan alkeista!
Ohjeet koodaustuntiin
- Siirry osoitteeseen koodaustunti.fi
- Jos malttamattomana haluat päästä heti kokeilemaan koodaamista voit painaa ”Mä aloitan heti :)” –linkkiä ja pääset pienen esittelyvideon kautta vauhtiin!
- Jos haluat ensin tutustua sivustoon voit katsoa Koodaustunnin esittelyvideoita ”Esittelyvideot” –linkin takaa
- ”Miten aloitan?” –linkki on luultavasti kaikista paras tapa aloittaa. Sieltä saat valita oman Koodaustuntisi Angry Birds, Frozen tai Flappy Bird –teemaisena ja näiden lisäksi tarjolla on kymmeniä tunteja erilaisia lisäharjoituksia erilaisilla teemoilla (esim. Star Wars ja Minecraft). Nämä kaikki löytyvät ”Tee lisäharjoituksia!” –linkit takaa.
Lego Mindstorms
Mikä ihmeen Lego Mindstorms NXT2?
- Ohjelmoitava Lego-robotti.
- Valmiita robotteja (rekka, alligaattori, jne.) mutta myös mahdollista rakentaa ihan oma rakennelma.
- Vain mielikuvitus ja Lego-palikat rajoitteena mitä voi luoda (katso esim.https://www.youtube.com/watch?v=g5mIPrn49is).
- Ohjelmoidaan tietokoneella LEGO MINDSTORMS NXT –sovelluksella, joka on melko helppokäyttöinen.
Lataa ohjelmointisovellus
Lego Mindstorms NXT 2.0 -sovellus löytyy os.http://www.lego.com/en-us/mindstorms/downloads/nxt-software-download
Lego Mindstorms EV3 -sovellus löytyy os.
http://www.lego.com/en-us/mindstorms/downloads/download-software
EV3-robotteja voi ohjelmoida myös iPadille asennettavalla sovelluksella. Lataa sovellus AppleStoresta.
Ohjeet alkuun sovelluksen käytössä
asd
Kun sovellus aukeaa anna ensin ohjelmallesi nimi ja paina sitten GO.
Tämän jälkeen voit alkaa tekemään ensimmäistä ohjelmaasi vetämällä erilaisia ”ohjelmointipalikoita” vasemman reunan valikoista omaan ohjelmaasi. Aluksi kannattaa yrittää esimerkiksi saada robotti liikkeelle ylimmän laatikon (Move) ohjelmointipalikoiden avulla.
Aina kun sinulla on jokin ohjelmointipalikka valittuna saat säädettyä siihen liittyviä asetuksia sivun alareunasta.
Kun haluat kokeilla ohjelmaasi, paina oikean alareunan napeista keskimmäistä, jossa on Play-kuvio. Stop-kuviollinen nappi lopettaa ohjelman.
Sphero
Maailmalla huippusuosittu ohjelmoitava Sphero-pallo soveltuu hyvin myös ohjelmoinnin aloitusympäristöksi. Spero toimii sekä Android-, iOS- että Windows 8 -laitteilla; tosin paras sovellusvalikoima löytyy iOS-laitteille.
Sphero-pallolla voi liikkua tasaisella alustalla sekä ylittää esteitä. Palloon on saataville pehmeitä suojakuoria, jolloin sitä voi käyttää hyvin myös ulkona.
Erilaisilla sovelluksilla Sphero-palloa voi ohjata itse, ohjelmoida sen suorittamaan erilaisia tehtäviä tai käyttää palloa peliohjeimena.
Sphero-pallolle (iOS) löytyy myös erilaisia lisätyn todellisuuden pelejä, joissa pallo saa erilaisen hahmon pelissä ja palloa liikuttamalla hahmo liikkuu pelissä.
Seuraavaksi esitellään muutamia iOS Sphero-sovelluksia
Sphero
Yksinkertainen Spheron perussovellus, jolla palloa voi ohjata ja kokeilla sen eri ominaisuuksia.
SPRK
Ehkä monipuolisin Sphero-ohjelmista. Hyvin tehty, visuaalisesti näyttävä ja opettavainen sovellus, jonka avulla Sphero-ohjelmoinnissa pääsee parhaiten alkuun.
Draw&Drive
Sovellus, jolla voi piirtää vapaalla kädellä reitin ja lähettää Spheron ajamaan tätä reittiä pitkin.
MacroLab
MacroLabilla voi luoda erilaisia "macroja" eli käytännössä ohjelmoida Spheron tekemään erilaisia temppuja.
ColorGrab, DiscGroove, SpaceParty ja Chromo
Erilaisia pelisovelluksia, joissa Sphero-palloa käytetään ohjaimena.
Sharky ja Rolling Dead
Kaksi lisätyn todellisuuden sovellusta, joiden avulla Sphero todellisuudessa ajelee esimerkiksi luokan lattialla, mutta älypuhelimen tai tabletin näytöllä se väistelee esimerkiksi lattialla lompsivia zombeja.
Sphero-pallolla voi liikkua tasaisella alustalla sekä ylittää esteitä. Palloon on saataville pehmeitä suojakuoria, jolloin sitä voi käyttää hyvin myös ulkona.
Erilaisilla sovelluksilla Sphero-palloa voi ohjata itse, ohjelmoida sen suorittamaan erilaisia tehtäviä tai käyttää palloa peliohjeimena.
Sphero-pallolle (iOS) löytyy myös erilaisia lisätyn todellisuuden pelejä, joissa pallo saa erilaisen hahmon pelissä ja palloa liikuttamalla hahmo liikkuu pelissä.
Seuraavaksi esitellään muutamia iOS Sphero-sovelluksia
Sphero
Yksinkertainen Spheron perussovellus, jolla palloa voi ohjata ja kokeilla sen eri ominaisuuksia.
SPRK
Ehkä monipuolisin Sphero-ohjelmista. Hyvin tehty, visuaalisesti näyttävä ja opettavainen sovellus, jonka avulla Sphero-ohjelmoinnissa pääsee parhaiten alkuun.
Draw&Drive
Sovellus, jolla voi piirtää vapaalla kädellä reitin ja lähettää Spheron ajamaan tätä reittiä pitkin.
MacroLab
MacroLabilla voi luoda erilaisia "macroja" eli käytännössä ohjelmoida Spheron tekemään erilaisia temppuja.
ColorGrab, DiscGroove, SpaceParty ja Chromo
Erilaisia pelisovelluksia, joissa Sphero-palloa käytetään ohjaimena.
Sharky ja Rolling Dead
Kaksi lisätyn todellisuuden sovellusta, joiden avulla Sphero todellisuudessa ajelee esimerkiksi luokan lattialla, mutta älypuhelimen tai tabletin näytöllä se väistelee esimerkiksi lattialla lompsivia zombeja.