1jZ7iKR
1jZ7iKR
1jZ7iKR
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Koodi2016 | Miten ohjelmointia opetetaan?<br />
Koodi2016 | Miten ohjelmointia opetetaan?<br />
Koodauksen opetus on<br />
ajattelun opettamista<br />
Tässä osiossa lähestytään ohjelmoinnin opettamista<br />
peruskoulussa kahden pääharjoituskategorian<br />
kautta. Nämä ovat yhtäältä leikit sekä<br />
toisaalta erilaiset verkossa tarjolla olevat ympäristöt<br />
ohjelmointia ja sen opiskelua varten.<br />
Jotta opettaja ja oppilas ymmärtäisivät, miksi<br />
esitellyt leikit tai verkkoharjoitukset auttavat<br />
oppimaan ohjelmoimaan, on syytä käydä läpi,<br />
mistä niin kutsutussa ohjelmoinnillisessa ajattelussa<br />
on kyse.<br />
Ohjelmoinnillinen ajattelu on hiukan hapuileva<br />
suomennoksemme englannin kielen termistä<br />
computational thinking. (Toinen mahdollinen suomennos<br />
voisi olla vaikkapa algoritminen ajattelu.<br />
Computational thinkingistä löytyy oivallinen tulostettava<br />
luokkahuoneharjoitus Code.org-sivustolta:<br />
learn.code.org/unplugged/unplug2.pdf)<br />
Ohjelmoinnilliselle ajattelulle on erilaisia mää-<br />
Ongelman palastelua osiin<br />
tarvitaan arkielämässä<br />
ja ohjelmoinnissa.<br />
ritelmiä, mutta usein sen esitetään koostuvan<br />
esimerkiksi seuraavassa esitetyn kaltaisista osaalueista,<br />
jotka kaikki liittyvät siihen, minkälaisia<br />
ajattelutaitoja ihminen tarvitsee pystyäkseen<br />
ratkaisemaan ongelmia tietokoneen avulla.<br />
Huomionarvoista on, että listatut taidot eivät<br />
ole ainoastaan ohjelmointiin liittyviä. Samanlaisia<br />
ongelmanratkaisun taitoja tarvitaan koulussa<br />
esimerkiksi filosofian, matematiikan ja vieraiden<br />
kielten tunneilla – arkisesta elämästä puhumattakaan.<br />
Ongelman purkaminen osiin<br />
Ongelman purkaminen osiin (decomposition) on<br />
taito, jota tarvitaan sekä arkielämässä että ohjelmoinnissa,<br />
kun ongelma on hiukankin monimutkaisempi<br />
ratkaistavaksi kerralla.<br />
Tyypillinen esimerkki ongelman purkamisesta<br />
osiin on, kun joku kysyy sinulta ajo-ohjeita<br />
Helsingin keskustasta luoksesi. Jos et asu Kolmen<br />
sepän patsaalla, on mahdotonta antaa yksikäsitteistä<br />
ohjetta yhdellä virkkeellä. Ongelma on<br />
hajotettava osiin: ”Lähde ensin Mannerheimintietä<br />
pohjoiseen. Kansallisoopperan kohdalla<br />
käänny oikealle. Jatka puoli kilometriä…” Ja niin<br />
edelleen.<br />
Toinen esimerkki ongelman purkamisesta<br />
osiin olisi esimerkiksi siinä, kun maistat ystäväsi<br />
tekemää lihakeittoa ja haluat hahmottaa, miksi se<br />
on niin hyvää. Näet silmin, että liemessä on porkkanaa<br />
ja kaalia. Makuaistisi avulla pyrit tunnistamaan<br />
muita mausteita kuten suolan, pippurin ja<br />
vaikkapa valkosipulin.<br />
Matematiikassa luvun 273 voi purkaa satoihin,<br />
kymmeniin ja ykkösiin: 2 x 100 + 7 x 10 + 3 x 1<br />
Ohjelmoidessa vaikkapa verkkopankkia on<br />
välttämätöntä purkaa ongelma osiin:<br />
Ketkä pankkia käyttävät? (Ihmiset, yritykset<br />
jne.)<br />
Mitä käyttäjät haluavat pankissa tehdä? (Maksaa<br />
laskun, ottaa lainaa jne.)<br />
Mistä toimenpiteet koostuvat? (Laskun<br />
maksaminen koostuu tunnusluvun antamisesta,<br />
summan syöttämisestä, vastaanottajan tilinumeron<br />
antamisesta jne.)<br />
Kaavojen tunnistaminen<br />
Kaavojen ja toistuvien sääntöjen tunnistaminen<br />
(pattern recognition) auttaa ratkaisemaan arkipäiväisiä<br />
ongelmia. Kun itkevä vauva hiljeni viime<br />
kerralla saadessaan tutin, sama ratkaisu voi auttaa<br />
tälläkin kerralla. Märkä puu näyttää syttyvän<br />
huonommin kuin kuiva.<br />
Ohjelmoinnissa kykyä tunnistaa ongelmissa<br />
esiintyviä kaavoja on hyvin hyödyllinen, koska<br />
yhtäältä se auttaa ajattelussa kuten missä tahansa<br />
arkipäiväisessä ongelmassa, ja toisaalta kone on<br />
ongelmien ratkaisijana täydellisen kaavamainen:<br />
se toimii aina tarkalleen ja täydellisesti samalla<br />
tavalla suorituskerrasta toiseen. Siksi kerran<br />
oivallettua kaavaa voidaan soveltaa koneella yhä<br />
uudestaan oikein.<br />
Algoritmien luominen<br />
Algoritmilla tarkoitetaan kuvausta jonkin tehtävän<br />
suorittamiseksi tarvittavista toimenpiteistä.<br />
Kun arkielämässä huippukokki kirjoittaa ylös<br />
76| |77