sunnuntai 25. joulukuuta 2016

Tietojenkäsittelytiede

Tämä jättipostaus koostuu viidestä esseestä, jotka kirjoitin Johdatus tietojenkäsittelytieteeseen kurssilla. Ensimmäinen essee perustuu Peter Denningin artikkeliin Is Computer Science Science? sekä John Horgannin artikkeliin The End of Science Revisited. Toisen esseen aiheena on ohjelmointiparadigmat, kolmannen tietojenkäsittelyn mekaniikat, neljännen suunnitteluperiaatteet ja viidennen tietojenkäsittelyn käytännöt. Nämä esseet perustuvat luentomuistiinpanoihin ja -materiaaleihin.
1. ESSEE: THE END
John Horgan perustelee artikkelissaan The End of Science Revisited miten tietotekniikka ei ole saavuttanut, eikä luultavasti ikinä tule saavuttamaan, sille ladattuja odotuksia. Tiede ei tule enää koskaan tuottamaan niin suuria paljastuksia kuin esim. evoluutioteoria, suhteellisuusteoria, kvanttimekaniikka ja Big Bang- teoria. Ja kaikki kaukaa haetut tavoitteet joita sovellettaville tieteille on asetettu jäävät ikuisesti saavuttamattomiksi. Tietojenkäsittelytieteilijä Marvin Minsky ennusti 60- luvun puolivälissä, että tietokone tulisi olemaan yhtä älykäs kuin 3-8- vuotias lapsi, mutta on sittemmin todennut, ettei olla päästy edes lähelle sitä. 
Horgan kertoo muokannensa vuonna 1984 artikkelin jossa tekoälyasiantuntija Frederick Hayes- Roth ennusti että asiantuntijajärjestelmät tulevat anastamaan ihmisten rooleja mm. lääketieteessä ja liike-elämässä. Kun hän parikymmentä vuotta myöhemmin kysyi Hayes-Rothilta mitä hän nyt ajattelee ennustuksistaan, tämä myönsi, että asiantuntijajärjestelmä, ja tekoälytutkimus ylipäätään, oli ollut pysähdyksissä siitä saakka kun se koki kukoistuksensa 1980-luvun alussa. Horganin mukaan kaikki tekoälytutkijat eivät kuitenkaan vielä ole myöntäneet tappiotaan, vaan mm. Hans Moravec ja Ray Kurzwell edelleen profetoivat siitä että koneet tulevat jättämään lihaa ja verta olevat ihmiset taakseen kognitiivisissa kyvyissä. Horgan itse kutsuu tällaista spekulointia tiedeuskovaisuudeksi. Oikeastaan se, että IBM:n kehittämä shakkitietokone Deep Blue voitti Garry Kasparovin shakkiturnauksessa 1997 Horganin mielestä todistaa, että tietokoneista on vain suorittamaan tehtäviä jotka on tarkkaan määritelty. Ne eivät tule koskaan saavuttamaan joustavaa, monikäyttöistä älykkyyttä, jonka jokainen normaali ihminen saavutta viiteen ikävuoteen mennessä. 
Peter J. Denningin kuva tietojenkäsittelytieteen tulevaisuudesta on valoisampi. Hän ei ajattele että tietojenkäsittelytiede olisi jo tavoittanut kaikki suuret saavutukset, tai että tieteenalojen määrä ylipäätänsä olisi rajoittunut, ja jokaisessa oltaisiin jo tultu määränpäähän. Pikemminkin tietojenkäsittelytiede muodostaa jatkuvasti uusia suhteita muiden tieteiden kanssa, ja näin muodostaa täysin uusia tieteenaloja, ja takaa tietojenkäsittelytieteen kehityksen ja tulevaisuuden. 
Horgan kirjoitti artikkelinsa noin kymmenen vuotta sitten, ja väittäisin että jo nyt on nähtävissä miten pitkälle siitä ajasta on tultu. Ehkä edelleen on olemassa tiedemiehiä jotka eivät usko esimerkiksi itsetietoiseen tekoälyyn, mutta nyt kun robotit tekevät jo hampurilaisia ja kirurgisia toimenpiteitä, jotkut Horganin epäilykset vaikka siitä, etteikö koneet voisi anastaa ihmisten rooleja, vaikuttaa yhtä käsittämättömältä kuin se, että miten aikana ennen Kopernikusta ja Galileita on voitu luulla että Maa on maailmankaikkeuden keskus tai litteä. Ja ennen kuin aletaan vähättelemään koneiden kykyä itseohjautuvuuteen tai tiedostamiseen, voitaisiin kysyä, onko tämä meidän ”todellisuus” ainut olemassa oleva. Emmehän me edes tiedä mistä tietoisuus tai tajunta kumpuavat. Ehkä itsetietoinen tekoäly voisi ratkaista tämän kysymyksen, ja ehkä hän voisi jopa siirtyä todellisuudesta toiseen. 
Tekoälytytkija Douglas Lenartin yritystä luoda itsenäinen ja luova ohjelma, joka keksii uusia ratkaisuja, on väheksytty. Hänen luomansa Cyc-ohjelman on sanottu olevan vain hieno sanakirja, joka selaa sanomalehtiä, kirjoja ja muita tietolähteitä, mutta on kaukana ihmisen luovuudesta ja joustavuudesta. Mutta jos ihmiset ovat eläimiä jotka on ohjelmoitu keräämään marjoja, luulisi ettei koneella olisi edes suuria vaikeuksia ohittaa ihmistä kognitiivisissa kyvyissä. 
Lähteet: 
Denning, Peter, J. Is Computer Science Science? 
Horgan, John: The End of Science Revisited 

2. ESSEE: OHJELMOINTIPARADIGMAT

Tässä esseessä kerron lyhyesti eri ohjelmointiparadigmoista, ja vertailen niitä keskenään. Käsittelyssä on proseduraalinen, funktionaalinen ja olio-ohjelmointi. Ohjelmointiparadigma tarkoittaa tapaa ja mallia ohjelmoida. Se määrittelee tavan jolla kuvataan ohjelman käyttämä data sekä sen logiikka- ja kontrollivuo (järjestys). Se on laskennan malli, joka ohjaa ohjelman ongelmanratkaisutapaa. Yksi keskeinen jakolinja eri paradigmojen välillä on jako imperatiiviseen ja deklaratiiviseen. Imperatiivinen on eniten ja laajimmin käytetty, mikä johtuu sen tehokkuudesta. Siinä ongelman ratkaisu kuvataan tarkasti ja yksiselitteisesti vaihe vaiheelta, ja annetaan tietokoneelle toimintaohjeina miten toiminta suoritetaan. Deklaratiivisessa ohjelmoinnissa ongelma ratkaistaan esittämällä haluttu ratkaisu ja kertomalla mitä pitää tehdä, ja kone huolehtii yksityiskohdista.

Proseduraalinen ohjelmointi on imperatiivinen paradigma, jossa ohjelma rakennetaan proseduureista, eli aliohjelmista. Se koostuu erilaisista muuttujista ja datasta, jota ohjelmiston kontrollivuon muodostavat proseduurikutsut muokkaavat. Kullakin proseduurilla tulee olla oma nimi ja paluuarvo, jotka määrittävät proseduurin ainutlaatuisuuden. Menetelmässä ongelma ratkaistaan jakamalla se yhä uudestaan osatehtäviin, kunnes tuloksena on niin yksinkertisia tehtäviä, että niiden  ratkaisut voidaan ilmaista ohjelmointikielen lauseilla. Suosituin proseduraalista paradigmaa soveltava ohjelmointikieli on C.

Funktionaalinen ohjelmointi kuuluu deklaratiivisten ohjelmointiparadigmojen luokkaan. Sen lähtökohtana on esittää asiat matemaattisen funktion käsitteen avulla, ja tavoitteena on tuottaa parempia ohjelmia nopeammin. Funktionaalisen ohjelman voidaan ajatella olevan tarkemmin määritellyn kuin proseduraalisen ohjelmoinnin. Ja koska funktioilla ei esimerkiksi ole riippuvuuksia globaalista datasta, laskenta tuottaa samoilla lähtöarvoilla aina saman tuloksen. Erona olio-ohjelmointiin on, että funktionaalinen ohjelmointi on tilatonta, ja muuttuja voi olla nimi lausekkeelle.

Ensimmäinen funktionaalinen kieli LISP kehitettiin 1950- luvulla, koska haluttiin luoda tekoälyohjelmiin paremmin sopiva kieli kuin silloiset valtakielet. Funktionaalisten kielten universaali ominaisuus on roskien keruu, eli automaattinen muistin varaus ja vapauttaminen. Koska käytössä ei ole muuttujia, jotka veisivät muistia, niin sitä voidaan käyttää roskien keruun automaattiseen hoitamiseen. Funktionaalisen ohjelmoinnin ero proseduraaliseen on mm. se, että funktionaaliset kielet ovat abstraktiotasoltaan korkeampia. Funktionaaliset menetelmät eivät kuitenkaan ole saavuttaneet kovin suurta suosiota tekoälytytkimuksen ulkopuolella. Vaikka ne soveltuvatkin hyvin matemaattisiin tehtäviin, niitä on kritisoitu hitaudesta ja siitä, että tosielämän ohjelmointitilanteissa se kyllä häviää olioparadigmalle. 

Olio-ohjelmointi on selvästi suosituin ohjelmistoparadigma. Siinä ohjelmoinnin tila muodostuu erilaisista olioista, jotka sisältävät toisiinsa loogisesti liittyvää tietoa ja toiminnallisuutta. Kun perinteinen proseduraalinen tietokoneohjelma on lista suoritettavia ohjeita tietokoneelle, olio-ohjelma muodostuu kokoelmasta yhteistyössä toimivia olioita. Olio-ohjelmointiin liittyy ominaisesti luokat, perintä ja dynaaminen sidonta. Periytymisen ansioista on mahdollista käyttää uudestaan jo tehtyä ohjelmakoodia (yliluokka) uusien luokkien pohjana (aliluokka). Dynaamisen sidonnan ja perinnän ansiosta aliluokkia voidaan käyttää siellä missä yliluokkiakin, ja tämän lisäksi aliluokat voivat tuoda näihin yhteyksiin uutta toiminnallisuutta. 

Olio-ohjelmointi nousi ohjelmistokehityksen valtavirtaan 1990-luvun alkupuolella. Käytetyimpiä ohjelmointikieliä, jotka tukevat olio-ohjelmoinnin paradigmaa, ovat luultavasti Java ja C++. Mutta kuten mikä tahansa ohjelmointiparadigma, olioparadigma on ensisijaisesti keino suunnitella ja kuvata ohjelmissa esitettyjä ongelmia ja relaatioita. Se ei myöskään ole kielisidonnainen, vaan oliopohjaista koodia voidaan kirjoittaa myös kielillä jotka eivät suoranaisesti tue luokkia.

Useat ohjelmointikielet ovat kuitenkin moniparadigmaisia, eikä niitä voi lokeroida selkeästi yhteen paradigmaan, vaikka ne olisikin suunniteltu ensisijaisesti tiettyä paradigmaa varten. Paradigmat ovat osin päällekkäisiä keskenään. Voikin olla parempi pohtia, missä määrin jokin ohjelma edustaa tiettyä paradigmaa. Ohjelmakokonaisuus voikin olla pääosin olio-ohjelmoitu mutta tietyltä osaltaan funktionaalinen.

Mielestäni kaikkia eri ohjelmistoparadigmoja ei tarvita, vaan pitäisi olla ainakin yksi niin moniparadigmainen kieli, jolla voisi tehdä kaikkea. Mutta tietenkin eri ohjelmointiparadigmat tulee tuntea, koska jos ohjelmoija ei tunne eri ohjelmointikielten ominaisuuksia, hänen toimintansa tulee olemaan melko rajoittunutta.






3. ESSEE: TIETOJENKÄSITTELYN MEKANIIKAT

Tässä esseessä kerron viidestä tietojenkäsittelyn mekaniikkoihin liittyvästä tarinasta ja kerron lyhyesti miksi kyseinen tarina on omasta mielestäni valittu edustamaan kyseisen perustoiminnallisuuden osa-aluetta. 
Turingin kone 
Turningin koneet ovat yksinkertaisia abstrakteja laskentalaitteita, joilla selvitetään laskettavuuden rajoja. Sen kehitti 1936 brittiläinen matemaatikko Alan Turing algoritmien havainnollistamiseksi. Turingin kone on ikään kuin tietokoneohjelma, joka toimii tietyn syötteen mukaan, ja univertaali Turingin kone on kuin ohjelmoitava tietokone. Sen ideana oli antaa ihmiselle riittävän tarkat ohjeet laskentatehtävän suorittamiseksi. Laskennallisesti se on yhtä voimakas kuin nykyiset tietokoneet, vaikka tehokkuudellaan se ei yletä nykyisten koneiden tasolle. Church-Turingin teesin mukaan kaikki laskettavissa oleva on laskettavissa Turingin koneella. Teesin oletetaan olevan totta, mutta sitä ei ole voitu todistaa oikeaksi. Universaali Turingin kone voi simuloida mitä tahansa olemassa olevaa tietokonetta, eikä ainakaan tähän mennessä ole onnistuttu kehittämään laskentalaitteita, jota Turingin koneella ei voisi jäljitellä. 
Turingin kone koostuu äärettömän pitkästä nauhasta, joka toimii muistina ja lukupäästä, joka mm. lukee nauhalta symboleita. Lisäksi koneeseen kuuluu tilarekisteri sekä siirtymäfunktio, joka kertoo miten tilasta toiseen siirrytään nauhalta luetun symbolin perusteella. Turingin kone on tilakone, ja sen toiminnan täydelliseen määrittämiseen tarvitaan koneen nykyinen tila, nykyisen muistipaikan arvo ja tilasiirtymät—> uusitila, toimenpide. Nauhan muisti on ääretön ja se on jaettu muistipaikkoihin, joista jokaiseen voidaan tallettaa yksi arvo. Lukupäätä voidaan siirtää eteen- tai taaksepäin ja sillä voidaan lukea ja kirjoittaa nykyisen muistipaikan arvo. Tilasiirtymät määräytyvät muistipaikoista luettujen arvojen perusteella ohjelman suorituksen aikana. 
Turingin koneita käytetään perustana lukuisissa eri matemaattisen logiikan ja tietojenkäsittelytieteen peruskäsitteiden määritelmissä. Alun perin se tarkoitettiin yleiseksi laskentaformalismiksi, jolla voidaan esittää mikä tahansa algoritminen laskenta. Kuuluisin kaikista Touringin koneella todistettavista tuloksista on pysähtymisongelma, joka kysyy, voidaanko sanoa pysähtyykö mielivaltainen ohjelma annetulla syötteellä. Alan Turing todisti ettei ole algoritmia, joka ratkaisisi pysähtymisongelman kaikilla syötteillä. 
Turingin malliin perustuvaa konetta ei rakennettu aikoinaan, vaan jo vuonna 1944 olivat käytössä Colossus-tietokoneet. Ensimmäinen Turingin- kone rakennettiin vuonna 1986. Ajattelen tämän tarinan tulleen valituksi kuvaamaan tätä tietojenkäsittelyn osa-aluetta koska laskennan peruskysymykset liittyvät laskennan rajoihin ja Turingin koneet ovat laskentalaitteita jotka on kehitelty tutkimaan niitä. 
Protokollapino 
Protokollapino on tietoliikenneohjelmisto, jolla toteutetaan tiedonsiirtoa ja siihen liittyviä toimintoja. Se on mielestäni valittu kommunikaation tarinaksi, koska kommunikoinnin peruskysymykset liittyvät sanoman välittämiseen paikasta toiseen. Protokollapinossa ilmentyy myös haasteiden eriyttäminen, joka on yksi tietojenkäsittelyn keskeisimmistä lähestymistavoista. Protokollapino koostuu kerroksista, joista jokainen toteuttaa sille määrätyt asiat. Käsitteellisenä kehikkona toimii yleensä OSI- malli (Open System Interconnect), joka koostuu seitsemästä kerroksesta, vaikka nykyisin käytetäänkin lähes yksinomaan TCP/IP-pinoa. Kukin kerros käyttää alemman kerroksen palveluja ja tarjoaa palveluja ylemmälle. Malli kehitettiin 1980-luvun alussa. OSI- mallin kerrokset ovat: 
Sovelluskerros, jota käytetään kunkin sovelluksen viestintään mm. sähköposti, uutisryhmät, Web. Esitystapakerros, joka vastaa mm. eri merkistökoodauksien yhteensovittamisesta
Istuntokerros, joka mahdollistaa istunnon muodostamisen
Kuljetuskerros, joka huolehtii sanoman siirtämisestä päätepisteiden välillä 
Verkkokerros; reitittää tietoliikennepaketit lähettäjältä vastaanottajalle. Huolehtii myös ruuhkanhallinnasta.
Linkkikerros; yhteys solmulta toiselle, virheiden huomaaminen (ja joskus korjaaminen) tarkistuskoodilla 
Fyysinen kerros; bittien lähettäminen tiedonsiirtokanavaa (sähkökaapeli, valokuitu, radioaallot) pitkin 
OSI-mallilla ja TCP/IP-pinolla on paljon yhteistä, mutta keskeisimmät erot ovat että TCP/IP-mallista puuttuvat esitystapa- ja istuntokerrokset. Näihin liittyvä toiminnallisuus toteutetaan jokaisessa sovellustason protokollassa erikseen. Toinen eroavuus on että TCP/IP-mallissa fyysinen kerros ja linkkikerros on yhdistetty verkkoonpääsykerrokseksi, mutta tällä ei ole käytännössä merkitystä. 
TCP/IP-on ollut erittäin menestyksekäs kun on rakennettu laajoja verkkoja, koska kaikki verkon solmut voivat viestiä toistensa kanssa käyttäen kaikille yhteistä protokollaa, IP:tä. IP-paketteja voidaan lähettää minkä tahansa peruskerroksen protokollan päällä, ja kaikki muut palvelut, sovellukset ja protokollat käyttävät IP:tä. OSI-malli soveltuu paremmin kun puhutaan tietoliikenneverkoista tai opetetaan niitä. 
Synkronointi 
Synkronointi eli tahdistaminen on aikaan liittyvää koorninointia eli yhteistyötä. Se on olennaista tietokoneiden välisessä yhteistyössä, ja mielestäni siksi valittu koordinoinnin tarinaksi. Esimerkiksi monikanavaviestinnässä, kuten televisiossa, ääni ja kuva on koordinoitu, jotta ne etenevät samaa tahtia. Synkronoinnilla voidaan myös varmistaa että itsenäisten toimijoiden aikaansaannokset valmistuvat oikeassa järjestyksessä. Synkronoinnissa ilmenevät ongelmat liittyvät yleensä yhteiskäyttöisten resurssien hallintaan. Ongelmien ratkaisut kuuluvat tietojenkäsittelytieteen ydinainekseen. Resurssien hallintaan liittyvien ratkaisujen on estettävä nälkiintyminen ja lukkiutuminen. 
Nälkiintymisongelmassa jotkut prosessit voivat varata niin paljon resursseja että muut eivät pääse etenemään, tai joku joutuu odottamaan vuoroaan ikuisesti. Aterioivien filosofien ongelmassa filosofi vapauttaa varaamansa haarukan odotettuaan hetken, jos toinen haarukka ei ole vapaana. Ellei odotusaika ole satunnainen, filosofit eivät pääse syömään. Ja vaikka odotusaika olisikin satunnainen, eivät kaikki filosofit välttämättä pääse syömään. Lukkiutumisongelmassa kaikki odottavat että joku toinen tekisi jotain. Eli esimerkin mukaan jokainen filosofi tarttuu yhteen haarukkaan, ja odottaa ikuisesti että joku vapauttaisi toisen haarukan. 
Klassisia synkronpontiongelmia ovat tuottaja-kuluttaja -ongelma, jossa tuottajalta tulee tuotteita varastoon ja kuluttaja ostaa niitä. Mutta jotta kuluttaja voi kuluttaa, varasto ei voi olla tyhjä. Eikä varasto myöskään voi olla täysi, jotta tuottaja voi tuottaa sinne tavaraa. Toinen klassinen ongelma on lukija-kirjoittaja -ongelma. Tässä ongelmassa useampi prosessi kirjoittaa ja lukee samaa resurssia, vaikka vain yksi kerrallaan voi kirjoittaa. Ja kun kirjoittaja ei saa kirjoitusvuoroa, kaikki lukijat lukevat vanhentunutta tietoa, eli sekä lukija että kirjoittaja nälkiintyvät. 
Turingin testi 
Turingin testi on tarkoitettu mittaamaan koneen ihmismäisyyttä asettamalla se keskustelemaan tekstipohjaisesti kokeen tarkkailijana olevan ihmisen kanssa. Kokeen on luonut Alan Turning vuonna 1950 tarkoituksenaan älykkyyden määritteleminen. Ajatuksena on, että tietokone on älykäs jos keskustelija ei kykene erottelemaan onko kyseessä kone vai ihminen. Turingin testistä on tullut teköälytytkimuksen klassikko, vaikka testin mielekkyydestä on käyty kiivasta väittelyä, eikä sen läpäisystä ansaittavaa Loebnerin palkintoa ole toistaiseksi jaettu (2014). Vaikka kesäkuussa 2014 Eugene Goostmanin väitetään läpäisseen testin, pidetään kuitenkin epäselvänä että voiko testin katsoa läpäistyksi. 
Testi on saanut runsaasti kritiikkiä, ja sen käyttökelpoisuutta todellisen älykkyyden määritelmänä on arvosteltu. Sanotaan, että kone joka läpäisisi Turingin testin, kyllä jäljittelisi ihmisen käyttäytymistä ja noudattaisi jotain nokkelasti luotua sääntöä, vaikka ei olisikaan älykäs tai ajatteleva. Toisekseen, myös jotkut älykkäinä pidetyt ihmiset saattaisivat epäonnistua testissä. Testin innoittajana oli englantilainen seurapiirileikki, jossa tarkoituksena oli että mies ja nainen yrittävät tekstivälitteisesti kysymyksiin vastaamalla uskotella muille olevansa toista sukupuolta kuin on. Eli eikö Turingin testin tarkoitus ole ennemminkin uskotella ihmiselle olevansa ihminen. Siinä on siis kyse koneen kyvystä harhauttaa ihmistä, ei koneen kyvystä olla ihminen. 
Testin tavoiteasettelussa sanotaan, että järjestelmän tulisi käyttäytyä kuin ihminen. Tällainen tavoite on tietojenkäsittelytieteessä vähän hassu, koska ihminenhän tunnetusti tekee virheitä. Hyödyllisempää olisi odottaa, että järjestelmä käyttäytyisi siten kuin ihminen haluaa. Automatisoinnin mekaniikkoihin liittyy monta mielenkiintoista tarinaa, mutta luulen että Turingin testi tuli valituksi, koska se tavallaan kuuluu yleissivistykseen. 
Välimuisti 
Välimuistin tehtävä on nopeuttaa tietokoneen toimintaa. Luulen että se on valittu muistamisen tarinaksi, koska se on konkreettinen ja tärkeä osa tietokoneen toimintaa. Kun tieto tallennetaan tilapäisesti välimuistiin lähelle käsittelypaikkaa, se nopeuttaa noutojen valmistumista, koska aina kun muistista haetaan jotain tietoa, tarkastetaan ensin löytyykö tarvittavan tiedon kopio välimuistista. Jos tieto löytyy välimuistista, se haetaan suoraan sieltä, mutta jos ei, niin se haetaan varsinaisesta muistista ja tallennetaan samalla välimuistiin. Jos välimuisti on täynnä, siellä pisimpään käyttämättömänä ollut tietoalkio poistuu, jonka jälkeen se pitää hakea uudestaan hitaammasta muistista. 
Kirjoituspolitiikka ohjaa sitä ajoitusta, missä vaiheessa välimuistissa oleva tieto kirjoitetaan varsinaiseen muistiin. Tässä välimuisti voi toimia kahdella eri tavalla. Siinä oleva tieto voidaan välittömästi kirjoittaa varsinaiseen muistiin, jolloin kyseessä on läpikirjoittava välimuisti. Tai välimuisti voi pitää kirjaa niistä tietoalkioista joita on muutettu, ja nämä kirjoitetaan varsinaiseen muistiin, kun alkio poistetaan välimuistista. 
Keskusmuistiin tehdään viittaus muistipaikan osoitteella, joka kertoo missä muistipaikassa haluttu tieto on. Jokaisella keskusmuistin alkiolla ei kuitenkaan voi olla omaa kopiota välimuistissa, ja jotta tiedetään mihin paikkaan välimuistia keskusmuistin tietoalkiot sijoitetaan, käytetään assosiatiivista muistia. Erilaiset assosiatiiviset muistit eroavat toisistaan siinä, kuinka vapaasti keskusmuistissa oleva muistipaikka voidaan sijoittaa välimuistiin: täysin assosiatiivisessa tietoalkiot voidaan sijoittaa minne tahansa, suorasijoituksessa sijainti lasketaan tietoalkion osoitteen perusteella. Mitä useampaan paikkaan tietoalkio voidaan sijoittaa, sitä useammasta paikasta sitä on myös etsittävä, ja tarvittava enemmän virtaa, tilaa piireille ja aikaa. Yleensä prosessorien välimuistit käyttävät näiden kahden välimuotoa. 

Lähteet 
cs.helsinki.fi 
cse.tkk.fi eluova.fi 
hs.fi itviikko.fi 
wikipedia.orgSuunnitteluperiaatteet  
4. ESSEE: SUUNNITTELUPERIAATTEET
Tässä esseessä kerron suunnittelun tärkeydestä ohjelmistoja kehitettäessä. Kerron miksi suunnittelu on tärkeää, ja mihin sillä pyritään. Vuosien saatossa on ilmennyt hyväksi todettuja suunnittelun käytäntöjä, joilla pyritään saavuttamaan yksinkertaisuus, suorituskyky, luotettavuus, kehitettävyys ja tietoturva. 
Yksinkertaisuus - monimutkaisuuden hallinta 
Tietojenkäsittelyjärjestelmät ovat yksiä monimutkaisimmista konstruktioista joita ihminen on tehnyt. Monimutkaisuus on tunnetusti hidasta ja tuo ongelmia. Sen vuoksi siitä tulisi mahdollisuuksien mukaan päästä eroon, ja Edsger W. Dijkstra onkin määritellyt 1972 tietojenkäsittelytieteen olevan monimutkaisuuden hallitsemisen tutkimista. 
Rakenteeltaan erinomaisissa ohjelmissa ohjelmointityyli on johdonmukainen, yksinkertainen, selkeä ja siitä puuttuu ohjelmointitrikit. Tällaisiin ohjelmiin on helppo tehdä muutoksia jälkikäteen, ilman että rakenne rikkoutuu. Yksinkertaisuus ei kuitenkaan synny itsestään, vaan se vaatii huolellista suunnittelua ja aikaa järjestelmän rakenteen ajatteluun. Aiemmin tehdyistä virheistä tulisi myös ottaa opiksi. Käyttämällä aikaa aiempien yritysten tutkimiseen ja analysointiin, olisi mahdollista ymmärtää heikkoudet joita niissä lähestymistavoissa on. Monet ohjelmistotuotteet tekevät kuitenkin samat virheet uudestaan, ja toisaalta jättävät hyviä ratkaisuja hyödyntämättä. 
Vaikka ohjelmoinnista ja ohjelmistojen rakentamisesta on saatavilla runsaasti hyviä oppikirjoja ja alan taitureiden kertomuksia, johdonmukaisia ohjelmistoja on hyvin vähän. Yksi syy tähän saattaa olla nykyisen ohjelmistoteollisuuden olosuhteet. Ohjelmistoja tuotettaessa on mietittävä kaupallista menestystä, jolloin toiminnallisuus ja suorituskyky painavat enemmän kuin koodin selkeä rakenne. Toisaalta, suunnittelijat saavat harvoin lähteä alusta, vaan useimmat käytössä olevat ohjelmistot ovat vain laajentuneet vuosien saatossa, jolloin niissä on mukana paljon historian painolastia. Laajeneminen ei olisi ongelma, jos ohjelmistot olisi alun perin suunniteltu laajennettavaksi. Mietin, että ohjelmakoodia voi monimutkaistaa myös se että sitä on ollut tekemässä eri firmat, mutta myös se, että koodista on ehkä tarkoituksella haluttu tehdä vaikealukuista, etteivät muut firmat voi tehdä muutoksia ohjelmistoon. 
Suorituskyky - suunnittelu 
Ohjelmiston suunnitteluvaiheessa on tavoitteena arvioidan myös tulevan järjestelmän tehokkuutta ja sen tarvitsemaa kapasiteettia. Daniel A. Menacén (2002) mukaan kuitenkin suorituskykyvaatimukset otetaan hyvin harvoin huomioon suunnitteluvaiheessa, reaaliaikasovelluksia lukuunottamatta. Yksi syy tähän hänen mukaansa on se, että ohjelmistotekniikassa suorituskykyvaatimuksia kutsutaan ei-toiminnallisiksi vaatimuksiksi. Ohjelmistotekniikassa suorituskyvystä ruvetaan huolestumaan ohjelmiston kehitysprosessin viimeistelyvaiheessa. Menacé hämmästelee tällaista asennetta insinööritaidossa, sillä ohjelmistojen suorituskyvyn suunnittelun tulisi olla osa jokapäiväistä ohjelmistotuotantoa. Ratkaisuna tähän voisi olla: 
1. Formaalien ja kvantitatiivisten mallien systemaattinen käyttö ohjelmistotekniikassa osana ohjelmiston elinkaarta. Erilaisten formalismien ja menetelmien kehittäminen myös ei- toiminnallisten vaatimusten (minä suorituskykyä pidetään) tukemiseen. Suorityskykymallien eksplisiittinen mallintaminen, suorituskykyanalyysin yhteisön toimesta, jotta suorituskykyvaikutuksia voitaisiin helposti analysoida.
2. Tietojenkäsittelytieteen opiskelijoiden valmistaminen teollisuudessa vastaantuleviin ohjelmistotekniikan haasteisiin ja alalla toimijoiden valistaminen ohjelmistojen suorituskykyongelmista. Toisin sanoen parantaa ohjelmoijien ammattitaitoa.
3. Useiden samanaikaisten käyttäjien huomioonotto, sekä käsiteltävän tietokannan koon huomioiminen jo tietokannan käyttöä toteutettaessa.

Itse ajattelen että opiskelijoiden ja työntekijöiden kouluttaminen olisi varmasti hyvä ratkaisu moneen ongelmaan. Pitää olla riittävästi tietoa ja taitoa, jotta pystyy näkemään asiat monesta näkökulmasta ja ratkoa/ välttää ongelmia laajasti. 
Luotettavuus - toipuminen 
Yksi lähestymistapa luotettavuuden lisäämiseksi olisi ohjelmien kaatumisen teko turvalliseksi, ja siitä toipuminen nopeaksi. Usein järjestelmän hallittu alasajo ja uudelleen käynnistäminen on hitaampaa kuin sen kaataminen ja käynnistäminen toipumisen kautta. George Gandea ja Armando Fox kuitenkin ehdottavat että kaataminen ja toipumisen käynnistäminen olisivat ainoita keinoja päättää ohjelman suoritus. Kaatumatonta tietojenkäsittelyjärjestelmää on yleensä epäkäytännöllistä yrittää rakentaa, joten järjestelmän olisi varauduttava kaatumiseen. Onkin aiheellista kysyä, miksi järjestelmään on rakennettava sekä hallittu alasajo, että kaatumiseen varautuminen. Tällaisessa ”crash-only”- järjestelmässä toipumismekanismia käytetään aina kun järjestelmä käynnistetään. Tällainen järjestelmä mahdollistaa myös yksinkertaisen vikamallin. Eli jokainen häiriö voidaan käsitellä ohjelmistokomponentin kaatumisena, koska toipuminen on nopeaa. Tällöin komponenttien on toivuttava vain yhdestä häiriöstä, eli kaatumisesta. 
”Crash-only” ohjelmistokomponentin ominaisuuksiin kuuluu erityinen tilatietovarasto, johon tallentuu kaikki ei-tilapäinen tilatieto. Järjestelmä on suunniteltava niin, että erilliset komponentit varautuvat muiden komponenttien kaatumisiin ja tilapäisiin käytöstä poissaoloihin, jotta se olisi ”crash-only”. Useimmat nykyisin saatavilla olevat tilatietovarastot takaavat turvallisen kaatumisen, eli ne osaavat kaatua niin että tietoa ei huku, mutta useimmat tietokannat ja verkkojen tallennuslaitteet eivät kuitenkaan ole ”crash-only”, sillä toipuminen on melko hidasta. 
Kehitettävyys - muutoksiin varautuminen 
David Parnas nostaa ohjelmistotekniikan perusongelmaksi ohjelmistojen ikääntymisen. Ohjelmistojen ikääntyminen on keskeinen tekijä ohjelmistojen kehitettävyydessä ja ylläpidettävyydessä. Lisääntyvä tietotekniikan hyväksikäyttö luo paineita muuttaa ohjelmistokehityksen arviointia, suunnittelua ja hallinnointia. Eri tietojenkäsittelyjärjestelmiä joutuu myös nykyisin yhdistää ja ne on saatava keskustelemaan keskenään, vaikka ne ovat aikaisemmin olleet irrallisia järjestelmiä. Kuitenkin niiden on edelleen toimittava organisaation aiempien prosessien ja käytäntöjen kanssa. Kun jo toiminnassa olevia järjestelmiä yhdistellään, uusien sovellusten käyttöaluetta, laajuutta ja yksityiskohtia joudutaan rajaamaan, mikä saattaa aiheuttaa rajoituksia käytettävyydessä. Jotkut järjestelmiin kohdistuvat muutospaineet olisi vältettävissä sillä, että ne suunniteltaisiin alun perin mahdollisiksi muuttaa helposti. 
Ohjelmisto ei voi mukautua ulkoisiin muutoksiin itsestään kuin ainoastaan siinä tapauksessa, että ohjelmiston laatijat varautuvat muutoksiin ja toteuttavat tarvittavat mukautumismekanismit. Mukautuvuus on mahdollista saada aikaan koodiin vain siinä määrin kuin mahdollisiin muutostarpeisiin on osattu varautua. Meir Lehman (1998) korostaa, että erityisen tärkeää on luoda ohjelmiston perustalle hyvä suunnitelma. Muutettavuus on suunniteltava osaksi ohjelmistoarkkitehtuuria ja on hyväksyttävä että ohjelmistokehityksen ja ajan myötä sovellutusten ja käyttöalueiden rajat muuttuvat. Kehityksen myötä rajoja on päivitettävä vastaamaan uusia vaatimuksia. Kaikki suunnitelmat, sekä oletukset tulevien muutosten todennäköisyyksistä, tulisi kirjata ylös ja dokumentoida. Kaikkien suunnitelmiin tehtävien muutosten vaikutukset rajoihin ja oletuksiin on myös käytävä läpi ennen kuin ne tehdään, jotta yhteensopimattomuudet ja sivuvaikutukset voidaan välttää. 
Mietin vaan, että mitä jos oletuksissa ja suunnitelmissa on menty aivan metsään, eivätkä ne vastaa ollenkaan muuttuvia tilanteita. Tietysti maailmassa voi tapahtua odottamattomia asioita, joihin ei voi varautua, mutta ehkä suurin osa tulevista muutoksista on kuitenkin ennustettavissa. Suurin ongelma taitaa olla se ettei tilanteisiin reagoida ennen kuin ne kehittyvät ”kriisiksi”.  
Turvallisuus 
Onnettumuuksien välttämiseksi on tärkeä ottaa huomioon turvallisuus. Onnettomuudet eivät ole mitenkään yksinkertaisia, vaan niiden taustalla on yleensä monimutkainen tapahtumien vyyhti, joka johtuu teknisistä, inhimillisistä ja työyhteisöön liittyvistä tekijöistä. Voi olla vakava virhe uskoa, että ongelma poistetaan korjaamalla yksi virhe. Toinen vakava virhe on olettaa että korjaamalla yksi virhe estetään uusien onnettomuuksien ilmaantuminen. On vastuutonta ja ylimalkaista väittää että onnettomuudet johtuisivat laitteistoviasta tai inhimillisestä erehdyksestä, koska yleensä taustalla on se, ettei niitä ole älytty tai viitsitty ottaa huomioon ja varautua ongelmiin. Esimerkiksi Fukushiman ydinonnettomuuden väitettiin johtuvan luonnonmullistuksesta, maanjäristyksestä ja tsunamista, vaikka oikeasti taustalla oli tehtaan ränsistyminen ja tarvittavien korjausten ja huoltotöiden laiminlyönti, ja muutenkin ydinvoimalan rakentaminen alueelle, jossa luonnonmullistusten riski on suuri. Toinen esimerkki on Indian Point Yhdysvalloissa, joka on rakennettu lähelle mannerlaattojen saumaa. (The Atomic States on America- dokumentti). 
Kun analysoidaan monimutkaisten järjestelmien aiheuttamia onnettomuuksia, on lähestymistavan perustuttava järjestelmien rakentamiseen. Taustalta löytyy yleensä: 
1. Puutteita valmistajan raporteissa 
  2. Laitteistovarmistusten poisjättö. Esim. ehdotonta turvallisuutta vaativissa järjestelmissä ei saa
olla varmistamattomia virtalähteitä. 
  3.   Kohtuuton luottaminen ohjelmistoon. Ohjelmistovirheiden löytäminen on huomattavasti hankalampaa kuin laitteistosta johtuvien virheiden huomaaminen, mutta ainakaan laitteistovarmistuksia ei ole syytä jättää pois, kun ohjelmistoa aletaan käyttää järjestelmän ohjaamiseen. 
4. Puutteita ohjelmistotekniikan käytännöissä. Tietokoneperäiset virheet johtuvat yleensä ohjelmiston suunnitteluvirheestä. Yleensä tällaiset virheet johtuvat virheellisestä vaatimusmäärittelystä; kaikkia ulkoisia olosuhteita ei oteta huomioon tai niitä käsitellään väärin. 
5. Epärealistinen riskien arviointi.

Lähteet 
Luentomoniste
The Atomic States of America- dokumentti 
5. ESSEE: TIETOJENKÄSITTELYN KÄYTÄNNÖT
Tietojenkäsittelyn käytännöt täydentävät kuvaa tietojenkäsittelytieteestä, ja ne voidaan jakaa viiteen pääalueeseen: ohjelmointi, järjestelmien rakentaminen, mallintaminen ja validointi, innovointi ja soveltaminen. Näiden hallisemisesta saadaan viime kädessä selville tietojenkäsittelijän ammatilliset taidot ja osaaminen. 
Ohjelmointi 
Ei ole mitään järkeä kirjoittaa muuta kuin hyvää ohjelmakoodia, sillä hyvän ohjelmakoodin kirjoittaminen ei ole kovinkaan paljon vaikeampaa kuin huonon, mutta hyvän koodin hyödyt tulevat selkeästi esille ohjelman ylläpidon aikana (Donn Seeley, 2005). Hyvän ohjelmakoodin ominaisuuksia on mm. helppo luettavuus. Kun ohjelmakoodi on ryhmitelty sopivasti, ihmisen on helpompi hahmottaa ja ymmärtää sitä. Luettavuutta lisää myös se että koodia on kommentoitu tarkoituksenmukaisesti, mielellään kokonaisilla lauseilla. Hyvän ohjelmakoodin ominaisuuksiin kuuluu myös hyvä nimeäminen. Vaikka tietokoneelle nimet eivät ole muuta kuin merkkijonoja, ihmisille ne lisäävät huomattavasti koodin luettavuutta. Nimiä tulisi käyttää myös systemaattisesti, eli samaa nimeä aina samassa merkityksessä. Hyvä ohjelmakoodi on myös johdonmukaista. Esimerkiksi isommissa projekteissa ohjelmointityöryhmän on sovittava yhteisistä tyyleistä ja nimeämistavoista. 
Käytetyn ohjelmointikielen vaikutuksia on yliarvioitu ohjelmakoodin laatuun, sillä koodin ominaisuudet ovat jokseenkin kielestä riippumattomia, vaikka joillakin kielillä on helpompi tai vaikeampi kirjoittaa käsittämätöntä koodia. Jotkut ratkaisut voi olla helpompi toteuttaa jollakin tietyllä ohjelmointikielellä, mutta samankaltaisia ohjelmointiongelmia kohdataan kielestä riippumatta. Tämä johtuu ohjelman suunnittelusta. Huono suunnittelu johtaa aina huonoon lopputulokseen kielestä riippumatta. Ohjelmoinnissa hyvin suunniteltu on enemmän kuin puoliksi tehty. 
Olen ehdottomasti samaa mieltä Seeleyn kanssa, että ohjelmoijien on oltava nöyriä ja hyväksyttävä ohjelmakoodin luettavuus niin keskeiseksi tavoitteeksi , että jokaisen on luovuttava omasta suosikkityylistään ja käytettävä yleistä ohjelmointityyliä. Itse ainakin aijon pyrkiä toimimaan näin. 
Järjestelmien rakentaminen 
Ohjelmistotekniikan keskeisin haaste on järjestelmien rakentaminen. Denningin mukaan järjestelmien rakentamiseen kuuluu suunnittelu, toteutus ja käyttö. Tietojenkäsittelyn ammattilaisella on oltava taidot osallistua laajojen järjestelmien laatimiseen. Monissa ohjelmistoissa kuitenkin nousee esille samantyyppisiä ongelmia aikakaudesta riippumatta, joten Richard E. Fairley sekä Mary Jane Willshire (2003) ovat listanneet keskeisimmät ongelmat ja ehdotuksia niiden parantamiseksi. 
Yksi tavanomainen ongelma on ohjelmistojen tarpeiden muuttuminen. Syitä tähän voivat olla ulkoiset kilpailutekijät, käyttäjien tarpeiden tai suoritusympäristön muuttuminen ja projektin aikana tarkentunut näkemys. Vaatimusten muuttumista voidaan hallita ottamalla huomioon aikataulun, resurssien ja teknologian asettamat rajoitukset, sekä käsittelemällä muutokset versioiden hallinnan menetelmillä. Jotta ongelmilta voitaisiin yrittää välttyä, kaikki ohjelmistoprojektiin liittyvä tiedonvaihto tulisi tapahtua kirjallisesti ja dokumentoida. Myös projektisuunnitelma tulisi tehdä alusta alkaen kirjallisena. Suunnitelmasta on käytävä ilmi ainakin työn vaatimukset, työnjako, aikataulut ja hankinnat. 
Muita ohjelmistoprojektien ongelmia voi olla yletön ja toissijainen innovointi sekä vaatimusten luisuminen. Jotta innovointi ei pääsisi ylittämään sen hetkistä tietotaitoa eivätkä epäolennaisuudet muodostuisi dominoiviksi, on erittäin tärkeää että projektilla olisi vastuullinen ohjelmistoarkkitehti, joka huolehtii ohjelmatuotteen eheydestä. Kaikkien ehdotettujen muutosten vaikutuksia tulisi myös analysoida. 
Fred Brooks väittää, että yleisin ohjelmistoprojektien epäonnistumisen syy on epärealistisen tiukka aikataulu. Se on hänen mukaansa yleisempi kuin kaikki muut syyt yhteensä. Aikataulussa pysymistä voitaisiin edistää lisäämällä projektin resursseja ja käydä ohjelmiston vaatimukset uudelleen läpi. Myöskään eettisiä näkökohtia, eikä olennaista, eli sitä mitä varten ohjelmaa ollaan tekemässä, tulisi unohtaa. 
Itse korostaisin vielä vastuuntuntoisen ohjelmistoarkkitehdin roolin tärkeyttä. Projektilla on oltava yksi selkeä johtaja, joka osaa olla tarpeeksi tiukka ja sanoa suoraan mitä voidaan toteuttaa ja mitä ei. Hänen tulisi osata myös arvioida realistisesti resursseja, kuten aikaa. 
Mallintaminen ja validointi 
Tietokonejärjestelmien suorituskyvyn analysoinnin keskeiseksi työvälineeksi nousi 1970-luvulla jonoverkkomallit. Niitä voidaan siis käyttää erilaisten tietokonesysteemien suorituskykymallien tekemiseen, joista voidaan analysoida mallinnetun systeemin suorituskykyarvot. Jonoverkkomalleista saadaan analysoitua mm. palvelinten käyttöasteet, keskimääräiset jononpituudet sekä jonotusajan ja palveluajan jonoissa. 
Järjestelmä kuvataan verkkona, joka koostuu useista resursseista joiden välillä työt siirtyvät. Tällainen verkko eli jonoverkkomalli voi olla avoin tai suljettu. Avoimia verkkoja käytetään esimerkiksi pankkiautomaateissa, tietokantapalvelimissa ja Google-haussa. Suljetut verkot sopivat esim. interaktiivisten ja istuntopohjaisten järjestelmien mallintamiseen. Jonoverkkomallissa oletetaan, että asiakas siirtyy palvelupisteestä toiselle käyttäen kerrallaan vain yhtä resurssia. 
Tulomuotoisten jonoverkkomallin keskeiset suorituskykysuureet saadaan laskettua nk. MVA- algoritmilla, eli keskiarvoanalyysilla, käymättä kaikkia tiloja läpi. 
Innovaatiot 
Innovaatio on yksi teknologian arvostetuimmista alueista. Peter J. Denning väittää, että innovaatioiden käytännön voi oppia, ja sitä voidaan opettaa ja tehdä systemaattisesti, kunhan tiedetään mitä innovaatio on. Termiä on käytetty tarkoittamaan sekä uusia ajatuksia että uusia käytäntöjä, mutta Denning tarkoittaa innovaatiolla uuden käytännön soveltamista, sillä muuten uusilla ajatuksilla ei ole käytännön vaikutusta. Sen sijaan keksintö eroaa olennaisesti innovaatiosta. Keksinnöllä tarkoitetaan uuden luomista, ja siinä voidaan keskittyä teknologioihin sosiaalisen yhteisön sijaan. Innovoinnin käytännöt ovat ensisijaisesti sosiaalisia, ei teknisiä. Ja tekniset innovaatiot edellyttävät innovaattorilta sekä sosiaalisia että teknisiä taitoja. 
Peter Drucker (1985) nostaa innovaatioprosessin kulmakiviksi mahdollisuuksien etsimisen, suunnittelemisen ja laskelmien teon, työyhteisön kuuntelemisen, keskittymisen olennaiseen ja johtajuuden. Erityisen tärkeänä hän pitää mahdollisuuksien etsimistä, joita tulisi nähdä tavanomaisesta poikkeavissa tilanteissa, esim. odottamattomissa tapahtumissa tai muutostilanteissa. Tähän tietysti tarvitaan laajaa tietoisuutta (Denning), eli kykyä oivaltaa mahdollisuuksia ja tunnistaa kiinnostavat asiat. Myös Denning pitää tärkeänä keskittymistä olennaiseen, eli innovaation ytimeen, ja välttää liikaa rönsyilyä. 
Innovaattoriksi kehittyminen edellyttää, että ymmärtää innovaatioprosessiin kuuluvat keskeiset asiat. Denningin mukaan tätä voi oppia lukemalla, mutta siihen liittyviä sosiaalisia taitoja, kuten parantaa tietoisuutta ja keskittymistä, laatia julistuksia ja toimintasuunnitelmia ja tehdä tarjouksia, ei voi oppia itseopiskelulla, vaan näiden taitojen oppimista helpottaa valmentaja tai opettaja. Denning muistuttaa, että innovaatioiden ei työssä tarvitse olla isoja, työyhteisön työtapoja voi oppia parantamaan kuka tahansa, innovaatiot eivät aina perustu uusiin ajatuksiin ja että innovaatioita tapahtuu kaikenlaisilla ja -kokoisilla aloilla ja yhteisöillä.  
Mietin, että voisiko innovaattoriksi kehittyä ilman että ymmärtää mitään innovaatioprosessista, mutta olisi vain käytännön kautta huomannut jotkut käytännöt tehottomiksi ja saanut idean kehittää niitä paremmiksi. Vai onko innovaattori sellainen unifield- ammatti, että voi toimia alalla kuin alalla tavallaan ulkopuolisena. 
Soveltaminen 
Soveltamisella tarkoitetaan moniammatillisen työryhmän yhteistyötä, jossa eri tietojenkäsittelyn sovellusalueilla työskentelevät pyrkivät erilaisten tietojenkäsittelyjärjestelmien, tai niitä tukevien ydinteknologioiden kehittämiseksi. Suunnittelussa keskeiseksi teemaksi on noussut ihmiskeskeinen suunnittelu, jonka yksi keskeisistä periaatteista on kuunnella käyttäjiä. Mutta koska käyttäjillä ei useinkaan ole riittävästi näkemystä siitä mitä hyvään suunnitteluun tarvitaan, ohjelmistoammattilaisen tulee tietää, mm. miten käytettävyyttä mitataan ja miten päätöksiä tehdään. 
Ihmiskeskeisessä suunnittelussa ohjelmistoammattilaiset tarvitsevat taitoja, jotka Ahmed Seffah on koonnut listaksi, joka on jaoteltu välttämättömiin edellytksiin, erityistaitoihin ja yleistaitoihin. Välttämättömiin edellytyksiin kuuluu tietenkin perustaidot ohjelmistojen kehittämiseksi, ohjelmoitikielten hallinta ja tietokoneen käyttötaito. Erityistaitoihin kuuluu joukko taitoja, jotka liittyvät mm. kykyyn/ taitoon analysoida ja määritellä käyttäjien ominaisuuksia ja heidän vaatimuksia, ottaa huomioon ihmisen ja koneen vuorovaikutuksessa esiin tulevat haasteet, visuaalisuuteen liittyvät valinnat, ennen ohjelman käyttöönottoa suoritettavat asiat kuten prototyyppien tekeminen ja testaus, sekä varsinaiseen käyttöön liittyvät asiat, kuten käyttöohjeet ja suoritusaikaiset opasteet. Lisäksi erityistaitoihin kuuluu mm. eri laitteille tarkoitetut sovellukset sekä web-sovellukset. Kolmenteen ryhmään, eli yleistaitoihin Seffah on koonnut taitoja, jotka ovat olennaisia ihmiskeskeisen suunnittelun tehtävissä, koska ne parantavat käyttäjien ja muiden asianosaisten kanssa käytävää yhteistoimintaa. Näitä taitoja ovat mm. käyttäjäkeskeisten dokumenttien kirjoittaminen, ohjelmistojen tutkiminen empiirisesti ja kustannustehokkaasti sekä kommunikointi monialaisessa ryhmässä. 


cs.helsinki.fi 
cs.hut.fi 
luentomoniste 

maanantai 19. joulukuuta 2016

Oppiminen työssä, organisaatiossa ja verkostoissa

Johdanto  
Tämä essee pohjautuu Yrjö Engeströmin teokseen Ekspansiivinen oppiminen ja yhteiskehittely työssä, 2004. Tuon esille Engeströmin näkemyksiä oppimisen tasoista, ekspansiivisesta oppimisesta, oppimissyklistä, ristiriidoista ja rajanylityslaboratoriosta. Yritän myös peilata syklimallin eri vaiheita omiin kokemuksiini työskennellessäni kotihoidossa. 
Oppimisen eri tasot 
Yrjö Engeström on tehnyt pelkistyksen kuuluisan oppimista tarkastelleen teoreetikon Gregory Batesonin teoriasta, jossa hän jakaa oppimisen eri tasoihin. Oppimisen perustaso on omaksuvan oppimisen taso. Tämän tason oppiminen on yleensä edellytys elämässä ja työssä selviytymiselle. Työssä muodostetaan standardeja ja rutiineja, joten kaikkea ei aina tarvitse alkaa pohtia alusta. Toisen asteen oppiminen on astetta tietoisempaa. Aina rutiinit eivät riitä, vaan työssä voi tapahtua odottamattomia häiriöitä tai yllätyksiä, jotka täytyy ratkoa. Työprosesseissa voi olla häiriöitä, jotka vaativat useamman saman prosessin parissa työskentelevän yhteistä pähkäilyä ja oppimista. Toisen tason oppiminen on siis astetta yhteisöllisemmän oppimisen paikka. Ylimmällä tasolla on ekspansiivinen oppiminen. Vaikka päivittäiset toiminnot sujuvat vielä ykkös- ja kakkostason oppimisella, se ei kuitenkaan aina välttämättä riitä. Kilpailukyvyn ja toimivuuden säilyttämiseksi tarvitaan ajoittain koko toimintaperiaatteen kyseenalaitamista, jonka tuloksena voi olla toimintaperiaatteen ja kontekstin laajentaminen ja muuttaminen ilmenneiden ongelmien hallitsemiseksi, niin sanottu ekspansiivinen oppiminen tai koko toimintakonseptin uudistaminen. Ykkös- ja kakkostasolla voidaan kärjistäen kysyä: ”Teemmekö asiat oikein?”. Kolmostasolla kysymys kuuluu: ”Teemmekö oikeita asioita?”. 
Se, millaista oppimista tarvitaan riippuu organisaation historiallisesta kehitysvaiheesta. Tulisiko omaksua vallitsevaa, ihan hyvää käytäntöä, onko nykykäytännössä häiriöitä mitä pitäisi ratkaista, vai pitäisikö lähteä pohtimaan kokonaan uutta toimintatapaa. Sitä missä historiallisessa kehitysvaiheessa toiminnassa ollaan menossa, voidaan kuvata ekspansiivisen oppimisen syklimallilla. 
Ekspansiivinen oppiminen ja syklimalli 
Yrjö Engeström esittelee kirjassaan ekspansiivisen oppimisen syklimallin, joka etenee moniaskelisena kehänä, eli oppimissyklinä. Sen avulla voi kuvata työtoiminnan historiallista kehitysvaihetta ja selvittää millaista oppimista kussakin tilanteessa tarvitaan. Sykli ei etene suoraviivaisesti, vaan ajoittain törmätään yllättäviin esteisiin ja joudutaan ottamaan askelia taaksepäin. Ekspansiivisen oppimissyklin etenemistä voidaan kiihdyttää ja tiivistää rajanylityslaboratorion menetelmällä. Rajanylityslaboratorion idea on, että useat eri organisaatioissa toimivat kokoontuvat yhteen erittelemään ristiriitojaan, ja suunnittelemaan niille ratkaisuja. Oppimissykli ei kuitenkaan tule valmiiksi laboratorioprosessin aikana, vaan vasta kun uusi toimintamalli on vakiintunut käytössä. Pysyviin toimintatavan muutoksiin johtavat oppimissyklit kestävät jopa vuosia. Engeström kirjoittaa, että ekspansiivisen syklin askelet ovat yhteisiä oppimistekoja, jotka muodostavat yhdessä kokonaisuuden. Mikään niistä ei yksin takaa uuden laajemman kohteen muodostumista. Mietin, että mitä tämä yhteinen tarkoittaa. Luulen että tällä yhteisellä tarkoitetaan sitä, että työyhteisön/ organisaation jäsenet osallistuvat siihen yhdessä, jotta mukaan saadaan erilaisia näkökulmia, ja jokainen osallistuja sitoutuu toiminnallaan edesauttamaan oppimista, uuden toimintamallin syntymistä ja toiminnan kohteen laajenemista. Kaikki rajanylityslaboratoriossa tapahtuvat teot eivät kuitenkaan ole ekspansiivisia, eivätkä suoraan edesauta toiminnan kohteen laajenemista, vaan ongelmat saatetaan torjua ja nykyistä käytäntöä puolustaa. 
Oppimissykli käynnistyy tarvetilavaiheesta. Se on vaihe jossa työssä alkaa esiintyä epämääräistä oirehdintaa, esim. runsaasti sairaspoissaoloja, väsymistä tai huonoa kysyntää. Tarvetilassa ei välttämättä osata vielä selittää, mitä toiminnassa tarvisi tehdä tarkalleen ottaen. Tarvetila voi johtaa vanhan toimintatavan kriisiytymiseen. Se voi johtaa niin pahaan umpikujaan, että on tavallaan vain kaksi vaihtoehtoa; joko toiminnan lopahtaminen kokonaan tai sen radikaali uudistaminen. Tällaisissa tilanteissa organisaatiossa päädytään tilanteeseen jossa on pakko alkaa hakea uusia toimintavaihtoehtoja, luoda uusia toimintamalleja. Syklin neljännessä vaiheessa uusia ratkaisuideoita kokeillaan käytäntöön, ja jos ne todetaan toimiviksi, toimintaa muutetaan. Syklin viidennessä vaiheessa tästä uudesta toimintatavasta muodostuu uusi rutiini. Syklimalli haastaa perinteisen lineaarisen näkemyksen organisaation muutostilassa, jossa muutos etenee alkutilasta muutoksen kautta lopputulemaan. Syklimallissa ekspansiivinen oppiminen, eli muutossykli, voidaan nähdä jatkuvaksi edestakaisin liikkeeksi. 
Ristiriidat 
Ekspansiivisen oppimisen sykliin liittyy ristiriidan käsite. Engenströmin ajatus on, että toiminnan kehittyminen tapahtuu ristiriitojen ratkaisemisen tai hallitsemisen kautta.
Hän määrittelee ristiriidan käsitteen siten, että se on toimintajärjestelmässä tapahtunut muutos, joka voi ilmetä häiriöinä, katkoksina, aukkoina ja innovaatioyrityksinä joiden taustalla on muutoksen aiheuttamia ristiriitoja. Ristiriidat ovat toimintajärjestelmän sisällä, sinne kerääntyneitä tai eri toimintajärjestelmien välille kertyneitä jännitteitä. Ristiriidoilla on keskeinen rooli toimintajärjestelmän muutoksen ja kehityksen lähtökohtana. Oleellista onkin miten niihin suhtaudutaan, sillä ristiriitaa ei pidä käsittää välttämättä negatiivisena asiana. 
Oppimissyklin alun kyseenalaistamisvaiheessa ristiriitojen takana on ensimmäisen asteen ristiriita. Se on toimintajärjestelmän osissa ilmenevä ristiriita, joka liittyy käyttöarvon ja vaihtoarvon väliseen jännitteeseen. Se ilmenee osanottajille toiminnan häiriöinä, epäonnistumisina ja tyytymättömyyden aiheina. Olen itse työskennellyt useamman vuoden kotihoidossa, ja mietin että voisiko kyseisestä ristiriidasta olla esimerkkinä se, että ns. välitöntä työaikaa, eli asiakkaan luona vietettävää aikaa haluttiin jatkuvasti lisätä samaan aikaan kun toimistotöiden määrä kasvoi. Työaika ei kuitenkaan lisääntynyt, mutta sen sijaan työntekijöille kertyi jatkuvasti ylitöitä. Ylitöitä ei kuitenkaan mielellään maksettu rahana, vaan suositus oli että ne otetaan pikku hiljaa takaisin lähtemällä aikaisemmin pois töistä, mutta ei kuitenkaan niin että se haittaa töitä. Jotkut ottivat ylitöitä takaisin lähtemällä 15 minuuttia aikaisemmin pois töistä silloin kun pystyi. Ne mitä ei ehtinyt ottaa maksettiin kyllä rahana. 
Toisen asteen ristiriidat ovat toimintajärjestelmän osatekijäiden välisiä jännitteitä, jotka ovat kärjistyneet analyysivaiheessa. Tällainen tilanne voi tulla jos toiminnan kohde on muuttunut niin, ettei vanhoilla työvälineillä enää pystytä hallitsemaan sitä. Engeströmin rajanylityslaboratoriossa havaittin, että ongelmat kärjistyvät nimenomaan moniongelmaisilla, pitkäaikaissairailla lapsilla. Se että käytössä olevat välineet eivät riitä monimutkaisten ja kalliiden hoitokokonaisuuksien hallintaan, johtaa taillaisiin toisen asteen ristiriitoihin. Mietin, että voisiko sopiva esimerkki kotihoidosta olla se että kotihoidon asiakkaiksi päätyi välillä henkilöitä, jotka eivät hyötyneet kotihoidon tarjoamista palveluista; palvelut eivät olleet joko riittäviä, tai asiakkaat olisivat tarvinneet enemmänkin seuraa. Näitä ensin mainittuja tilanteita tapahtui varsinkin silloin, kun pitkäaikaisosastoja lakkautettiin ja sairaalahoitoon pääsyä vaikeutettiin. 
Kolmannen asteen ristiriitoihin johtaa se, kun uutta toimintamallia kehitettäessa ja käyttöön otettaessa vanhat työtavat ja rakenteet törmäävät yhteen uuden mallin kanssa. Siihen liittyy keskeisesti myös muutosvastarinnan ajatukset. Kun jossakin organisaatiossa kehitetään jotain uutta, menee pitkän aikaa että vanha toimintatapa haraa uutta vastaan. Esimerkki kotihoidosta voisi olla se kun kotisairaanhoito ja kotipalvelu yhdistyivät; pitkän aikaa oli epäselvää mitkä tehtävät kuuluivat kenellekin ja siihen, että lähi- ja perushoitajat saivat lääkkeenjako-, haavanhoito-, ym. -luvat. Toinen esimerkki on siirtyminen sähköiseen potilastietojärjestelmään; kirjaamista ja tilastointia tehtiin jonkin aikaa sekä paperille että sähköisesti. 
Neljännen asteen ristiriidalla Engeström viittaa eri toimintajärjestelmien välisiin ristiriitoihin. Sellaisia voi esiintyä esimerkiksi jos työpaikalla yhdellä osastolla kehitetään joku uusi toimintatapa, mutta viereisellä osastolla noudatetaan vanhaa toimintatapaa ja kun nämä kaksi osastoa tekevät yhteistyötä tulee jännitteitä uuden ja vanhan tavan välille. 
Rajanylityslaboratorio 
Kerron vielä vähän lisää rajanylityslaboratoriosta, sillä Yrjö Engeströn kuvaa sitä teoksessaan paljon esimerkkien kera. Kuten jo mainitsin, siinä siis kootaan yhteen useamman organisaation toimijoiden erittelemiä ristiriitoja, ja suunnitellaan niille ratkaisuja. Tätä varten tarvitaan erityinen tila, tarkoitusta palvelevat välineet sekä tiivis etenemissuunnitelma. Rajanylityslaboratorio voi esimerkiksi kokoontua kymmeneen viikottaiseen istuntoon, joista kukin kestää vaikka kaksi ja puoli tuntia. Laboratoriossa lähdetään todellisista ongelmatapauksista, ja käsiteltäviä aiheita voidaan työstää esim. kolmen pinnan tai seinätaulun avulla. Yksi niistä on muutoksen suurten linjojen ja vision kehittelyä ja mallintamista varten. Toinen pinta on konkreettisten ongelmien, esimerkkitapausten ja kokemusten esittämistä, erittelyä ja ratkomista varten. Kolmas pinta on varattu esiin tuleville ongelmille, ideoille ja ratkaisuille, jotka siirretään käsiteltäviksi myöhemmin. 
Ongelmia voidaan esittää rajanylityslaboratoriossa esimerkiksi video-otteilla, haastatteluilla ja sairaskertomuksilla, joita kukin organisaation edustaja vuorollaan kommentoi. Joku toimii kirjurina ja kirjaa puheenvuorojen oleellisen sisällön seinätauluille. Alussa pyritään vallitsevien toimintatapojen kyseenalaistamiseen ja analysointiin. Tämän jälkeen käydään analysoivaa ja yleistävää keskustelua tapausesimerkkien pohjalta. Tarkoituksena olisi laatia malli jonka mukaan kokeillaan työskennellä. 
Lähteet
Engeström, Yrjö. Ekspansiivinen oppiminen ja yhteiskehittely työssä 
Luentodiat ja videot 

Opetuksen ja oppimisen arviointi ja etiikka

Johdanto

Tässä on lyhyt kooste Opetuksen ja oppimisen arviointi ja etiikka- kurssin luennoista sekä tenttikirjasta Hyvä, paha arviointi. Aiheet eivät mene mitenkään järjestyksessä luentojen mukaan, koska luentodiat laitettiin jostain syystä (!) Moodleen vasta kurssin jälkeen, joten omia luentomuistiinpanoja oli jotenkin vaikea jälkikäteen yhdistää dioihin. Valitsinkin sitten muutaman keskeisen aiheen ja täydensin tietoja tenttikirjan avulla. Luentoja oli yhteensä viisi, joista pääsin osallistumaan neljälle. Arvioinnin eettiset periaatteet olen vain lähinnä luetellut tässä, vaikka aihe saattaa olla tentin kannalta tärkeämpi… Puhuimme eettisistä periaatteista ensimmäisessa ryhmätapaamisessa ja valmistauduimme lukemalla aiheesta artikkeli etukäteen. Mutta kirjoitan tätä postausta vähän viimehetkessä, koska tentti on huomenna aamulla, joten en ehtinyt keskittyä siihen enempää. Mutta kerrankin olen iloittautunut ensimmäiseen tenttimiskertaan :)

Mitä on arviointi?

Arviointi on arvon antamista, ansion määrittämistä. Jos opettaja ei päädy johonkin arvottavaan johtopäätökseen, hän ei sanan varsinaisessa merkityksessä arvioi. Opettaja ottaa kantaa hyödyistä, ansioista, arvosta ja merkittävyydestä: Mihin oppilaat ovat yltäneet, ja missä heidän tulisi vielä pinnistellä. Arviointiin liitetään aina mielipide ja asenteet, kyse on siis tulkinnasta, mikä tekee sen subjektiiviseksi. Praktisessa filosofiassa tehdään kahtiajako arvojen välille:

Objektiiviset

ovat absoluuttisia, niistä ei keskustella
lähtökohta on usein yliluonnollinen
voivat olla jumalallisia ilmoituksia
pysyvät muuttumattomina sukupolvesta toiseen (esim. tavat, säännöt),    vaikka vallankäyttäjät vaihtuisivat
jos tavoitetta ei saavuteta, toiminta on väärää

Subjektiiviset

suhteellisia, voidaan keskustella
ihmiset ovat omissa mietelmissään tulleet päätelmiin
voivat muuttua
jos tavoitetta ei saavuteta, arvot ehkä väärin

Arvioinnissa mitataan yleensä kognitiivisia, ja vain siinä hetkessä ilmeneviä konkreettisia taitoja, eikä esimerkiksi ajatteluun tai tunne-elämään liittyviä taitoja. Mutta valitsemalla menetelmät ja ajoitus sopivasti, arviointi voi olla itsessään oppimistilaisuus.

Hyvällä arviointitoiminnalla on itsellään tärkeitä arvoja, kuten reiluus ja oikeudenmukaisuus. Kaikilla oppilailla tulisi olla periaatteessa samat mahdollisuudet menestyä, ja arvioinnin tulisi erotella opiskelijoita sillä perusteella, mitä he ovat saavuttaneet tarkoitetuista oppimistuloksista. Arviointikäytännöt eivät saa syrjiä opiskelijoita ja asettaa jotain yksilöä tai ryhmää eriarvoiseen asemaan. Arvioinnin vaatimuksiin kuuluu myös validius ja reliaabelius. Validiteetti tarkoittaa että tulee arvioida sitä, mitä todella tahdotaan arvioida. Reliabiliteetti tarkoittaa arvioinnin kykyä välttää sattumanvaraisuutta. Eli koetulokseen ei saa esimerkiksi vaikuttaa kuka opettaja on ja miten virkeänä tai väsyneenä hän on korjannut koepaperin. Arvioinnin on tärkeää olla myös läpinäkyvää, eli siihen ei saa sisältyä piilotavoitteita tai ilkeitä yllätyksiä. Hyvä arviointi motivoi oppimaan. Sen tulee auttaa opiskelijaa suunnittelemaan ja järjestelemään oppimistaan pitkin opintojen kulkua eikä vain juuri ennen kokeita. Arvioinnin pitää myös olla vaativaa ja mahdollistaa erinomaisuuden osoittamisen. Tutkimusten mukaan opettajan odotukset vaikuttavat oppilaiden oppimistuloksiin. Jokaisella opiskelijalla pitää olla mahdollisuus menestyä jos hän on työskennellyt tehokkaasti ja ahkerasi, mutta läpäiseminen ei saa olla automaattista eikä kehuminen itsestäänselvää.

Arvioinnin eettiset periaatteet

Arviointieettiset periaatteet voidaan jäsennellä Kitchenerin (1984) sekä Newmanin ja Brownin (1996) mukaan 1. autonomian kunnioittamiseen (—> oikeus ja velvollisuus), 2. vahingon välttämiseen (—> kohtuuttoman haitan ja tarpeettomien sivuvaikutusten välttäminen ei negatiivisten tulosten välttely), 3. hyvän tekemiseen (—> arvioija joutuu pohtimaan kenen kannalta hyvää pitäisi edistää) 4. oikeudenmukaisuuden turvaamiseen (—> reiluus, kohtuullisuus, tasapuolisuus) ja 5. uskollisuuteen (—> lupausten pitäminen, lojaaisuus).

Eettisesti rakentavan palautteen ominaispiirteitä

Palautetta voidaan pitää kaiken oppimisen moottorina. Palautteen saaminen on oppilaan oikeus ja opettajan velvollisuus. Eettisesti rakentava palaute on ilmaistu selkeästi, eli oppilaan ei pidä joutua ponnistelemaan päästäkseen selville mitä opettaja oikeastaan tarkoittaa. Hah, tästä tuli mieleen omakohtainen kokemus ammattikouluajoilta, kun opiskelin lähihoitajakoulussa yläasteen jälkeen. Sairaalaharjoittelujaksolla toimiston seinällä oli kirjekuori, johon sai laittaa palautetta minusta, mutta en olisi itse saanut lukea niitä. Menin kuitenkin lukemaan, ja minua moitittiin siitä opettajalle. Loppuarviointi oli sellainen että odotin ulkopuolella kun ohjaaja ja opettaja arvioivat harjoittelujaksoani. Sen jälkeen minut kutsuttiin sisään ja oli vuorossa itsearviointi. Ilmeisesti nämä kyseiset arvioijat eivät olleet lukeneet Atjosen Hyvä, paha arviointi- kirjaa. Tai tuo kyseinen arviointi tapahtui kyllä jo vuonna 2003, etten ole varma että oliko kirjaa silloin vielä kirjoitettu, mutta luulisi että arvioinnista ylipäätään oli jotain tietoa saatavilla. Ehkä alan pikkuhiljaa päästä yli kyseisestä traumasta, vaikka edelleen joskus käy mielessä että puhuvatko kehittymistäni arvioijat henkilöt oikeasti p:tä sukkieni väristä ;)

Eettisesti rakentava palaute on myös voimaannuttavaa, eli sen tarkoitus on vahvistaa ja lujittaa oppimista. Palautteen määrä ja laatu on myös arvioitava, jotta palaute olisi hallittavissa. Huomio tulisi kiinnittää muutamiin senhetkisen opiskelun kannalta oleellisiin asioihin. Jos opiskelijalla on henkilökohtaiset oppimistavoitteet, arviointi ohjautuu näistä käsin ja on tehtäviin, eli tietoon, taitoihin ja käsitteisiin, suuntautunutta. Hyvän palautteen ominaisuutena on myös että se on kehittävää. Sen lisäksi että annetaan kommentteja tehdystä työstä, sen tulee antaa neuvoja siitä, miten edetä jatkossa ja haastaa oppilas myös itse miettimään ja toimimaan. Hyvään ja eettiseen palautteen antoon kuuluu myös se että palautetta annetaan kirjallisesti sekä suullisesti, ja että sitä annetaan välittömästi, eli se on ajankohtaista, eikä oppilaan tarvitse odotella esim. jakson loppuun saakka saadakseen palautetta.

Arvioinnin tehtävät ja lajit

Arvioinin tehtävät ovat:

1 Toteava tehtävä: Kertoo oppimisen senhetkisen tilan (esim.  ylioppilaskirjoitukset)
2 Ennustamisen tehtävä: Arviointi antaa tietoa joka auttaa ennakoimaan oppimisvaikeuksia tai selviytymistä seuraavasta luokasta
3 Ohjaava tehtävä: Kun tietää miten tämänhetkisiin tavoitteisiin on päästy, se auttaa tavoitteiden suunnittelua jatkossa
4 Motivoiva tehtävä: Kun ihminen saa arvioinnin kautta palautettetta saavutuksista ja vielä tavoiteltavista asioista, se pitää yllä aktivaatiota ja kannustaa jatkamaan.

Arvioinnin lajit:

1 Diagnostinen arviointi: Tarkoitus on selvittää oppimisedellytyksiä ja mitä oppilaat jo tietävät asiasta ennen opetuksen alkua. Menetelminä käytetään testejä, opettajan laatimia kokeita, kyselyitä, itsearviointia, keskustelua ja havainnointia. Diagnostisessa arvioinnissa toteutuu arvioinnin toteava ja ennustava tehtävä sekä jossain määrin ohjaava tehtävä.

2 Formatiivinen arviointi: Kertoo opiskelun aikana oppilaalle, miten hän on kehittynyt, jotta tämä voi ottaa jakson loppuosan opiskelussa huomioon saamansa palautteen.Tarkoitus on ohjata ja motivoida oppimista ja menetelminä käytetään opettajan kyselyitä/ arviointikeskustelua, kotitehtäviä, kokeita, päiväkirjaa, portfoliota. Formatiivinen arviointi toteuttaa erityisesti arvioinnin ohjaavaa tehtävää.

3 Summatiivinen arviointi: Kokoaa, ennustaa ja arvioi oppimistuloksia ja on perinteisin arviointityyppi. Siinä toteutuu arvioinnin toteava ja ennustava tehtävä. Monet tutkijat ja arvioinnin asiantuntijat suhtautuvat kriittisesti summatiiviseen arviointiin siksi, ettei se tarjoa ajoissa palautetta oppimisen ohjaamiseen ja motivoimiseen. Usein oppilaat ovat kuitenkin kiinnostuneita vain summatiivisesta arvioinnista, eivätkä he osaa hyödyntää formatiivista arviointia.

Kirjassa ei sanottu minkä arvioinnin lajin tehtävä on motivoiva, mutta ehkä se tehtävä kuuluu kaikille lajeille.

Luennolla puhuttiin myös koulutuksen luenteesta. Se on jaettu kahteen osaan: deskriptiiviseen ja normatiiviseen. Deskriptiivisyys tarkoittaa objektiivista asian tai ilmiön kuvailua, mitä esimerkiksi tiedetään opetuksesta. Se on tietoon ja tutkimukseen perustuvaa informaatiota, joka ei ota kantaa. Normatiivinen ottaa kantaa siihen, millaista on hyvä opetus. Se määrittää tavoitteet ja antaa ideologisia ohjeita ja suosituksia (koulutuspolitiikka).

Arvioijan keskeiset hyveet

Sekä luennoilla että tenttikirjassa on kuvailtu eettisesti hyvän arvioijan ominaispiirteitä. Kurssilla niitä lähestyttiin hyve-eettisestä näkökulmasta ja perustuen Aristoteleen klassisiin tarkasteluihin. Hän hahmotteli moraalisesti merkittäviä luonteenpiirteitä kultaisen keskitien periaatteen avulla. Aristoteles ajatteli että liian paljon tai liian vähän mitä tahansa ominaisuutta on pahasta, joten tasapainoilu keskivälillä on tärkeää.

Robert Starrattin (2003) mukaan eettisellä persoonalla on kyky autonomiaan, yhteydessä oloon ja itsensä ylittämiseen. Autonominen henkilö ei toimi rutiininomaisesti tai pelosta tai velvollisuudesta, vaan hän valitsee itse ja ottaa vastuun teoistaan. Hän kykenee myös arvioimaan mikä on oikein ja sopivaa tietyssä tilanteessa. Autonominen opettaja ei esimerkiksi parantele todistusnumeroita koulun johdon tai oppilaiden huoltajien painostuksesta. Suhteessa olemisen kyky tarkoittaa sitä että kykenee kuuntelemaan, tekemään selkiyttäviä kysymyksiä ja aistimaan ilmapiirin sosiaalisia viestejä. Itsensä ylittämisessä on kyse siitä, että yrittää tehdä jotain sellaista jota ei ole ennen tehnyt, että osaa ajatella elämäänsä suhteessa johonkin toiseen (asettua toisen asemaan) ja jonkin sankarillisen tavoittelemisesta (tärkeää on ymmärtää toisten tarpeet).

Millainen on hyvä opettaja?

Tehokkaan opettajan useimmiten mainitut ominaisuudet ovat:

hän on järjestelmällinen ja tunnit on hyvin suunniteltu
käytännöllinen, oppiaiheet ovat sidoksissa oikeaan elämään
kannustaa oppilaita kysymään ja ilmaisemaan mielipiteensä
on innostunut opetettavasta aiheesta
helposti lähestyttävä ja ystävällinen
kiinnostunut oppilaiden menestymisestä
huumorintajuinen
ammattitaitoinen

Arviointi ja tavoitteellinen oppiminen

Oppimisen arviointi ei ei ole kovin yksinkertaista, ja tämä asettaa eettisen haasteen opettajalle. Arvioija joutuu tekemään päätelmiä oppimisesta ulkoisten havaintojensa mukaan, vaikka opiskelijan teot eivät ole aina samat, mitä arvioija näkee hänen tekevänsä. Arvioinnin ydinkomponentit ovat:

1 Yksilöiden oikeuksia korostava etiikka: kognitio. Oppilaat pitää saada oppimaan käyttämään mieltänsä oikein (Pam Christien). Oppilaita on rohkaistava tiedon rakentamiseen, syvälliseen ymmärtämiseen ja monimutkaisten ongelmien ratkaisemiseen

2 Oikeudenmukaisuutta korostava etiikka: havainnointi. Opettajan pitää oppilaiden jatkuvan havainnoinnin ja ajattelua virittävien kysymysten avulla seurata oppilaiden prosesseja. Ei ole oikeudenmukaista arvioida heitä samalta viivalta, koska oppilailla on erilaisia ennakkotietoja ja käsityksiä. Myös monipuolisen opetuksen ja sen arvioinnin vaatimukset ovat tärkeitä, koska erilaiset opetusstrategiat sopivat erilaisiin aiheisiin ja erilaisille oppilaille eri tavoin.

3 Seurauksia korostava etiikka: tulkinta. Oppilaita osallistetaan pohdintaan, eikä heitä jätetä passiivisiksi opettajan arvioinnin vastaanottajiksi. Oppilaille kehittyy omistajuus oppimiseensa jos opettajat ottavat heidät mukaan tavoitteiden asetteluun —> vastavuoroisuuden eettinen periaate (Brooks, 2002).

Ihmis- ja kasvatuskäsitys opettajan tekemän arvioinnin vaikutteena

Kasvatuskäsitys sisältää opettajan normatiiviset oletukset, periaatteet, uskomukset ja arvot, jotka ohjaavat hänen opetustaan. Niihin kuuluu mm. kasvatustavoitteet, hyväksi koettu pedagogiikka, oppijaa koskevat mielikuvat, oppilaiden oppimiselle antama sosiaalinen merkitys, opetussuunnitelmaa koskevat mielikuvat, opettajan tehtävää koskevat mielikuvat sekä käsitys oppilaalle tärkeimmistä tiedoista ja taidoista. Kasvatuskäsityksellä on monenlaisia käytännön vaikutuksia sen mukaan, miten opettaja suhtautuu oppimiseen, opettamiseen ja arviointiin. Jos opettaja näkee esim. oppilaan kognitiivisen edistymisen tärkeäksi, hän saattaa mieltyä osaamisen mittaamiseen mahdollisimman täsmällisillä kokeille. Jos hän puolestaan pitää tärkeänä itseluottamuksen vahvistumista sosioemotionaalisesti keskeneräisillä oppilailla, hän todennäköisesti hyödyntää säännöllistä formatiivista arviointia. Joku opettaja saattaa kantaa huolta lahjakkaiden oppilaiden puolesta, toisia askarruttaa heikkojen oppilaiden koulumenestys.

Kasvattaminen ja arviointi ovat inhimillistä työtä, jossa arvoilta ei yksinkertaisesti voi välttyä rationaalisella päätöksellä toimia arvovapaasti. Opettaja vaikuttaa jopa enemmän sillä, mitä hän on, kuin sillä, mitä hän sanoo. Siksi oleellista on tiedostaa arvonsa, jotta arviointi voisi tapahtua oikeudenmukaisesti.

karvi.fi = Kansallisen koulutuksen arviointikeskus

  1. RYHMÄTAPAAMINEN:

Pohdittiin ja keskusteltiin millaisia taitoja lapset tarvitsevat 2000- luvulla?
- sosiaaliset taidot, vuorovaikutus, tunneilmaisu, itsetuntemus
- uteliaisuus, halu ja into oppia
- kyky havainnoida, kyky ”kummastella”
- käytännön taidot, kädentaitoja, taito- ja taideaineet
- suvaitsevaisuus, kulttuurien ja uskontojen ymmärrys, ”arvo— osaaminen”, moninaisuuden ja erilaisuuden kohtaaminen
- ”arjenhallinnan taidot”, käytöstavat
- luku- ja laskutaito, kielitaito
- medialukutaito, mediakriittisyys, informaationkäsittely, 
- lähdekritiikki
- luova ongelmanratkaisu, poikkitieteellisyys, koknaisvaltainen 
- ajattelu

Tarvitaan kuitenkin myös jonkun asian hallinta
Yltäkylläisyys
Ope kertoi tarinan kivenhakkaaja John Henrystä. Kannattaako teknologiaa vastaan taistella?
Teknologia+ informaatioteknologia käyttöön
Aasia (luovuus) mikä on suomalaisen työn lisäarvo intialaiseen nähden
Kantin kategorinen imperatiivi
Nikomakhoksen etiikka

Pohdittiin mikä on Atjosen pääajatus artikkelissa? (itse en ollut vielä lukenut artikkelia)

- kilpailullisuus ei auta yksilöä kisaaman kovemmin
- palautteen tulee olla asiallista, oppilasta ei voi miellyttää

2. RYHMÄTAPAAMINEN


Korjattiin kokeita ja mietittiin yhdistäviä tekijöitä mitä vastauksista pitää ilmetä että saa pisteen. Korjaaminen ja pisteyttäminen oli yllättävän vaikeaa, koska vastaukset olivat niin erilaisia. Jotkut vastaukset olivat todella pitkiä ja hyviä, mutta ne eivät ihan liittyneet kysymykseen .