19
Kurkistus koodaukseen TURKU 19.4.2016

Kurkistus koodaukseen

Embed Size (px)

Citation preview

Page 1: Kurkistus koodaukseen

Kurkistus koodaukseen

TURKU

19.4.2016

Page 2: Kurkistus koodaukseen

Kurssin tavoitteetSisältö: • mitä on ohjelmointi, koodi, anturit...

• mistä osa-alueista se koostuu

• mitä on ohjelmoinnillinen ajattelu

• millaisia ongelmia ohjelmoimalla voi ratkaista

• tutustumme näihin käsitteisiin ohjelmoimalla pieniä harjoituksia ja samalla tutustumme ohjelmoinnin moniin mahdollisuuksiin

• kurssin tavoitteena ei ole oppia varsinaisesti ohjelmoimaan, vaan tutustua siihen• mitä se on

• antaa näkemystä siitä, mitä aiheeseen liittyy

• mikä siinä on tärkeää

• miten jatkaa eteenpäin

2

Page 3: Kurkistus koodaukseen

Lapset ohjelmoimaan 1960 Seymour Papert (MIT)

◦ Ohjelmoinnin Avulla lapset voivat oppia ongelmanratkaisua sekä toteuttaa itseään luovasti

◦ ”children should be programming the computer rather than being programmed by it”

◦ Kehitti Logo-ohjelmointikielen ja Turtle grafiikan (matematiikka)

◦ KIRJA: Mindstorms, Children, Computers, And Powerful Ideas (1980)

◦ Ohjelmoitavat legorobotit: Lego mindstorms ◦ Ensimmäiset ”ohjelmoitavat legot” (1986)

◦ RXT (1998)

◦ NXt (2006)

◦ EV3 (2013)

http://cyberneticzoo.com/cyberneticanimals/1969-the-logo-turtle-seymour-papert-marvin-minsky-et-al-american/

Page 4: Kurkistus koodaukseen

1970 2016

http://cyberneticzoo.com/cyberneticanimals/1969-the-logo-turtle-seymour-papert-marvin-minsky-et-al-american/

Page 5: Kurkistus koodaukseen

Computational thinking 2006

Jeannette M.Wing

◦ Computational thingking - artikkeli (2006)

◦ Taustalla huoli Tietojenkäsittelytieteen oppilasmäärien vähenemisestäUSA:n yliopistoissa

◦ Idea: kaikkien pitäisi tutustua ”laskennalliseen ajatteluun” opintosuunnasta huolimatta, jotta voisi nähdä automatisoinnin edut esim. Biologiassa, lääketieteessä jne. (ja saataisiin ehkä lisää opiskelijoita alalle)

◦ Idea siitä, että nämä ”Laskennallisen ajattelun” taidot auttavat myös muissa ongelmanratkaisutilanteissa

Page 6: Kurkistus koodaukseen

Computational thinking Automatisointiajattelu, Algoritminen ajattelu, ohjelmoinnillinen ajattelu, laskennallinen ajattelu

Periaatteet:

Logiikka◦ ennustaminen, analysointi

Algoritmit◦ vaiheiden ja sääntöjen

tekeminen

Jakaminen osiin◦ ongelman/ratkaisun

jakaminen osiin

Toistuvat rakenteet◦ niiden tunnistaminen ja

hyödyntäminen

Abstraktio◦ turhien yksityiskohtien

poistaminen

Arvioiminen◦ ratkaisun laadun arviointi

Lähestymistavat:

Kokeileminen

◦ leikkiminen, koodin

”säätö”

Uuden luominen

◦ suunnittelu ja toteutus

Debuggaaminen

◦ virheiden löytäminen ja

korjaaminen

Sitkeys

◦ työn loppuun saattaminen

Yhteistyö

◦ Yhdessä työskenteleminen

Page 7: Kurkistus koodaukseen

Koodaus kaikkiin USA:n kouluihin 2013Liikemies Hadi Partovi perustaa Code.org - järjestön 2013

What Most Schools Don't Teach (youtube-video 2013)

Taustalla huoli siitä, että (hyviä) ohjelmoijia on liian vähän

VIESTI:◦ koodaamista pitäisi opettaa joka koulussa◦ Ohjelmointi opettaa ajattelemaan◦ koodaaminen on ”super power”◦ koodaamalla voi muuttaa maailmaa (parantaa maailmaa, auttaa ihmisiä)◦ Koodarit ovat ”nykyajan rokkitähtiä”◦ Ei tarvitse olla superälykäs, että voi ohjelmoida◦ Koodaamalla voi rikastua tai tulla kuuluisaksi

Hour of code – sivusto (2013) → Koodaustunti.fi – sivusto (2014)

code.org

Page 8: Kurkistus koodaukseen

Ohjelmointi Suomen peruskouluihin 2014Opetusministeri Krista Kiuru tuo idean OPS2014:iin (Tammikuussa 2014)

Linda Liukas ja Juhani Mykkänen kirjoittavat KOODI2016 – kirjasen ”ensiapua koodamisen opettamiseen peruskoulussa” (kesäkuu 2014)

Page 9: Kurkistus koodaukseen

OPS 2014luokat 1-2

Luokat 1-2 Tieto- ja viestintäteknologinen osaaminen (L5)◦ Oppilaat saavat ja jakavat keskenään kokemuksia digitaalisen median parissa

työskentelystä sekä ikäkaudelle sopivasta ohjelmoinnista. (OPS2014 s. 101)

Luokat 1-2 Matematiikan tavoitteisiin liittyvät keskeiset sisältöalueet◦ S1 Ajattelun taidot: Tutustuminen ohjelmoinnin alkeisiin alkaa laatimalla

vaiheittaisia toimintaohjeita, joita myös testataan. (OPS2014 s. 129)

Page 10: Kurkistus koodaukseen

OPS 2014luokat 3-6

Luokat 3-6 Tieto- ja viestintäteknologinen osaaminen (L5)◦ Ohjelmointia kokeillessaan oppilaat saavat kokemuksia siitä, miten teknologian

toiminta riippuu ihmisen tekemistä ratkaisuista (OPS2014 s. 157)

◦ T14 innostaa oppilasta laatimaan toimintaohjeita tietokoneohjelmina graafisessa ohjelmointiympäristössä (OPS2014 s. 235)

Luokat 3-6 Matematiikan tavoitteisiin liittyvät keskeiset sisältöalueet◦ S1 Ajattelun taidot: Suunnitellaan ja toteutetaan ohjelmia graafisessa

ohjelmointiympäristössä (OPS2014 s. 235)

◦ ARVOSANA HYVÄ: Oppilas osaa ohjelmoida toimivan ohjelman graafisessa ohjelmointiympäristössä (OPS2014 s.239)

Luokat 3-6 Käsityön tavoitteisiin liittyvät keskeiset sisältöalueet◦ S3 Kokeilu: Harjoitellaan ohjelmoimalla aikaan saatuja toimintoja, joista esimerkkinä

robotiikka ja automaatio. Kokeilujen pohjalta tuotetta tai teostakehitetään vielä eteenpäin.

Page 11: Kurkistus koodaukseen

OPS 2014luokat 7-9

Luokat 7-9 Tieto- ja viestintäteknologinen osaaminen (L5)◦ Ohjelmointia harjoitellaan osana eri oppiaineiden opintoja. (OPS2014, s. 284)

Luokat 7-9 Matematiikan tavoitteisiin liittyvät keskeiset sisältöalueet:◦ S1 Ajattelun taidot ja menetelmät: Harjoitellaan väitelauseiden totuusarvon

päättelyä. Syvennetään algoritmista ajattelua. Ohjelmoidaan ja samalla harjoitellaan hyviä ohjelmointikäytäntöjä. Sovelletaan itse tehtyjä tai valmiita tietokoneohjelmia osana matematiikan opiskelua. (OPS2014, s. 375)

◦ T20 ohjata oppilasta kehittämään algoritmista ajatteluaan sekä taitojaan soveltaa matematiikkaa ja ohjelmointia ongelmien ratkaisemiseen (OPS2014, s. 375)

◦ ARVOSANA HYVÄ: Oppilas osaa soveltaa algoritmisen ajattelun periaatteita ja osaa ohjelmoida yksinkertaisia ohjelmia. (OPS2014, s. 379)

Luokat 7-9 Käsityön tavoitteet◦ Käytetään sulautettuja järjestelmiä käsityöhön eli sovelletaan ohjelmointia

suunnitelmiin ja valmistettaviin tuotteisiin. (OPS2014, s. 431)

Page 12: Kurkistus koodaukseen

JOKA TAPAUKSESSA...• Mitä on ”computational thinking”? (monta

eri määritelmää)

• Miten sitä mitataan? (arviointi)

• Siirtyvätkö ohjelmoinnin kautta opitut

ongelmanratkaisutaidot muihin elämän osa-

alueisiin esim. Parantuvatko matematiikan

oppimistulokset? (transfer)

• Siirtyvätkö ilman tietokonetta opitut

”computational thinking”-taidot

ohjelmointitaidoiksi? (transfer)

• Onko graafisen ohjelmointiympäristön

jälkeen helpompaa vai vaikeampaa aloittaa

lausekielinen ohjelmointi?

EI AIVAN SELVÄÄ...• Opitaan käyttämään TVT:tä

• Opitaan jotain uutta ympäröivästä

maailmasta (esim. sähkö, sensorit)

• Annetaan onnistumisen kokemuksia (joku

kiinnostuu ehkä ja hakeutuu

kerhoon/opiskelemaan lisää), oppilastutorit

• Innostetaan luovaan ongelmanratkaisuuN (ei

ole vain yhtä oikeaa vastausta)

• Tarjoaa toiminallisia ja oppiainerajat rikkovia

projektimahdolisuuksia (kuvis, käsityöt,

äidinkieli, matematiikka, fysiikka)

Page 13: Kurkistus koodaukseen

KoodikieliSuunnittele parin kanssa ohjelmointikieli, jonka avulla voi piirtää suorakulmioita, kolmioita ja ympyröitä.

Kirjoita koodisi avulla ohjeet jonkun yksinkertaisen geometrisista kuvioista koostuvan kuvan piirtämiseksi (esim. Talo, auto...)

13

Kaikki ohjelmointikielet ovat ihmisen keksimiä rakennelmia. Niitä syntyy koko ajan lisää, ne kehittyvät paremmiksi ja osa kuolee pois. Ohjelmointikieliä kehitetään ratkomaan

tiettyjä ongelmia, ne ovat aikansa tuote.

Page 14: Kurkistus koodaukseen

RobotiikkaGraafinen ohjelmointi

14

- Kierrä este- Pysähdy mustalle viivalla- Pysähdy seinään- Imuroi lattia

Page 15: Kurkistus koodaukseen

Sovellusten ohjelmointiLausekielinen ohjelmointi

-Muuttujat, funktiot, suunnittelu/testaaminen, tietotyypit, kirjasto, käsikirja

-Totuusarvot, ehtolauseet, silmukka, syötteet

15

Page 16: Kurkistus koodaukseen

Suunnitteluvs. koodausKeksi sovellus, joka kysyy käyttäjältä jotain, tutkii syötettä ja palauttaa vastauksen, ja palaa taas alkuun kysymään uudelleen jne.

Suunnittele ohjelmasi ◦ Tarkoitus

◦ Esittele funktion nimi, muuttujat

◦ Kirjoita esimerkit/testit

◦ Kysy käyttäjältä syötteet, tarkista niiden järkevyys!

16

Page 17: Kurkistus koodaukseen

Kokeileminenvs. suunnitteluPiirrä Racket Turtlella peruskuviot

Kokeile mitä muuta saat aikaan...

17

Page 18: Kurkistus koodaukseen

Pedagoginen lähestymistapaOppilaalle on saatava mentaalimalli siitä miten ohjelmakoodi toimii.

Miten tähän päästään?

1. Käytetään◦ valmiita piirtofunktioita (kuvat, Turtle)

2. Muokataan◦ puolivalmiin funktion koodia eteenpäin

3. Luodaan ◦ määritellään oma funktio funktion suunnitteluportaat menetelmän kautta (siirrytään

abstaktioon vasta, kun konkreettinen esimerkki/testi on kirjoitettu)

◦ määritellään oma ohjelma, joka jaetaan funktioihin

18

Page 19: Kurkistus koodaukseen

Mistä jatkaa?Koodiaapinen MOOC: http://koodiaapinen.fi

◦ ScratchJr (esi- ja alkuopetus)

◦ Scratch (3.-6. luokat)◦ https://scratch.mit.edu/

◦ http://www.teromakotero.fi/scratch-klubi/

◦ Racket (7.-9. luokat)◦ http://racket.koodiaapinen.fi

◦ Python (7.-9. luokat)

Lego – ohjelmointi◦ http://www.innokas.fi/fi/training/asimov

Code.org / Koodaustunti◦ http://code.org

◦ http://koodaustunti.fi

19