HOME

Over een academische opleiding tot “Computer Scientist”

Show original manuscript


gaarne commentaar

EW Dijkstra.

Over een academische opleiding tot “Computer Scientist”.

Met “academische opleiding” bedoel ik een opleiding aan Hogeschool of Universiteit. Wanneer ik spreek over “het vak” Computer Science”, dan bedoel ik een geestelijke discipline, vooralsnog in het midden latens, hoe dit in het academisch bestel zou moeten worden ingepast: zelfstandig, als afstudeerrichting c.q. mogelijk hoofdvak voor een doctoraalexamen, met een interfacultaire status etc. (Dit zal mede van lokale omstandigheden afhangen.)

Belangrijke praeliminaire vragen lijken mij

1) wat zou het vak moeten inhouden?

2) hoe omvangrijk is de behoefte aan in dit vak afgestudeerden? en wat is hun plaatsingsmogelijkheid?

3) is de instelling van een dergelijk specialisme tegenover studenten, die nog een heel leven voor de boeg hebben, verantwoord?

4) wat zijn de opleidingsmogelijkheden?

5) liggen er taken voor academisch onderzoek? en tenslotte (dit is geen grapje!)

6) hoe zou dit vak in het Nederlands moeten heten?

Het is duidelijk dat deze vragen niet onafhankelijk van elkaar beantwoord kunnen worden. Uitgaande van de dienende functie van het Hoger Onderwijs, wil ik van de maatschappelijke aspecten uitgaan. En dan observeer ik het volgende.

Aan een computer scientist “pur sang”, die niet bereid is zich bij de uitoefening van zijn vak in specifieke toepassingen te verdiepen is geen schreeuwende behoefte. Men zou een moment kunnen denken, dat men zulke mensen ten bate van de Nederlandse rekenmachineindustrie zou kunnen opleiden, maar

a) de toekomst van de Nederlandse rekenindustrie is niet zeker

b) de praktijk heeft geleerd, dat elke rekenmachinefabrikant zich uitgebreid in de problemen van zijn klanten moet verdiepen, omdat de klant (nog) niet beschikt over de mensen, die de brug van de toepassing in een gegeven situatie kunnen slaan.

Omgekeerd is het duidelijk, dat men geen opleiding tot computer scientist kan componeren, door 100 bijvakjes (nl. voor elk mogelijk toepassingsgebied 1) bij elkaar te vegen. De situatie lijkt erg op die, welke we bij de opleiding tot wiskundig ingenieur al kennen: van de pas afgestudeerde wiskundige ingenieur eisen we niet dat hij van alle markten thuis is, wel dat hij over de nodige basiskennins beschikt om zich snel in een nieuwe markt thuis te gaan voelen, dwz. uit een toepassingsgebied de quintessence, voorzover voor hem relevant, te extraheren.

Bedenkend dat de opmars der rekenautomaten niet anders is dan een symptoom van de voortschrijdende mathematisering van de maatschappij, denk ik me bij gebrek aan gedetailleerdere ideeen gemakshalve een soort onderbouw, zoals we die inmiddels voor de opleiding tot wiskundig ingenieur kennen, zij het met enige accentsverschuiving (zoals wat minder bemoeienis met het continuum, ten gunste van discrete, eindige problemen, praktische logica, stukken van de regeltheorie en de bedrijfskunde; ook wat stochastiek).

Van de computer scientist zal bv. verlangd worden, dat hij intuitief geformuleerde automatiseringsprojecten met kennis van zijn zaken en in nauw contact met de geinteresseerden omsmeedt tot we! gedefinieerde projecten, met een duidelijk onderscheid tussen vereisten en desiderata; hij meet deze structureel kunnen analyseren en liefst in een vroeg stadium een verantwoord inzicht krijgen in de logische en kwantitatieve knelpunten, kwetsbaarheid, expansiemogelijkheid etc. Voor de taxatie van kwantitatieve knelpunten lijkt enige stochastische scholing niet ondienstig; de regeltheorie heb ik genoemd omdat van de computer scientist een heel operationele appreciatie van causale afhankelijkheid gevergd wordt. Bij de genoemde verkenning is een scholing in de logica al een groot goed, bij de gedetailleerde uitwerking van dergelijke projecten is het dunkt me een onmisbaar stuk gereedschap.

Laat ons thans de verhouding tot “randdisciplines” afbakenen, Ik denk aan de constructiekant bijvoorbeeld aan electrotechniek en werktuigbouwkunde, aan de gebruikskant speciaal aan de numerieke wiskunde. Ik kan we een zeer nuttige computer scientist voorstellen, die op al deze drie gebieden een onbeschreven blad is. Het is evenwel ook heel goed mogelijk, dat een computer scientist zijn werkterrein heel dicht bij of zelfs op deze randgebieden legt. Mijn conclusie is dat dergelijke randdisciplines (met het noemen van dit drietal claim ik geen volledigheid) niet essentieel tot de geestelijke bagage van de computer scientist behoren, maar als mogelijk keuzevak op een programma niet zouden misstaan. En hiermee zijn we dan gekomen tot de vraag, wat dan wel specifiek tot het vak computer science zou behoren.

1) Hij (dwz. de computer scientist) dient in hun gebruiksaspecten met hardware en hardware componenten vertrouwd te zijn. Enig orgaan voor snelheid, betrouwbaarheid, prijs, onderhoud, klimatologische voorzorgen kan allemaal geen kwaad. (Tegen de tijd dat de computer scientist specificaties van te bouwen hardware moet geven, is intensievere vertrouwdheid met electrotechniek wel gewensd.)

2) Hij zal met gangbare programmeertalen en hun implementatietechniek vertrouwd moeten zijn

Het onder 1 en 2 genoemde is encyclopaedische kennis van vrij vergankelijke aard. Omvang en actualiteit zullen daarom streng bewaakt moeten worden.

3) Vertrouwdheid met coderingstechnieken, syntaxes op eindige alphabetten, structuren van hanteerbare contextafhankelijkheid van betekenis etc.

Ook minder zakelijke wiskundigen hebben rijkelijk tot dit gebied bijgedragen, zodat er onvergankelijk materiaal te over is. Omvang dient daarom bewaakt te worden, relevantie zij daarbij richtsnoer.

4) Hij zal met inachtname van alle denkbare flexibiliteitseisen complexe systemen moeten kunnen concipieren, construeren en verifieren.

Voor de conceptie dient hij over een scherp ontwikkeld en ik zou willen zeggen “zakelijk” abstractievermogen te beschikken.

Voor de constructie dient hij vertrouwd te zijn met de mogelijkheden deze te automatiseren: dit stelt hogere eisen aan de graad van abstractie bij de conceptie, is anderzijds een belangrijke toetssteen voor “de gezondheid” van een nieuw begrip.

Voor de verificatie zal hij vertrouwd moeten zijn met moderns bewijstechnieken. Een ontwikkeld gevoeld voor de factoren, waarvan de hanteerbaarheid van dergelijke bewijzen critisch kan afhangen, is bij conceptie en constructie een onmisbare leiddraad.

Ik heb alle reden om te verwachten, dat dit in de zeer nabije toekomst tot een logisch samenhangende discipline zal uitklinken, doceerbaar, examineerbaar, bruikbaar en weinig vergankelijk. Te verwachten bijproducten

a) een documentatietechniek die aan strenge eisen voldoet

b) een organisatietechniek, die aan strenge eisen voldoet

c) een begrippenarsenaal waarmee gegeven rekenautomaten op hun logische consistentie kunnen worden beoordeeld

d) een begrippenarsenaal in termen waarvan de eerder genoemde “structurele analyse van autamatiseringsprojecten” relevantelijk kan worden uitgevoerd.

Zonder claim op volledigheid staak ik hier de opsomming van wat dan specifiek wel tot het vak Computer Science zou behoren. Het soort vakman, dat mij voor ogen zweeft is door de genoemde voorbeelden, hoop ik, voldoende getekend.

Om vraag 2 (omvang van behoefte en plaatsingsmogelijkheid) concreet te beantwoorden, ontbreken mij helaas de middelen.

Zijn potentieel werkterrein is enorm: wij kunnen veilig stellen dat “the computer is here to stay” en het zal alleen maar erger worden. Numerieke besturing van gereedschapswerktuigen, reservering, banken, grote en kleine bedrijfsadministraties, informatiebeheer in ruimere zin, ziekenhuizen (zowel voor adminisstratie als bewaking), havenbedrijf, verkeersregeling op de grond, in de lucht en op de rails (overzicht wagenpark!), verweving met experimentele technieken etc.

De behoefte aan hem is evenredig aan dit soort activiteit. Wat nu gevergd wordt gaat het bevattingsvermogen van de gewone programmeur (zelfs de goede), die dateert uit de tijd dat accuratesse en spitsvondigheid voldoende waren om zijn ambacht te bedrijven, ver te hoven. De alom waarneembare incompetentie, die bij omvangrijkere computertoepassingen tentoongespreeid pleegt te worden, is ronduit beangstigend en zou ons moeten leiden tot de conclusie dat het Hoger Onderwijs in dezen al gefaald heeft. Over de behoefte maak ik me dan ook geen zorgen: in elk geval groter dan de uit de aard der zaak beperkte productiemogelijkheid van hooggekwalificeerde academici.

Over de plaatsingsmogelijkheden maak ik me meer zorgen: dat in het computer-gebruik het menselijk bevattingsvermogen de zwakste schakel begint te worden, is nog onvoldoende bekend. Menig bedrijfsleiding leeft in de overtuiging, dat je voor je personeel rond de computer volstaan kunt met mensen van middelbaar niveau of lager die (soms zelfs zonder HBS) een paar cursussen gevolgd hebben, een fictie die door opleidingsinstituten van dubieuze signatuur wordt warmgehouden. (Ook door computerfabrikanten, die drempelvrees van klanten willen overwinnen.) Advertenties spreken in dit opzicht weinig geruststellende boekdelen. Ik ben verder bang voor het soort weerstand, dat je bewust zou kunnen oproepen door Computer Scientist met “rekenweter” te vertalen! De meeste mensen willen niet, dat hen verteld wordt dat zij te licht zijn voor hun taak.

Vraag 3, of het tegenover de studenten verantwoord is, zich “voor de rest van hun leven” in dit specialisme te begeven, durf ik na enige aarzeling bevestigend te beantwoorden. Het werkterrein zal niet zo een twee drie uitgeput zijn, toch meet je je de vraag stellen “Wat doet zo’n man, als hij ouder wordt.” Het zou me niet verbazen, als het dan te moeilijk voor hem wordt; in dit geval moet je hopen, dat de man bv. zoveel organisatorische ervaring heeft opgedaan, dat hij in een minder technische beleidsfunctie kan groeien. Dit is niet irreeel, temeer daar hij door zijn eerdere werk het bedrijf wel eens heel aardig zou kunnen kennen.

Vraag 4 stelt de opleidingsmogelijkheden. Uit het voorafgaande blijkt dat ik me de opleiding alleen kan voorstellen als wiskundige specialisatiemogelijkheid. Gezien het werkterrein van de computer scientist lijkt een hogeschool iets meer voor de hand te liggen dan een universiteit. Bekommerd om de “weltfremdheit” van de universiteit zou je kunnen opteren voor een universiteit, als middel om de universitaire wiskundige een toegang tot de maatschappij te geven. Dat zou heel mooi zijn, als dat kan. Elke wiskundige groep (subfaculteit of onderafdeling) die deze opleiding gastvrijheid zou verlenen, moet wel drommels goed weten, wat hij doet. Het specialisme “computer science” mag niet verwelkomd worden als uitloopmogelijkheid voor de minder begaafde student, waar je eigenlijk niet zo goed raad mee weet, in zo’n milieu is de opleiding een doodgeboren kindje. Men meet met open ogen zich er a priori bij neerleggen, van ganser harte zelfs, dat een aantal van de beste studenten deze kant opgaat. Men versta mij goed, dit is niet een oratio pro domo, een opschroeven van de importantie of intellectuele pretentie van eigen vak, het is de maatschappelijke consequentie, van het feit, dat nu machines gemeen goed worden, die 1 000 000 maal zo snel zijn dan wat een generatie geleden mogelijk was, zodat allerlei behoeften mechanisch bevredigd zouden kunnen worden, als wij maar wisten hoe.

Liggen er taken voor academisch onderzoek? Dat was vraag 5. Op dit punt aarzel ik, althans voor de verdere toekomst. Op het ogenblik is er nog een heleboel werk te doen, de manier waarop we rekenautomaten gebruiken is, hoewel beter dan vroeger, nog steeds vrij rommelig; de structuur van de machines zelf is navenant. Maar het is niet uitgesloten dat binnen tien of twintig jaar dit zoeken en tasten zijn beslag vindt, dat alle rekenmachinetoepassingen onderling evenveel overeenkomst vertonen als alle wiskundige bewijzen en dat iedereen er gelukkig mee is. Het is een jaar of dertig geleden begonnen, in een halve eeuw zouden we er wel eens op uitgekeken kunnen raken. De veelheid der toepassingen zal blijven, maar de gemeenschappelijke kern zou klaar kunnen raken. In Angelsaksische terminologie zou ik niet voor een “Department of Computer Science” durven pleiten, ik zou het onderzoek niet op deze wijze willen institutionaliseren. Ik durf het niet, ik geloof ook niet dat het hoeft zolang het vak zich geborgen weet waar het thuis hoort: onder de mantel van de Koningin der Wetenschappen.

Nu vraag 6: hoe moet het vak heten? Ik ben alergisch voor het woord Computer (uit te spreken: kompuuter). Rekenkunde zou gaan, maar dat is al bezet. Ik kan op het ogenblik niet veel anders bedenken dan “automatiseringswiskunde”, dit heeft het voordeel, dat haar beoefenaren ook een naam hebben “automatiseringswiskundigen”. De constructie is analoog aan “toegepaste wiskunde” maar loopt zelfs iets lekkerder. (Het substantief “toegepast wiskundige” is natuurlijk waanzin!) De term is wel fair. Je kunt ook denken aan informatieleer, maar “informatie” is me wat te passief. Automatentheorie is een heel ander vak, dat kan dus ook niet. Voor electronische rekenautomaat is de term “informaat” gesuggereerd, maar bij mijn weten niet aangeslagen. Wiskundige programmering is geloof ik ook al bezet, ligt in elk geval te dicht bij constructies als dynamische programmering. De term “autonomica” (naar analogie van de dynamica en de physica) heeft het voordeel, dat de term in Engeland geintroduceerd is. (Het NPL kent een “Autonomics Division”). Ingeburgerd is een tweede... Toegepaste logica kan je ook proberen, mechanische wiskunde is een andere mogelijkheid (in Bonn is een instituut voor “Instrumentelle Mathematik”). Voor geen der genoemde namen loop ik vreselijk warm, we houden ons voor suggesties aanbevolen.