Hyppää pääsisältöön

Koodi on kaikkialla – lyhyt johdatus ohjelmoinnin maailmaan

Televisio, jossa koodia. Kuva: Yle/Annukka Palmén-Väisänen Koodi,suoratoisto,televisio (joukkoviestimet),tietokonekielet

Elokuvissa näemme usein hulluja koodareita, jotka silmät kiiluen hakkaavat tietokoneelle yötä myöten käsittämättömiä komentorivejä toisensa perään. Oikeasti koodaaminen eli tietokoneohjelmointi ei ole lainkaan noin mystistä. Se on oikeastaan vain yksityiskohtaisten ohjeiden antamista tietokoneelle.

Mitä ohjelmointi on?

Nykyisin ohjelmakoodia on kaikkialla. Tietokoneiden, tablettien ja älykännyköiden lisäksi esimerkiksi jääkaapeissa, liesissä, ilmalämpöpumpuissa ja autoissa. Koodin määrä elämässämme lisääntyy koko ajan, vaikka emme sitä ehkä huomaakaan.

Esimerkiksi uusimmissa Fordin automalleissa on ohjelmakoodia jopa 150 miljoonaa riviä. Ilman ohjelmistoja kaikki tietokoneet ja muut älylaitteet ovatkin vain hyödytön kasa elektroniikkaa.

Ohjelmointi ei ole lainkaan mystistä. Siinä vain annetaan tietokoneelle tarkka toimintaohje eli algoritmi, jonka avulla se tekee halutun asian. Tietokoneohjelma voi esimerkiksi vähentää palkastasi verot ja sivukulut ja laskea näin käteen jäävän nettopalkan. Tätä tarkoitusta varten tietokone tarvitsee tiedon veroprosentistasi sekä sivukuluista ja käskyn, että ne pitää vähentää alkuperäisestä luvusta.

Koska tietokone ei suoraan ymmärrä ihmisen ohjeita, täytyy ohjeet kirjoittaa jollakin tietokoneen ymmärtämällä ohjelmointikielellä. Tällaisia nykyään yleisesti käytettyjä ohjelmointikieliä ovat mm Python, Java, C++ ja Ruby.

Yksinkertainen esimerkki: Piirrä ympyrä

Yksinkertaisuuden takaamiseksi käytössä on suomalainen Turtle Roy -ohjelmointikieli, jota käytetään mm. lapsille suunnatuissa koodikouluissa.

YMPYRÄN PIIRTÄMISEEN TARVITTAVAT KOMENNOT
fd = mene eteenpäin (forward)
lt = käänny vasemmalle (left turn)
sequence = ketjuta
repeat = toista

Ympyrä piirretään antamalla 360 kertaa komenot mene eteenpäin 1 pikseli fd 1 ja käänny yksi aste vasemmalle lt 1.

Mutta koska nämä kaksi tehdään aina peräkkäin, voidaan ne yhdistää sekvenssiksi

sequence [fd 1, lt 1]

Nyt olemme ohjelmoineet pätkän, jossa tietokonetta ohjeistetaan menemään 1 pikseli eteenpäin ja kääntymään sen jälkeen 1 aste vasemmalle. Jos kyseisen koodin antaa 360 kertaa, niin kone on piirtänyt ympyrän. Koska kukaan ei halua toistaa koodia, niin ohjelmoimme koneen toistamaan koodin 360 kertaa

repeat 360 (sequence [fd 1, lt 1])

Koodi on valmis!

Kokeile koodia Turtle Royssa

Ilman ohjelmistoja kaikki tietokoneet ja muut älylaitteet ovat vain hyödytön kasa elektroniikkaa.

Usein vaaditun tehtävän suorittamiseen tarvitaan erilaisia ehtolausekkeita, vertailuja ja toistolausekkeita.

Muutamia esimerkkejä tällaisista lausekkeista liittyy vaikkapa nopanheittoon. Tietokoneelle nopanheitto tarkoittaa yhden ja kuuden välillä olevan kokonaisluvun arpomista satunnaislukugeneraattorilla:

KOODI: Heitä noppaa kunnes saat silmäluvuksi vähintään 5

OHJELMOINTIRAKENNE: EHTOLAUSEKE JOSSA LUKUMÄÄRÄÄ EI OLE MÄÄRITELTY

KOODI KÄSKY
import random # tuo random-moduuli, jolla käsitellään satunnaislukuja
while True: # niin kauan kuin ehtolauseke on totta, suorita seuraavat käskyt
    silmaluku = random.randint(1,6) # luo arvo nimeltä silmaluku, jonka arvo on satunnaisluku väliltä 1-6
    if silmaluku >= 5: # jos silmaluku -arvo on suurempi tai yhtä suuri kuin 5
        break # lopeta

KOODI: Heitä noppaa kuusi kertaa

OHJELMOINTIRAKENNE: SILMUKKA

KOODI KÄSKY
import random # tuo random-moduuli, jolla käsitellään satunnaislukuja
heitot = [] # tee tyhjä lista, jonka nimi on "heitot"
def noppa(n): # tee funktio nimeltä noppa, jonka parametri on n
    for i in range(n): # käy läpi kaikki (n kertaa)
        silmaluku = random.randint(1, 6) # luo arvo nimeltä "silmaluku", jonka arvo on satunnaisluku välillä 1-6
        heitot.append(silmaluku) # lisää "silmaluku" listaan nimeltä "heitot"
noppa(6) # suorita funktio "noppa" parametrillä 6, eli tee funktio 6 kertaa.
print("Tulos:", heitot) # Tulosta ruudulle sana "Tulos:" ja listan "heitot" sisältö.

Edellisissä esimerkeissä esitellyt ohjeet on kirjoitettu Python-kielellä if, if-else, for in range, while ym. käskyillä. Vastaavanlaisia rakenteita löytyy lähes kaikista ohjelmointikielistä, niiden kirjoitusasu vain vaihtelee kielestä toiseen.

Tietokone tekee mitä käsketään, mutta ei välttämättä sitä mitä halutaan

Ohjelmointi vaatii tarkkuutta ja huolellisuutta, koska tietokone noudattaa saamiaan ohjeita mekaanisesti. Tietokone tekee mitä käsketään, mutta ei välttämättä sitä mitä halutaan. Pienikin virhe ohjelmassa voi aiheuttaa täysin odottamattoman lopputuloksen.

Joskus ohjelmointivirhe voi olla jopa kohtalokas, esimerkiksi Yhdysvalloissa 1980-luvulla koodausvirheen takia säteilyhoitolaite antoi viidelle potilaalle tappavan annoksen säteilyä. Toinen tunnettu esimerkki ohjelmointivirheestä on Ariane 5 -avaruusraketin tuhoutuminen 40 sekuntia laukaisun jälkeen vuonna 1996. Lähellä oli, että raketista putoavat romut olisivat vahingoittaneet laukaisua seuranneita vieraita.

Toisaalta, jos ohjelma on koodattu oikein, tietokone suorittaa sen erittäin nopeasti ja virheettömästi.

Konekielistä symbolisiin ohjelmointikieliin

Tietokoneen ohjelmointikieliä on kehitetty paljon vuosikymmenten varrella. On tulkinnanvaraista mikä oikein on ohjelmointikieli, ja sen vuoksi niiden määrää on mahdoton sanoa täsmällisesti. Joka tapauksessa niitä on satoja, eräiden laskutapojen mukaan jopa tuhansia.

Ensimmäiset ohjelmointikielet olivat niin sanottuja konekieliä, joita tietokoneen suoritin ymmärsi. Niillä kirjoitetut ohjelmat olivat pelkkiä nollien ja ykkösten jonoja, ja ne syötettiin syötettiin tietokoneelle kytkimiä kääntelemällä. Esimerkiksi konekielinen käsky 10110100 10110111 merkitsee suorittimelle, että se laskee kahden sisäisen rekisterin sisällöt yhteen ja siirtää tuloksen kolmannen rekisterin osoittamaan muistipaikkaan.

Myöhemmin kehitettiin kuitenkin ihmiselle havainnollisempia tapoja esittää käskyt tietokoneelle, koska konekielinen koodaaminen oli ymmärrettävästi vaikeaa ja vaati äärimmäistä tarkkuutta. Näin syntyi symbolinen konekieli eli assembler language. Symbolisella konekielellä edellinen käsky olisi esimerkiksi muotoa ADD A,B,@C

Nämä havainnollisemmat ohjelmat oli sitten käännettävä erityisellä ohjelmalla, kääntäjällä, konekieliseksi koodiksi, joka voitiin syöttää tietokoneeseen sen ymmärtämässä muodossa, eli bitteinä. Vielä 1980-luvulle saakka ohjelmakoodia saatettiin syöttää tietokoneelle reikäkorteilla.

Ohjelmointikielien tarkoitus on toimia ihmisten ja tietokoneiden välisenä rajapintana

Symbolisenkin konekielen käyttö on vaivalloista, joten yleensä ohjelmoinnissa käytetään korkean tason ohjelmointikieliä. Niiden tarkoitus on toimia ihmisten ja tietokoneiden välisenä rajapintana. Nykyisin yleisessä käytössä olevia ohjelmointikieliä ovat esimerkiksi Java, C-kieli ja Python. Nämä korkean tason ohjelmointikielet eivät myöskään ole aikaisempien kielien tapaan konekohtaisia, vaan mahdollistavat myös saman ohjelman käytön eri konekieliä käyttävissä tietokoneissa.

FORTRAN-ohjelmointikieli mullisti tietokonemaailman

Ensimmäistä tietokoneohjelmaa on vaikea nimetä. Se on myös määrittelykysymys.

Jo kauan ennen elektronisten tietokoneiden aikaa mekaanisten koneiden ohjaamiseen käytettiin algoritmeja. Usein ensimmäisenä tällaisena pidetään Ada Lovelacen laatimaa algoritmia Charles Babbagen mekaaniselle tietokoneelle v. 1842. Tämä ohjelma laski Bernoullin lukuja.

Ada Lovelacen algoritmi Bernoullin lukujen laskemiseksi. Sitä pidetään ensimmäisenä tietokoneohjelmana Lovelace's diagram from Note G, the first published computer algorithm Kuva: Public Domain/Wikipedia Ada Lovelace,tietokoneohjelma

Ensimmäisenä korkean tason ohjelmointikielenä pidetään saksalaisen insinöörin Konrad Zusen> toisen maailmansodan aikana kehittämää tietokoneohjelmaa Plankalkülia, jota hän käytti mm. shakkivastustajanaan Z3 tietokoneessaan. Plankalkül hautautui kuitenkin arkistoihin eikä sillä ole ollut muuta kuin kuriositeettiarvoa.

Piti odottaa 1950-luvun puoliväliin asti, ennenkuin syntyi ensimmäinen korkean tason ohjelmointikieli, jolla oli merkitystä. Tuolloin kehitetty FORTRAN (FORmula TRANslator) yleistyi nopeasti samalla kun elektroniset tietokoneet kehittyivät. Iästään huolimatta sitä käytetään edelleen runsaasti erityisesti raskasta tieteellistä laskentaa vaativissa tehtävissä, mitä varten se aikanaan kehitettiinkin.

Monet sen ominaisuudet: taulukkomuuttujat, muuttujan ohjaamat silmukat (ns. for-silmukat) sekä haarautuva if-lause, löytyvät nykykielistäkin.

C LUVUNARVAUSPELI
LUKU=42
LKM=0
10 PRINT*, 'ANNA LUKU 1...100'
READ*, IARVAUS
LKM=LKM+1
IF(IARVAUS.LT.LUKU) THEN
PRINT*, 'LIIAN PIENI ARVAUS'
GOTO 10
ELSE IF(IARVAUS.GT.LUKU) THEN
PRINT *, 'LIIAN SUURI ARVAUS'
GOTO 10
END IF
PRINT*, 'OIKEIN'
PRINT*, 'TARVITSIT ',LKM,' ARVAUSTA'
STOP
END

Ohjelman toiselta riviltä ilmenee että arvattava luku on 42 (LUKU=42). Jos arvaa liian pienen luvun, ohjelma kertoo rivillä kahdeksan arvauksen olevan liian pienen (PRINT*, 'LIIAN PIENI ARVAUS'). Jos se on liian iso niin vastaavasti se kertoo rivillä 14 luvun olevan liian suuri. Kun arvaus osuu kohdalle se kertoo arvauksen olevan oikein ja arvausten lukumäärän.

Voit tässä alla kokeilla miten edellä oleva koodi toimii (klikkaa kursoria aloittaaksesi) :


Web-liittymän vuoksi ohjelma on tässä toteutettu JavaScript-kielellä, mutta käyttäjälle edellinen Fortran-ohjelma näyttäisi siis tältä.

Yhä uusia ohjelmointikieliä syntyy

1950-luvun lopussa kehitettiin COBOL (COmmon Business Oriented Languange) joka on kaupallis-hallinnollinen kieli. Kieli oli tarkoitettu suurten tietomäärien yksinkertaisiin käsittelyyn. Cobolin käskyt on laadittu niin lähelle käyttöenglantia kuin mahdollista. Jos ohjelman parametreiksi ja muuttujiksi vielä valitaan sopivia sanoja, saattaa koodaamista osaamatonkin ymmärtää mitä ohjelma oikein tekee.

1960-luvun alussa kehitettiin ALGOL. Siitä tuli Euroopassa 1960-luvun lopun suosituin kieli. Algol on siinä mielessä merkityksellinen kieli, että sen pohjalta kehitettiin myöhemmin paljon käytössä olleet Pascalin ja C-kielen eri versiot.

Pascal kehitettiin 1960 ja -70-lukujen taitteessa erityisesti opetuskäyttöä varten. Se oli hyvin käytetty ohjelmointikieli Suomessakin opetuskäytössä 1970-luvulta 1990-luvun alkupuolelle asti kunnes C-kieli syrjäytti sen.

Toinen paljon opetuskäytössä ollut ohjelmointikieli on 1960-luvun puolivälissä kehitetty BASIC (Beginner´s All-purpose Symbolic Instruction Code). Basicistä on kehitetty tehokkaampia uudempia ohjelmointikieliä, kuten Microsoftin Visual Basic.

Kotitietokoneiden yleistyessä 80-luvulla moni sai ensikosketuksensa ohjelmointiin nimenomaan Basic-kielellä, jolla pystyi tekemään omia pieniä pelejä mm. Commodore 64, Vic-20 tai Amiga-koneisiin. Näitä ohjelmia levitettiin jopa radio-ohjelman kautta, kuten kerrotaan.

Yleisradio opetti Basic-ohjelmointia 1970-luvulla jopa televisiossa.

Algolista kehitetty C on yleiskäyttöinen ohjelmointikieli, joka on levinnyt laajalle 1970-luvulta lähtien. Sen vahvuuksia ovat yksinkertaisuus, tehokkuus ja joustavuus ja siirrettävyys. Monet uudemmat ohjelmointikielet, kuten C++, C# ja Java pohjautuvat C-kieleen.

Seuraavassa esimerkkiohjelma C-kielestä, joka kysyy käyttäjältä kaksi lukua ja tulostaa niiden summan. C-kieli poikkeaa suhteellisen vähän konekielestä ja sen vuoksi sen kieliasu ei ole maallikolle yhtä helposti aukeavaa esim. Fortran-ohjelmointikieli. Toisaalta sillä kirjoitetut ohjelmat ovat vastaavasti hyvin pienikokoisia ja tehokkaita.

#include <stdio.h>
int main(void)
{
int a, b, c;
printf("Anna 1. luku:\n");
scanf("%d", &a);
printf("Anna 2. luku:\n");
scanf("%d", &b);
c = a + b;
printf("Antamiesi lukujen summa on %d\n", c);
return 0;
}

Voit tässä alla kokeilla miten edellä oleva koodi toimii (klikkaa kursoria aloittaksesi):

Web-liittymän vuoksi ohjelma on tässä itse asiassa toteutettu JavaScript-kielellä, mutta käyttäjälle edellinen C-ohjelma näyttäisi siis tältä.

Internetin kehitys tuo uusia tarpeita ja uusia kieliä

1990-luvun puolivälissä ohjelmoinnin fokus siirtyi kohti verkkosovelluksia internetin leviämisen myötä, ja näitä varten kehitettiin uusia ohjelmointikieliä. Tässä esitellään niistä muutamia yleisimpiä.

Ylen etusivu 22.5.2001. Ylen etusivu 22.5.2001. Kuva: Yle Internet,tietokoneet

Ensimmäisiä erityisesti verkkosovelluksia varten kehitetty kieli oli oli Java, joka on C-sukuinen oliokieli. Java on tällä hetkellä maailman yleisin ohjelmointikieli. Sillä toteutetut ohjelmat toimivat esimerkiksi Windows-, Linux- ja Mac-ympäristöissä. Myös Androidin sovellukset kirjoitetaan Java-kielellä, mutta Windows-maailmaan tarkoitetut ohjelmat eivät suoraan toimi Androidilla (ja päinvastoin).

1990-luvulla kehitettiin myös ohjelmointikieli Python. Se on monipuolinen, tulkattava ohjelmointikieli ja sopii erityisesti verkkosovelluksiin. Pythonia voi käyttää myös vaativassa ja tieteellisessä laskennassa ja sitä käyttäen voi tuottaa myös graafisia esityksiä. Pythonia pidetään helppona oppia sen yksinkertaisen syntaksin(lauseopin) ja korkean tason tietorakenteiden takia. Monet suosittelevat sitä ensimmäiseksi ohjelmointikieleksi.

Myös Ruby on ohjelmointikieli, jota käytetään erityisesti verkkopalveluiden toteuttamiseen Ruby on Rails (RoR) laajennuksen avulla. Ruby on monessa suhteessa mielenkiintoinen kieli, ja selkeän syntaksin vuoksi sen alkeita pidetään melko helppoina oppia. Esimerkiksi mikroblogipalvelu Twitter on toteutettu Rubyllä.

PHP kehitettiin webin alkuaikoina helpottamaan dynaamisen sisällön lisäämistä kotisivuille. Sitä hyödynnettiin aluksi erityisesti web-lomakkeiden käsittelyyn. Vuosien myötä PHP on laajentunut täysimittaiseksi ohjelmointikieleksi, jota käytetään monissa suurissakin palveluissa.

JavaScrip on ohjelmointikieli, jota yleensä käytetään verkkoselaimessa toimivien skriptien eli komentosarjojen tekemiseen ja se perustuu löyhästi C-ohjelmointikieleen. Sen tärkein sovellus on mahdollisuus lisätä verkkosivuille dynaamista toiminnallisuutta. Esimerkiksi JavaSript käsky alert ('Oletko valmis?'), luo koneen ruudulle ikkunan ja siihen tekstin "Oletko valmis" ja odottaa, että käyttäjä kuittaa tämän klikkaamalla ikkunassa olevaa OK-painiketta.

Nimestään huolimatta JavaScriptillä ei ole mitään tekemistä Java-kielen kanssa.

Lisää ohjelmoinnista radio-ohjelmassa

Millaista ohjelmoijan työ sitten oikein on ja millaisia taitoja se vaatii? Ja mitä tulevaisuudessa on vielä koodaamiselta odotettavissa? Ja tarvitaanko peruskouluihin ylipäätään ohjelmointia? Näitä kysymyksiä pohditaan allaolevassa Tiedeykkösen jaksossa.

Koodi - suomi -sanakirja

Lyhyt terminologiasanasto

Algoritmi Yksityiskohtainen kuvaus tai ohje siitä, miten tehtävä tai prosessi suoritetaan. Tietokoneohjelma on algoritmi.

API Ohjelmointirajapinta on määritelmä, jonka mukaan eri ohjelmat voivat tehdä pyyntöjä ja vaihtaa tietoja eli keskustella keskenään. Hyvä esimerkki rajapinnasta on käyttöjärjestelmän rajapinta, jolla ohjelmat voivat käyttää keskusmuistia sekä tiedostoja.

Assembler Symbolinen konekieli Assemblerilla tarkoitetaan kullekin prosessorityypille ja sen käskykannalle erikseen määriteltyä laitteistoläheistä ohjelmointikieltä. Hyvin koneläheinen ohjelmointikieli, jossa konekielikäskyt on korvattu helpommin muistettavilla lyhennyksillä, kuten MOV (move, siirrä). Assemblylla voidaan tehdä nopeaa koodia ja kieli on sinänsä on hyvin yksinkertainen, mutta prosessorit eivät ole kovin yksinkertaisia, joten Assemblylla koodaaminen on työlästä touhua. Assembly on kielen nimi, kun taas Assembler on Assembly-kielen kääntäjä.

Binääriluku Kaksikantainen luku. Luku, joka on esitetty ykkösinä ja nollina (001010), niin kuin tietokone lukuja käsittelee. Lukujen esitys 2^x muodossa.

Bitti Pienin tietoalkio tietokoneessa. Binääriluvun osa; arvo voi olla 1 tai 0. (mikron virtapiireissä virtaa tai ei virtaa)

Bugi Virhe ohjelmassa. Katso myös virhe, error, mistake

Debugata Etsiä virheitä ohjelmasta, yleensä erillisellä hommaan tarkoitetulla ohjelmalla eli debuggerilla.

Do..while Suorittaa silmukan kerran ja sen jälkeen niin kauan kun ehto on tosi.

Editor Ohjelmointitarkoitukseen kehitetty tekstinkäsittelyohjelma, Ohjelma jolla kirjoitetaan lähdekoodia. Editorista on poistettu tavallisen tekstinkäsittelyohjelman tekstin muotoilua (bold, italic, ...) hoitavat toiminnot. Editoreissa voi nykyään olla ohjelmointikelen rakenteen ymmärtäviä toimintoja (esim väritys tai muotoilu)

Ehtolauseke on looginen väittämä, joka liitetään if­ ja elif­rakenteisiin. Jos ehtolauseke on tosi, suoritetaan se osio, johon lause oli liitettynä. Muussa tapauksessa suoritetaan rakenteen else-­osio tai sen puuttuessa rakenne ohitetaan kokonaan.

Else Jos if ei toteudu, niin else toteutuu. Katso "if".

For Yksinkertainen toistorakenteiden tekeminen. Käytetään yleensä kun toistetaan ohjelman rakennetta tietyn määrän.

Frontend tarkoittaa selaimen tulkitsemaa ja ihmiskäyttäjille visuaalisessa muodossa esittämää osuutta sivustosta, erotuksena palvelimen puolella toimivasta ohjelmistosta (backend). Frontendiin kuuluvat mm. tekstisisältö, värit, kuvat, typografia, käyttöliittymäkomponentit ja muut vastaavat asiat.

Funktio Funktiot ovat ohjelman sisäisiä pieniä itsenäisiä osasia. Funktion tarkoitus on, että konetta opetetaan kerran tekemään jokin asia, ja kun kone on sen oppinut, asian tekemiselle annetaan nimi. Esimerkiksi näytölle voitaisiin piirtää yksinkertainen talo komennolla ”piirräTalo”.

If Ehtolause jolla ohjelman suorituksessa voidaan tehdä valintoja. Ehtoa seuraava lohkorakenne tai lause suoritetaan jos ehto on tosi. Katso myös "else"

Java Laiteriippumaton olio-ohjelmointi kieli. Java on Sun Microsystemsillä kehitetty C++ muistuttava säieperustainen olio-ohjelmointikieli. Ilmaisten lisenssien myötä kieli ja välikooditulkit ovat levinneet kaikkiin tärkeimpiin ympäristöihin. Sunin tytäryhtiö on jo julkistanut Java-välikoodia konekielenään käyttäviä prosessoreita. Käytetään runsaasti web ohjelmien suunnitteluun.

JavaScript Netscapen kehittämä skriptauskieli, jolla voidaan laatia ohjelmia suoraan HTML-dokumentteihin. Voidaan käyttää esimerkiksi dokumenteissa virhetarkistuksiin ja tiedon esikäsittelyjen toteuttamiseen.

Koodi Joko ohjelman lähdekoodi eli kääntämätön muoto tai jo käännetty konekieli.

Käsky (­lause) Tarkoittaa yhtä loogista riviä koodia, jolla suoritetaan jokin operaatio, kuten tulostus, sijoitus tai vertailu.

Kääntäjä eli Compiler on ohjelma, jolla voidaan kääntää lähdekooditiedosto konekieliseen muotoon ajamista varten. Kääntäjä lukee koko lähdekoodin ennen kuin tuottaa funktionaalisen ohjelman.

Loop Silmukka. Toistorakenne

Lähdekoodi Tiedosto tai joukko tiedostoja, johon on tallennettu varsinaiset koodirivit yhdestä tehtävästä tai ohjelmasta.

Muuttuja Nimetty paikka, jonne voi varastoida tietoa. Nimensä mukaisesti ,uuttujan sisältöä voi muuttaa.

Olio Järjestelmän ajonaikainen osa joka suorittaa tietyn tehtävän. Olio luodaan tietyn luokan avulla eli jokaista olita vastaa luokkakaaviossa luokka, jolla opi on saatu aikaan. Metafoora: Luokka on piparkakkumuotti, jolla tehdään pipari eli olio. Samalla luokalla voidaan tehdä useita samanlaisia olioita. Samanlaisilla oliot sisältävät kuitenkin eri tietoa.

Olio-ohjelmointi Olio-ohjelmat muodostuvat ohjelmassa ja sen ympäristössä esiintyvät oliot kuvaavista luokkamäärittelyistä ja sen ohjelmaoliojoukon määrittelystä ja aktivoinnista, minkä käyttäytyminen ratkaisee ohjelman tehtävän. Ohjelmointiteknisesti olio voidaan ymmärtää yksilöidysti viitattavaksi muistitilaksi, joka osaa itse muuttaa sisältöään. Käytännössä kaikkiin yleisimmin käytettyihin ohjelmointikieliin/-ympäristöihin on kehitetty eri tasoisia olion käsitettä tai olioajattelua tukevia laajennuksia.

Silmukka Silmukan avulla sama ohjelmakoodi voidaan suorittaa useita kertoja.

Tietokanta muodostuu tietueista. Tietueita voidaan lisätä, muuttaa ja poistaa. Tietokannasta voidaan poimia tietoja tietueiden avainarvojen avulla erilaisten hakurutiinien avulla.

Tietue on useista tietoalkioista muodostuva kokonaisuus. Esimerkiksi sanakirjan osamuuttujat ovat tietueita, jotka sisältävät kaksi alkioa, avaimen ja arvon.

Toistolause Rakenne jolla sama asia tehdään kunnes tietty ehto täyttyy.

Tulkki on ohjelma, jolla voidaan suorittaa lähdekooditiedostoja. Tulkki lukee lähdekooditiedostoja sitä mukaa, kun niitä ajonaikana tarvitaan.

While suorittaa lausetta tai lohkoa niin kauan kun ehto on tosi.

Lähteinä on käytetty mm.seuraavia sanastoja, joista löytyy kattavampi lista termeistä:
http://www.netikka.net/herala/Sanak.html
http://www.doria.fi/bitstream/handle/10024/63381/isbn%209789522149701.pdf</td><p>

Lue lisää:

Kiinnostaako koodaus? Näillä pääset ohjelmoinnin alkuun

Verkosta löytyy monia verkkosivustoja jota kautta voi oppia ohjelmointia ilmaiseksi. Kokosimme niistä kiinnostavimmat.

EDIT 19.9: Korjattu ulkoasua
EDIT 21.9: Korjattu koodiesimerkkejä
EDIT. 7.12.2016: lisätty metatietoja

  • Digitreenit 19: Instagram - keskity kuviin

    Instagram-sovelluksen käyttöönotto ja ohjeet

    Instagram kasvaa hurjaa vauhtia. Sen käyttö kasvoi 10 prosenttia vuonna 2016. Näillä ohjeilla pääset alkuun ja saat muutaman vinkin käyttöönottoon.

  • Media tarvitsee laatuleiman - tältä näyttäisi läpivalaistu uutinen

    Idea, näkökulma, lähteet on tuotava entistä tarkemmin esiin.

    Tavan, jolla perinteinen media esittää uutisia täytyy uudistua. Valheita levittäviä “uutissivustoja” tulee aina uusia, joten luotettavan median pitää pystyä erottautumaan. Luotettavuutta ja läpinäkyvyyttä lisäävät ratkaisut ovat jo toimitusten käsissä, ne pitää vain ottaa käyttöön. Valtamedian täytyy löytää armoton avoimuus, tässä malli.

  • Digitreenit 18: Neljä kysymystä avuksi pilvipalvelun valintaan

    Kysy nämä itseltäsi ennen pilvipalvelun valintaa

    Kännykän tai tietokoneen muisti paukkuu taas. Yksi ratkaisu on laittaa valokuvat, videot ja muut tiedostot pilveen. Pilvipalvelu on eräänlainen kyberlokero. Jos harkitset pilvipalvelun valintaa tai vaihtoa, aloita vastaamalla tämän jutun neljään kysymykseen.

Media- ja digitaidot

  • Media tarvitsee laatuleiman - tältä näyttäisi läpivalaistu uutinen

    Idea, näkökulma, lähteet on tuotava entistä tarkemmin esiin.

    Tavan, jolla perinteinen media esittää uutisia täytyy uudistua. Valheita levittäviä “uutissivustoja” tulee aina uusia, joten luotettavan median pitää pystyä erottautumaan. Luotettavuutta ja läpinäkyvyyttä lisäävät ratkaisut ovat jo toimitusten käsissä, ne pitää vain ottaa käyttöön. Valtamedian täytyy löytää armoton avoimuus, tässä malli.

  • Digitreenit 6: 5 vinkkiä tehokkaampiin Google-hakuihin

    Vie hakutaitosi verkossa uudelle tasolle

    Google on ottanut selkeän ykkösaseman universaalina hakukoneena, mutta sekin on lopulta vain työkalu. Työkalua voi käyttää monella tapaa, ja mitä paremmin välineen tuntee sitä parempia hakutuloksia saa. Tässä viisi vinkkiä parempiin Google-hakuihin.

  • Digitreenit 10: Näin lataat karttoja puhelimesi muistiin

    Ladattuja karttoja voi käyttää ilman verkkoyhteyttä.

    Erilaisille karttasovelluksille on tarvetta varsinkin matkaillessa, mutta usein ongelmana on se, että datan käyttö on kalliimpaa ulkomailla. Lataamalla kartat puhelimeen jo kotimaassa voi kätevästi välttää datalaskun kasvamista reissussa.

  • Digitreenit 13: Yhdistä tietokone verkkoon älypuhelimella

    Näin jaat puhelimesi verkkoyhteyden muille laitteille

    Jos olet junassa, mökillä tai muuten paikassa, josta ei toimivaa langatonta verkkoa löydy, voit käyttää puhelintasi yhteyspisteenä internetiin ja jakaa sitä kautta nettiyhteyden muille laitteille. Yllättävän usein joutuu tilanteisiin, jossa toimivaa langatonta verkkoa (Wi-Fi) ei ole käytettävissä tai verkko on kovin ruuhkainen ja hidas. Nopea apu löytyy puhelimesta.

  • Valheenpaljastaja: Mitä valeuutiset ovat ja mitä ne eivät ole

    Valeuutisen käsite on hämärtynyt

    Loppuvuodesta 2016 valeuutiset olivat lähes kaikkien huulilla. Sittemmin valeuutisiksi on haukuttu suurin piirtein kaikkea aamuhartaudesta viikon luontoääneen. Valeuutista voikin nykyään huutaa aina, kun on eri mieltä jostakin. On aika palauttaa mieliin, mitä valeuutinen oikein tarkoittaa?

  • Näin sinua ohjataan Facebookissa ja internetissä

    Suosittelualgoritmit pitävät sinut kuplassa

    Näin sinua ohjataan Facebookissa ja internetissä Oletko huomannut että törmäät jatkuvasti samojen ihmisten juttuihin somessa? Näetkö netissä useimmiten mielipiteitä, joista olet samaa mieltä? Jos kuulostaa tutulta, niin olet luultavasti joutunut suosittelualgoritmien aiheuttamaan informaatiokuplaan.

  • Koodi on kaikkialla – lyhyt johdatus ohjelmoinnin maailmaan

    Ohjelmoinnin ABC yhdessä paketissa.

    Elokuvissa näemme usein hulluja koodareita, jotka silmät kiiluen hakkaavat tietokoneelle yötä myöten käsittämättömiä komentorivejä toisensa perään. Oikeasti koodaaminen eli tietokoneohjelmointi ei ole lainkaan noin mystistä. Se on oikeastaan vain yksityiskohtaisten ohjeiden antamista tietokoneelle. Tässä artikkelissa kerromme koodauksen historiasta ja selvitämme mihin ohjelmointi oikein perustuu.

  • Vallanpitäjät ovat suuria, naiset uhreja ja pakolaiset resuisia – uutiskuvat luovat omaa todellisuuttaan

    Valokuvaa ei oteta, vaan se tehdään.

    Uutiskuviin liitetään voimakas aitouden, luotettavuuden ja totuudenmukaisuuden sädekehä: kuva on totta. Mutta vaikka itse kuva olisikin totuudenmukainen, sen valintaan, rajaukseen, julkaisemiseen ja asiayhteyteen liittyy lukemattomia asioita, joilla voi muuttaa kuvan välittämää sanomaa. Uutiskuvat rakentavat maailmankuvaa lukijoille ja katsojille.

  • New York Timesin suomalainen kuvatoimittaja: Nollasisältöiset kuvat syövät medioiden uskottavuutta

    New York Timesissa mitään ei lisätä tai poisteta kuvista.

    Suomalainen Mikko Takkunen tekee maailmanlaajuisesti merkittävää uutiskuvien valintaa päivittäin työssään New York Timesin, kuvatoimittajana. Korkelaatuisesta journalismistaan tunnetussa lehdessä vaalitaan laatua, myös kuvien osalta. Muun muassa kuvankäsittelyä koskevat ohjeistukset ovat lehdessä selkeät. Mitään elementtejä ei saa poistaa eikä lisätä.

  • Finnit piiloon eikä ketään saa loukata - 6 kysymystä Instagram-suosikeille

    500 miljoona käyttäjää Instagramissa. Tapasimme 2 heistä.

    Tiedätko kuka on Teamarika? Tai Joonapuhakka? Ehkä et, mutta kymmenettuhannet tubettajat ja Instagram-seuraajat tuntevat heidät. Teamarika ja Joona kertovat millainen rooli Instagramilla on heidän elämässään ja millaista linjaa he kuvien jakamisessa noudattavat. 18-vuotiaan Joona Puhakan (@joonapuhakka) Instagram-tilillä on tällä hetkellä yli 44 000 seuraajaa.

  • Voiko Wikipediaan luottaa? Tarkista ainakin nämä viisi asiaa

    Vinkkejä Wikipedian käyttöön

    Laiskat heitot nettitietosanakirja Wikipedian paikkansapitämättömyydestä eivät välttämättä pidäkään paikkaansa. Tutkimusten mukaan valtaosa Wikipedian artikkeleista on (lähes) täyttä faktaa. Mutta koska artikkeleja voi muokata kuka tahansa, välillä tieto voi olla väärää.

  • Mistä tunnistaa some-mainoksen? Satu Apukka kertoo

    Some-mainonnallakin on eettinen koodisto.

    Suositut sometähdet kiinnostavat myös mainostajia. Sosiaalisen median kanavilla tavoitetaan nuoria kuluttajia, jotka eivät juuri lue lehtiä tai katso televisiota. Merkkituoteyritykset mainostavatkin mielellään tuotteitaan nuorten tekijöiden kanavilla. United Screens on yritys, joka kerää verkostoonsa tunnettuja some-kasvoja ja saattaa nämä yhteen mainostajien kanssa.

  • Valheenpaljastaja: Tervetuloa faktojen jälkeiseen aikaan

    Sosiaalinen media voimistaa populistien viestiä

    Poliitikot uskaltavat nykyään valehdella päin äänestäjien naamaa, sillä kiinni jääminen ei johda kannatuksen romahtamiseen. Sosiaalinen media on populistien käsissä voimakas megafoni. Elokuun toisella viikolla republikaanipuolueen presidenttiehdokas Donald Trump sanoi, että presidentti Barack Obama on perustanut Isis-terroristijärjestön.

  • Youtube-mainontaa sipsipalkalla

    Youtube-markkinoinnin pelisäännöt puuttuvat.

    Youtube-markkinoinnissa pelisääntöjä ei vielä ole. Videoiden tekijät eli tubettajat ovat usein nuoria - ja heidän seuraajansa vieläkin nuorempia. Mainostajista erityisesti vaate- ja meikkifirmat ovat löytäneet tubettajat, joille tarjotaan tuotteita mainosvideoita vastaan. Tube-suosikit IinaPS, Tume ja Lakko saavat yhteistyöehdotuksia laidasta laitaan.

  • Mediataitoja alakouluun

    Elävän kuvan alkeet ja kuvakerrontaa.

    Mediakompassin kuvakoulu on suunnattu kaikille elävän kuvan alkeista, kuvakerronnasta ja kuvaamisesta kiinnostuneille yli neljäsluokkalaisille. Pääosassa on tekemisen kautta oppiminen.

  • Mediataidot

    Taitoja eri medioiden haltuunottoon.

    Mediataidot tarkoittavat kykyä lukea ja tulkita viestejä, kykyä erottaa olennainen epäolennaisesta. Näitä taitoja oppii mm. itse tekemällä ja esittämällä.

  • Mediataitoja yläkouluun ja lukioon

    Mediataitoja yläkoululaisille.

    Päämääränä on kehittää 7-9-luokkalaisten oppilaiden mediatajua, innostaa viestien arviointiin ja rohkaista omaan vaikuttamiseen median keinoin.

  • 5 fiksua koodauspeliä kouluikäisille

    Lasten ohjelmointisovelluksilla ei ole yläikärajaa.

    Ensi syksystä lähtien peruskoululaiset tutustuvat koulussa ohjelmoimiseen, kun siitä tulee osa peruskoulujen opetussuunnitelmaa. Koodaustaitoja voi opetella pelillisillä ohjelmilla, jotka madaltavat oppimiskynnystä. Tabletti on aloittelevalle koodarille luonteva väline.