SlideShare a Scribd company logo
1 of 39
Koodiaapinen MOOC
OPETTAJIEN
OPISKELUVÄLINEENÄ
Tiina Partanen 10.6.2016 (korjattu 17.6.2016)
OPS2014
vuosiluokilla 7.- 9.
Ohjelmointia harjoitellaan osana eri oppiaineiden opintoja.
(OPS2014, s. 284)
T20 ohjata oppilasta kehittämään algoritmista ajatteluaan
sekä taitojaan soveltaa matematiikkaa ja ohjelmointia
ongelmien ratkaisemiseen (OPS2014, s. 375)
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)
KOODIAAPINEN MOOC - SYKSY 2015
OPS2014
Matematiikka 7.-9.
Arvosanan kahdeksan (hyvä) osaaminen:
Oppilas osaa soveltaa algoritmisen ajattelun periaatteita ja
osaa ohjelmoida yksinkertaisia ohjelmia. (OPS2014, s. 379)
KOODIAAPINEN MOOC - SYKSY 2015
Jotta OPS:ia voi toteuttaa on
selvitettävä itselleen mitä on:
1) ohjelmointi
2) algoritmi
3) algoritminen ajattelu
4) algoritmisen ajattelun soveltaminen
5) algoritmisen ajattelun periaatteet
6) hyvät ohjelmointikäytänteet
7) yksinkertainen ohjelma
8) soveltaa matematiikkaa ja ohjelmointia ongelmien ratkaisuun
KOODIAAPINEN MOOC - SYKSY 2015
Koodausta kouluun projekti
2014-2016
Koodausideoita matematiikan tunneille uuden OPS:in mukaisesti
 Koodaus on matematiikkaa
 Koodaus ei ole pois matematiikan opiskelusta, kunhan tehtävät on
suunniteltu oikein
 Koodaus on luonnollinen tapa tuoda tietokoneet osaksi matematiikan
opiskelua
 Matematiikan opettajien itse kehittämä materiaali
 Testattu oikeilla oppilailla
 Ilmainen suomenkielinen oppimateriaali, ilmaiset työkalut, opettajan opas
5
Koodiaapinen MOOC
talkootyöllä syntynyt avoin verkkokurssi
Syksy 2015 (beta)
- ScratchJr esi- ja alkuopetus
- Scracth – luokat 3. – 6.
- Racket – luokat 7. – 9.
Kevät 2016
- ScratchJr esi- ja alkuopetus
- Scracth – luokat 3. – 6.
- Racket – luokat 7. – 9.
- Python – luokat 7. – 9.
6
Tarmo
Toikkanen
Vuokko
Kangas
Tero
Toivanen
Tiina
Partanen
eEemeli kilpailun – kunniamaininta 2016
IT-kouluttajat ry
Miksi Racket?
 Käytössä USA:ssa matematiikan opetuksessa perusopetuksessa
 Bootstrap – project
 ”Teaching algebra by programming videogames”
 Hyvät ilmaiset, open source työkalut
 DrRacket (Win, Linux, MacOS)
 WeScheme – selaimessa pyörivä ohjelmointiympäristö
 Suunniteltu opetuksen tarpeisin
 Kehitetty portaittain kehittyvä ”student language” (Beginning Student -> Advanced Student)
 Uskomattoman selkeät virheilmoitukset
 Tulkki ja stepperi
 Monipuoliset ja opetukseen soveltuvat grafiikka- ja animaatiokirjastot
 Helppoa tehdä itse laajennuskirjastoja (Racket Turtle, display-read)
 Valmis pedagoginen malli
 How to design programs, test-driven design
 Voi koodata myös pelejä 
 Realm of Racket
7
Pedagogiset tavoitteet
Opettaa systemaattista ongelmanratkaisua, ei vain ”koodaustemppuja”
Opettaa automatisointiajattelun pääsisällöt, riittävästi että niillä voidaan toteuttaa
joitain yksinkertoisia toimivia ”sovelluksia”
Lähestyä aihetta visuaalisesti, kuvien ja animaatioiden kautta
Kannustaa luovuuteen ja oman koodin ”keksimiseen”
Painottaa funktionaalista ohjelmointiparadigmaa sekä test-driven design:ia
Tukea opettajaa uuden aihepiirin haltuunottamisessa (koodarin käsikirja, oppilaan
tehtävät, opettajan materiaali, malliratkaisut, tutoriaalivideot)
8
7. Luokan materiaali
Oppilas harjoittelee kirjoittamaan ohjelmakoodia, joka suorittaa
yksinkertaisia laskutoimituksia tai piirtää geometrisia kuvioita.
Oppilas harjoittelee vertailuoperaattoreiden käyttöä väite- ja
ehtolauseissa tutustuessaan totuusarvoihin.
9
8. Luokan materiaali
Oppilas oppii suunnittelemaan ja ohjelmoimaan algoritmin, jolla
voidaan ratkaista jokin ongelma tai tehtävä, joka voi olla esim.
animaatio tai peli.
10
9. Luokan materiaali
Oppilas oppii käyttämään funktioita ja muuttujia ohjelmointitehtävissä.
Oppilas osaa jakaa ongelman osaongelmiin, ratkaista ne ohjelmoimalla
ja yhdistää osat yhdeksi ratkaisuksi.
11
Koodausta kouluun numeroina
70 ohjelmointiharjoitusta malliratkaisuineen
36 tutoriaalivideota ja animaatiota (yli 25 000 näyttökertaa)
15+ Power Point – esitystä
140 Koodiaapinen MOOC Racket - linjan suorittanutta syksyllä 2015
Kevään kurssilla arvioitu määrä 100-140 suoritusta
334 GitHub päivitystä (kaikki materiaali GitHub:issa)
12
Matematiikan käsitteet
Peruslaskutoimitukset ja laskujärjestys
Mittasuhteet
Koordinaatisto
Kierto, skaalaus, peilaus
Tasogeometriset kuviot
Kulman suuruus (monikulmiot)
Totuusarvot, väitelauseet, vertailuoperaatiot
Kulmien nimeäminen
Kolmion kulmien summa
Pythagoraan lause
Pyöristäminen
Yksikkömuunnokset
13
Jakojäännös (modulo)
Boolen logiikka (and, or, not)
Polynomit, kuvaajan piirtäminen
Funktiot ja muuttujat
Määrittelyjoukko, arvojoukko
Pinta-alan kaavat (ml. ympyrä)
Avaruuskappaleiden levityskuvat
Trigonometriset funktiot
Muutosprosentti
Keskiarvo, mediaani, moodi
Alkuluvut, satunnaisluvut
Aritmeettiset lukujonot
Fraktaalit
Ohjelmoinnin käsitteet
Tietotyypit (luku, totuusarvo, kuva,
merkkijono)
Funktio, argumentti, paluuarvo
Evaluointi
Vakioiden määrittely (globaalit
muuttujat)
Kirjasto
Funktion määrittely, funktion
parametrit muuttujina, funktion
testaaminen
Totuusarvot, vertaisluoperaattorit,
predikaatit, ehtolauseet, valintalauseet
Boolean operaattorit (and, or, not)
14
Rekursio (alkeistapauksen
avulla, akkumulaatorin avulla,
silmukkana)
Puhtaat funktiot vs.
Sivuvaikutukset
Lokaalit muuttujat
Koodilohko
Listat
Higher Order - funktiot
* Call-back funktiot
* Eventit
Funktion suunnitteluportaat
15
How to design programs – design recipe
Pedagoginen lähestymistapa
Oppilaalle on saatava mentaalimalli siitä miten ohjelmakoodi toimii.
Miten tähän päästään?
1. Käytetään
◦ käytetään valmiita piirtofunktioita (kuvat, Turtle)
2. Muokataan
◦ 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
16
https://users.soe.ucsc.edu/~linda/pubs/ACMInroads.pdf
Opettajien
täydennyskoulutus?
Veso – koulutukset (2-3h):
◦ Kuvakoodausta ja vähän Turtleja
MOOC (n. 28h):
 Kurssi kestää 7 jaksoa (yksi jakso keksimäärin 2 viikkoa, 4h opiskelua)
 Jokaisella koodausjaksolla keskeiset asiat opetettaan videotutoriaalin avulla
n. 30 min videoita, joiden aikana kehoitettiin koodaamaan mukana
 Jokaisella koodausjaksolla oli omatoimisia harjoitustehtäviä
malliratkaisuineen (4-8 kpl)
 Jokaisella koodausjaksolla piti koodata ratkaisu avoimeen koodaustehtävään,
ja palauttaa se oppimisympäristöön (= jakaa tuotos muille kurssilaisille)
 Viimeisellä jaksolla keskityttiin pedagogiaan sekä oman opetuksen
suunnitteluun
17
Racket MOOC kevät 2016
18
https://plus.cs.hut.fi/aapinen-racket/K2016/
Materiaali
19
Kurssin sisältö
Jakso Sisältö
1 • Työkalut (DrRacket, WeScheme)
• Peruslaskutoimitukset, koodin evaluointi
• Kuvien piirtäminen (2htdp/image)
• Muuttujan määrittely
2 • Funktion määrittely, kutsuminen ja testaaminen
• Totuusarvot, vertailuoperaattorit, predikaatit ja ehtolause
3 • Boolean operaattorit, valintalause
• Hiireen ja aikaan reagoiminen (2htdp/universe)
4 • Rekursio, päättymätön silmukka, lopetusehto
• Lokaalit muuttujat, ohjelmalohko
• Sivuvaikutukset (display-read kirjasto)
5 • Listat ja listan syöminen rekursiivisesti
• Kuvatiedostojen käyttäminen ohjelmassa
6 • Higher order –funktiot
• Turtle grafiikka
7 • OPS, pedagogiset ratkaisut, hyvät ohjelmointikäytänteet
20
1. Kuvakoodaus
Palautusseinä (Rubyric)
21
2. Loogisia funktioita
Vertaisarviointi (Rubyric)
22
3. Ehdollinen animaatio
(palautusseinä)
23
http://www.wescheme.org/view?publicId=dt7UzDWgmb
4. Automaattinen automaatti
Vertaisarviointi (Rubyric)
Esimerkki kurssilaisen palauttamasta koodista:
http://www.wescheme.org/view?publicId=GsterQxRVj
24
5. Listallinen kysymyksiä
Palautusseinällä WeScheme-linkit (Rubyric)
25
Esimerkki kurssilaisen palauttamasta koodista:
http://www.wescheme.org/view?publicId=K83HHMonx2
http://www.wescheme.org/view?publicId=bdDRSxD3U0
6. Kilpikonnan kiemurtelua
Palautusseinä (Rubyric)
26
7. OPS ja muita totuuksia
Vertaisarviointi (Rubyric)
A - työssä reflektoit OPS:ia ja tämän MOOC kurssin sisältöjä yleisellä tasolla
(55%)
B - työssä suunnittelet yhden uuden ohjelmointiharjoituksen (20%)
C - työssä suunnittelet ohjelmoinnin opintokokonaisuuden oman oppiaineesi
sisältöihin liittyen (24%)
Ote yhdestä diplomityöstä:
Tärkeimpänä näen, että oppilas oppii jakamaan ongelman pienempiin osiin ja
koostamaan niistä ratkaisun, jota voi soveltaa samankaltaisiin ongelmiin.
Lisäksi, että oppilas oppii dokumentoimaan ratkaisunsa niin, että muutkin
ymmärtävät sen. Pitäisi myös pyrkiä ohjelmakoodin pitämiseen
mahdollisimman yksinkertaisena. Näitä samoja taitojahan tarvitaan myös
matemaattisten ongelmien ratkaisuissa. Sisällöistä minusta muuttujien,
funktioiden käyttö sekä ehto- ja toistolauseet ovat yläkoululaiselle sopivia.
Rekursio voi olla eriyttävänä osana. Ohjelmoinnissa on pakko eriyttää ja
antaa mahdollisuus oppilaiden yksilölliseen etenemiseen.
27
Poimintoja diplomitöistä...
Mulla on ollut vähän vastentahtoista tämä tekeminen. Olen kuitenkin
huomannut, että kyllä tästä selviää ja motivaatiokin paranee, kun
pääsee paremmin sisään aiheeseen. Ei tämä nyt niin vaikeaa olekaan
kunhan vaan sinnikkäästi tekee.
Mielestäni kurssitehtävät olivat mielekkäitä, erityisesti sen takia, että
itse sai päättää mitä jakson aikana koodaa. Kun vihdoin sai tehtävänsä
valmiiksi, oli joka kerta ns. voittaja fiilis, tein sen jälleen!
Parasta antia MOOC-kurssilla olikin itsensä haastaminen tehtävissä ja
oman työn tekeminen. Koodin kirjoittaminen ja koodissa olleet virheet
turhauttivat usein, mutta tunne oli mitä parhain, kun ohjelman sai
lopulta valmiiksi ja toimimaan. Tämän saman kipinän sytyttäminen
oppilaassa on erittäin tärkeää ja tavoitteellista, kun uusia oppisisältöjä
mietitään ja kun ohjelmointi otetaan mukaan osaksi opetusta uudessa
opetussuunnitelmassa.
28
Jaksopalautteet: työmäärä
29
Mielipiteesi jakson työmäärästä:
1: aivan liian vähän 2: vähän 3: sopivasti 4: liikaa 5: aivan liikaa
1
1.5
2
2.5
3
3.5
4
4.5
5
1 2 3 4 5 6 7
Työmäärä (harjoitukset), ka. 3.09
1
1.5
2
2.5
3
3.5
4
4.5
5
1 2 3 4 5 6 7
Työmäärä (materiaali), ka. 3.02
Skaalaus korjattu 17.6.2016
Jaksopalautteet: haastavuus
30
Mielipiteesi jakson haastavuudesta:
1: aivan liian vähän 2: vähän 3: sopivasti 4: liikaa 5: aivan liikaa
Mielipiteesi jakson vaikeudesta ja haastavuudesta
1
1.5
2
2.5
3
3.5
4
4.5
5
1 2 3 4 5 6 7
Haastavuus (materiaali), ka. 3.04
1
1.5
2
2.5
3
3.5
4
4.5
5
1 2 3 4 5 6 7
Haastavuus (harjoitukset), ka. 3.18
Skaalaus korjattu 17.6.2016
Käytetty aika
31
0
5
10
15
20
25
30
0-1h 1-2h 2-4h 4-6h 6-8h 8-10h yli 10h
Jakso 6 käytetty aika
0
5
10
15
20
25
30
35
40
0-1h 1-2h 2-4h 4-6h 6-8h 8-10h yli 10h
Jakso 3 käytetty aika
0
10
20
30
40
50
60
0-1h 1-2h 2-4h 4-6h 6-8h 8-10h yli 10h
Jakson 1 käytetty aika
Jaksopalautteet: hyödyllisyys ja
innostavuus
32
Mielipiteesi jakson hyödyllisyydestä, innostavuudesta:
1: ei lainkaan 2: vähän 3: kohtuullisesti 4: paljon 5: erittäin paljon
1
1.5
2
2.5
3
3.5
4
4.5
5
1 2 3 4 5 6 7
Hyödyllisyys, ka. 3.63
1
1.5
2
2.5
3
3.5
4
4.5
5
1 2 3 4 5 6 7
Innostavuus, ka. 3.60
Skaalaus korjattu 17.6.2016
Jaksopalautteet: soveltuvuus
33
Mielipiteesi jakson soveltuvuudesta:
1: ei lainkaan 2: vähän 3: kohtuullisesti 4: paljon 5: erittäin paljon
Skaalaus korjattu 17.6.2016
1
1.5
2
2.5
3
3.5
4
4.5
5
1 2 3 4 5 6 7
Soveltuvuus, ka. 3.56
Kurssin osallistujamäärä
Syksyllä 2015, kurssin suoritti 140 hlö (aloitti 369, suoritusprosentti 38%)
Keväällä 2016, kurssin suoritti 100 hlö (aloitti 171, suoritusprosentti 58%)
34
0 50 100 150 200 250 300 350
ilmoittautui
aloitti
1
2
3
4
5
6
7
suoritti loppuun
Racket kurssin osallistujat
Syksy vs. kevät
 Alusta vaihtui Eliademystä Aalto yliopiston omaan viritelmään:
A+/Rubyric/Piazza
 Otettiin mukaan vertaisarviointi. Tämä mahdollisti ”hyvien
ohjelmointikäytänteiden” opettamisen (code review)
 Lisättiin uutena asiana rekursio ja listat (yksi jakso lisää)
 Aikataulu oli löysempi, syksyllä yritimme vielä seurata kevyempiä
Scratch/ScratchJr linjoja
 Syksyllä asiat opetettiin ”yksi asia syvällisesti”, nyt käsiteltiin useampaa
asiaa samassa jaksossa, asiaa syvennettiin useamman jakson aikana (ei
kaikkea kerralla)
 Keväällä paljon vähemmän kysymyksiä keskustelupalstalla (Eliademy vs.
Piazza)
35
Mitä opin MOOC:sta
1. Opettajat haluavat oppia ohjelmoimaan
2. Opettajat haluavat ymmärtää KAIKEN
3. Opettajat haluavat soveltaa oppimaansa
4. Opettajille ei kelpaa pelkkä ”kevyt puuhastelu”, sisällön on oltava niin
kattava, että sillä voi koodailla oikeasti jotain hyödyllistä
5. Kun opettajan saa ymmärtämään miten ohjelmoimalla voi helpottaa
omaa elämäänsä, opettajan saa motivoituneeksi opettamaan
ohjelmointia myös oppilailleen
6. Asioita pitää tulla sopivasti per viikko, että niillä voi koodata jotan
järkevää, mutta liika on liikaa (-> pidennettävä kurssia)
7. Opettajan pitää kokea ”oppilaana olemisen tuska” mutta myös
”oivaltamisen riemu”
36
Ajatuksia...
 Onko oikein, että opettajat opetetaan ohjelmoimaan talkoovoimin?
 Kuka vastaa opetuksen tasosta MOOC kurssilla, entäpä sitten
kouluissa?
 MOOC – kurssia ei voi tehdä ”kertalaakista” oikein, jatkuva palautteen
kerääminen on tärkeää, iteroinnilla maaliin
 Suurin työ on tehtävien ideoinnissa, malliratkaisujen tekemisessä
 Videot aluksi työläitä (suunnittelu, kuvaaminen, editointi) mutta mutta
niiden tekeminen muuttuu nopeasti rutiiniksi (yhden jakson videot, 30
min, sai valmiiksi 2 päivässä)
37
Ajatuksia...
 MOOC:in voi pistää pystyyn ”kuka tahansa”
 Ei vaadi ”automatisoitua tehtävien tarkistamista” (kurssilaiset arvioivat
toistensa työt tai esittelevät ne palautusseinillä)
 Ei vaadi assistentteja, kurssilaiset neuvovat toisiaan
 Tarvittavat välineet:
 Läppäri + ohjelmointiympäristö (mielellään sekä asennettava, että nettiselaimessa toimiva)
 Camtasia – ohjelma opetusvideoiden tekemiseen
 Hyvä mikrofoni ja äänikortti
 Videokamera ”palaute/motivointi”-videoiden tekoon
 Youtube – tili (videoiden jakaminen)
 PowerPoint ja Slideshare – tili (PowerPointien jakaminen)
 Wordpress – blogi (kurssimateriaalin kokoaminen A+:aan)
 Github (tehtävien ja malliratkaisujen jakamiseen)
38
Tiivistelmä
Koodaus voi pelastaa matematiikan
Luovuus on otettava alusta alkaen mukaan (motivaatio)
Ei opeteta vain koodaamista (temppuja) vaan systemaattista
ongelmanratkaisua
Opetetaan automatisointiajattelua, esim. kirjoita laskukaava kerran
funktioksi, kutsutaan monta kertaa
Materiaalin on oltava kohderyhmälle kehitettyä, laadukasta ja
innostavaa
Täydennyskoulutus MOOC:in voi tehdä pienilläkin resursseilla
Opettajaksi opiskelevat pitäisi kouluttaa jo nyt (työn ohessa se on liian
raskasta)
39

More Related Content

Similar to Koodiaapinen MOOC - keynote

Racket MOOC - viikko 6
Racket MOOC - viikko 6Racket MOOC - viikko 6
Racket MOOC - viikko 6Tiina Partanen
 
Ohjelmointikielet ja -paradigmat - kalvot 2014
Ohjelmointikielet ja -paradigmat - kalvot 2014Ohjelmointikielet ja -paradigmat - kalvot 2014
Ohjelmointikielet ja -paradigmat - kalvot 2014Jouni Smed
 
Koodiaapinen MOOC - Racket
Koodiaapinen MOOC - RacketKoodiaapinen MOOC - Racket
Koodiaapinen MOOC - RacketTiina Partanen
 
Racket MOOC 2016 - yleistä (SYKSY)
Racket MOOC 2016 - yleistä (SYKSY)Racket MOOC 2016 - yleistä (SYKSY)
Racket MOOC 2016 - yleistä (SYKSY)Tiina Partanen
 
Racket mooc 2017 - yleistä
Racket mooc 2017 -  yleistäRacket mooc 2017 -  yleistä
Racket mooc 2017 - yleistäTiina Partanen
 
Digitaalinen laatumatto tyoskentely Skypessä
Digitaalinen laatumatto tyoskentely SkypessäDigitaalinen laatumatto tyoskentely Skypessä
Digitaalinen laatumatto tyoskentely Skypessäeamkhanke
 
Johdatus oliopohjaiseen ajatteluun
Johdatus oliopohjaiseen ajatteluunJohdatus oliopohjaiseen ajatteluun
Johdatus oliopohjaiseen ajatteluunPasi Kellokoski
 
Interaktiiviset verkkomateriaalit 16.2.24
Interaktiiviset verkkomateriaalit 16.2.24Interaktiiviset verkkomateriaalit 16.2.24
Interaktiiviset verkkomateriaalit 16.2.24Matleena Laakso
 
Opeta kavrillesi jokin_taito
Opeta kavrillesi jokin_taitoOpeta kavrillesi jokin_taito
Opeta kavrillesi jokin_taitoSirpa Haataja
 
Liikenneopettajat06102016
Liikenneopettajat06102016Liikenneopettajat06102016
Liikenneopettajat06102016akorhonen
 
T-121.5300 Käyttoliittymasuunnittelu - Mallit
T-121.5300 Käyttoliittymasuunnittelu - MallitT-121.5300 Käyttoliittymasuunnittelu - Mallit
T-121.5300 Käyttoliittymasuunnittelu - Mallitmniemi
 
Julkishallinnon IT-hankinnat @Mearra
Julkishallinnon IT-hankinnat @MearraJulkishallinnon IT-hankinnat @Mearra
Julkishallinnon IT-hankinnat @MearraMarko Taipale
 
Digityökaluja ammatillisen open työkalupakkiin 23.2.18
Digityökaluja ammatillisen open työkalupakkiin 23.2.18Digityökaluja ammatillisen open työkalupakkiin 23.2.18
Digityökaluja ammatillisen open työkalupakkiin 23.2.18Matleena Laakso
 
Sähköiset työvälineet ja sovellukset opetuksessa
Sähköiset työvälineet ja sovellukset opetuksessaSähköiset työvälineet ja sovellukset opetuksessa
Sähköiset työvälineet ja sovellukset opetuksessaMatleena Laakso
 
Videota mobiilisti
Videota mobiilistiVideota mobiilisti
Videota mobiilistiPekka Ranta
 
Oppimisen aktivointi 10.9.21
Oppimisen aktivointi 10.9.21Oppimisen aktivointi 10.9.21
Oppimisen aktivointi 10.9.21Matleena Laakso
 
Digitaaliset työvälineet opetuksessa 18.2.20
Digitaaliset työvälineet opetuksessa 18.2.20Digitaaliset työvälineet opetuksessa 18.2.20
Digitaaliset työvälineet opetuksessa 18.2.20Matleena Laakso
 
Koodiaapinen oulu 28.11.2015
Koodiaapinen oulu 28.11.2015Koodiaapinen oulu 28.11.2015
Koodiaapinen oulu 28.11.2015Tero Toivanen
 

Similar to Koodiaapinen MOOC - keynote (20)

Racket MOOC jakso 7
Racket MOOC jakso 7Racket MOOC jakso 7
Racket MOOC jakso 7
 
Racket MOOC - viikko 6
Racket MOOC - viikko 6Racket MOOC - viikko 6
Racket MOOC - viikko 6
 
Ohjelmointikielet ja -paradigmat - kalvot 2014
Ohjelmointikielet ja -paradigmat - kalvot 2014Ohjelmointikielet ja -paradigmat - kalvot 2014
Ohjelmointikielet ja -paradigmat - kalvot 2014
 
Koodiaapinen MOOC - Racket
Koodiaapinen MOOC - RacketKoodiaapinen MOOC - Racket
Koodiaapinen MOOC - Racket
 
Racket MOOC 2016 - yleistä (SYKSY)
Racket MOOC 2016 - yleistä (SYKSY)Racket MOOC 2016 - yleistä (SYKSY)
Racket MOOC 2016 - yleistä (SYKSY)
 
Racket mooc 2017 - yleistä
Racket mooc 2017 -  yleistäRacket mooc 2017 -  yleistä
Racket mooc 2017 - yleistä
 
Ohjelmointi
OhjelmointiOhjelmointi
Ohjelmointi
 
Digitaalinen laatumatto tyoskentely Skypessä
Digitaalinen laatumatto tyoskentely SkypessäDigitaalinen laatumatto tyoskentely Skypessä
Digitaalinen laatumatto tyoskentely Skypessä
 
Johdatus oliopohjaiseen ajatteluun
Johdatus oliopohjaiseen ajatteluunJohdatus oliopohjaiseen ajatteluun
Johdatus oliopohjaiseen ajatteluun
 
Interaktiiviset verkkomateriaalit 16.2.24
Interaktiiviset verkkomateriaalit 16.2.24Interaktiiviset verkkomateriaalit 16.2.24
Interaktiiviset verkkomateriaalit 16.2.24
 
Opeta kavrillesi jokin_taito
Opeta kavrillesi jokin_taitoOpeta kavrillesi jokin_taito
Opeta kavrillesi jokin_taito
 
Liikenneopettajat06102016
Liikenneopettajat06102016Liikenneopettajat06102016
Liikenneopettajat06102016
 
T-121.5300 Käyttoliittymasuunnittelu - Mallit
T-121.5300 Käyttoliittymasuunnittelu - MallitT-121.5300 Käyttoliittymasuunnittelu - Mallit
T-121.5300 Käyttoliittymasuunnittelu - Mallit
 
Julkishallinnon IT-hankinnat @Mearra
Julkishallinnon IT-hankinnat @MearraJulkishallinnon IT-hankinnat @Mearra
Julkishallinnon IT-hankinnat @Mearra
 
Digityökaluja ammatillisen open työkalupakkiin 23.2.18
Digityökaluja ammatillisen open työkalupakkiin 23.2.18Digityökaluja ammatillisen open työkalupakkiin 23.2.18
Digityökaluja ammatillisen open työkalupakkiin 23.2.18
 
Sähköiset työvälineet ja sovellukset opetuksessa
Sähköiset työvälineet ja sovellukset opetuksessaSähköiset työvälineet ja sovellukset opetuksessa
Sähköiset työvälineet ja sovellukset opetuksessa
 
Videota mobiilisti
Videota mobiilistiVideota mobiilisti
Videota mobiilisti
 
Oppimisen aktivointi 10.9.21
Oppimisen aktivointi 10.9.21Oppimisen aktivointi 10.9.21
Oppimisen aktivointi 10.9.21
 
Digitaaliset työvälineet opetuksessa 18.2.20
Digitaaliset työvälineet opetuksessa 18.2.20Digitaaliset työvälineet opetuksessa 18.2.20
Digitaaliset työvälineet opetuksessa 18.2.20
 
Koodiaapinen oulu 28.11.2015
Koodiaapinen oulu 28.11.2015Koodiaapinen oulu 28.11.2015
Koodiaapinen oulu 28.11.2015
 

More from Tiina Partanen

Computational Thinking as an Emergent Learning Trajectory of Mathematics
Computational Thinking as an Emergent Learning Trajectory of MathematicsComputational Thinking as an Emergent Learning Trajectory of Mathematics
Computational Thinking as an Emergent Learning Trajectory of MathematicsTiina Partanen
 
Racket mooc 2017 - aikataulu
Racket mooc 2017 -  aikatauluRacket mooc 2017 -  aikataulu
Racket mooc 2017 - aikatauluTiina Partanen
 
Ohjelmoinnin historiaa
Ohjelmoinnin historiaaOhjelmoinnin historiaa
Ohjelmoinnin historiaaTiina Partanen
 
Racket MOOC 2016 aikataulu (SYKSY)
Racket MOOC 2016 aikataulu (SYKSY)Racket MOOC 2016 aikataulu (SYKSY)
Racket MOOC 2016 aikataulu (SYKSY)Tiina Partanen
 
Racket MOOC (kevät 2016) - jakso 4
Racket MOOC (kevät 2016) -  jakso 4Racket MOOC (kevät 2016) -  jakso 4
Racket MOOC (kevät 2016) - jakso 4Tiina Partanen
 
Racket perusteet - Sovellukset A
Racket perusteet - Sovellukset ARacket perusteet - Sovellukset A
Racket perusteet - Sovellukset ATiina Partanen
 
Koodauksen ensiaskeleet
Koodauksen ensiaskeleetKoodauksen ensiaskeleet
Koodauksen ensiaskeleetTiina Partanen
 
Racket jatko 6. Listat
Racket jatko 6. ListatRacket jatko 6. Listat
Racket jatko 6. ListatTiina Partanen
 
Racket MOOC - viikko 3
Racket MOOC - viikko 3Racket MOOC - viikko 3
Racket MOOC - viikko 3Tiina Partanen
 
Racket jatko 7. oppitunti
Racket jatko 7. oppituntiRacket jatko 7. oppitunti
Racket jatko 7. oppituntiTiina Partanen
 
Racket mooc - viikko 2
Racket mooc - viikko 2Racket mooc - viikko 2
Racket mooc - viikko 2Tiina Partanen
 

More from Tiina Partanen (20)

Computational Thinking as an Emergent Learning Trajectory of Mathematics
Computational Thinking as an Emergent Learning Trajectory of MathematicsComputational Thinking as an Emergent Learning Trajectory of Mathematics
Computational Thinking as an Emergent Learning Trajectory of Mathematics
 
Racket mooc 2017 - aikataulu
Racket mooc 2017 -  aikatauluRacket mooc 2017 -  aikataulu
Racket mooc 2017 - aikataulu
 
Ohjelmoinnin historiaa
Ohjelmoinnin historiaaOhjelmoinnin historiaa
Ohjelmoinnin historiaa
 
Racket MOOC 2016 aikataulu (SYKSY)
Racket MOOC 2016 aikataulu (SYKSY)Racket MOOC 2016 aikataulu (SYKSY)
Racket MOOC 2016 aikataulu (SYKSY)
 
Kurkistus koodaukseen
Kurkistus koodaukseenKurkistus koodaukseen
Kurkistus koodaukseen
 
Racket Turtle
Racket TurtleRacket Turtle
Racket Turtle
 
Racket MOOC - jakso 6
Racket MOOC -  jakso 6Racket MOOC -  jakso 6
Racket MOOC - jakso 6
 
Racket MOOC - jakso 5
Racket MOOC - jakso 5Racket MOOC - jakso 5
Racket MOOC - jakso 5
 
Racket MOOC (kevät 2016) - jakso 4
Racket MOOC (kevät 2016) -  jakso 4Racket MOOC (kevät 2016) -  jakso 4
Racket MOOC (kevät 2016) - jakso 4
 
Racket MOOC - jakso 3
Racket MOOC - jakso 3Racket MOOC - jakso 3
Racket MOOC - jakso 3
 
Racket MOOC - jakso 2
Racket MOOC - jakso 2Racket MOOC - jakso 2
Racket MOOC - jakso 2
 
Racket perusteet - Sovellukset A
Racket perusteet - Sovellukset ARacket perusteet - Sovellukset A
Racket perusteet - Sovellukset A
 
Legorobottialkeet
LegorobottialkeetLegorobottialkeet
Legorobottialkeet
 
Lapset koodaa?
Lapset koodaa?Lapset koodaa?
Lapset koodaa?
 
Koodauksen ensiaskeleet
Koodauksen ensiaskeleetKoodauksen ensiaskeleet
Koodauksen ensiaskeleet
 
Racket MOOC viikko 5
Racket MOOC viikko 5Racket MOOC viikko 5
Racket MOOC viikko 5
 
Racket jatko 6. Listat
Racket jatko 6. ListatRacket jatko 6. Listat
Racket jatko 6. Listat
 
Racket MOOC - viikko 3
Racket MOOC - viikko 3Racket MOOC - viikko 3
Racket MOOC - viikko 3
 
Racket jatko 7. oppitunti
Racket jatko 7. oppituntiRacket jatko 7. oppitunti
Racket jatko 7. oppitunti
 
Racket mooc - viikko 2
Racket mooc - viikko 2Racket mooc - viikko 2
Racket mooc - viikko 2
 

Koodiaapinen MOOC - keynote

  • 2. OPS2014 vuosiluokilla 7.- 9. Ohjelmointia harjoitellaan osana eri oppiaineiden opintoja. (OPS2014, s. 284) T20 ohjata oppilasta kehittämään algoritmista ajatteluaan sekä taitojaan soveltaa matematiikkaa ja ohjelmointia ongelmien ratkaisemiseen (OPS2014, s. 375) 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) KOODIAAPINEN MOOC - SYKSY 2015
  • 3. OPS2014 Matematiikka 7.-9. Arvosanan kahdeksan (hyvä) osaaminen: Oppilas osaa soveltaa algoritmisen ajattelun periaatteita ja osaa ohjelmoida yksinkertaisia ohjelmia. (OPS2014, s. 379) KOODIAAPINEN MOOC - SYKSY 2015
  • 4. Jotta OPS:ia voi toteuttaa on selvitettävä itselleen mitä on: 1) ohjelmointi 2) algoritmi 3) algoritminen ajattelu 4) algoritmisen ajattelun soveltaminen 5) algoritmisen ajattelun periaatteet 6) hyvät ohjelmointikäytänteet 7) yksinkertainen ohjelma 8) soveltaa matematiikkaa ja ohjelmointia ongelmien ratkaisuun KOODIAAPINEN MOOC - SYKSY 2015
  • 5. Koodausta kouluun projekti 2014-2016 Koodausideoita matematiikan tunneille uuden OPS:in mukaisesti  Koodaus on matematiikkaa  Koodaus ei ole pois matematiikan opiskelusta, kunhan tehtävät on suunniteltu oikein  Koodaus on luonnollinen tapa tuoda tietokoneet osaksi matematiikan opiskelua  Matematiikan opettajien itse kehittämä materiaali  Testattu oikeilla oppilailla  Ilmainen suomenkielinen oppimateriaali, ilmaiset työkalut, opettajan opas 5
  • 6. Koodiaapinen MOOC talkootyöllä syntynyt avoin verkkokurssi Syksy 2015 (beta) - ScratchJr esi- ja alkuopetus - Scracth – luokat 3. – 6. - Racket – luokat 7. – 9. Kevät 2016 - ScratchJr esi- ja alkuopetus - Scracth – luokat 3. – 6. - Racket – luokat 7. – 9. - Python – luokat 7. – 9. 6 Tarmo Toikkanen Vuokko Kangas Tero Toivanen Tiina Partanen eEemeli kilpailun – kunniamaininta 2016 IT-kouluttajat ry
  • 7. Miksi Racket?  Käytössä USA:ssa matematiikan opetuksessa perusopetuksessa  Bootstrap – project  ”Teaching algebra by programming videogames”  Hyvät ilmaiset, open source työkalut  DrRacket (Win, Linux, MacOS)  WeScheme – selaimessa pyörivä ohjelmointiympäristö  Suunniteltu opetuksen tarpeisin  Kehitetty portaittain kehittyvä ”student language” (Beginning Student -> Advanced Student)  Uskomattoman selkeät virheilmoitukset  Tulkki ja stepperi  Monipuoliset ja opetukseen soveltuvat grafiikka- ja animaatiokirjastot  Helppoa tehdä itse laajennuskirjastoja (Racket Turtle, display-read)  Valmis pedagoginen malli  How to design programs, test-driven design  Voi koodata myös pelejä   Realm of Racket 7
  • 8. Pedagogiset tavoitteet Opettaa systemaattista ongelmanratkaisua, ei vain ”koodaustemppuja” Opettaa automatisointiajattelun pääsisällöt, riittävästi että niillä voidaan toteuttaa joitain yksinkertoisia toimivia ”sovelluksia” Lähestyä aihetta visuaalisesti, kuvien ja animaatioiden kautta Kannustaa luovuuteen ja oman koodin ”keksimiseen” Painottaa funktionaalista ohjelmointiparadigmaa sekä test-driven design:ia Tukea opettajaa uuden aihepiirin haltuunottamisessa (koodarin käsikirja, oppilaan tehtävät, opettajan materiaali, malliratkaisut, tutoriaalivideot) 8
  • 9. 7. Luokan materiaali Oppilas harjoittelee kirjoittamaan ohjelmakoodia, joka suorittaa yksinkertaisia laskutoimituksia tai piirtää geometrisia kuvioita. Oppilas harjoittelee vertailuoperaattoreiden käyttöä väite- ja ehtolauseissa tutustuessaan totuusarvoihin. 9
  • 10. 8. Luokan materiaali Oppilas oppii suunnittelemaan ja ohjelmoimaan algoritmin, jolla voidaan ratkaista jokin ongelma tai tehtävä, joka voi olla esim. animaatio tai peli. 10
  • 11. 9. Luokan materiaali Oppilas oppii käyttämään funktioita ja muuttujia ohjelmointitehtävissä. Oppilas osaa jakaa ongelman osaongelmiin, ratkaista ne ohjelmoimalla ja yhdistää osat yhdeksi ratkaisuksi. 11
  • 12. Koodausta kouluun numeroina 70 ohjelmointiharjoitusta malliratkaisuineen 36 tutoriaalivideota ja animaatiota (yli 25 000 näyttökertaa) 15+ Power Point – esitystä 140 Koodiaapinen MOOC Racket - linjan suorittanutta syksyllä 2015 Kevään kurssilla arvioitu määrä 100-140 suoritusta 334 GitHub päivitystä (kaikki materiaali GitHub:issa) 12
  • 13. Matematiikan käsitteet Peruslaskutoimitukset ja laskujärjestys Mittasuhteet Koordinaatisto Kierto, skaalaus, peilaus Tasogeometriset kuviot Kulman suuruus (monikulmiot) Totuusarvot, väitelauseet, vertailuoperaatiot Kulmien nimeäminen Kolmion kulmien summa Pythagoraan lause Pyöristäminen Yksikkömuunnokset 13 Jakojäännös (modulo) Boolen logiikka (and, or, not) Polynomit, kuvaajan piirtäminen Funktiot ja muuttujat Määrittelyjoukko, arvojoukko Pinta-alan kaavat (ml. ympyrä) Avaruuskappaleiden levityskuvat Trigonometriset funktiot Muutosprosentti Keskiarvo, mediaani, moodi Alkuluvut, satunnaisluvut Aritmeettiset lukujonot Fraktaalit
  • 14. Ohjelmoinnin käsitteet Tietotyypit (luku, totuusarvo, kuva, merkkijono) Funktio, argumentti, paluuarvo Evaluointi Vakioiden määrittely (globaalit muuttujat) Kirjasto Funktion määrittely, funktion parametrit muuttujina, funktion testaaminen Totuusarvot, vertaisluoperaattorit, predikaatit, ehtolauseet, valintalauseet Boolean operaattorit (and, or, not) 14 Rekursio (alkeistapauksen avulla, akkumulaatorin avulla, silmukkana) Puhtaat funktiot vs. Sivuvaikutukset Lokaalit muuttujat Koodilohko Listat Higher Order - funktiot * Call-back funktiot * Eventit
  • 15. Funktion suunnitteluportaat 15 How to design programs – design recipe
  • 16. Pedagoginen lähestymistapa Oppilaalle on saatava mentaalimalli siitä miten ohjelmakoodi toimii. Miten tähän päästään? 1. Käytetään ◦ käytetään valmiita piirtofunktioita (kuvat, Turtle) 2. Muokataan ◦ 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 16 https://users.soe.ucsc.edu/~linda/pubs/ACMInroads.pdf
  • 17. Opettajien täydennyskoulutus? Veso – koulutukset (2-3h): ◦ Kuvakoodausta ja vähän Turtleja MOOC (n. 28h):  Kurssi kestää 7 jaksoa (yksi jakso keksimäärin 2 viikkoa, 4h opiskelua)  Jokaisella koodausjaksolla keskeiset asiat opetettaan videotutoriaalin avulla n. 30 min videoita, joiden aikana kehoitettiin koodaamaan mukana  Jokaisella koodausjaksolla oli omatoimisia harjoitustehtäviä malliratkaisuineen (4-8 kpl)  Jokaisella koodausjaksolla piti koodata ratkaisu avoimeen koodaustehtävään, ja palauttaa se oppimisympäristöön (= jakaa tuotos muille kurssilaisille)  Viimeisellä jaksolla keskityttiin pedagogiaan sekä oman opetuksen suunnitteluun 17
  • 18. Racket MOOC kevät 2016 18 https://plus.cs.hut.fi/aapinen-racket/K2016/
  • 20. Kurssin sisältö Jakso Sisältö 1 • Työkalut (DrRacket, WeScheme) • Peruslaskutoimitukset, koodin evaluointi • Kuvien piirtäminen (2htdp/image) • Muuttujan määrittely 2 • Funktion määrittely, kutsuminen ja testaaminen • Totuusarvot, vertailuoperaattorit, predikaatit ja ehtolause 3 • Boolean operaattorit, valintalause • Hiireen ja aikaan reagoiminen (2htdp/universe) 4 • Rekursio, päättymätön silmukka, lopetusehto • Lokaalit muuttujat, ohjelmalohko • Sivuvaikutukset (display-read kirjasto) 5 • Listat ja listan syöminen rekursiivisesti • Kuvatiedostojen käyttäminen ohjelmassa 6 • Higher order –funktiot • Turtle grafiikka 7 • OPS, pedagogiset ratkaisut, hyvät ohjelmointikäytänteet 20
  • 24. 4. Automaattinen automaatti Vertaisarviointi (Rubyric) Esimerkki kurssilaisen palauttamasta koodista: http://www.wescheme.org/view?publicId=GsterQxRVj 24
  • 25. 5. Listallinen kysymyksiä Palautusseinällä WeScheme-linkit (Rubyric) 25 Esimerkki kurssilaisen palauttamasta koodista: http://www.wescheme.org/view?publicId=K83HHMonx2 http://www.wescheme.org/view?publicId=bdDRSxD3U0
  • 27. 7. OPS ja muita totuuksia Vertaisarviointi (Rubyric) A - työssä reflektoit OPS:ia ja tämän MOOC kurssin sisältöjä yleisellä tasolla (55%) B - työssä suunnittelet yhden uuden ohjelmointiharjoituksen (20%) C - työssä suunnittelet ohjelmoinnin opintokokonaisuuden oman oppiaineesi sisältöihin liittyen (24%) Ote yhdestä diplomityöstä: Tärkeimpänä näen, että oppilas oppii jakamaan ongelman pienempiin osiin ja koostamaan niistä ratkaisun, jota voi soveltaa samankaltaisiin ongelmiin. Lisäksi, että oppilas oppii dokumentoimaan ratkaisunsa niin, että muutkin ymmärtävät sen. Pitäisi myös pyrkiä ohjelmakoodin pitämiseen mahdollisimman yksinkertaisena. Näitä samoja taitojahan tarvitaan myös matemaattisten ongelmien ratkaisuissa. Sisällöistä minusta muuttujien, funktioiden käyttö sekä ehto- ja toistolauseet ovat yläkoululaiselle sopivia. Rekursio voi olla eriyttävänä osana. Ohjelmoinnissa on pakko eriyttää ja antaa mahdollisuus oppilaiden yksilölliseen etenemiseen. 27
  • 28. Poimintoja diplomitöistä... Mulla on ollut vähän vastentahtoista tämä tekeminen. Olen kuitenkin huomannut, että kyllä tästä selviää ja motivaatiokin paranee, kun pääsee paremmin sisään aiheeseen. Ei tämä nyt niin vaikeaa olekaan kunhan vaan sinnikkäästi tekee. Mielestäni kurssitehtävät olivat mielekkäitä, erityisesti sen takia, että itse sai päättää mitä jakson aikana koodaa. Kun vihdoin sai tehtävänsä valmiiksi, oli joka kerta ns. voittaja fiilis, tein sen jälleen! Parasta antia MOOC-kurssilla olikin itsensä haastaminen tehtävissä ja oman työn tekeminen. Koodin kirjoittaminen ja koodissa olleet virheet turhauttivat usein, mutta tunne oli mitä parhain, kun ohjelman sai lopulta valmiiksi ja toimimaan. Tämän saman kipinän sytyttäminen oppilaassa on erittäin tärkeää ja tavoitteellista, kun uusia oppisisältöjä mietitään ja kun ohjelmointi otetaan mukaan osaksi opetusta uudessa opetussuunnitelmassa. 28
  • 29. Jaksopalautteet: työmäärä 29 Mielipiteesi jakson työmäärästä: 1: aivan liian vähän 2: vähän 3: sopivasti 4: liikaa 5: aivan liikaa 1 1.5 2 2.5 3 3.5 4 4.5 5 1 2 3 4 5 6 7 Työmäärä (harjoitukset), ka. 3.09 1 1.5 2 2.5 3 3.5 4 4.5 5 1 2 3 4 5 6 7 Työmäärä (materiaali), ka. 3.02 Skaalaus korjattu 17.6.2016
  • 30. Jaksopalautteet: haastavuus 30 Mielipiteesi jakson haastavuudesta: 1: aivan liian vähän 2: vähän 3: sopivasti 4: liikaa 5: aivan liikaa Mielipiteesi jakson vaikeudesta ja haastavuudesta 1 1.5 2 2.5 3 3.5 4 4.5 5 1 2 3 4 5 6 7 Haastavuus (materiaali), ka. 3.04 1 1.5 2 2.5 3 3.5 4 4.5 5 1 2 3 4 5 6 7 Haastavuus (harjoitukset), ka. 3.18 Skaalaus korjattu 17.6.2016
  • 31. Käytetty aika 31 0 5 10 15 20 25 30 0-1h 1-2h 2-4h 4-6h 6-8h 8-10h yli 10h Jakso 6 käytetty aika 0 5 10 15 20 25 30 35 40 0-1h 1-2h 2-4h 4-6h 6-8h 8-10h yli 10h Jakso 3 käytetty aika 0 10 20 30 40 50 60 0-1h 1-2h 2-4h 4-6h 6-8h 8-10h yli 10h Jakson 1 käytetty aika
  • 32. Jaksopalautteet: hyödyllisyys ja innostavuus 32 Mielipiteesi jakson hyödyllisyydestä, innostavuudesta: 1: ei lainkaan 2: vähän 3: kohtuullisesti 4: paljon 5: erittäin paljon 1 1.5 2 2.5 3 3.5 4 4.5 5 1 2 3 4 5 6 7 Hyödyllisyys, ka. 3.63 1 1.5 2 2.5 3 3.5 4 4.5 5 1 2 3 4 5 6 7 Innostavuus, ka. 3.60 Skaalaus korjattu 17.6.2016
  • 33. Jaksopalautteet: soveltuvuus 33 Mielipiteesi jakson soveltuvuudesta: 1: ei lainkaan 2: vähän 3: kohtuullisesti 4: paljon 5: erittäin paljon Skaalaus korjattu 17.6.2016 1 1.5 2 2.5 3 3.5 4 4.5 5 1 2 3 4 5 6 7 Soveltuvuus, ka. 3.56
  • 34. Kurssin osallistujamäärä Syksyllä 2015, kurssin suoritti 140 hlö (aloitti 369, suoritusprosentti 38%) Keväällä 2016, kurssin suoritti 100 hlö (aloitti 171, suoritusprosentti 58%) 34 0 50 100 150 200 250 300 350 ilmoittautui aloitti 1 2 3 4 5 6 7 suoritti loppuun Racket kurssin osallistujat
  • 35. Syksy vs. kevät  Alusta vaihtui Eliademystä Aalto yliopiston omaan viritelmään: A+/Rubyric/Piazza  Otettiin mukaan vertaisarviointi. Tämä mahdollisti ”hyvien ohjelmointikäytänteiden” opettamisen (code review)  Lisättiin uutena asiana rekursio ja listat (yksi jakso lisää)  Aikataulu oli löysempi, syksyllä yritimme vielä seurata kevyempiä Scratch/ScratchJr linjoja  Syksyllä asiat opetettiin ”yksi asia syvällisesti”, nyt käsiteltiin useampaa asiaa samassa jaksossa, asiaa syvennettiin useamman jakson aikana (ei kaikkea kerralla)  Keväällä paljon vähemmän kysymyksiä keskustelupalstalla (Eliademy vs. Piazza) 35
  • 36. Mitä opin MOOC:sta 1. Opettajat haluavat oppia ohjelmoimaan 2. Opettajat haluavat ymmärtää KAIKEN 3. Opettajat haluavat soveltaa oppimaansa 4. Opettajille ei kelpaa pelkkä ”kevyt puuhastelu”, sisällön on oltava niin kattava, että sillä voi koodailla oikeasti jotain hyödyllistä 5. Kun opettajan saa ymmärtämään miten ohjelmoimalla voi helpottaa omaa elämäänsä, opettajan saa motivoituneeksi opettamaan ohjelmointia myös oppilailleen 6. Asioita pitää tulla sopivasti per viikko, että niillä voi koodata jotan järkevää, mutta liika on liikaa (-> pidennettävä kurssia) 7. Opettajan pitää kokea ”oppilaana olemisen tuska” mutta myös ”oivaltamisen riemu” 36
  • 37. Ajatuksia...  Onko oikein, että opettajat opetetaan ohjelmoimaan talkoovoimin?  Kuka vastaa opetuksen tasosta MOOC kurssilla, entäpä sitten kouluissa?  MOOC – kurssia ei voi tehdä ”kertalaakista” oikein, jatkuva palautteen kerääminen on tärkeää, iteroinnilla maaliin  Suurin työ on tehtävien ideoinnissa, malliratkaisujen tekemisessä  Videot aluksi työläitä (suunnittelu, kuvaaminen, editointi) mutta mutta niiden tekeminen muuttuu nopeasti rutiiniksi (yhden jakson videot, 30 min, sai valmiiksi 2 päivässä) 37
  • 38. Ajatuksia...  MOOC:in voi pistää pystyyn ”kuka tahansa”  Ei vaadi ”automatisoitua tehtävien tarkistamista” (kurssilaiset arvioivat toistensa työt tai esittelevät ne palautusseinillä)  Ei vaadi assistentteja, kurssilaiset neuvovat toisiaan  Tarvittavat välineet:  Läppäri + ohjelmointiympäristö (mielellään sekä asennettava, että nettiselaimessa toimiva)  Camtasia – ohjelma opetusvideoiden tekemiseen  Hyvä mikrofoni ja äänikortti  Videokamera ”palaute/motivointi”-videoiden tekoon  Youtube – tili (videoiden jakaminen)  PowerPoint ja Slideshare – tili (PowerPointien jakaminen)  Wordpress – blogi (kurssimateriaalin kokoaminen A+:aan)  Github (tehtävien ja malliratkaisujen jakamiseen) 38
  • 39. Tiivistelmä Koodaus voi pelastaa matematiikan Luovuus on otettava alusta alkaen mukaan (motivaatio) Ei opeteta vain koodaamista (temppuja) vaan systemaattista ongelmanratkaisua Opetetaan automatisointiajattelua, esim. kirjoita laskukaava kerran funktioksi, kutsutaan monta kertaa Materiaalin on oltava kohderyhmälle kehitettyä, laadukasta ja innostavaa Täydennyskoulutus MOOC:in voi tehdä pienilläkin resursseilla Opettajaksi opiskelevat pitäisi kouluttaa jo nyt (työn ohessa se on liian raskasta) 39