Programming for Mathematicians (Raymond Séroul; Springer 2000)

Matemaattinen osaaminen on mahdollista luokitella kolmeen eri tyyppiin: matemaattisten teoreemien luomista ja todistamista korostavaan puhtaaseen matematiikkaan, ongelmanratkaisua korostavaan soveltavaan matematiikkaan sekä tietokoneiden roolia korostavaan algoritmiseen matematiikkaan. Tämä jaottelu on osittain keinotekoinen, mutta jotain todellisuuspohjaa asiassa silti lienee.

Kun edellisen jaottelun pohjalta suunnittelemme ohjelmoimisen opettamista eri tyyppisille matemaatikoille, huomaamme selkeän puutteen: miten ohjelmointia pitäisi opettaa 'puhtaalle matemaatikolle'?. Soveltaville matemaatikoille on syytä korostaa ohjelmoinnin ongelmanratkaisuluonnetta ja kytkentää matemaattiseen mallintamiseen. Algoritmisella matematiikalla -- joka usein ilmentyy tietojenkäsittelytieteen muodossa -- puolestaan on selkeät kytkennät ohjelmoinnin teoreettisempaan puoleen.

Séroulin ranskasta englanniksi käännetty teos tarjoaa teoreemien ja todistusten parissa työskenteleville opiskelijoille ja tutkijoille luontevan tavan lähestyä ohjelmoinnin maailmaa. Teos on tärkeä ja hyödyllinen, sillä nykyään tietokoneita käytetään yhä enenevässä määrin myös puhtaan matematiikan apuvälineenä -- yleensä rutiiniluontoisten laskutoimitusten hoitamiseen mutta toisinaan myös uusien identiteettien ja teoreemojen etsimiseen.

Teos vaatii lukijaltaan matemattista ajattelutapaa ja perehtyneisyyttä esim. lukuteorian perusteisiin. Kovin helpolla lukijaa ei päästetä, vaan kirja edellyttää pohdintaa ja omakohtaista työskentelyä esitettyjen ideoiden omaksumiseksi. Toisaalta kirjan lähestymistapa on matemaatikon kannalta suoraan hyödynnettävissä tutkimustyössä, toisin kuin tavanomaisten ohjelmoinnin oppikirjojen ja käsikirjojen insinöörityylinen tai tietojenkäsittelyllinen ajattelutapa. Toisaalta teos ei luultavasti myöskään kiinnosta perusinsinööriä tai koodinvääntäjää.