Ohjelmoinnin perusteiden opetus on kiinnostava puheenaihe - onhan moni juuri nyt opettelemassa ohjelmoinnin perusteita, joko peruskoulun opettajan roolissa tai vaikkapa ohjelmistotestaajana, joka haluaisi siirtyä ohjelmointitehtäviin.

Olen opettanut ohjelmoinnin peruskäsitteitä eri yhteyksissä ns. sokraattisella metodilla vuodesta 2003. Mitä ongelmalähtöisessä dialogisessa opetuksessa sitten tapahtuu ja oppiiko siinä oikeasti ohjelmoinnin peruskäsitteet? Kyllä oppii ja lisäksi se on kaiken lisäksi aika hauskaakin - se on keskustellen oppimista ja kyseenalaistamista. Lisäksi metodi tuntuu sopivan hyvin rohkeasti keskusteluun mukaan lähteville ryhmille.

Aloitan opetuksen tyhjältä valko- tai liitutaululta ja lisään opetuksen edetessä taulun oikeaan laitaan mahdollisimman yleistajuisia oppilaiden kanssa sovittuja symboleja ja suomenkielisiä ohjelmoinnin perusrakenteiden primitiivisiä osia kuvaavia sanoja, jotka nimeämme itse. Myös tarvittavat primitiiviset osat päättelemme itse. Ajatuksena on, että kone osaa tehdä vain muutaman perusjutun ja meidän on ohjelmoimalle tehtävä loput - ajaudumme ohjelmoinnin perusrakenteisiin, teimmepä niin tai näin. Osista rakennamme yhteistuumin koulupäiväin edetessä ehtolauseet, sijoituslauseet, toistolauseet ja opettelemme, miten edellä mainittuja käsitteitä voidaan yhdistellä ratkaisten alati mutkikkaampia ongelmia. Jos liitutaulua tai valkotaulua ei ole käytämmä tavallista tekstinkäsittelyohjelmaa, jonka näkymään jäsennämme tekemisemme.  Oman ohjelmointikielen konstruoinnin pääasiallisena välineenä minulla on siis liitutaulu tai valkotaulu - oppilaat voivat kirjoittaa tietokoneella tai vaikka paperille.

Kirjoitan usein taululle paljon mielettömiä ja epäloogisia rakenteita, ja sitten pohdimme yhdessä, olisiko jossain jotain korjattavaa ja jos, niin miten sen voisi korjata. Korjaamisen mahdollisuus on erinomainen oppimisen paikka. Siksi teen virheitä ja korjaamme niitä yhdessä. Pyörittelemme lauseita, lausekkeita, operaattoreita, operandeja, ehtolauseita ja toistolauseita. Jokainen oppilas pääsee osallistumaan, sillä jokaiselta kysellään ehdotuksia ja ajatuksia mahdollisesti toimivista ratkaisuista. Päivän aikana oleellisinta on pohdinta, johon jokainen oppilas väkisinkin ajautuu. On mietittävä, mistä ohjelmoinnissa pohjimmiltaan on kyse. Samalla paljastuu myös ohjelmoinnin tosiasiallinen luonne, jos on pohtinut, että "mitähän se oikein on". Intensiivisen kurssipäivän parasta antia on, jos se saa aikaan uusia ajatusprosesseja - ohjelmoinnin oppimisen käynnistyminen on ajatteluprosessi ja siihen sokraattisella metodilla voidaan helpostikin päästä - kysymysten jälkeen tulee aina uusia. 

Etenemme ohjelmoinnin perusteissa niin pienin askelein, että yleensä epäselvyyttä siitä, mitä ohjelmointi perustasolla on, ei oppilaille jää. Kokonaan toinen asia on kokonaisen ohjelman kirjoittaminen ja ns. modulointi, mutta se ei ole vielä ensimmäisen päivän murheemme, sen opimme myöhemmin. Yhden koulutuspäivän aikana on mahdollista päästä saada kokonaiskuva ohjelmoinnin peruskäsitteistä ja saada perustiedot opetella lähes mitä tahansa ohjelmointikieltä - samat käsitteet kun toistuvat eri muodoissa eri ohjelmointikielissä.   

Yhteen opetuspäivään puristettu ohjelmoinnin peruskäsitteet on raskas, mutta antoisa päivä. Yhtään riviä mitään varsinaista ohjelmointikieltä et kirjoita, mutta eväät omatoimiseen oppimiseen minkä tahansa ohjelmointikielen parissa ovat aivan toiset, kuin jos koko päivä olisi käytetty tietyn ohjelmointikielen luovaan kokeiluun. Kynä, paperi ja utelias mieli riittävät ohjelmoinnin peruskäsitteiden oppimiseen. 


Selma-koira tietää, että olisi oppinut ohjelmoimaan helpommin
erilaisia ohjelmointikieliä, jos olisi tullut opiskeltua peruskäsitteet hyvin.
Toisaalta Selman mielestä elämä koirana on niin hyvää, ettei se haikaile ohjelmoinnista
itselleen uraa. Selmalle riittää, kun saa opettaa Patelle, mitä hyvää Haskell-ohjelmointikielessä on.  
 

 


  

 

0
0
0
s2sdefault
powered by social2s

Lisää kommentti


Turvakoodi
Päivitä