## Inleiding

Alan Turing

In het onderdeel Grondslagen behandelen we de basisprincipes van informatie en rekenen. Deze basisprincipes zijn onafhankelijk van de technologie. Dat betekent niet dat deze principes puur theoretisch zijn. Je komt ze overal tegen waar er sprake is van informatie, communicatie en rekenen. Overal in de ICT, maar ook overal daarbuiten: in de biologie, in het menselijk brein, in organisaties, enz.
Deze principes geven je ook houvast voor de toekomst: ook de toekomstige technologie en toepassingen gedragen zich volgens deze basisprincipes.
Het onderdeel Grondslagen vormt een eerste kennismaking met deze basisprincipes. Het vakgebied is veel groter dan we in hier kunnen behandelen. In het vervolg komen nog meer fundamentele vragen aan de orde, zoals:

- wat zijn de fundamentele beperkingen van informatieverwerking (ofwel rekenen)?
- wat zijn de overeenkomsten en verschillen tussen mens en robot?
- kunnen machines denken?

Alan Turing heeft een variatie van deze vraag geformuleerd: kun je het verschil tussen mens en robot (computer) zien aan de manier waarop deze vragen beantwoorden? Dit heet de Turing test. De omgekeerde vorm van deze test kom je tegen op het web, in de vorm van een CAPTCHA, waarin je moet aantonen dat je geen robot bent. Turing voorzag, doordat hij bezig was na te denken over de grondslagen, een aantal van de fundamentele vragen die nu nog steeds actueel zijn.
Een voorbeeld hoe je de basisprincipes van rekenen (algoritmen) op verrassende plaatsen tegen kunt komen is The Algorithmic Beauty of Plants.

- The Algorithmic Beauty of Plants.pdf
- Wikipedia: The Algorithmic Beauty of Plants
- www.algorithmicbotany.org

Dit laat zien hoe je met eenvoudige rekenregels complexe vormen zoals je die in de (levende) natuur tegenkomt, kunt beschrijven. Dit heeft een praktische toepassing in het genereren van landschappen e.d. in computer games. Maar het raakt ook aan de regels die de natuur zelf gebruikt, met dergelijke vormen als resultaat.
Taal is erg menselijk - maar talen spelen ook een belangrijke rol bij “rekenen” (informatieverwerking). Algoritmen drukken we uit in programmeertalen om deze vervolgens door automaten (computers) te laten verwerken. Met behulp van een grammatica beschrijf je de structuur van de zinnen in een taal. Dit principe kun je zowel gebruiken voor programmeertalen als voor natuurlijke talen zoals het Nederlands of het Italiaans. Dit vormt de basis voor het “rekenen met taal” zoals je dat bijvoorbeeld tegenkomt bij Google Translate, maar ook in een compiler (vertaler) voor een programmeertaal.