donderdag 12 oktober 2017

Algoritmen 1

Als je het woord algoritme opzoekt dan krijg je als antwoord dat een algoritme een reeks instructies is die van een bepaald beginpunt naar een bepaald doel leidt. Het woord is afkomstig uit het Arabisch en is nog een herinnering aan de vaak ondergewaardeerde Islamitische bijdrage aan onze kennis.
Om zo'n reeks instructies te geven moet je een idee hebben hoe werkelijkheid er uitziet en wat je ermee wilt bereiken.
Een reeks instructies dus, zoals je ze in ieder recept tegenkomt. Bijvoorbeeld voor het maken van hutspot voor vier personen.
Ingrediƫnten: 500 gram klapstuk, 500 gram aardappelen, 500 gram winterwortelen en uien, laurierblad, peper en zout, water.
Instructies: Trek van het klapstuk bouillon (met laurierblad, zout en peper naar smaak).  (ca twee uur op een laag vuur),
haal het klapstuk uit de bouillon
schil de aardappelen, snijd de schoongemaakte wortels in stukjes,
schil de uien en snijd ze in stukjes.
kook de aardappelen, de wortels en de uien in de bouillon gaar
laat een rookworst in de laatste minuten meekoken
giet het overbodige vocht af
stamp de aardappels, de uien en de wortels tot een egale massa
snij het klapstuk en de rookworst in stukjes
dien de hutspot met klapstuk en rookworst op.

U ziet het: het recept is een algoritme. Onze wereld is vol van die algoritmen. In boekhandels nemen de receptenboeken met recepten uit elke keuken die men maar kan bedenken een belangrijke plaats in. U vindt soortgelijke boeken voor iedere doe-het-zelver. Hoe maak ik een kast, sluit ik een lamp aan, leg ik een vloer? Op YouTube vindt u filmpjes waarin stap voor stap - het algoritme - wordt uitgelegd hoe u het scharnier van uw kast moet verstellen, etc. Het algoritme is overal in ons dagelijks leven.
Het zal u niet verwonderen dat het algoritme ook het uitgangspunt is voor ieder computerprogramma. Immers het computerprogramma is een reeks instructies die de computer uitvoert om iets te doen. Het zijn instructies in machinetaal. Om die als mens te kunnen begrijpen heb je al gauw deskundige hulp nodig. En omdat die machinetaal echt heel erg basaal is heeft men in de loop van de tijd van die instructies in groepjes samengevoegd. Op die manier maakte men programmeertalen. Ook de instructies in die programmeertalen worden voor de goedwillende leek al gauw te ingewikkeld en onleesbaar.
Je moet er maar op vertrouwen dat de programma's goed zijn. Want ze zitten overal die programma's. In uw telefoon en in uw auto, in de televisie en de afstandbediening. En tegenwoordig ook in uw wasmachine en in uw computer. U bent er inmiddels aan gewend en u vertrouwt erop omdat het werkt. U vraagt zich ook niet meer af wat er allemaal voor nodig is aan instructies (recepten) voordat u met uw auto op pad kunt. U vindt het immers vanzelfsprekend dat er een lampje gaat branden als u een deur in de auto niet goed hebt gesloten, of ergens een pieptoon u begint te hinderen omdat u de riem niet hebt omgedaan.
Toch zit achter ieder algoritme iemand die een beeld heeft van wat goed rijgedrag is en dat goede rijgedrag voortdurend aan u voor houdt zolang u in de auto zit. Of anders gezegd: achter ieder computerprogramma zit een algoritme waarin iemand zijn opvattingen heeft neergelegd.
Kijken we nog even terug naar de hutspot: u ziet daar mijn opvatting: u hoeft geen klapstuk te nemen, u kunt de aardappelen, wortels en uien ook in schoon water koken, u kunt de verhoudingen veranderen (meer of minder aardappelen, wortels en uien).
Ieder algoritme weerspiegelt de opvattingen van de maker. Dat kan bijzondere gevolgen hebben. Vanuit mijn perspectief niet altijd even plezierig, maar daarover de volgende aflevering.   

donderdag 5 oktober 2017

Oude mensen en hun digitale sores

Het is al weer een tijd geleden dat onze 7-jarige kleinzoon uit Frankrijk bij ons aankwam en uit de auto van zijn ouders stapte met de kreet:
J'ai un SEGA!!!
Het riep alleen wat vraagtekens op: wat zou een SEGA kunnen zijn?
SEGA bleek een Franse uitvoering van een spelcomputer te zijn. Het was aanleiding voor mijn vrouw, Anneke, om zich ook bezig te gaan houden met computerspelletjes, ze wilde zo goed ogelijk bijblijven met de moderne tijd. Ze ging met zoon Freerk naar de de stad en kocht Super Mario op een diskette.
'En nu?'
Freerk die dat natuurlijk allang wist, had rustig de confrontatie met de werkelijkheid afgewacht
'Ja, nu moet je nog een console hebben waar je de diskette in kunt doen.'
'Ok.'
De console - in feite een kleine computer - was heel wat duurder dan het spel. Ze werd enthousiast ontvangen door onze kleinzoon, want zijn SEGA werkte niet op onze televisie.
Ter toelichting: SuperMario moet om in het spel verder te komen een aantal hindernissen overwinnen en als dat gelukt is gaat hij naar niveau 2 waar een soortgelijke hindernisbaan is uitgezet. Het is allemaal een kwestie van oog-hand coƶrdinatie: als het gevaar nadert, of als er punten te verdienen zijn, moet Mario springen.
En terwijl onze kleinzoon met zijn zeven jaar van niveau naar niveau sprong en rende, bleef Anneke steken op niveau 1. Ze slaagde er niet in de eindstreep te halen.
Een ding is duidelijk: Met de leeftijd gaat het vermogen om snel te reageren op bewegingen achteruit. Er is niet veel zo ontluisterend als te proberen het leervermogen van je kinderen of kleinkinderen te evenaren.
Je kunt het ook anders zeggen: voor volwassenen is de leercurve voor computerspelletjes (maar daar niet alleen; hebt u al eens geprobeerd Memory te spelen met uw kleinkinderen?) veel en veel steiler dan voor kinderen.

Mijn gedachten gaan terug naar de jaren tachtig (ja, van de vorige eeuw). De personal computer was net ingevoerd. Een hele verandering vergeleken met de al dan niet elektrische schrijfmachine.
Ik beschikte over een apparaat met een geheugen van 256 kB (k van kilo, oftewel 1000 en B van Byte, de eenheid waarin geheugen wordt uitgedrukt. Een Byte is 8 bits en ieder bit heeft twee mogelijkheden 0 of 1. Met een Byte kun je, voor een tekst verwerker, 128 tekens weergeven).
Zo'n computer kon met een tekstverwerker werken die slechts beperkte mogelijkheden had. maar we gingen dapper aan het werk. Iedereen kreeg een pc en doorliep de leercurve die nodig was om zich aan te passen aan de nieuwe situatie. Een van de eerste dingen waaraan je moest wennen bij de tekstverwerker was dat je niet aan het eind van de regel hoefde aan te geven dat een nieuwe regel begon. Dat regelde de machine voor je. Als je in die tijd de teksten zag die via de computer uit de printer kwamen dan bleek iedere regel een einde regelcode te bevatten, zoals dat op de schrijfmachine gebeurde: na iedere regel werd de wagen terug gehaald. In de nieuwe situatie betekende een einde regelcode dat een nieuwe alinea begon.
 
Een jaar later bleek die computer met een geheugen van 256 kB volstrekt verouderd. De nieuwe versie met een geheugen van wel 512 kB, bezat een tekstverwerker met meer mogelijkheden; het was bijv. mogelijk standaard brieven te maken met ruimte voor namen en adressen. Om dat handig toe te passen moest je eigenlijk gebruik kunnen maken van een adresbestand. Daarvoor bleek het rekenblad (beter bekend als spreadsheet) uitermate geschikt. Door deze nieuwigheden moest het tekstverwerkingsprogramma een wat andere indeling hebben. De leercurve die iedereen door moest was nu iets minder steil. Een aantal dingen was nu immers al bekend.

En zo, terwijl de mogelijkheden van de computer snel groeiden met zijn grotere opslagmogelijkheden, betere grafische mogelijkheden en zijn betere mogelijkheden op het gebied van muziek, bleek men naast zijn werk ieder jaar weer een nieuwe leercurve door te moeten, want ondertussen verdwenen de oude mogelijkheden geleidelijk.
De schrijfmachine is nog maar heel moeilijk te krijgen, de cassette recorder is verdwenen, het rolfilmpje is er niet meer. De gramofoonplaat vind je niet meer terug en inmiddels is de videorecorder een artikel voor de antiquair. Wie nu nog zijn oude hobbies wil beoefenen moet iedere keer weer een leercurve doorlopen.
Niet iedereen houdt die race vol. Zo deed onze fietsenmaker zijn rijwielzaak over aan zijn zoon, mede omdat de omscholing naar de digitale elementen in de nieuwe fietsen hem te zwaar werd. En veel collega's stapten uit het proces van voortdurende her- en bijscholing in de hoop dat het hun tijd wel zou duren.
Helaas. In deze periode zijn er cursussen voor mensen die zich genoodzaakt voelen over te stappen op het gebruik van tablet of smartphone. 
Een nieuwe generatie zit daar niet mee. Die treft een stand van de techniek aan alsof die nooit zal veranderen.
Maar die nieuwe generatie weet ook een aantal dingen niet - of is zich daar nauwelijks van bewust....