Alles uitproberen

Eerst kwam een fascinatie voor Lego: zelf bouwen! Nu maakt Nick Matthijssen computerprogramma's. Bijvoorbeeld een schoolroosterpro-gramma, een parachutistensimulatie of een telefoonspelletje. Deel vier van een zomerserie.

Achtmaal, een klein en afgelegen dorpje in de buurt van Zundert (Noord-Brabant), lijkt niet onmiddellijk een broeiplaats voor computertechnologie. Toch woont daar in een vrijstaand huis aan de rand van het dorp Nick Matthijssen (16), een VWO-scholier die zijn eigen computerprogramma's schrijft. Het begon met ``gewoon wat proberen''. ``Op dit moment werk ik aan een programma dat het rooster maakt voor een beroepskeuze-avond van een VMBO-school, waarbij leerlingen informatie kunnen krijgen over allerlei verschillende vervolgopleidingen. Iedere leerling kan zijn eigen voorkeur opgeven. Het programma maakt voor iedere leerling een rooster van op welke tijd zij in welk lokaal moeten zijn.''

Nick schrijft het programma in twee programmeertalen: Visual Basic in combinatie met C. ``Programmeren in Visal Basic is makkelijker,'' legt hij uit, ``maar een programma geschreven in Visual Basic werkt wat trager. Voor niet zo tijdgevoelige processen zoals het tekenen van de knoppen op het scherm is dat geen bezwaar. In het gedeelte voor het uitrekenen van de roosters luistert de snelheid nauwer en daarom heb ik dat in het veel snellere C geschreven.''

Om computerspelletjes geeft Nick niet zoveel. ``Ik speel af en toe wel eens een spelletje op de computer, maar niet veel. Als je stopt, heb je nog niks. Nee, dan programmeer ik liever, want dan maak je echt iets. Vroeger toen ik klein was speelde ik veel met Lego. Nu bouw ik programma's.''

Nicks voorliefde voor het programmeren begon al vroeg, eigenlijk al vanaf het moment waarop hij voor het eerst met de computer in aanraking kwam. ``Toen ik 8 jaar was, nog best klein dus, kocht mijn vader een tweedehands XT. Mijn pa liet mij allerlei dingetjes zien die je kon doen op de computer. Het was allemaal in DOS, het basisbesturingssysteem. DOS werkt met commando's. Ik maakte een lijstje met commando's achter elkaar. Dat was mijn eerste primitieve programma. Een batch file noemen ze dat. Het maakte het scherm leeg en zette er dan een aantal dingen op, bijvoorbeeld je naam. Heel eenvoudig nog.''

Later ontdekte Nick QBasic, een onderdeel van DOS waarmee je in de programmeertaal Basic programma's kunt schrijven. Nick: ``Hoe leer je dat? Nou gewoon, veel in de Help-file kijken en veel dingetjes gewoon uitproberen. Daar ben ik vijf jaar mee bezig geweest. Er was toen nog geen internet, althans dat had ik niet. Later las ik boeken over MS-DOS en Basic in de bieb van Zundert. Ik denk dat ik alle boeken daarover wel heb gelezen.''

Hoeveel tijd hij besteedt aan programmeren, kan Nick niet zeggen. Soms heeft hij er ook niet zo'n zin in. ``Maar als ik met iets bezig ben, dan doe ik eigenlijk niks anders. Als ik thuiskom, ga ik even snel eten en tv-kijken, en dan zit ik dus verder de hele avond achter de computer.''

In een serre bij de woonkamer staan twee pc's: een oude pentium 120 en een nieuwere pentium III 600. Ze zijn van het hele gezin, maar Nick is er het beste op thuis. Behendig klikt hij door de wirwar van directories op zoek naar een zelfgemaakt programma dat hij kan laten zien. Hij start een simulatie van een sprong van een parachutist uit een vliegtuig, een programma dat hij speciaal voor de natuurkundeles schreef. Op de linkerhelft van het scherm is de vallende parachutist te zien terwijl hij naar de aarde valt. Op de rechterhelft van het scherm verschijnt ondertussen een grafiek met de snelheid van de man. Op vijfhonderd meter hoogte klapt de parachute open. Onmiddellijk vlakt de steile curve van de valsnelheid van de man af en daalt hij met een constante snelheid af naar de aarde.

`Het zijn 2860 regels code. Dat valt mee.'' Zegt Nick als hij laatr zien hoe hij de programmeercode van de parachutist-simulatie heeft opgebouwd. ``Een 3D-programma zou veel langer zijn. Het voordeel is dat als een bepaald stuk programma eenmaal goed werkt, dat je het dan kunt hergebruiken in andere programma's.''

Met een zogeheten `Borland C++ compiler' die hij gratis van internet kon downloaden start Nick iedere keer een programma om het uit te proberen. Die gratis compiler is wat minder gebruikersvriendelijk dan de commerciële versies. ``Voor elke keer dat je wilt compilen moet je een lange opdrachtregel intikken. Dat moet iedere keer weer en dat is lastig als je telkens weer foutjes uit de code wilt halen.'' Nick heeft er wat op gevonden. In Visual Basic schreef hij een programma waarmee hij onbeperkt in de code in C-taal kan wijzigen, waarna het programma het met een druk op de knop kan compilen. De opdrachtregel hoeft niet meer te worden ingetikt en daarmee is het compilen nu secondenwerk geworden.

Zijn vrienden in de buurt delen Nicks interesse niet. Hij moet alles dus alleen doen. ``Ik heb mijn vrienden nog niet aan het programmeren gekregen. Het probleem is vaak dat als je echt goed wilt leren programmeren dat je er veel tijd in moet steken. Je moet niet bang zijn iets te proberen.''

Nick heeft zijn programmeervaardigheden ook gebruikt voor de lesprogramma's op zijn school, het Jan Tinbergen College in Roosendaal. In de tweede klas van het VWO verzuchtte de lerares informatica dat zij niet over een elektronische toets beschikte om haar leerlingen te overhoren. ``Dat maak ik wel'', zei Nick prompt. ``Als je dat lukt, krijg je van mij een tien op je rapport'', beloofde de lerares.

Uiteindelijk kwam Nick met een programma op de proppen dat werkte. ``Het was alleen verschrikkelijk slordig geprogrammeerd en op het laatst wist ik niet meer wat waar zat. Maar het werkte, en die tien heb ik dan ook gekregen. Bij meer dan vijfentwintig vragen liep het programma echter grandioos vast. Aan het eind van de derde had ik ook dat opgelost.''

In het programma kan de docent meerkeuzevragen en de bijbehorende antwoorden invoeren. Tijdens de toets gooit het programma de volgorde van de vragen per leerling door elkaar. Dat voorkomt dat zij in de computerzaal waar zij vlak naast elkaar zitten, de antwoorden bij elkaar kunnen afkijken. Van iedere leerling worden de antwoorden als een gecodeerd bestand (tegen hacken) weggeschreven naar de servercomputer, waar de leraar de prestaties van iedere leerling kan bekijken.

Een hoop leerlingen hebben de toets die Nick ontwierp inmiddels gehad. ``Soms komen er brugklassers naar mij toe: `Zeg jij bent toch diegene die de toets heeft geprogrammeerd? Kun je er niet voor zorgen dat ik een goed cijfer krijg?' Dat vind ik wel grappig. Overigens ben ik daar nooit op ingegaan.''

Nick heeft al drie jaar achtereen aan de Informatica Olympiade meegedaan, en is van plan om ook dit jaar weer deel te nemen. ``Iedere keer ben ik in de derde ronde geëindigd rond de twaalfde plaats.'' De jonge software-ontwerper weet nog niet of hij van zijn hobby zijn beroep zal maken. Hij is bij een paar universiteiten bij de studie informatica gaan kijken. ``Die opleiding lijkt me saai. Misschien doe ik wel liever natuurkunde. Toch lijkt het me leuk om in opdracht van een bedrijf een oplossing voor een probleem te programmeren.''

Voor een vriend programmeerde Nick het spelletje Snake, waarbij de speler met de pijltjestoetsen een slang allerlei vruchtjes moet laten eten. Bij elke hap groeit de slang iets langer en wordt het spel dus moeilijker. Nick`s versie van het spel ziet er kleurig uit op het scherm. ``Het is wat houterig,'' verontschuldigt hij zich, ``Dat komt omdat ik het in Pascal, een wat minder geavanceerde taal, heb geprogrammeerd.'' Toch voldoet het programma volgens Nick prima voor het doel waarvoor het gemaakt was: ``Die vriend van mij was altijd zijn mobiele telefoon kwijt omdat zijn broertje er Snake op speelde. Daarom vroeg hij mij een Snakeversie voor op de computer te maken, maar die moest wel precies hetzelfde zijn als op zijn telefoon. Dat is aardig gelukt.''

www.informaticaolympiade.nl