Koiramainen ohjelmointikilpailu alkaa taas. Viime vuoden tulokset ja ohjelmien arvioinnit löytyvät artikkelista Koiramaisen ohjelmointikilpailun tulokset. Nyt on tullut taas aika Selma-koiran laittaa uusi ohjelmointitehtävä tulille. Selmalta on kyselty tosielämän ohjelmointihaasteita ja nyt sellaisen ratkaisua on mahdollista pohtia.
Ohjelmointia voi siis harjoitella monin tavoin ja yksi hauskimmista on osallistua leikkimieliseen ohjelmointikisaan, sijoittua kolmen parhaan joukkoon ja voittaa kovakantinen versio kirjasta ”Pieni ohjelmointikirjanen – Kanaherkun tuoksuinen johdatus funktionaaliseen ohjelmointiin”. Jos yhtä hyviä vastauksia on enemmän kuin 3, niin kirjavoittajat arvotaan tuosta joukosta. Kirja on 25 kappaleen painos ja koiramainen keräilyharvinaisuus suomalaisessa ohjelmointikirjallisuudessa.
2021 Kisatehtävä
Selma-koira on päättänyt rakentaa ystäviensä Topin ja Paten kanssa kirjanpito-ohjelman, jotta koiramainen liiketoiminta saataisiin edes joten kuten hallintaan. Ystävykset tarvitsevat ohjelmaansa pienen algoritmin, joka saa syötteenä kirjanpidon vientejä ja joka tuottaa kirjanpidon vientejä.
Vientiin liittyy tilinumero ja toinen numero, joka kuvaa vientiin liittyvää rahamäärää. Jotkut tilinumeroista ovat automaattinumeroita, joiden syöttäminen tilin numeroksi johtaa siihen, että vientien joukko muodostuu osittain automaattisesti sen lisäksi, mitä on syötetty manuaalisesti.
Ohessa esimerkki. Vahvennetulla esitetyt viennit kuvaavat jonkin tositteen automaattisesti muodostettuja vientejä. Esimerkissä automaation laukaisee tilinumero 3010. Automaation avulla esimerkissä arvonlisäverokirjaus syntyy automaattisesti. Automaation avulla syntyneet viennit eivät saa johtaa uusien automaatiorivien luomiseen. Tämä tarkoittaa sitä, että jos tili 1700 olisi esimerkissä automaatiotili ja tuotosta käytettäisiin uudelleen syötteenä, niin vienti, jossa on tilinumero 1700 ei johtaisi uusien automaatiorivien syntymiseen.
Syöte:
Tilinumero Rahamäärä
4008 560
3010 900
6000 2300
Tuotos:
Tilinumero Rahamäärä
4008 560
3010 721,81
1700 900
2700 174,19
6000 2300
Laadi ohjelma, joka saa syötteenä kirjanpidon vientejä ja tuottaa vientejä, joihin on sovellettu automaatiota. Voit itse päättää logiikan (millaisia automaattivientejä milläkin tilinumerolla syntyy), jonka mukaan automaatio toimii. Jos olet kirjanpitäjä, voit tietysti soveltaa kirjanpidon ideaa ja laatia hyödyllisen algoritmin. Jos et tunne kirjanpitoa ja olet tässä tilanteessa enemmän ns. koiramaisempi ohjelmoija, niin voit soveltaa sellaisia sääntöjä kuin haluat. Huomaa, että hauskoilla vastauksilla pärjäsi hyvin viime vuodenkin kisassa – emme ole tosikkoja. Tee niin monta sääntöä, että voit sanoa ohjelmasi toimivan. Laadi ohjelma niin, että siinä on myös osa, jossa ohjelmaa testataan jollain testisyötteellä.
Ohjelmointikielen voi tänä vuonna valita seuraavista: JavaScript, Scala, C/C++, Java, C#, Python, Haskell, PHP, Rust, Go tai Racket. Laita vastauksen mukana nimesi, osoitteesi, puhelinnumerosi, niin osaamme lähettää palkinnot oikeisiin osoitteisiin. Vastauksissa arvioidaan mm. luettavuutta, ylläpidettävyyttä, sivuvaikutuksettomuutta ja tietysti hauskuutta.
Kysymykset ja tarkennukset kisatehtävään
Lisäkysymyksiä kilpailusta voit esittää Zoom-tapaamisessa 12.3.2021 klo 10, johon voit osallistua tästä linkistä: https://us02web.zoom.us/j/82006037528?pwd=bUgrUWFOWXdkUjFNdTN2d29WZ2RuUT09. Tallennamme kysymykset ja jaamme sen kaikille, jotta muutkin kuin osallistujat saavat mahdollisia tarkennuksia ”speksiin”.
Arviointiin vaikuttaa ohjelman lisäksi, miten työn tekijä on perustellut valintojaan – ohjelman voi toteuttaa monin eri tavoin ja kommentteihin kannattaa lisätä tietoa miksi valitsi tietyn tavan tehdä jonkin asian ja kenties jopa verrata sitä toiseen vaihtoehtoon, jota ei vastaukseensa sisällyttänyt. Osallistumalla kilpailuun annat Ideal Learning Oy:lle oikeuden esittää ja arvioida githubissa olevan ratkaisusi, jotta kaikki kilpailuun osallistujat oppisivat toistensa vastauksista mahdollisimman paljon. Pidätämme myös oikeuden käyttää ohjelmanpätkiä oppimateriaaleissamme ja koulutuksissamme – erityisesti erilaisia ohjelmointikieliä vertailtaessa.
Jokainen osallistuja saa työstään arvion, voit käydä lukemassa viime vuoden vastauksen ja niiden arviot täältä, ”comments” kohdasta. Alla olevassa kuvassa näet erään kilpailijan saaman palautteen. Kisa on siis myös mitä hauskin keino kerätä palautetta omista ohjelmointitaidoista. Kuvassa näet erään kilpailijan viime vuoden kisassa saaman palautteen.
Vastausaika loppuu perjantaina 17.4. ennen klo 16 tai kun enintään 30 vastausta on vastaanotettu. Ilmoitamme tällä sivulla, jos 30 vastaajan raja täyttyy ennen 17.4. Lähetä vastaus zip-pakettina sähköpostitse osoitteeseen juuso.vuorinen@ideallearning.fi, niin saamme sen aikanaan kisan jälkeen gistinä jakoon kaikille.
Tulokset julkaistaan 29.4.2021
Voittavat vastaukset ja voittajien nimet julkaistaan arvioiden kera siman ja serpentiinin merkeissä 29.4. klo 10 tässä Zoom-tapaamisessa:https://us02web.zoom.us/j/86143397356?pwd=cXlsT2lqUWFxOEtPbm5EczNia0V5UT09 ja Ideal Learning Oy:n verkkosivuilla. Tästä näet miltä viime vuoden vastaukset näyttivät: https://gist.github.com/search?p=1&q=koiramainenOhjelmointikisa2020. Saimme erinomaisia ja erinomaisen hauskoja vastauksia – niitä odotamme tänäkin vuonna. Kolmelle parhaalle laitamme postissa koiramaiset kirjat kovilla kansilla.
Alalle pyrkiville
Viime vuoden kisassa oli mukana niin alan töitä tekeviä kuin opiskelijoita ja harrastajiakin. Olipa joukossa muutama tuleva alanvaihtajakin. Koska ohjelmoinnin perusteiden opiskelun helposti vuodenkin uurastuksen takana, Koiramaiset ohjelmointikilpailut ovat mitä parasta valmistautumista yrityksemme järjestämiin 8 kuukautta kestäviin maksuttomiin Full Stack- ohjelmointiin keskittyviin ohjelmointikoulutuksiin, joista on löydetty töihin erinomaisesti. Uusi koulutus alkaa taas lokakuussa 2021; kisailu ja ohjelmointiharjoittelu on mitä parhain tapa valmistautua kurssin pääsykokeeseen ja itse kurssiin. Kisaan osallistujana voit halutessasi laittaa sähköpostiin mukaan myös lyhyen CV:n ja tiedon siitä, että olet vailla työtä ja haet parhaillaan ohjelmistosuunnittelutöitä tai olet päättänyt vaihtaa uraa ohjelmistosuunnittelun pariin. Otamme syksyllä 2021 yhteyttä asian tiimoilta ja tiedustelemme, vieläkö tarve oppia ohjelmistosuunnittelijaksi on akuutti.
Osa kurssilaisistamme on perustanut omia yrityksiä, joten usko omiin kykyihin kasvaa taitojen myötä, löysitpä työpaikan sitten toisen palveluksessa tai perustitpa oman yrityksen kurssikavereiden kanssa. Ohjelmistosuunnittelijoita etsivät yhteistyökumppanimme arvostavat hyviä perusohjelmointitaitoja, jotka kehittyvät vain harjoittelemalla ja ajan kanssa.
Kannattaa muistaa ilmaiset React-videomme ja viime kevään ilmaiset React-kurssit: https://www.ideallearning.fi/index.php/blogi/109-react-videot
Eikä unohtaa kannata Selmakoiran Haskell-aiheisia ohjelmointipähkinöitäkään: https://www.youtube.com/playlist?list=PLaPZ0rDCxLreHHJAIqkUQbdcidaksxqMO
Tsemppiä ohjelmointihommiin ja mitä hauskinata kevättä!
Selma-koira ja kumppanit
jk. Jos kisatehtävän tekee Haskellilla, apua voi löytyä täältä Kanaherkun tuoksuinen johdatus funktionaaliseen ohjelmointiin – ilmainen kirja!
Koirakirjat menevät voittajille