Sisällysluettelo

Poh­din­taa

Poh­din­taa oh­jel­moin­nin opet­ta­mi­ses­ta

2015-01-05


Heikin pohteita > Ohjelmointia, matematiikkaa, fysiikkaa … > Pohdintaa > Tietokone LUMA-opetuksen inspiroijana (edit: 2024-9-4)

Tieto­kone LUMA-opetuksen ins­pi­roi­ja­na

Olen käy­nyt kou­lu­ni 60- ja 70-lu­vuil­la ja opet­ta­jan pedagiset opin­not suo­ri­tin kym­me­ni­sen vuot­ta sit­ten. En siis tiedä, miten tieto­ko­nei­ta ny­kyään käy­te­tään LUMA-opetuksessa. Tar­koi­tuk­se­ni oli esi­tel­lä, miten tieto­ko­neen avul­la voi rat­kais­ta käy­tän­nön esi­merk­ke­jä niin, että se in­nos­tai­si LUMA-aineiden opis­ke­luun. Sa­mal­la tu­li­si esi­tel­tyä, mihin kaik­keen myö­hem­mäs­sä elä­mäs­sä hyö­dyl­li­seen ja mie­len­kiin­toi­seen LUMA-aineista eri­tyi­sen kiin­nos­tu­nut lu­kio­lai­nen voisi pe­reh­tyä. In­nos­tuin kui­ten­kin heti en­sim­mäi­ses­tä esi­mer­kis­tä lii­kaa, joten esi­tyk­se­ni jäi ka­peak­si — eli siis pe­rus­teel­li­sek­si ja sy­väl­li­sek­si.

Aloi­tet­tu: syys­kuus­sa 2024

Tieto­kone LUMA-opetuksen ins­pi­roi­ja­na


Heikin pohteita > Ohjelmointia, matematiikkaa, fysiikkaa … > Pohdintaa > Ohjelmoinnista ja ohjelmoinnin oppimisesta (edit: 2015-05-13)

Oh­jel­moin­nis­ta ja oh­jel­moin­nin op­pi­mi­ses­ta

Oh­jel­moin­nis­sa on monen­lais­ta opit­ta­vaa:

— On si­säis­tet­tä­vä al­go­rit­mi­nen ajat­te­lu

— On opit­ta­va oh­jel­moin­ti­ym­pä­ris­tö­jen 'nap­pu­la­tek­niik­ka'

— On opit­ta­va käy­tet­tä­vän oh­jel­moin­ti­kie­len syn­tak­si eli kieli­oppi.

— On opit­ta­va te­ke­mään laa­du­kas­ta koo­dia, joka on ym­mär­ret­tä­vää ja hel­pos­ti muu­tel­ta­vis­sa ja siten uu­del­leen­käy­tet­tä­vis­sä.

Minun mie­les­tä­ni pi­täi­si ke­hit­tää tapa oh­jeis­taa op­pi­laat laa­jen­ta­maan oh­jel­man tyn­kää. Mi­nus­ta tun­tuu, että oh­jei­den pi­täi­si olla kir­jal­li­sia, koska op­pi­lai­den aloi­tet­tua työs­ken­te­lyn sitä on vai­kea kes­keyt­tää ja kes­keyt­tä­mi­nen häi­rit­see työs­ken­te­lyä. Ope­tuk­sen eriyt­tä­mi­ses­tä­kään ei tule mi­tään, jos homma hoi­de­taan ka­tee­de­ril­ta oh­jeis­taen.

Kun­nol­lis­ten oh­jei­den laa­ti­mi­nen on kui­ten­kin työ­läs­tä, joten yri­tin au­to­ma­ti­soi­da nii­den tuot­ta­mi­sen. Se kui­ten­kin tekee oh­jeis­ta­mi­ses­ta pik­kui­sen jäyk­kää.

Sen li­säk­si, että oh­jeis­te­taan te­ke­mään tai joh­da­tel­laan seu­raa­maan jon­kin oh­jel­man te­ke­mis­tä, pitää antaa ideoi­ta vapaa­muo­toi­seen ko­kei­luun ja ky­sy­myk­siä koo­dis­ta. Ehkä luo­kan pi­täi­si saada yh­des­sä ideoi­da, mitä mie­len­kiin­tois­ta esi­merk­ki­oh­jel­mien ai­nek­sis­ta voisi tehdä ja miten niitä voisi kor­jail­la haus­kem­mik­si. Po­ru­kal­la voisi olla hyvä tut­kia, miten esi­merk­ki­oh­jel­mat tai joku nii­den mie­len­kiin­toi­nen yk­si­tyis­kohta toi­mii.

Se­kaan pi­täi­si vielä lait­taa link­ke­jä, jois­sa esi­tel­lään esi­merk­kein ja oh­jel­mas­sa käy­tet­tä­viä oh­jel­moin­ti­kie­len perus­piir­tei­tä, kuten funk­tio ja olio. Esi­mer­kik­si olio on hyvin moni­mut­kai­nen – olio. Video­pelit va­li­koi­tu­vat esi­mer­keik­si, koska niis­sä ta­pah­tuu jo­tain ja nii­hin saa yh­dis­tet­tyä ma­te­ma­tiik­kaa ja fy­siik­kaa. Esi­merk­kien video­pe­lien perus­ra­ken­ne — ikui­nen sil­muk­ka, josta kut­su­taan olioi­den me­to­de­ja — saat­taa kui­ten­kin olla han­ka­la miel­tää. Pygame modulin funk­tiot ovat myös pik­kui­sen han­ka­lia ym­mär­tää. Mutta sel­lais­ta oh­jel­moin­ti on — kaik­kea ei ole help­po ym­mär­tää.

Kai­kes­ta ylläolevasta puut­tuu pe­da­go­gi­nen näkö­kulma. Scratch har­joit­te­lu mie­les­tä­ni toi­mii niin, että ly­hyen esit­te­lyn jäl­keen op­pi­laat voi­vat aloit­taa oh­jel­moin­nin esi­merk­ki­nä ta­soi­sia oh­jei­ta seu­raa­mal­la. Scratch tar­joaa pal­jon enem­män kuin mitä esit­te­lin esi­mer­kis­sä­ni. Sillä voi tehdä mu­siik­kia, ani­maa­tioi­ta ja pal­jon muuta. Niis­tä­kin pi­täi­si antaa jo­tain pien­tä esi­merk­kiä. Tilaa pitää antaa tie­tys­ti va­paal­le ko­kei­le­mi­sel­le, mutta ihan sa­tun­nai­nen haa­hui­lu ei johda kuin kyl­läs­ty­mi­seen. Olisi hie­noa, jos opet­ta­ja tun­ti­si Scratchin niin hyvin, että osai­si opas­taa ko­kei­li­jaa pää­se­mään eteen­päin ja löy­tä­mään it­seään kiin­nos­ta­van alueen oh­jel­moin­nis­ta.

Python oh­jel­moin­nis­sa al­kuun pää­se­mi­nen on Scrathciin ver­rat­tu­na haas­teel­lis­ta, koska val­mii­ta loh­ko­ja ei ole tar­jol­la ja val­mis­ta oh­jel­maa­kaan ei ole aluk­si help­po hah­mot­taa. Esi­merk­kie­ni lisä­on­gel­ma on se, että ha­lu­sin hy­pä­tä suo­raan jo­hon­kin mie­len­kiin­toi­seen, minkä takia jo peli­oh­jel­mie­ni 'tyn­gis­sä' on koo­dia aika pal­jon. Ehkä pitää tehdä vielä yksi esi­merk­ki, jossa piir­re­tään saman­alai­nen moni­kul­mio kuin alun Scratch-esimerkissä. Mi­nus­ta on kui­ten­kin tär­keää, että oh­jel­moin­nin ope­tuk­ses­sa tu­tus­tu­taan jo­hon­kin jo­tain 'oi­keas­ti' te­ke­vään oh­jel­maan. Ei pel­käs­tään ope­tel­la tai­to­ja vaan ope­tel­laan so­vel­ta­maan tai­to­ja tut­ki­van op­pi­mi­sen hen­ges­sä.

Tämän takia luo­vuin yri­tyk­ses­tä so­vit­taa esi­mer­kit kou­lun ope­tus­suun­ni­tel­miin. Kaik­ki mie­les­tä­ni mie­len­kiin­toi­set 'käy­tän­nön' on­gel­mat tai esi­mer­kit edel­lyt­tä­vät ope­tus­suun­ni­tel­maan kuu­lu­mat­to­mia tie­to­ja ja tai­to­ja. Vielä tär­keäm­pää, ne edel­lyt­tä­vät vah­vaa tai­toa so­vel­taa ma­te­ma­tiik­kaa ja luon­non­tie­teitä ja kykyä ottaa hal­tuun kul­loin­kin tar­vit­ta­via tai­to­ja ja tie­to­ja.

Esi­mer­kik­si fy­si­kaa­li­nen mal­lin­nus ja nu­mee­ri­nen si­mu­loin­ti ovat nyky­maail­mas­sa kes­kei­siä me­ne­tel­miä — il­mas­ton­mal­lin­nus ja Angry Birds peli tar­vit­se­vat niitä. De­ri­vaa­tan perus­ole­mus on hyvä se­lit­tää ero­tus­osa­mää­rän avul­la, mutta ylläolevissä esi­mer­keis­sä al­kuun pää­see se­lit­tä­mäl­lä, että kiih­ty­vyys on no­peu­den muu­tos aika­yk­si­kös­sä. Dif­fe­ren­tiaa­li­yh­tä­löi­tä ei vält­tä­mät­tä mai­ni­ta edes lu­kios­sa vaik­ka fy­sii­kas­sa New­to­nin perus­laki on dif­fe­ren­tiaa­li­yh­tä­lö. Minun ai­koi­na­ni dif­fe­ren­tiaa­li­yh­tä­löi­den kurs­sil­la oli mah­dol­li­suus pe­reh­tyä eri­kois­ta­paus­ten — fy­sii­kan kurs­seis­ta ja muus­ta­kin ir­ral­lis­ten — ana­lyyt­tis­ten rat­kai­su­jen mää­rit­tä­mi­seen. Ny­kyään olisi mah­dol­li­suus pa­ris­sa tun­nis­sa ottaa hal­tuun työ­kalu, jolla voi nu­mee­ri­ses­ti si­mu­loi­da itse oh­jel­moi­den suora­vii­vai­sen ja pyö­ri­vän liik­keen kes­kei­set il­miöt ja piir­tää käy­riä siitä, miten ener­giat ja liike­mää­rät vaih­te­le­vat. Ehkä teen esi­mer­kin tuol­lai­ses­ta työ­ka­lus­ta.

Olen innnostunut dy­naa­mi­sis­ta jär­jes­tel­mis­tä, mutta oh­jel­moin­ti on tie­tys­ti tär­keä työ­kalu mo­nil­la aivan muil­la aloil­la. Eri aloil­ta pi­täi­si koota esi­merk­ke­jä.


Asian­tun­ti­jan aja­tuk­sia tieto­tek­nii­kan käy­tös­tä ma­te­ma­tii­kan ope­tuk­ses­sa.