• Ei tuloksia

EIE =JA=JEE== JEAJAIEJJAOJEAJAAII

N/A
N/A
Info
Lataa
Protected

Academic year: 2022

Jaa "EIE =JA=JEE== JEAJAIEJJAOJEAJAAII"

Copied!
9
0
0

Kokoteksti

(1)

Miksi matematiikkaa tietojenkäsittelytieteessä?

Wilhelmiina Hämäläinen whamalai@cs.joensuu.

14th March 2004

Uudessa ACM:n curriculumissa matematiikan ja teoreettisten tietojenkäsittelyti- eteen kurssien oppimääriä on pienennetty radikaalisti. Varsinaisesta matematiikasta ydinainekseen kuuluu vain 40 tuntia diskreettiä matematiikka. Lisäksi suositellaan muitakin matematiikan kursseja, kuten tilastotiedettä, kalkyyliä, lineaarialgebraa, numeerisia metodeja, lukuteoriaa, geometriaa tai symbolista logiikkaa.[cur01]

Curriculum-komitea on perustellut matematiikan ja teorian osuuden vähentämistä sillä, että 1) teoreettisten alueiden (algoritmiikan ja ohjelmointikielten teorian) merkitys on suhteessa pienentynyt muihin alueisiin nähden, 2) curriculum pyrkii palvelemaan mahdollisimman monenlaisia instituutioita ja 3) curriculum-mallin tulee palvella nykyisyyttä ja tulevaisuutta, eikä pitäytyä menneisyyden tietojenkäsitte- lytieteessä.

Alan ammattilaiset ovat kuitenkin toista mieltä. Almstrumin [Alm03] tutkimuk- sessa 500 pääasiassa yhdysvaltalaista tietojenkäsittelytieteen ammattilaista kertoi kokemuksistaan matematiikan tarpeellisuudesta työssään. Vastaajista noin 1/3 työskenteli pääasiassa opetusalalla ja noin 1/3 teollisuudessa. Peräti 75% piti hyvää matematiikan ymmärrystä tärkeänä vaatimuksena alan työssä.1

Monet asiantuntijat ovat myös esittäneet puheenvuoronsa matematiikan tarpeel- lisuuden puolesta varsinkin ACM Communications-lehdessä.2 Seuraavissa kappaleissa käsittelemme heidän tärkeimpiä argumenttejaan.

1On syytä huomata, että vastaajista lähes 80% oli naisia. Muiden tutkimusten mukaan ti- etojenkäsittelytieteessä naisille ymmärtäminen on tärkeämpää, kun taas miehet nauttivat raken- tamisesta ja tekemisestä. [Dev03]

2Suomalaisista asiantuntijoista Orponen [Orp03] on käsitellyt kysymystä, mihin tietojenkäsit- telytieteen teoriaa tarvitaan. Ohjelmistotuotannossa tarvittavaa matematiikan roolia on käsitellyt mm. Valmari [Val00, Val01].

(2)

1 Kyky ajatella matemaattisesti

Matematiikan ja teoreettisen tietojenkäsittelytieteen puolustajat ovat nostaneet esiin monia ajankohtaisia ja tulevaisuuden kehityksen kannalta tärkeitä tietojenkäsitte- lytieteen sovellusalueita, joissa tarvitaan matemaattisia valmiuksia. Tärkeimpänä argumenttina matematiikan opintojen pakollisuudelle on kuitenkin ollut kyky oppia matemaattista (loogista/abstraktia/analyyttistä) ajattelua.

Devlin [Dev03] korostaa sitä, että tietojenkäsittelytieteen tuotteet ovat puhtaasti abstrakteja, ja tällaisten abstraktien tuotteiden määrittely, suunnittelu ja testaus edellyttävät abstraktia ajattelua. Henderson [Hen03] huomauttaa, että ohjelmisto- tuotanto edellyttää kykyä ajatella loogisesti ja täsmällisesti aivan kuten matemati- ikassa ja ohjelmistotuotannossa käytetään jatkuvasti implisiittisesti matemaattista päättelyä. Laajasti ottaen matemaattinen päättely voidaan määritellä "matemaat- tisten tekniikoiden, käsitteiden ja prosessien soveltamiseksi eksplisiittisesti tai im- plisiittisesti ongelmien ratkaisemisessa", jolloin kaikessa ongelmanratkaisussa tarvi- taan matemaattista päättelyä. Bruce et al. [BSKT03] korostavat, ettei tärkeää ole minkään yksittäisen matematiikan osa-alueen hallinta, vaan korkean tason matemaat- tinen kyvykkyys: useimmat tietojenkäsittelytieteen ongelmat edellyttävät matemaat- tisen mallin luomista fyysisestä todellisuudesta. Tärkein hyöty matematiikasta onkin yleinen kyky formaaliin määrittelyyn ja matemaattiseen päättelyyn.

Lisäksi monet kirjoittajista (esim. Devlin [Dev03], Henderson [Hen03]) korosta- vat, että yliopisto-opiskelun tärkeimpiä päämääriä on tarjota pohja myöhemmälle oppimiselle. Vaikkei opiskelija tarvitsisi jotain tiettyä teoreemaa tai tekniikkaa koskaan tulevaisuudessa, hän on silti saanut valmiudet oppia tarvittavia uusia asioita.

Tämä perustuu siihen, että oppiessa ihmisaivot aina luovat ja vahvistavat uusia her- mopolkuja, jotka pysyvät kauan sen jälkeen, kun niiden luomiseen käytetyt faktat unohtuvat. Ei siis haittaa, vaikka faktat katoavat, sillä kyvyt säilyvät! [Dev03]

Tietojenkäsittelytieteessä kyky jatkuvaan oppimiseen on erityisen tärkeää, sillä ala on nopeasti muuttuva. Matemaattinen tieto puolestaan on pysyvää ja hyvin testat- tua, eikä se vanhene. Kukaan ei esimerkiksi tiedä, mikä on neljän vuoden päästä vallitseva ohjelmointiparadigma tai -kieli, mutta on varmaa, että sille on kyettävä laatimaan kääntäjiä ja ohjelmoijien on opittava käyttämään sitä.

Myös suomalaiset asiantuntijat ovat korostaneet, kuinka tärkeää on taata kestävä kehitys. Tietotekniikan matemaattisen teorian edistys muodostaa pitkän aikavälin kehityksen todellisen perustan, kuten Orponen [Orp97] toteaa. Valmari [Val00]

on huomauttanut, että teollisuudessa haluttu täsmäkoulutus ja karsaus matemaat- tisia/teoreettisia kursseja kohtaan on kovin lyhytnäköistä. Laajempi teoreettinen

(3)

yleissivistys auttaa sopeutumaan tulevaisuuden tekniikoihin, jolloin henkilökunnan osaaminen ei vanhene teknologian myötä. Teollisuus hyötyy teoreettisesta osaamis- esta myös toisella tapaa: teorian tuntemus auttaa arvioimaan eri teknologioiden etuja ja haittoja tärkeissä strategisissa päätöksissä.

2 Missä matematiikkaa tarvitaan?

2.1 Ohjelmointitaidot

Matemaattisten taitojen ja ohjelmointitaitojen välillä on havaittu selvä korrelaa- tio. Devlin [Dev03] selittää tämän sillä, että hyvä ohjelmointitaito edellyttää kykyä käsitellä abstraktioita tarkasti joka on matemaattinen taito. Page [Pag03] on huomannut, että matemaattisen induktion ymmärtäminen auttaa opiskelijoita ym- märtämään muitakin siihen liittyviä käsitteitä kuten rekursiota, numeerisia rekur- sioyhtälöitä ja silmukkavariantteja. Bruce et al. [BSKT03] ovat myös korostaneet induktiokäsitteen merkitystä rekursiivisten ohjelmien laatimisessa. Rekursiiviset ohjelmat ovat usein tehokkaita ja yksinkertaisia, mutta niiden laatiminen edellyttää rekursion idean ymmärtämistä ja mikä vielä tärkeämpää lisäksi on varmistettava, että rekursiivinen ohjelma täyttää määrittelyn. Tähän tarvitaan matemaattista in- duktiota. Ohjelmoijille, jotka taitavat induktion, on helpompi laatia rekursiivisia ohjelmia ja varmistua niiden toimivuudesta. Lisäksi induktion käyttö mahdollis- taa sen, että ohjelman kehitys ja veriointi voidaan suorittaa samanaikaisesti. Kun opiskelija on harjaantunut induktion käytössä, ei formaalia todistusta enää tarvita, vaan induktioperiaatetta voidaan soveltaa implisiittisesti.

Laskettavuudenteoria on tietojenkäsittelytieteen matemaattisimpia kursseja, jolla on myös käytännön vaikutusta ohjelmointitaitoihin.3 Kun opiskelija oppii tun- nistamaan ongelmaa vastaavan formaalin kieliluokan (esimerkiksi äärellinen kieli, LL(1)-kieli, deterministinen kieli), hän voi soveltaa ongelman ratkaisussa suoraan oppimiaan tehokkaita työkaluja (automaattien tai jäsentäjän ohjelmatoteutusta).

Kontekstittomat kieliopit auttavat myös hahmottamaan rekursion käsitettä ja ohjel- moimaan rekursiivisen määrittelyn.

3Laskettavuuden teoria tarjoaa työkaluja myös vielä perustavampaa laatua olevaan kysymyk- seen: onko kohdattu ongelma ylipäänsä ratkeava? Tämä ongelma on itsessään laskennallisesti ratkeamaton, joten ainut keino varmistua ratkeamattomuudesta on matemaattinen todistus, mutta kurssi harjaannuttaa opiskelijoita tunnistamaan ratkeamattomat ongelmat.

(4)

2.2 Ohjelmistotuotanto

Matematiikasta on hyötyä kaikissa ohjelmistokehityksen vaiheissa: määrittelystä ja suunnittelusta koodaukseen sekä lopullisen toteutuksen turvallisuuden ja oikeel- lisuuden veriointiin [BSKT03]. Myös empiirisissä kokeissa on havaittu matemaat- tisten taitojen tehostavan ohjelmistotuotantoa. Esimerkiksi 3-vuotisessa Beseme- projektissa [Pag03] havaittiin opiskelijoiden pärjäävän paljon paremmin käytännön ohjelmistotuotantotehtävissä, kun he olivat opiskelleet diskreettiä matematiikkaa sovellettuna ohjelmistotuotteisiin.

Henderson [Hen03] muistuttaa, että ohjelmistotuotannon tärkeimmät tekijät ovat tuotteen kehityskustannukset ja luotettavuus mitattuna virheinä 1000:tta koodiriviä kohden. Matematiikka tarjoaa apukeinoja tehostaa tuotantoprosessia ja havaita mahdolliset virheet mahdollisimman aikaisessa vaiheessa. Henderson [Hen03] ja Val- mari [Val00, Val01] korostavat erityisesti kahta (osittain päällekkäistä) määrittely- ja suunnitteluvaiheen toimintoa, joissa matematiikasta on hyötyä: täsmällistä kom- munikointia ja tuotteen abstraktia mallinnusta.

Yhteisen kuvauskielen merkitys on koko ajan kasvanut, kun ohjelmistojen koko ja kehitykseen osallistuvien ihmisten lukumäärä ovat kasvaneet. Lähes poikkeuk- setta ohjelmistotuotteen kehittäminen edellyttää useiden ihmisten yhteistyötä. Tätä varten tarvitaan täsmällistä yhteistä kieltä. Aivan ensiksi ohjelmistotuottajan on kyettävä karsimaan epäolennaisuudet ja kuvaamaan haluttu tuote täsmällisesti käyt- täjän hajanaisten ja usein ristiriitaistenkin toiveiden pohjalta. Mikä tahansa ab- strakti kuvaus ei kuitenkaan riitä, vaan se on esitettävä muiden samaan hankkeeseen osallistuvien ymmärtämässä muodossa. Ohjelmistotuottajan on kyettävä keskustele- maan ei ainoastaan oman alan vaan muidenkin alojen kollegojen kanssa. Matem- atiikka tarjoaa rikkaan, ymmärrettävän ja universaalin kielen kommunikoimiseen.

Matemaattisilla notaatiolla ja symboleilla voidaan määritellä täsmällisesti esimerkiksi datatyypit ja haluttujen operaatioiden semantiikka. Puhekielellä ei samaan täsmäl- lisyyteen ylletä.

Toiseksi Henderson [Hen03] muistuttaa, että ohjelmisto on abstrakti tuote, jonka laatiminen edellyttää abstraktia mallia. Mitä täsmällisempi malli on, sitä aikaisem- massa vaiheessa mahdolliset virheet voidaan havaita. Matematiikka tarjoaa vahvan työkalun mallien rakentamiseen, tarkistamiseen, analysoimiseen ja testaamiseen.

Valmarin [Val00, Val01] mukaan matematiikan suurin hyöty onkin juuri siinä, että se tarjoaa työkaluja abstraktioiden tunnistamiseen, muotoilemiseen ja niistä päät- telemiseen. Myös ohjelman osien välisten rajapintojen, tietovarastojen, tiedos- tomuotojen ja ohjelmakomponenttikirjastojen suunnittelussa voidaan hyödyntää

(5)

matemaattisia työkaluja.

2.3 Muiden tuotteiden formaali määrittely ja veriointi

Formaalia määrittelyä ei tarvita ainoastan ohjelmistotuotannossa, vaan mikä tahansa tuote (käyttöjärjestelmä, laitteisto, tietoliikenneprotokolla) voidaan kuvata matemaat- tisella määrittelyllä. Vastaavasti valmis toteutus verioidaan matememaattisilla todistuksilla. Suunnittelussa mahdollisesti tapahtunut virhe on valtavan kallis, ja siksi esimerkiksi laitteistopiirin tai protokollan suorituskyky ja turvallisuus on veri- oitava huolella ennen tuotteen julkistamista. [BSKT03]

Erityisen tärkeää veriointi on turvallisuuskriittisten järjestelmien kohdalla. Bruce et al. [BSKT03] muistuttavat, että nykyisten virusten ja turvallisuusrikkomusten aikana on erityisen kriittistä ymmärtää olemassaolevat ja potentiaaliset uhat jär- jestelmälle. Turvallisuustodistukset ovat aikaavieviä, mutta vaiva maksaa itsensä takaisin, koska sillä voi ehkäistä lataamasta vahingossa viruksia tai muuta vahin- gollista koodia.

Rinnakkaisten ja hajaututettujen järjestelmien yleistyminen sekä tietoliikenteen kasvu ovat erityisesti lisänneet spesioinnin ja verioinnin merkitystä. Esimerkiksi tietoliikenneverkkojen reititys ja protokollien testaus ja veriointi edellyttävät matemaat- tisia taitoja.

2.4 Algoritmien analyysi

Matematiikka on keskeistä algoritmien suunnittelussa ja analyysissa. Vastaväit- teenä voidaan esittää, että riittää kun jotkut osaavat analysoida algoritmeja, toiset voivat aina valita valmiin algoritmin. Tämä ei kuitenkaan ole helppoa! Käytännön ongelmat usein spesifejä4 ja monimutkaisia, ja toteuttajan on itse kyettävä valitse- maan paras toteutustapa. Matemaattiset todistukset ovat ainut tapa valita paras vaihtoehto. [BSKT03]

Algoritmin analyysitaitoja tarvitaan hyvinkin jokapäiväisessä ohjelmointitehtävissä, kuten seuraava yksinkertainen esimerkki [BSKT03] havainnollistaa: Tehtävänä on sijoittaa alkioita yksi kerrallaan taulukkoon. Kun taulukko täyttyy, sitä on kasvatet- tava. Kannattaako sitä kasvattaa aina vakiomäärän F verran vai tietty prosent- timäärä p% entisestä koosta? Kun analysoidaan kumpikin vaihtoehto, huomataan, että ensimmäisellä tavalla alkion lisäys maksaa keskimäärinO(n)kun toisella tavalla

4Itse asiassa kaikkia mahdollisia laskennallisia ongelmia on ylinumeroituvan monta, joten samanlaisen ratkaistun ongelman löytäminen on todella neulan etsimistä heinäsuovasta!

(6)

lisäyksen keskimääräinen kustannus on vakio! Vaihtoehtojen välillä on siis iso ero, mutta tämän havaitseminen edellyttää algoritmin matemaattista analyysia.

2.5 Ohjelmointikielten kääntäjät

Orponen [Orp97] muistuttaa, että korkean tason ohjelmointikielet ja niiden tehokkaat kääntäjät ovat ohjelmistotuotannon perusdellytys edelleen haastava tehtävä!

Ohjelmointikielten syntaksi on määritelty formaalisti kontekstittomilla kieliopeilla, jolloin sekä kääntäjän laatijalle että ohjelmoijalle on selkeää, mikä on laillinen syn- taksi. Ohjelmointikielet ja niiden kääntäjät kehittyvät jatkuvasti, mutta näiden lisäksi jäsennysteoria on saanut uuden haasteen XML:stä.

XML:ää voidaan jäsentää kuten ohjelmointikieliä ja tuottaa jäsennyspuita. Näitä puolestaan voidaan verioida tietotyyppimäärittelyjä vasten samantapaisilla tekni- ikoilla kuin kääntäjien tyyppitarkistimet. XML:n tietotyypit eivät kuitenkaan ole kiinnitettyjä, vaan yhteistä dataa käyttävät ryhmät voivat sopia uusia tageja eri- laisten tietotyyppien esittämiseen. Tietotyypin rakenne voidaan määritellä samaan tapaan kuin säännölliset lausekkeet. Tällöin voidaan tarkistaa yksinkertaisilla äärel- lisiin automaatteihin perustuvilla algoritmeilla, että tuleva tieto on tyyppimääritte- lyn mukaista. Kielioppeihin perustuvilla algoritmeilla voidaan puolestaan jäsentää ja muuntaa data muihin formaatteihin. [BSKT03]

2.6 Tietoverkot

Tietoverkkojen voimakas kasvu on synnyttänyt uusia polttavia haasteita tietojenkäsit- telytieteen teorialle. Tiedonvälitykseen liittyvät ongelmat ovat kahtalaiset: Ensin- näkin tieto pitäisi kyetä suojaamaan asiaankuulumattomilta tahoilta, ja toiseksi on kyettävä varmistumaan lähettäjätietojen aitoudesta. Ns. julkisen salauksen avaimen salausjärjestelmät ovat esimerkki salaualgoritmeista. Muita kryptograan sovelluskohteita ovat sähköinen tunnistaminen (esimerkiksi sähköraha) ja yksity- isyyden suojan turvaaminen. Kaikki nämä edellyttävät hyvin laaja-alaista matem- atiikan osaamista. (Ks. esim. Orponen [Orp97]).

2.7 Muita sovelluksia

Edellä luetellut sovellusalueet eivät suinkaan kata kaikkia tietojenkäsittelytieteen alueita, joissa matematiikkaa tarvitaan. Esimerkiksi tietokonegraikka on nykyisin

huomattava tuotannonala, joka edellyttää lineaarialgebraa. Tehokkaiden tiedonhakumenetelmien

(7)

(information retrieval) merkitys on kasvanut entisestään tietomäärän paisuessa.

Alan sovelluksissa tarvitaan mm. todennäköisyyslaskentaa, matriisilaskennan pe- rusteita ja formaalien kielten teoriaa. Muita tärkeitä sovellusallueita ovat mm.

relaatiotietokannat, hahmontunnistus, koneoppiminen, bioinformatiikka sekä muut muista tieteistä nousevat laskentatehtävät.

3 Miten opettaa matematiikkaa?

Henderson [Hen03] korostaa, että on tärkeää opettaa matemaattiset peruskäsit- teet mahdollisimman varhaisessa vaiheessa opintoja, ja käyttää ja vahvistaa ni- itä sitten myöhemmillä tietojenkäsittelytieteen kursseilla. Riittävällä harjoittelulla matemaattiset käsitteet muuttuvat mielen sisäisiksi ja tukevat ajattelua. Tucker et al. [TKB01] korostavat, että teoria ja käytäntö tulee integroida toisiinsa ja matem- atiikkaa tulee käsitellä myös tietojenkäsittelytieteen käytännöllisemmillä kursseilla.

Myös Valmari [Val01] ja Page [Pag03] ovat korostaneet, ettei matematiikka tule opettaa irrallaan tietojenkäsittelytieteen sovelluksista. Esimerkiksi induktiotodis- tuksen esimerkit voivat koskea ohjelman/ohjelmiston oikeellisuutta tai resurssien käyttöä.

Pagen [Pag03] kuvaamassa Beseme-projektissa diskreettiä matematiikkaa opeteltiin funktionaalisen ohjelmoinnin avulla. (Ohjelmointikielenä oli Haskell, mutta vas- taavissa projekteissa on käytetty myös Schemeä.) Perusajatuksena oli, että funk- tionaalinen ohjelmointi tarjoaa suoraviivaisen tavan esittää matemaattisia käsitteitä kuten predikaattilogiikka ja todistus induktiolla. Beseme-projektin materiaalissa funktionaalisia ohjelmia käytettiin ilmaisemaan ehtoja, joita minkä tahansa funk- tion (esim. lisäys listaan tai puuhun, puun tasapainotus) oli täytettävä toimiakseen oikeellisesti.

Merkittävä havainto Beseme-projektissa oli, että projektiin osallistuvien opiskel- jat olivat hieman keskimääräistä vähemmän lahjakkaita, mutta kurssin jälkeen hei- dän taitonsa olivat paremmat kuin lahjakkaampien, perinteisesti diskreettiä matem- atiikkaa opiskelleiden opiskelijoiden. Tämä antoi aihetta johtopäätökseen, että loogisen päättelyn harjoittelu ohjelmistotuotteilla tehostaa opiskelijoiden kykyjä käytännön ohjelmistojen kehittäjinä.

(8)

4 Millaista matematiikkaa tietojenkäsittelijä tarvit- see?

Sekä ACM:n curriculumin että asiantuntijoiden mukaan diskreetti matematiikka on tärkein matematiikan osa-alue, jota tietojenkäsittelijä tarvitsee. Toinen tärkeä alue on todennäköisyyslaskenta, jonka perusteet on integroitu ACM:n vuodenmit- taiseen diskreettien rakenteiden kurssiin. Tämän lisäksi ACM:n curriculum su- osittelee sisällyttämään muitakin matematiikan kursseja, erityisesti vuoden kurssia kalkyylistä kehittämään matemaattista kypsyyttä ja ajattelua sekä varmistamaan riittävät esitiedot. Curriculumin esitietovaatimusten ja vaadittujen matematiikan kurssien välinen onkin suuri epäsuhta, joka edellyttäisi täydentäviä matematiikan kursseja.[TKB01, cur01]

Valmari [Val01] on kuitenkin muistuttanut, että ohjelmistotuottaja tarvitsee er- ilaista matematiikkaa kuin fyysikko tai insinööri. Opintoihin pakollisena kuuluva mutta valtaosalle tarpeeton matematiikka koetaan vain turhana rasitteena, joka kasvattaa opiskelijoissa negatiivisia asenteita matematiikkaa ja teoriaa kohtaan.

Dierentiaalimatematiikan ja muiden numeeristen menetelmien sijasta Valmari su- ositteleekin keskittymistä diskreetin matematiikkaan, logiikkaan ja laskennateori- aan. Tärkeintä on, että opiskelijat oppivat työkaluja, joilla käsitellä, ryhmitellä ja jäsentää käsitteitä sekä ilmaista niiden välisiä suhteita, kuten diskreetit rak- enteet, tilakoneet, kieliopit, aikavaativuusluokat ja induktio. Jos opiskelija oppii ymmärtämään näistä useimmat, se harjaannuttaa häntä ajattelemaan täsmällisin käsittein. Muita matematiikan kursseja opiskelijat voivat sitten valita suuntautu- misensa mukaan.

5 Muuta

Nykyinen curriculum vain kokoelma nykyteknologiaa heijastelevia tekniikoita ja tuotteita - eivät valmista opiskelijoita hyvin pidemmällä tähtäimellä

Ks. "Revised model curriculum for a liberal arts degree in computer science", Communications of ACM 39, 12, 1996.

ks. myös:

Devlin: The real reason why software engineers need math. Communications of the ACM, Oct 2001.

(9)

Hinchey, Bowen (ed.): Applications of formal methods. Prentice-Hall, London, 1995.

References

[Alm03] V.L. Almstrum. What is the attraction to computing? Communications of the ACM, 46(9):5155, Sep 2003.

[BSKT03] K.B. Bruce, R.L. Scot, C. Kelemen, and A. Tucker. Why math? Com- munications of the ACM, 46(9):4144, Sep 2003.

[cur01] Computing curricula. computer science volume. Technical report, De- cember 15 2001.

[Dev03] K. Devlin. Why universities require computer science students to take math. Communications of the ACM, 46(9):3739, Sep 2003.

[Hen03] P.B. Henderson. Mathematical reasoning in software engineering educa- tion. Communications of the ACM, 46(9):4550, Sep 2003.

[Orp97] P. Orponen. Matematiikka ja tietojenkäsittelytiede. Arkhimedes, (2):25 29, 1997.

[Orp03] P. Orponen. Mitä tietojenkäsittelyteoriaan kuuluu? Tietojenkäsitte- lytiede, (19):1528, 2003.

[Pag03] R.L. Page. Software is discrete mathematics. ACM SIGPLAN Notices, 38(9):7986, September 2003.

[TKB01] A.B. Tucker, C.F. Kelemen, and K.B. Bruce. Our curriculum has become math-phobic! SIGCSE Bulletin, (33):243247, 2001.

[Val00] A. Valmari. Kun ohjelmistotuotanto ei riitä. Tietojenkäsittelytiede, pages 1014, Jun 2000.

[Val01] A. Valmari. Matematiikan tarve ohjelmistotyössä. Arkhimedes, (2):18 22, 2001.

Viittaukset

LIITTYVÄT TIEDOSTOT

Tulokset osoittivat, että eloperäisten peltojen päästöt tuotettua 1000 euroa kohden ovat viljanviljelyssä C2-tukialueella seitsenkertaiset verrattuna A-tukialueeseen (tuloksia

Joskus kieli on LL(1), mutta annettu kielioppi ei ole

Matematiikan alkeet ovat aina kuuluneet yleissivistyk- seen, matematiikan opiskelua on pidetty tärkeänä loo- gisen ajattelun harjoittamisena.. Nykyisin monet kui- tenkin luulevat,

Tästä syystä matematiikka koe- taan enemmän poikien lajina.” Kairema muistuttaa, että vaikka tyttöjen matemaattiset kyvyt eivät ole hei-... 2

[r]

[r]

Toisaalta koska keskustelu muistuttaa tässä kohden työhaastattelua, voi myös olla, että Risto ei hae kysymyksellään ainoastaan vahvistusta siihen, että Georgi on toiminut

Opettajat, jotka ovat tottuneita käyttämään tietotekniikkaa opetuksessa ja jotka harrastavat myös vapaa-ajallaan tietotekniikkaa, voivat pitää myös toisenlai- sesta