Programmeren van computers is niet makkelijk maar nog steeds zeer leuk om te doen. Sinds 1970 toen ik op de TU/e begon met werken in de informatica is er veel veranderd. Niemand had toen kunnen voorspellen dat computers die toen gigantische afmetingen hadden nu bij iedereen thuis op het bureau zouden staan.
In de beginperiode bestonden er nog weinig opleidingen in de informatica. Om in de vraag naar technisch wetenschappelijk geschoolde programmeurs te voorzien is rond 1965 de opleiding Wetenschappelijk Rekenaar gestart. Deze opleiding bestond uit een A en een B deel. Voor het A diploma moest je de wiskunde kennis van de propadeuse studie beheersen, aangevuld met een behoorlijke dosis numerieke wiskunde. In de B opleiding kwamen daar vakken als discrete wiskunde, kunst van het programmeren en operationele research bij.
In het informatica-onderwijs op de TU/e werd grote nadruk gelegd op nette programeertalen zoals Algol en Pascal. Door de strong typing van deze talen, kan de compiler tijdens het vertalen van een programma fouten vinden die anders pas aan het licht zouden komen tijdens de verwerking ervan. Niklaus Wirth heeft Pascal uitgebreid met het module concept in Modula-2 en in zijn laatste geesteskind Oberon-2 hier de belangrijkste concepten uit het object oriented programming aan toegevoegd. Met de komst van Unix computers kwamen talen met een minder stringente syntax controle zoals C en C++ in zwang. Deze talen staan dicht bij assemblertalen waardoor het veel werk kost om hierin een programma te schrijven. Met scriptingtalen zoals het populaire PERL gaat dat een stuk sneller. Met de opkomst van het 'world wide web' kwamen vervolgens ook Java en de scriptingtalen JavaScript en PHP beschikbaar.
Op het eind van mijn loopbaan heb ik me bezig gehouden met het maken en onderhouden van websites, eerst op basis van HTML, CSS (Cascading Style Sheets) en JavaScript, later met het content management systeem TYPO3. Een voordeel van een goed opgezet CMS is dat je veel basis functionaliteit krijgt die naar keus uitbreidbaar is met plugin modules (extensies). De huidige implementatie van TYPO3 (4.x) loopt tegen zijn grenzen aan, hopelijk kunnen deze worden opgelost in de nieuwe opzet van TYPO3 (5.0).
Tijdens het mantelzorgen voor mijn vrouw in de corona periode en later toen ze
in een verzorgingstehuis in Uden lag, heb ik me bezig gehouden met puzzelen.
Eerst woordzoekers, later sudoku's en daarna killer sudoku's. Het oplossen
hiervan trok me niet zo maar het schrijven van een computer programma dat deze
oplost dat leek me een leuke uitdaging. Ik koos de pupulaire programmeertaal
Python van Guido van Rossum. Het heeft even geduurd voordat ik de weg wist in
tkinter, de standaard voor het maken van grafische user interfaces. Ik ben
begonnen met het schrijven van een programma dat via backtracking killer
sudoku's oplost. Hierbij kon ik gebruik maken van een Python programma van Ali
Assad dat sudoku's oplost via de `dancing links' methode van Donald Knuth.
Hierna ben ik begonnen aan een programma dat puzzels oplost zoals een
mens dat doet. Het oplossen van extreem moeilijke puzzels lukt nog niet maar
de moeilijkste puzzel uit de eerste serie (#105) uit The Times Big Book
of Su Doku 1, dat lukt inmiddels wel. En om te
laten zien hoe dat werkt, heb ik er een slideshow van gemaakt. Zie
slideshow.