keskiviikko 3. kesäkuuta 2015

Pohdintaa OPS:in sisällöiksi ohjelmoinnin osalta luokilla 7-9

Valtakunnallinen opetussuunnitelma ei ota kantaa siihen, mitä ja miten ohjelmointia pitäisi opettaa. Tässä on oma yritykseni avata ohjelmoinnin sisältöjä matematiikan OPS:in sisältöihin liittyen.

Ohjelmoinnin perusteet voidaan käydä läpi monella eri ohjelmointikielellä tai ympäristöllä. Taulukkoon on avattu matematiikan OPS:ssa mainittuja aihepiirejä ohjelmoinnin näkökulmasta. Ohjelmoinnin opetuksessa yläkoulussa pääpaino on tekemisessä, uusiin käsitteisiin tutustutaan ohjelmoimalla niiden avulla jotakin. Ohjelmointiympäristöinä käytetään ohjelmoinnin opetukseen suunniteltuja graafisia ohjelmointityökaluja tai lausekielisiä ympäristöjä, joihin on tuotu opetukseen tarkoitettuja ohjelmointia helpottavia kirjastoja. Ohjelmoinnin opetuksen tarkoitus on tutustua laskennallisen ajattelun maailmaan yhden tai useamman ohjelmointiympäristön avulla. 


7. luokan ohjelmointi
ohjelmoinnin alkeet
·         lauseke, lausekkeiden yhdistäminen
·         lausekkeiden evaluointi (esim. stepperillä tai käsin)
·         tietotyypit (esim. numerot, merkkijonot, kuvat, boolean arvot)
·         aritmeettiset operaattorit (+, -, *, / )
·         loogisten virheiden ja syntaksivirheiden etsiminen ja korjaaminen
·         ohjeiden antaminen järjestyksessä

Oppilas osaa kirjoittaa ohjelmakoodia, joka suorittaa järjestyksessä yksinkertaisia toimintoja, kuten laskee aritmeettisia lausekkeita tai  piirtää yksinkertaisia geometrisia kuvioita.
väitelauseiden totuusarvon päättely

looginen perustelu

looginen päätteleminen

muuttujan käsite


·         boolean arvot (true/false)
·         vertailuoperaattorit numeroille (<, <=, >, >=, =)
·         vertailuoperaattoreita muille kuin numeroille (esim. merkkijonot)
·         boolean operaattorit (and, or, not)
·         muuttujan käyttäminen

Oppilas osaa kirjoittaa muuttujia sisältäviä ehtolauseita, joissa käytetään vertailuoperaattoreita numeroille tai merkkijonoille sekä boolean operaattoreita (and, or ,not).
sääntöjen ja riippuvuuksien etsiminen

sääntöjen ja riippuvuuksien esittäminen
·         haarautuva koodi ehtolauseen (if-then-else rakenne) tai valintalauseen avulla (case/cond)

Oppilas osaa ohjelmoida haarautuvaa koodia.


8. luokan ohjelmointi
muuttujan käsite

funktion käsite

mallintaminen




·         funktion käsite, funktion parametri muuttujana, funktion paluuarvo
·         funktion määrittely- ja arvojoukko
·         funktion arvoon vaikuttavien parametrien (muuttujien) identifiointi

Oppilas osaa suunnitella ja ohjelmoida funktioita, jotka ottavat  sisäänsä yhden tai useamman parametrin (muuttujan) ja palauttavat ulos yhden arvon (funktion arvon).  
lausekkeen arvon laskeminen




·         funktion toiminnan testaaminen
·         abstraktio (muuttuja) – konkretia (testitapaus)

Oppilas osaa testata kirjoittamansa funktion toiminnan (validoida, että funktio toimii kuten sen pitääkin).
sääntöjen ja riippuvuuksien etsiminen

sääntöjen ja riippuvuuksien esittäminen

mallintaminen


·         tilan käsite
·         tilan muuttuminen ulkoisen tapahtuman johdosta
·         systeemin mallintaminen identifioimalla tilaan vaikuttavat parametrit

Oppilas osaa suunnitella ja ohjelmoida yksinkertaisen tilakoneen, jonka tila muuttuu jonkin ulkoisen tapahtuman johdosta (esim. näppäimen painallus, sensorin arvon muuttuminen tai timerin laukeaminen).
looginen perustelu

looginen päätteleminen




·         ratkaisualgoritmin suunnittelu yhden tai useamman  muuttujan systeemille

Oppilas suunnittelee ja ohjelmoi algoritmin, jolla voidaan ratkaista jokin ongelma (esim. ohjelmoi yksinkertaisen animaation, pelin tai sensoreilla varustetun robotin toiminnon).

9. luokan ohjelmointi
muuttujan käsite




·         laajennetaan muuttujan käsitettä muuttujiin, joita voi olla ennalta määrittelemätön määrä (esim. lista, taulukko)

Oppilas osaa käyttää muuttujaa, johon voidaan tallentaa ennalta määrittelemätön määrä arvoja.
lausekkeen arvon laskeminen




·         lausekkeen arvon laskeminen, kun muuttujan arvoja voi olla ennalta määrittelemätön määrä

Oppilas osaa käyttää silmukkarakennetta ennalta  määrittelemättömän suuruisen datajoukon käsittelemiseen (while, for, rekursio, map tms.).
sääntöjen ja riippuvuuksien etsiminen

sääntöjen ja riippuvuuksien esittäminen


·         ongelman ja sen ratkaisun jakaminen osiin
·         toistuvien rakenteiden tunnistaminen ja erottaminen uudelleen käyttöä ajatellen

Oppilas osaa jakaa ongelman osaongelmiin, ratkaista osaongelmat ohjelmoimalla ja yhdistää ohjelmalliset osat yhdeksi ratkaisuksi.