Logica is prachtig hulpmiddel bij oplossen informaticaproblemen
Bergstra en Klint willen informaticastudenten veel rijkdom onthouden
In hun artikel
identificeren Bergstra en Klint drie leerprofielen voor de informatica:
software engineering (SE), embedded computing (EC) en logica &
theoretische informatica (LTI). Zij stellen voor SE en EC als autonome
studies te ontwikkelen en LTI te positioneren als
wiskundevariant. Een slecht idee.
De eerste en belangrijkste
aanbeveling in het recent openbaar geworden verslag van de
visitatiecommissie van de Vereniging van Samenwerkende Nederlandse
Universiteiten (VSNU) is dat het wiskunde- en informaticaonderzoek in
Nederland meer uit elkaar moet worden getrokken:
'Beide disciplines
verschillen te zeer in hun doelstellingen, methodologie, infrastructuur
en criteria voor relevantie en interactie met de maatschappij. Om
historische redenen zitten, organisatorisch gezien, wiskunde en
informatica in Nederland vaak dicht bij elkaar. Een positief gevolg
hiervan is de excellente kwaliteit van het theoretisch onderzoek. Een
serieus nadelig gevolg is echter dat het evenwicht soms zoek is en er
te weinig aandacht bestaat voor praktische en technische aspecten, dat
wil zeggen voor de ingenieurskant van de Informatica.'
Wat geldt voor
onderzoek gaat ook op voor het onderwijs. In plaats van logica &
theoretische informatica onder te schuiven bij de wiskunde moeten we in
onze opleidingen juist het belang van LTI voor het oplossen van
praktische problemen meer benadrukken.
Binnen ingenieursopleidingen
bestaat er traditioneel zeer veel aandacht voor wiskunde. Men vindt het
belangrijk de aankomende ingenieurs een gedegen achtergrond te geven in
theorie die bewezen heeft zeer nuttig te zijn in de praktijk, en die
dat ongetwijfeld over vijftig jaar nog steeds zal zijn. Ook binnen de
informatica moeten we de ambitie hebben onze studenten een hoeveelheid
bagage mee te geven waarvan we denken dat die, ondanks de zeer snel
veranderende praktijk, over vijftig jaar nog belangrijk zal zijn. Dit
betekent: veel wiskunde (met name logica) en informaticatheorie, in het
bijzonder in de basisopleiding.
Daarbij is het dan wel essentieel om
het perspectief goed te kiezen: net zoals bij een college
differentiaalvergelijkingen voor werktuigbouwkundigen de nadruk ligt op
het gebruik van differentiaalvergelijkingen, zo moet bijvoorbeeld bij
een college logica voor informatici de nadruk liggen op het bijbrengen
van de kennis en vaardigheden om uitspraken en redeneringen te
formaliseren in propositie- en predicatenrekening. De belangrijke
stellingen uit de logica (volledigheid, onvolledigheid, compactheid et
cetera) moeten wel genoemd worden, maar de bewijzen hoeven niet
uitgebreid te worden behandeld.
Logica wordt algemeen gezien als een
van de funderende disciplines van de informatica en heeft toepassingen
in vrijwel alle deelgebieden van ons vak, variërend van software
engineering en hardware tot programmeertalen en artificiële
intelligentie. Het is daarom evident dat logica veel aandacht verdient
in iedere serieuze informaticaopleiding.
Die aandacht krijgt logica
op dit moment ook, alleen ligt in veel gevallen het accent te veel op
de logica als een zelfstandig wiskundige discipline en te weinig op
logica als een (prachtig) hulpmiddel bij het oplossen van talloze
informaticaproblemen.
Beschamend
Wat voor logica geldt, gaat ook
op voor theoretische informatica. Toen een aantal onderzoeksmanagers
bij een groot Nederlands IT-bedrijf onlangs de vraag kreeg voorgelegd
een efficiënte oplossing te bedenken voor een variant van het
handelsreizigersprobleem, kwamen deze 'IT-specialisten' met een groot
aantal suggesties voor oplossingen maar niemand vroeg zich af of het
hier soms om een 'NP-volledig-probleem' ging. Dergelijke voorbeelden
(en ze zijn er te over) zijn beschamend. Edsger W. Dijkstra heeft
volledig gelijk als hij schrijft dat hier 'opvoeding' op zijn plaats
zou zijn.
In het door Bergstra en Klint voorgestelde SE-curriculum
worden de onderwerpen algoritmiek, complexiteitstheorie, semantiek,
formele talen, automatentheorie, vreemd genoeg niet eens genoemd. Toch
zijn dit stuk voor stuk onderwerpen uit de theoretische informatica die
bewezen hebben zeer nuttig te zijn in de praktijk, en zij zullen dat
ongetwijfeld over vijftig jaar nog steeds zijn.
Wanneer ik kijk naar
mijn eigen specialisme, embedded computing, dan zijn ook daar, ondanks
alle razendsnelle veranderingen, theorieën aan te wijzen die
ongetwijfeld tot in lengte van dagen belangrijk zullen blijven:
gedistribueerde algoritmen, real-time systemen, scheduling,
klok-synchronisatie, concurrency-theorie et cetera.
Wat ons vak zo
leuk maakt is de rijkdom aan belangrijke toepassingen van al deze
theorieën. Gedistribueerde algoritmen worden op talloze plaatsen
toegepast, variërend van TCP/IP tot IEEE 1394 (Firewire). Real-time
systemen en klok-synchronisatie zijn essentieel voor ingebouwde
applicaties als GPS (global positioning system). De scheduling-theorie
is essentieel voor real-time bedrijfssystemen zoals die worden gebruikt
in vliegtuigen. Door toepassing van de concurrency-theorie had de
beroemde Pentium-bug van Intel voorkomen kunnen worden.
Specificatietalen zoals Z, Statecharts en Petri-netten worden dagelijks
door vele duizenden mensen in de industrie gebruikt voor het
specificeren en analyseren van safety-critical applicaties. Et
cetera.
Zijn Bergstra en Klint van plan informaticastudenten al deze
rijkdom te onthouden?
Nuttig
Of we dat nu leuk vinden of niet,
studenten willen tegenwoordig veel eerder dan vroeger zien waar de stof
die ze krijgen aangereikt, goed voor is. We kunnen ze niet meer een
stapel theorieboeken geven en zeggen 'Lees dat nu maar, dat is goed
voor je, en je zult later wel zien waar dat allemaal nuttig voor is'.
Een van de belangrijkste redenen waarom de beta-studies de laatste
jaren zo weinig studenten trekken is misschien wel dat we - ook al
roepen overheid, universiteiten en bedrijven om het hardst dat deze
studies nuttig zijn - onvoldoende energie steken in het helder
toelichten van dat nut.
Door in een informaticaopleiding vanaf het
begin theorie te presenteren vanuit het ingenieursperspectief, vangen
we twee vliegen in een klap. De praktisch georiënteerde student
krijgt gereedschap aangereikt waar hij zijn hele leven veel aan zal
hebben, terwijl de student die verder wil in onderzoek voldoende
motivatie krijgt om zich in het vervolg van zijn studie te verdiepen in
de achtergronden van de theorie.
Samenvattend: In tegenstelling tot
wat Bergstra en Klint betogen, moeten logica en theoretische
informatica niet worden ondergeschoven bij de wiskunde. Er moet juist
worden geprobeerd ze dichter bij de toepassingen te brengen. Dat
hiervoor een nauwe samenwerking met het bedrijfsleven noodzakelijk is,
is evident.
Prof.dr F.W. Vaandrager is als hoogleraar informatica voor technische
toepassingen verbonden aan de Katholieke Universiteit Nijmegen.