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ä.

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


Esimerkkitehtäviä

Koduun tutustuminen

Tutoriaalien tekeminen
  • First Tutorial
  • Programming Kodu
  • Add/Paint Terrain Tutorial
  • Glass Walls Tutorial
Play Around - vapaamuotoinen tutustuminen Koduun
  • Luo tyhjä maailma pohjaksi
  • Tutustu Kodun käyttöliittymään
  • Kokeile rohkeasti erilaisia työkaluja ja toimintoja
  • Tallenna nimellä PlayAround
Just Eat It
  • 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
Ampumispelit



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
Shoot 'em Up And Collect!
  • 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ä
They're Everywhere!
  • 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
Autopelit



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
Beach Rally
  • 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
Multiplayer
  • Luo maailmaan toinenkin ohjattava hahmo (toinen voi ohjata ohjaimella, toinen näppäimistöllä)
  • Pyydä kaveri mukaan, jotta voitte ajaa kilpaa samassa maailmassa
Tasohyppelypelit



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)
Islands Jump Jump
  • 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
3D Jump Jump
  • Luo samantapainen tasohyppelypeli kuin aiemmatkin, mutta toteuta se tällä kertaa 3D:nä
Seikkailupelit



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
A Puzzling Puzzle Indeed
  • 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
An Adventure Over The Sea
  • 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.