Covid-19 ja Datasepän koodikoulu

Korona on nyt jyllännyt 2020-2021 Suomessa. Se on aiheuttanut yrityskenttäänkin paljon muutoksia.
Datasepän koodikoulu elää nyt hiljaiseloa tästä eteenpäin. Julkaiset juttuja koodaukseen liittyen, mutta leiri- ja kerhotoiminta on nyt toistaiseksi jäissä. Keskityn nyt päätyöhöni koodaukseen yritysten tietojärjestelmien parissa.

Kiitokset yhteistyökumppaneille tähän saakka!!!

Advertisement

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!

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!

Koronan vaikutuksia Datasepän koodikoulussa

Kesälle 2020 oli suunniteltu yhdessä Ylivieskan nuorisotoimen kanssa koodileirin järjestämisestä Spunikin nuorisotiloissa. Koronan leviämisen estämiseksi, myös koodileiri jäi järjestämättä, kuten moni muukin leiri. Valitettavaa, mutta terveys ennen kaikkea!

Nyt Korona aikaa lapsilta jää pois monta muutakin leiriä, kuin koodaus. Kivaa yhteistä tekemistä vanhemmille ja lapsille, ja vieläpä ilman tietokonetta löytyy mm. Linda Liukkaan koodausaiheisista kirjoista: Koodauksen alkeet, Matka tietokoneeseen, Löytöretki internetin ja Robotit.
Koodikoulu on nämä kirjat lukenut ja voi suosittaa perheille näitä nyt, kun yhteistä aikaakin on enemmän

Kirjoja voi ostaa mm. Adlibliksen verkkokaupasta:

Miten koodari ajattelee?

Kerron yksinkertaisen esimerkin, miten oma ajatukseni kulkee. Minullehan käy usein niin, että jään pohtimaan miten mikäkin esine tai juttu on koodattu toimimaan.

Otetaanpa esimerkiksi lelurobotti, joka osaa tiettyjä toimintoja.

KUVA: Coolman robotti

Laitan robotin liikkeelle (=video).
Se käynnistyy on/off painikkeesta. Seuraan robotin toimintaa. Tunnistan toistuva liikkeet ja äänet:

  • kävely: liikkuminen eteenpäin askel kerrallaan
  • pyörähdys: kerran ympäri, kaksi kertaa ympäri
  • äänet: tulitus, luritus yms.

Mietin miten saisin yhdistettyä liikkeet ja äänet ohjelmaksi? 
Vaikka silmukalla se onnistuu (=ohjelmoinnin perusrakenne).
Mikä on ohjelman käynnistävä signaali?
On/Off nappula.

Siitä voi sitten kirjoittaa pseudokoodin halutessaan (=jos et tiedä mitä pseudo on, niin käy tsekkaamassa linkistä) 🙂

Esim.

tee kunnes on/off = off {
anna luritus ääni;
kävele 1 askel;
anna luritus ääni;
kävele 1 askel;
anna luritus ääni
kävele 1 askel;
pyörähdä 2 kertaa;
anna tulitus ääni;
kävele 1 askel;
anna tulitus ääni;
kävele 1 askel;
anna lur tulitus ääni;
kävele 1 askel;
pyörähdä 1 kertaa
;
}

Ja sitten jo tuntuukin – olisipa tämäkin helppo koodata !!!
Kaikkien ei tarvitse osata koodata, totta. Mutta ymmärtämällä yllä olevan esimerkin idean, ymmärtää jo paljon koodauksesta 😀

Ideoita koodikerhoon

Tyttöjen mukaan saaminen koodauksen pariin on haastavaa – etenkin pienellä paikkakunnalla, kun potentiaalisia koodikerholaisia muutenkin vähemmän. Olen järjestänyt koodikerhoja kyläkoululla ja kaupungin nuorisotiloissa. Vinkkinä muille koodikerhoa suunnitteleville, että antakaa kerhon nimeksi Mediakerho tms. Siten saatte mukaan enemmän tyttöjä!

Olen asiaa pohtinut ja mielestäni on kyse vanhoista asenteista ”pojat on teknisiä” yms. Ja vaikutus tulee todennäköisesti lasten vanhempien kautta. Kun lapset kerhooon tulevat – sekät tytöt että pojat – kokemukseni mukaan saattavat tytöt olla jopa innokkaampia ja nokkelampia koodaukseen liittyvissä tehtävissä.

Täältä voit ottaa ideoita omaan kerhoosi, materiaalia tulee jatkossakin lisää koko ajan:
https://raudaskoskenkoodikerho.wordpress.com/spuken-mediakerho-2019/


Miten onnistuu sovelluksen koodaaminen omaan älypuhelimeen Matti Meikäläiseltä?

Varmasti onnistuu jokaiselta, joka osaa älylaitteita käyttää. Tässä ohjeet:
https://raudaskoskenkoodikerho.wordpress.com/2018/03/27/koodataan-ohjelma-alypuhelimeen-mit-app-inventor/

Tästä aiheesta olen jo aiemminkin kirjoitellut artikkelin, kun kokeilin älylaitteen koodausta alakoululaisten kanssa:
https://atomic-temporary-79363604.wpcomstaging.com/2018/05/18/koodaa-sovellus-omaan-alypuhelimeen-koodausvalipala-5-7-luokille/

SIITÄPÄ VAIN KOKEILEMAAN!

Woocommerce verkkokaupan pystytys – tarvitaanko siinä koodauksen taitoja?

Kyllä Woocommerce verkkaupan saa pystytettyä ilman koodausta. Mutta koodausosaamisesta on hyötyä, ja se nopeuttaa kaupan ominaisuuksien omaksumista – onhan taustalla kuitenkin tietokanta ja PHP-koodia. Lisäksi teknologiaosaamista verkossa toimimisesta olisi hyvä olla kaupan perustajalla sen verran, että tietää varmuuskopioiden ja päivitysten tarpeellisuuden ja osaa pyytää niihin apua.

Lue artikkelista lisää siitä, miten helppo verkkokauppa on pystyttää! Verkkokaupan menestykseen tarvitaan kuitenkin muutakin, kuin pystytys ja siitäkin ensimakua seuraavassa:

Woocommerce on maailman suosituimpiin kuuluvan sisällönhallintatyökalun WordPressin ilmainen lisäosa, jolla verkkokaupan saa yksinkertaisimmillaan päivässä pystytettyä koodaamatta riviäkään itse. Jos siis sinulla on jo muutama tuote kuvineen, hintoineen ja kuvauksineen mietittynä valmiiksi. Worpress-sivuston ja verkkokauppa lisäosan voi helposti asentaa webhotelliin, mutta yksinkertaisempi on lähteä liikkeelle WordPress.com alustalla, ellei sinulla ole pajon kokemusta. Sen vuoksi yksinkertaisempi, ettei WordPress.com palvelussa olevan sivuston hoito ja ylläpito vaadi niin paljon asiantuntemusta ja resursseja (mm. tietoturva päivitykset, versiopäivitykset). Tosin myös webhotellit tarjoavat nykyään WordPress-sivuston hallintaa, joka sisältää käyttäjän valitsemat päivitykset tietoturvan ylläpitämiseksi sivustolla. Webhotellissahan käytät luonnollisesti omaa http://www.omakauppa.fi osoitetta, mutta WordPress.com:iin on mahdollista myös kytkeä oma osoite. Huomaa, että WordPress.com alustalle tehty verkkokauppa on myöhemmin siirrettävissä webhotelliin suhteellisen helposti.

Jetpack

Woocommerce verkkokaupan pystytys vaiheet yksinkertaistettuna, kun käytetään WordPress.com verkkoalustaa:

  • Luo tunnukset WordPress.com sivustolle.
  • Luo sivusto: Voit lisätä sivuston ensin ilman virallista osoitetta ja ostaa myöhemmin sille oman osoitteen esim. http://www.omakauppa.fi
    Jos et halua keskeneräisen sivuston näkyvän hakukoneille, niin estä se sivuston Asetukset – Lukeminen- kohdassa ruksimalla Kiellä sivuston näkyminen hakukoneille. Tosin sivusto, jota ei ole vielä hakukoneoptimoitu, ei kovin helposti löydy hakukoneiden avulla, siitä ei ole ”pelkoa”.
  • Lisää sivustolle Woocommerce lisäosa:
    Sivuston tulee olla tasoa Business tai eCommerce, jotta voi lisätä sinne Woocommerce lisäosan.
  • Valitse ensin ulkoasu verkkokaupalle:
    Se voidaan valita valmiista ulkoasu-teemoista, joita on todella paljon erilaisia niin maksuttomia, kuin maksullisia. Tai jos osaamista on, niin voi koodata sellaisen teeman, kuin haluaa.
  • Muokataan perusasetuksista ainakin:
    ALV-veroluokat, Toimitustavat, Maksutavat.
  • Lisätään tuotteet:
    Tuotteet voidaan lisätä käsin, tai tuoda esim. olemassaolevasta järjestelmästä excel-tiedossa.

Verkkokauppasi on nyt valmis testiin, ja voit syöttää sinne tilauksen. Sisällön hallinnasta en tässä artikkelissa kerro enempää, koska se on jo toinen tarina!

Verkkokaupan luominen olemassa oleville kivijalkakaupan tuotteille vaatii yleensä integraation tekemistä tuotteiden varastohallinnasta Woocommerceen. Tähän rajapintaan on myös lisäosia olemassa, mutta koodausosaamista on hyvä olla, jos integraatioon on tarvetta! Ja palvelunahan integraation tekeminen löytyy useilta eri koodausyrityksiltä.

Woocommerce lisäosat:
Woocommecelle löytyy hyvin paljon erilaisia lisäosia, joilla saat toiminallisuutta kauppaasi mm. erilaisia maksutapoja. Lisäosia on saatavissa Woocommerce:lta ja kolmansilta osapuolilta. WooCommercen lisäosien osalta rahat voi saada 30 päivässä takaisin, jos ollut sopiva! Tässä luetteloitu joitakin yleisesti käytettyjä vuosimaksullisia lisäosia, joissa päivitykset ja käyttäjätuki mukana hinnassa:

  • Woocommmerce Subscriptions:
    kuukausittain toimitettavat palvelut ja niiden laskutus
  • WooCommerce bookings:
    tilojen varaus
  • WooCommerce box office:
    lippujen myynti
  • WooCommerce order barcodes:
    Viivakoodit tilauksiin / tuotteisiin
  • WooCommerce PDF Invoices & packing slips:
    toimitustlistat yms.
  • WooCommerce mobile app:
    kaupan hallinnointi älypuhelimella löytyy
  • WooCommerce Cost of Goods:
    kateraportteja yms.
  • WooCommerce cart reports:
    ostoskorin analysointia
  • WooCommerce Google Analytics:
    verkkokaupan analytiikka näkyviin googlen palveluun erikseen
  • WooCommerce MailChimp integration:
    postituslistojen luonti kaupan asiakkaista
  • WooCommerce membership:
    esim. eritasoisia kuntosali jäsenyyksiä

Kokemuksia koodauksen opettelusta Bomberbotilla

Kävimme 6. luokan kanssa Bomberbotin alkeiskurssin läpi. Lähtötaso oli, että oppilaat olivat aiempina vuosina tutustuneet koodaukseen jonkin verran mm. code.org tehtävillä. Osa oppilaista opiskeli koodausta ensimmäisen kerran peruskoulun aikana.

Bomberbotin Alkeet- osassa aloitettiin opettelemalla mitä ohjelmointi on. Sitten käytiin läpi ohjelmoinnin perusrakenteita: lause, ehtolause, silmukka, funktio ja muuttuja. Me kävimme Bomberbotin kaksi aihealuetta yhtenä päivänä läpi, ja tämä tuntui sopivalta tahdilta.

Kuva: tuntien sisällöt

Viimeisellä kerralla kerrattiin aiemmin opittujen rakenteiden käyttöä, ja paneuduttiin oma ohjelman suunnitteluun. Tämä tarkoitti Bomberbotissa oman tason suunnitelman tekemistä. Suunnitelmat eli omat tasot testattiin parin kanssa..

Ohjelman tekemiseen kuuluu koodauksen lisäksi suunnitelman laatiminen ja testaus. Nämä kaikki osa-alueet tuli käytyä läpi bomberbotin Alkeet- osassa.
Voin suositella Bomberbotia muillekin kuutosluokille. Tällaisella sisällöllä tulee opeteltua koodauksen perusteet (=perusrakenteet) ja jokainen tekee lopuksi myös oman graafisen ohjelman suunnitelman, jonka toimivuus testataan.
Eli OPS2016 tavoitteet 6. luokan osalta tulevat tässä minimissään täytettyä.

Innokkaimmat oppilaani tekivät myös Bomberbotin Jatko-osan tehtäviä omatoimisesti, joten nekin sopivat tasoltaan tämän ikäisille. Jatko-osaa voi mielestäni suositelle niille, jotka kiinnostuvat ohjelmoinnista Alkeet- osan jälkeen, koska jatkossa käsitellään edistyneempi koodauksen juttuja mm. debuggaus!

Annoin oppilaille arvosanat 2h x 5pv kurssin jälkeen. Arvostelu perustui ahkeruuteen eli tehtyjen tehtävien määrä kurssilla (sen näkee bomberbotista) ja lopputyöhön, joka oli oman tason suunnitelma ja ratkaisuehdotus. Keskiarvoksi tuli 7,5. Lisäämällä harjoittelua saisi keskiarvon helposti yli 8, koska monikaan ei tehtäviä tehnyt kotona.

Kokemuksena tästä jäi hyvä mieli!