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.