Ohjelmoinnin perusteet, mitä ne on?

Aloitin ohjelmoinnin opiskelun 1990- luvulla ja virallisesti ensimmäisen ohjelmointikurssin kävin1997. Ohjelmoinnin perusteet- kurssi tarkoitti noihin aikoihin ohjelman kirjoittamista eli koodaamista C++ ohjelmointikielellä. Kurssin aluksi ei kerrottu mitä ohjelmointi on, saatikka olisi kerrottu kaikille ohjelmointikielille yhteisistä rakenteista (=käskylause, ehtolause, muuttujat, silmukat yms.). Aloimme opettajan johdolla kirjoittamaan ohjelmaa, jonka avulla tietokone kirjoitti mustalle näytölle jotain. Tehtäväksi saatettiin antaa; ohjelma kysyy kaksi lukua ja ilmoittaa niiden yhteissumman näytöllä. Mitään koodia ei saanut kopioida mistään, vaan kaikki piti kirjoittaa itse. Jos/kun kääntäjä antoi virheitä, niin ohjeet syntaksiin löytyi kirjasta tai ohjelman Help- toiminnosta.

Olipa aika tylsää, vaan silti jotkut aiheesta innostuivat. Suurimmasta osasta kuitenkin tuntui kaikki olevan kovin monimutkaista, ja kurssilaisista karsiutua pois useita sen takia, että tapa opettaa ohjelmointia oli sopimaton heille.
Miten niin?
Koska ohjelmointia oppii tekemällä ja tekemällä ja tekemällä… enkä tarkoita koodin kirjoittamista kopioimalla opettajan mallikoodista. Ongelmien ratkaisu on mielestäni ohjelmoinnissa parasta eli koodauksen ”suola” ja sitä luovaa tekemistä. Usein ongelman voi ratkaista monella eri tapaa! Ongelma voi olla yksinkertaisuudessaa olla esim. miten saat hahmon liikkumaan pisteestä A pisteeseen B ja sanomaan hei. Ratkaisuna hahmo voi liikkua pisteisiin vaikkapa eri reittejä…

Itse kävin 2000-luvulla nuoruuden innolla alkeis- ja jatkokursseja useista eri kielistä mm. C++, Delphi ja Java. Silloin oli internet yleistymässä, mutta HTML ja Javascript (nettisivujen teko) ei olleet vielä koodarien mielestä ohjelmointia ollenkaan… olio-ohjelmointia se olla piti. En oivaltanut tuolloin, että ”opettele käyttämään ohjelmoinnin perusrakenteita hyvin jossain kielessä opit käyttämään kaikkia tarvitsemiasi ohjelmointikieliä helposti”.

Onneksi pääsin nopsaan alan töihin. Työkokemus karttui. Huomasin muutamassa vuodessa projektien vaihtuessa, että ohjelmointikielestä toiseen siirtyminen onkin helppoa. Kaikista löytyy ensinnäkin ne perusrakenteet:

  • käskylause
  • ehtolause (=If, Then, Else)
  • muuttujat (char, string, array, integer jne.)
  • funktio
  • toistorakenteet (for, while)

Ja toisekseen löytyy paljon paljon muutakin yhteistä esim. stringin käsittelyn funktiot, ja array käsittelyn funktiot jotain mainitakseni. Jos olisin tämän jo alussa tiennyt, niin en takuulla olisi tuhlannut paukkuja useiden eri ohjelmointikielien alkeiskursseihin. Eikähän nykyään edes tarvitse ulkoa opiskella useiden eri kielten syntakseja, koska kyllä mm. Google niissä osaa neuvoa 😉

Olen opettanut koodausta lapsille vuodesta 2014 lähtien ja oivaltanut, että ohjelmoinnin opiskelun voi aloittaa hauskasti ja helposti. Nykyään se on mahdollista. Ja toivon mukaan koodausta opetetaan näin peruskoulussa tänä päivänä. Eihän kaikista tarvi koodareita tulla, mutta ihan hyvää yleistietämystä on se, että tietokoneita alkaa olla vähän joka laitteessa nykyään ja tietokoneiden ollessa tyhmiä on ihmisen pakko määritellä miten ne toimivat ja/tai mitä tekevät! Aloittelijoille (myös aikuisille) annankin vinkiksi:
opiskelkaa ohjelmoinnin perusrakenteet ensin helpossa graafisessa ympäristössä (esim. code.org, scratch, bomberbot), kuten lapset tekevät, niin ymmärrätte miten pienistä palikoista ohjelmointi oikeastaan koostuu. Sen jälkeen on paljon helpompi syventyä johonkin oikeaan kieleen oli se sitten yliopistokurssien Java tai Python tai jotain muuta!

Advertisement

Koodauksen perusteet haltuun -Grasshopper App

Testasin tätä Grasshopper sovellusta, kun kuulin siitä positiivista jossain yhteydessä..

Grasshopper- sivusto kertoo – Mitä on koodaus?
Se on oikealta nimeltään ohjelmointia, ja tarkoittaa keskustelua tietokoneen kanssa. Koodi kertoo tietokoneelle mitä sen pitää tehdä. Koodaus on ikään kuin ohjeiden kirjoittamista tietokoneelle. Opettelemalla koodaamaan, opit kertomaan tietokoneille mitä ja miten niiden pitää toimia. Voit käyttää koodaustaitojasi mm. web-sivujen ja älylaite sovellusten tekemiseen, käsittelemään tietoa, ja monia muita siistejä juttuja.

Mikä on Grasshopper App?
Se on sovellus, jonka voit ladata Play-kaupasta esim. puhelimeesi. Kirjautuminen sovellukseen onnistuu esim. Google tunnuksilla. Sovelluksella voi opetella koodauksen perusrakenteita Javascriptillä. Tiesithän, että perusteiden opettelun jälkeen on helppo siirtyä käyttämään ohjelmointikieliä, koska samat perusrakenteet toistuvat kaikissa niissä.
Grasshopper- sivustolta löydät teoriaa, joka on perusrakenteiden taustalla. Tästä löydät sivun, jossa kerrotaan mihin asioihin voit Grasshopperin avulla tutustua: https://grasshopper.app/curriculum/fundamentals-1/

Grasshopper ei ole visuaalinen koodausympäristö, kuten code.org ja scratch, vaan siinä käyttäjä kirjoittaa koodia.

Mielestäni Grasshopperin kotisivut kertovat hyvin ytimekkään lyhyesti olennaisen ohjelmoinnista aloittelijalle. Mielestäni sivusto ja sovellus sopii yläkoululaisista ylöspäin ja myös aikuisille ensi kokemukseksi ohjelmoinnista!

Koodarin työpäivä: millainen se on?

Lapsia ehkä kiinnostaa kuulla, mitä koodarin työpäivään kuuluu. Tässä kertomus tavalllisesta koodarin työpäivästä:

Herään klo 7:20, pimeys väsyttää kamalasti tänäkin aamuna. Onneksi ollaan menossa kohti kevättä ja valoa – myös täällä Raudaskylällä. Laitan aamupalaksi voileipiä, maitoa ja mustikoita. Huolehdin lapset kouluun. Kahvikupposen kanssa siirryn toimistoon kotini yläkerrassa.

Avaan nettiyhteyden ja ensimmäisen läppärin. On tsekattava onko Nivalan asiakkaalta tullut yhteydenotto liittyen toissapäivänä tekemääni ohjelmistopäivitykseen (=ERP). Ei ole yhteydenottoa. Tarkistan myös Skype:stä onko Jyväskylän asiakas saanut kokeiltua eli testattua eilisen ohjelmamuutoksen  jälkeen nettisivut (=Verkkkokauppa). On testannut, joten siinä ensimmäinen työtehtävä:

  • Avaan nettisivujen muokkaukseen tarvittavat ohjelmat (Notepad++, XAMPP ja Filezilla). Kopioin php-tiedostot työasemalta asiakkaan palvelimelle, ja testaan html-sivujen toimivuuden inernetissä. Asia kunnossa ja ilmoitan asiakkaalle Skypessä. Asiakas on tyytyväinen.

Avaan toisen läppärin, jossa odottaa Helsingin asiakkaani yhteydenotto. Heiltä  on tullut ilmoitus kriittisestä bugista eräässä ohjelmassa (=ERP-ohjelmisto). Tässä päivän toinen tehtävä. Kriittiset bugit on korjattava mahdollisimman pian, koska ne usein estävät asiakkaan töiden tekemisen.

  • Avaan Visual Studion ja alan debugata koodia, eli etsiä virhettä…
    Teen tätä lounastaukoon asti, mutta virhettä ei löydy. Lounaan jälkeen virhe löytyy, ja kirjoitan sen korjaamiseksi kaksi riviä koodia ohjelmaan. Toimitan käännetyn koodin asiakkaan järjestelmään. Asiakas on helpottunut.

On päivällisaika. Tuntiraportin tekeminen on tärkeää päivän lopuksi, jotta osaa laskuttaa asiakkaita oikein. Päivällisen jälkeen vetäydyn vielä hetkeksi työhuoneeseeni, ja paneuden omaan tuotteeseen Kiinteistönhallinta ERP:iin. On speksattava eli kirjoitettava mitä vaatimuksia asetetaan huoltomiehen mobiiliversion koodille.  Tänään koodarin päivä päättyy klo 18. Lähdemme lasten kanssa luistelemaan ja pelaamaan lätkää lähipuistoon. Ulkoilun jälkeen saunaan ja nukkumaan. Tämä oli hyvä päivä 🙂