torstai 30. toukokuuta 2002

Aamu alkaa algoritmilla

sfnet.tiede.matematiikka: tekniikan opetuksen alasajo? 

30.5.2002 16:14

Jyrki Havia kirjoitti:
Soveltamistaito on tärkeä. Kuulin eilen väitteen, jonka mukaan monet niistä, jotka ymmärtävät kunnolla algoritmeja, eivät ymmärräkään ohjelmointia riittävän hyvin. En tiedä onko asia näin, mutta on surkeaa jos on.
Kyllä tämnä käytännön kokemuksena tuntuu paikkaansa pitävän.
Mutta parempi muotoilu olisi ".. eivät välitä toteutuksen tehokkuudesta" (ts., ei katsota/ymmärretä/"haluta tietää" mitä se rutiini x, joka toteuttaa jonkin algoritmissä tarvittavan kohdan, sitten oikesti tekee ja kuinka tehokkaasti).

Tällainen väite voi jossain tapauksissa päteä perinteisemmän matemaattisen taustan omaavaan henkilöön, jolle ohjelmointi on tullut työnkuvaan myöhemmin ja tuntuu lähinnä välttämättömältä pahalta.

Epäilen, että väite on kuitenkin perätön niiden kohdalla, joilla on ohjelmointitausta, ja jotka ovat myöhemmin kiinnostuneet algoritmien jne. teoreettisesta puolesta. Kokemukseni perustuu lähinnä informaatio- ja matematiikka-olympialaisissa pärjänneiden ihmisten tuntemiseen ja voin vakuuttaa, että tuosta porukasta löytyvät myös huipputason käytännön toteuttajat, vaikka nämä ihmiset voidaankin laskea luokkaan "ymmärtävät kunnolla algoritmeja".

Toisaalta (tätä ehkä tarkoitit), kun nuoruuden kritiikitön into laantuu, voi teoreettisesti suuntautuneelle toistuva "opettele-typerä-rajapinta-x-joka-vanhenee-vuoden-päästä-ja-kirjoita-älyttömästi-yksinkertaista-koodia-mutta-silti-keskity-jatkuvasti-virheitä-välttääksesi"-työ alkaa käydä puisevaksi. Hankalat algoritmit ovat vain murto-osa isojen ohjemistojen kehittämisestä (niiden merkitys vähenee lähestyttäessä koodin kerroksissa loppukäyttäjää lähinnä olevia abstraktioita). Konetehon kasvaessa myös yhä useampi ohjelmointiongelma muuttuu algoritmisesta tai koodinviilauksellisesta näkökulmasta ylläpidettävyyteen, koodin tuottamisen helppouteen/hintaan, muunneltavuuteen, luettavuuteen jne.

Ohjelmistotieteen/tekniikan opetuksessa on toki huomioitava ei-ohjelmistoteknisiä asioita kuten järkevä työnjako, jos halutaan kehittää rationaalinen prosessi/organisaatio ohjelmistojen tuottamiseen. Tosin tätä ei kukaan kieltänytkään.


 
(MEL BROOKS Mykkä leffa - kuningattaren kiväärit)