Niets saaier en lastiger dan programmeren, zo lijkt het wel. Toch nemen heel wat [basis] scholen het op in hun curriculum en blijken kinderen er vaak erg enthousiast over te zijn. Toegegeven, hier niet zo

Niets saaier en lastiger dan programmeren, zo lijkt het wel. Toch nemen heel wat [basis] scholen het op in hun curriculum en blijken kinderen er vaak erg enthousiast over te zijn. Toegegeven, hier niet zo’n gegoochel met een ingewikkelde syntax, maar toch: programmeren!

In diverse scholen in Nederland en Vlaanderen krijgen ook kinderen uit de basisschool geregeld programmeersessies, met uiteenlopende tools. In [het sterk geïnformatiseerde] Estland gaat men nog een stap verder. Programmeren is daar in veel scholen een vast onderdeel van het curriculum geworden, tot in de kleuterklas toe. Dat heeft niet alleen een pragmatische reden – er is een schrijnend tekort aan onderlegde programmeurs – maar veel pedagogen zijn er van overtuigd dat programmeren een basisvaardigheid hoort te zijn, net als aardrijkskunde, rekenen of taal. Mediatheoreticus Douglas Rushkoff, auteur van het boek ‘Program or be programmed. Ten commands for a ditigal age’, heeft hier een uitgesproken filosofische kijk op. ‘Screenagers’, aldus Rushkoff, zijn al vanaf hun geboorte met allerlei digitale apparaten omringd,en ze groeien op in een maatschappij waar zowat elke dienst of product door computercode wordt aangedreven. Tegelijk echter zijn ze computeranalfabeet en hebben ze geen idee hoe die apparaten zijn geprogrammeerd. Software verandert, bedoeld of onbedoeld, ons gedrag, en dus is inzicht in software noodzakelijk wil je vrije[re] en kritische keuzes kunnen maken en meer vat krijgen op de wereld.

Eerste aanzet
Het is natuurlijk geen ‘toeval’ dat programmeren vaak saai en lastig wordt genoemd. Het komt er namelijk bijna altijd op neer dat u zich een uitgebreide en complexe instructieset eigen moet maken, waarna u alle instructies in een of andere editor invoert. Nu zijn er wel lovenswaardige pogingen als programmerenvoorkinderen.nicolaas.net, waar kinderen stap voor stap in de wereld van de ‘klassieke’ programmeertaal Python worden ingewijd, maar zulke initiatieven vertrekken [te] weinig vanuit het idee dat programmeren voor kinderen vooral leuk en aantrekkelijk moet zijn. Toch is er al bijna 50 jaar geleden een stevige aanzet gegeven tot kindvriendelijker vormen van programmeren. Zo is eind de jaren zestig de programmeertaal Logo ontstaan, specifiek bedoeld voor kinderen. Logo bestond uit een grafisch scherm waarover men een cursor in de vorm van een schildpad kon laten bewegen.

Recente initiatieven rond programmeren
In de rest van dit artikel stellen we u een aantal meer recente initiatieven rond programmeren voor kinderen voor. Verwacht evenwel geen compleet overzicht – een snelle blik op happynerds.net leert u dat er vele tientallen projecten bestaan, voor zowel Windows, Mac, Linux als een browser. We hebben ons overzicht beperkt tot de meer populaire programmeeromgevingen, met de focus op gratis tools. Commerciële producten zijn er immers ook, waaronder de bekende Lego Mindstorms [mindstorms.lego.com] met een centrale besturingsmodule waarmee u zelfgebouwde Lego-constructies kunt uitrusten met elektromotoren en sensoren, die u vervolgens kunt programmeren, en AgentSheets, een omgeving waarbinnen u allerlei games en simulaties kunt programmeren [agentsheets.com]. Ons overzicht laat zich in twee delen opsplitsen: enerzijds talen die nauwer aanleunen bij de klassieke programmeertaal, weliswaar met een vereenvoudigde instructieset, anderzijds de meer visuele programmeeromgevingen die met name ook jongere kinderen [basisschool] in het vizier hebben.

Vereenvoudigde instructieset
De originele Logo-taal mag dan al enkele tientallen jaren oud zijn, er zijn verschillende projecten die het principe levendig houden. Op elica.net/download/papers/LogoTreeProject.pdf vindt u alvast een overzicht van meer dan 200 Logo-varianten [kijk voor naar de indicatie Active in de kolom Status]. Eén ervan is een Nederlandse vertakking: EasyLogo [home.tiscali.nl/shinelegs/easylogo]. Door uit een beperkte commandoset te kiezen [zoals inkleuren, vermenigvuldig, pen], kunt u allerlei acties laten uitvoeren. Jammer wel dat de ontwikkeling al een poosje stil blijkt te liggen. RoboMind [robomind.net; gratis voor thuisgebruik] wordt actiever onderhouden. Het achterliggende idee is vergelijkbaar: met eenvoudige instructies laat u een robot diverse acties uitvoeren: Bewegen [met instructies als vooruit, achteruit, oost], Verven [verfWit,etc.], Grijpen [pakOp, zetNeer, …] en Zien [linksIsVrij, rechtsIsObstakel, …].  Gecombineerd met een aantal programmeerstructuren – waaronder herhalingen, als-structuren tot zelfs eigen procedures – zijn best wel enige creatieve combinaties mogelijk.

Ook Microsoft laat zich niet onbetuigd en heeft enkele jaren terug een aangepaste en sterk afgeslankte versie van Visual Basic uitgegeven: Small Basic [smallbasic.com]. Een Nederlandstalige handleiding van 75 bladzijden vindt u op microsoft.com/nl-nl/download/details.aspx?id=14246. Let er tijdens de installatie van het programma wel op dat u bij Main files de optie Nederlands activeert. U dient weliswaar de instructies zelf in te voeren, maar de ingebouwde IntelliSense-technologie doet u slimme suggesties wat het tikwerk flink versnelt en tegelijk het risico op fouten verkleint.

Visuele programmeeromgeving
Met Scratch [scratch.mit.edu], ontwikkeld door het MIT [Massachusetts Institute of Technology] belanden we in een visuele programmeeromgeving, die u zelfs toelaat interactieve multimedia presentaties, spelletjes en Java-applets te creëren. U hoeft geen instructies uit het hoofd te leren, aangezien u via eenvoudige versleepbewegingen allerlei opdrachten, geluiden en grafische objecten als een soort bouwblokken in het scriptvenster kunt plaatsen. Het programma draait onder Windows, Mac OS X en Linux en is onder meer in het Nederlands beschikbaar. De resultaten van uw werk kunt u op de Scratch site plaatsen [bij de meer dan 3 miljoen andere projecten], maar ook in uw eigen html-code opnemen. Momenteel is Scratch aan versie 2.0 bèta toe en die kunt u meteen uitproberen in uw browser. Met enige hulp kunnen kinderen vanaf circa 8 jaar al aardige resultaten neerzetten.

Snap [vroeger BYOB oftewel Build Your Own Blocks genoemd] voegt een aantal iets gevorderde mogelijkheden toe aan Scratch, wat de tool minder geschikt maakt voor jonge kinderen. Snap is bovendien alleen Engelstalig. De tool is geheel op Javascript gebaseerd en kunt u, net als Scratch, rechtstreeks in uw browser draaien. U vindt de 4.0 bèta-versie van deze tool op snap.berkeley.edu.

Alice is een ander, erg populair project [alice.org], ontwikkeld door de Carnegie Mellon universiteit. Ook dit programma is multiplatform. Het biedt een geïntegreerde drag-and-drop omgeving aan, waarmee u zelfs 3D-animaties kunt programmeren. U hoeft hier evenmin een instructieset of de bijhorende syntax te onthouden, wat niet wegneemt dat Alice u toch introduceert in het object-georiënteerde programmeermodel. De nieuwere versie van Alice [3.x] zet deze insteek stevig verder en laat gebruikers zelfs een pijnloze overgang naar heuse Java-code toe.

Ook 3D is Kodu Game Lab, ontwikkeld door Microsoft [kodugamelab.com; vereist de installatie van .NET Framework 3.5 en van XNA Framework 3.1]. De tool, die aanvankelijk voor de Xbox 360 werd uitgebracht, bestaat inmiddels ook in een Windows-versie. Zoals de naam al aangeeft, is alles erop gericht games – eigenlijk virtuele werelden – te creëren. Dat doet u door een eigen landschap op te zetten en objecten aan te sturen met behulp van pictogrammen. Er steekt alles bij elkaar wel een uitgebreide functiebibliotheek achter. Door met de meegeleverde voorbeelden te experimenteren, leert u echter vrij snel de belangrijkste mogelijkheden kennen en kunt u uw eigen games ontwerpen.