Programmeren en debuggen: eerste programma’s en volgorde

Leer een vloerrobot of een personage op een scherm commando’s in de juiste volgorde te geven. Je bouwt korte programma’s, voorspelt wat ze doen voordat je ze uitvoert en spoort programmeerfouten op en verhelpt ze als er iets misgaat. Tot slot bedenk, bouw en test je een eigen programma.

Groep 3, Groep 4Les 1 van 10 in Cursus Programmeren en digitale geletterdheid voor 7 tot 11 jaar

Wat je leert

  1. Ontdek wat commando’s, programma’s en code zijn en bouw korte programma’s waarmee je een vloerrobot of een personage op een scherm laat doen wat jij wilt.
    • Leer wat commando’s, programma’s en code zijn
      Leer de woorden die programmeurs gebruiken, ontdek waarom een robot code precies volgt en wanneer de volgorde van commando’s verandert wat er gebeurt.
    • Programmeer een vloerrobot om een doel te bereiken
      Gebruik commando’s voor vooruit, achteruit en draaien om een vloerrobot over een mat met vakken te sturen en schrijf je programma op met pijlen.
    • Bouw met blokken een programma voor een sprite
      Klik commandoblokken aan elkaar om een personage op een scherm te laten bewegen, praten en geluiden afspelen. Zorg dat het programma elke keer op dezelfde manier begint.
  2. Lees een programma voordat je het uitvoert, zoek stap voor stap uit wat er gebeurt en leg uit hoe je denkt.
    • Doorloop een programma stap voor stap
      Doorloop een programma met je vinger of een pionnetje, houd bij waar de robot is en welke kant hij op kijkt en voer het programma daarna uit om je voorspelling te controleren.
    • Leg je voorspelling uit en vertel wat er door een aanpassing verandert
      Gebruik wat je over elk commando weet om redenen te geven, programma’s te vergelijken en uit te zoeken wat er gebeurt als je de code verandert.
  3. Herken wat voor fout er in een programma zit, zoek precies waar die zit, verhelp de fout en test opnieuw totdat het programma werkt.
    • Herken de soorten programmeerfouten in een programma
      Leer wat een programmeerfout is en herken fouten die vaak in een volgorde voorkomen: een verkeerde volgorde, een ontbrekende stap, een overbodige stap, een verkeerd commando en een verkeerd getal.
    • Zoek waar de programmeerfout zit
      Gebruik manieren om te debuggen om precies te vinden welk commando verkeerd is: vergelijk wat je wilde met wat er gebeurde, voer de code stap voor stap uit en bespreek die met een ander.
    • Verhelp de programmeerfout en test opnieuw
      Maak één kleine verandering om de programmeerfout te verhelpen, voer het hele programma opnieuw uit vanaf het begin en ga door totdat het werkt.
  4. Kies een doel, bedenk de stappen, zet je plan om in code en test tijdens het bouwen, zodat je eigen programma werkt en makkelijk te volgen is.
    • Zet een plan om in code
      Bepaal wat je programma moet doen, bedenk de stappen als een algoritme en verander elke stap in commando’s die de robot of sprite begrijpt.
    • Test tijdens het bouwen en verbeter je programma
      Test je programma vaak tijdens het bouwen, vergelijk het met je doel, maak het overzichtelijk en leer van de programmeerfouten die je vindt.

Programmeren en debuggen: uitleg

4 hoofdstukken

1

Geef je robot een taak

Je kunt een robot laten rijden of een personage op een scherm laten praten. Eerst kies je commando’s en zet je ze op volgorde. Je probeert commandokaarten, knoppen en blokken en ontdekt hoe elk daarvan werkt. De voorkant van de robot en het scherm van de sprite geven je verschillende manieren om over een beweging te denken.

1.1 Met commando’s laat je iets gebeuren

Met een commando kun je een robot vertellen wat hij moet doen. Eén commando geeft één instructie, zoals “ga vooruit”. Een lijst met commando’s voor een robot of computer is een programma.

Maak een plan en schrijf dan code

Een algoritme is een plan met stappen voor een taak. Denk aan tandenpoetsen. Je doet tandpasta op de borstel voordat je poetst. Elke stap heeft een plek in het plan.

Een programma is een plan dat is geschreven in commando’s die een computer begrijpt. Die commando’s heten code. Ze schrijven heet code schrijven of programmeren. Je robot begrijpt misschien “vooruit”, maar heeft geen commando dat “bezoek de deur” heet. Je moet die taak verdelen in commando’s die hij kent.

Zet de commando’s op volgorde

De volgorde van commando’s heet een volgorde. In deze programma’s volgt de robot het ene commando na het andere. Hij begint bij het eerste en werkt naar het laatste toe.

Stel je een robot voor die van je af kijkt. Vergelijk deze programma’s:

ProgrammaWat gebeurt er
forward, turn rightHij gaat één vak vooruit en kijkt dan naar rechts.
turn right, forwardHij kijkt naar rechts en gaat dan één vak die kant op.

De commando’s zijn hetzelfde, maar door hun volgorde stopt de robot op een ander vak. Hij kan niet raden dat je de andere route bedoelde.

Soms blijft het resultaat hetzelfde als je iets verwisselt. Begin op een getallenlijn bij 0. Ga 3 vooruit en dan 2 vooruit: je stopt op 5. Begin weer bij 0. Ga 2 vooruit en dan 3 vooruit: je stopt ook op 5. Doorloop de bewegingen om een verwisseling te controleren.

Speel het robotspel

Leg commandokaarten op een rij. Eén persoon leest de kaarten. Een ander speelt de robot en volgt elke kaart precies. Gebruik “stap vooruit”, “draai naar links” en “draai naar rechts” op een vrij pad. Als de route het doel mist, kijk dan naar de kaarten. De persoon die de robot speelt, mag geen betere route raden.

Mensen schrijven programma’s voor tabletspelletjes, wasmachines, magnetrons en verkeerslichten. De commando’s laten verschillende dingen gebeuren, maar hun volgorde doet er nog steeds toe.

Belangrijkste punten

  • Een commando geeft een robot of computer de opdracht om één ding te doen.
  • Een algoritme is een plan met stappen; een programma schrijft het plan als code.
  • Een volgorde is de volgorde van commando’s.
  • Doorloop een verandering in de volgorde om te controleren wat die doet.

1.2 Stuur een vloerrobot over een mat

Een vloerrobot volgt commando’s die je met zijn knoppen invoert. Op een mat die voor die robot is gemaakt, gaat hij met één beweging één vak verder. Kies eerst een startvak en de richting waarin zijn voorkant wijst.

Weet wat elke knop doet
CommandoWat de robot doet
forwardGaat één vak in de richting van zijn voorkant.
backwardGaat één vak achteruit zonder te draaien.
turn leftDraait een kwartslag naar links op hetzelfde vak.
turn rightDraait een kwartslag naar rechts op hetzelfde vak.

Gebruik turn right, forward om het vak rechts van de robot te bereiken.

Links en rechts zijn vanuit de robot gezien. Als hij naar je toe kijkt, is zijn rechts aan jouw linkerkant. Ga achter hem staan of draai je eigen lichaam dezelfde kant op. Nu is jouw rechts hetzelfde als dat van de robot.

Tel de bewegingen naar de kaas

De kaas ligt 2 vakken vooruit en dan 1 vak naar rechts. Volg dat pad met een vinger. Tel elk nieuw vak waar je naartoe gaat. Tel het startvak niet als een beweging.

  1. forward: ga naar het eerste vak vooruit.
  2. forward: ga naar het tweede vak vooruit.
  3. turn right: blijf op dat vak en kijk naar rechts.
  4. forward: ga naar de kaas.

Het hele programma is forward, forward, turn right, forward.

Schrijf pijlen voordat je op knoppen drukt

Je kunt pijlen gebruiken om de commando’s op te schrijven:

  • ↑ betekent vooruit.
  • ↓ betekent achteruit.
  • ↰ betekent draai naar links.
  • ↱ betekent draai naar rechts.

Het kaasprogramma is ↑ ↑ ↱ ↑. De pijl vooruit betekent “volg de voorkant van de robot”. Na een draai betekent hij niet “ga naar de bovenkant van het papier”.

Maak je klaar om het programma uit te voeren

Bij veel vloerrobots blijven knopdrukken in het geheugen staan. Nieuwe knopdrukken komen achter de oude commando’s. Druk bij deze robots op Wissen voordat je een nieuw programma invoert. Druk daarna de commandoknoppen in de volgorde in die je hebt opgeschreven.

Zet de robot op Start, met zijn voorkant in de bedachte richting. Druk op GO om het hele programma uit te voeren. Als de robot het doel mist, controleer dan zijn startvak en kijkrichting én de commando’s.

Belangrijkste punten

  • Vooruit volgt de voorkant van de robot; achteruit gaat naar achteren zonder te draaien.
  • Een draai naar links of rechts is een kwartslag op de plaats.
  • Gebruik links en rechts vanuit de robot gezien.
  • Tel nieuwe vakken en tel het startvak niet mee.
  • Wis opgeslagen commando’s voordat je een nieuw programma invoert en gebruik daarna GO om het uit te voeren.

1.3 Laat een sprite bewegen, praten en geluiden afspelen

Een sprite is een personage of voorwerp dat je op een scherm kunt besturen. Het kan een kat, een auto of een bal zijn. Selecteer de sprite die je wilt programmeren en sleep daarna blokken naar zijn codegebied.

Klik de blokken aan elkaar

Blokken die aan elkaar vastzitten, vormen een volgorde. Sommige apps lezen van links naar rechts. Andere lezen van boven naar beneden. Volg de richting die jouw app gebruikt. Een los blok wordt niet met het verbonden programma uitgevoerd.

Zet een startblok zoals “wanneer op de groene vlag wordt geklikt” vooraan. Als je op de groene vlag drukt, starten de blokken die eraan vastzitten. Elke sprite heeft zijn eigen code, dus controleer of je het juiste personage hebt geselecteerd.

Kies wat er gebeurt

Bewegingsblokken laten je sprite bewegen of draaien. Veel blokken hebben een getal dat je kunt veranderen. In een app die roostervakken telt, laat “beweeg 3 naar rechts” de sprite drie vakken bewegen. Hij bereikt dezelfde plek als met drie blokken “beweeg 1 naar rechts”.

Lees de commandowoorden zorgvuldig. Een schermcommando zoals “beweeg naar rechts” kan de sprite naar de rechterkant van het scherm laten bewegen, ongeacht zijn kijkrichting. Het commando vooruit van een vloerrobot volgt zijn voorkant.

Uiterlijkblokken kunnen woorden tonen, de grootte veranderen of de sprite laten verdwijnen of verschijnen. Geluidsblokken spelen geluiden af. Ze horen ook in de volgorde thuis.

Help de kat een bal te bereiken

De bal ligt 4 roostervakken rechts van de kat. Je wilt dat de kat de bal bereikt voordat ze praat.

  1. Begin met “wanneer op de groene vlag wordt geklikt”.
  2. Klik “beweeg 4 naar rechts” eraan vast.
  3. Klik “zeg Gevonden!” eraan vast.

Druk op de vlag. De kat beweegt eerst en zegt dan “Gevonden!”. Als je de laatste twee blokken verwisselt, praat ze voordat ze beweegt.

Speel noten op volgorde

De volgorde van geluiden verandert een melodie. “Do, re, mi, do” is het begin van “Vader Jacob”. “Mi, re, do, do” heeft een andere volgorde. In apps met beide geluidskeuzes wacht “speel geluid tot het klaar is” tot een geluid is afgelopen. Bij “start geluid” begint het volgende blok meteen, zodat geluiden tegelijk kunnen klinken.

Begin elke test op dezelfde manier

Zet een blok “ga naar de beginplek” of een positieblok direct na het startblok. Het zet de sprite terug op zijn startplek. Een positieblok zet alleen zijn plek terug. Als je programma zijn kijkrichting, grootte of zichtbaarheid verandert, voeg dan ook blokken toe om die terug te zetten. Een verborgen sprite heeft “verschijn” nodig; alleen teruggaan naar de beginplek maakt hem niet zichtbaar.

Belangrijkste punten

  • Een sprite is een personage of voorwerp op een scherm dat je met code bestuurt.
  • Klik blokken aan elkaar en zet een startblok vooraan.
  • Elke sprite heeft zijn eigen code.
  • Lees bewegingswoorden en getallen voordat je een pad bedenkt.
  • Uiterlijk- en geluidsblokken worden ook op volgorde uitgevoerd.
  • Zet elke begineigenschap terug die je programma verandert.
2

Zoek de route uit voordat je het programma uitvoert

Je kunt uitzoeken welke route een programma volgt voordat het begint. Volg elk commando met een pionnetje of je vinger. Houd zowel de draaien als de bewegingen bij. Dan kun je je antwoord uitleggen en twee routes vergelijken, ook als ze op dezelfde plek uitkomen.

2.1 Doorloop elk commando

Voorspel wat een programma doet voordat je het uitvoert. Een voorspelling vertelt wat je denkt dat er gaat gebeuren. Je kunt dat uitzoeken door de code stap voor stap te doorlopen: volg steeds één commando.

Geef je pionnetje een voorkant

Zet een pionnetje op het startvak. Teken er een kleine pijl op om de voorkant aan te geven. Wijs het eerste commando aan en voer het uit. Wijs daarna het volgende commando aan.

Houd twee dingen bij: het vak en de kijkrichting. Door vooruit of achteruit verandert het vak. Door een draai verandert de kijkrichting. Houd het pionnetje op hetzelfde vak terwijl het draait.

Volg een route met twee draaien

Begin met je voorkant naar de bovenkant van de mat. Doorloop dit programma:

forward, forward, turn left, forward, turn left, forward

  1. De eerste keer vooruit brengt je één vak voor Start.
  2. De volgende keer vooruit brengt je twee vakken voor Start.
  3. Draai op dat vak naar links. Je voorkant wijst nu naar links.
  4. Ga één vak naar links.
  5. Draai nog eens naar links. Je voorkant wijst nu naar beneden.
  6. Ga één vak naar beneden.

Je eindigt één vak voor Start en één vak naar links. Je kijkt naar de onderkant van de mat. Tel de bewegingen na elke draai in de nieuwe kijkrichting.

Laat een spoor achter op papier

Schrijf bij een langer programma na elk commando een korte aantekening. Voor de eerste drie stappen hierboven kun je “1 vooruit”, “2 vooruit” en “2 vooruit, kijkt naar links” opschrijven. De laatste aantekening vertelt je het eindvak en de kijkrichting.

Een draai is een stap in je lijst, maar geen stap over de mat. Als je tijdens een draai naar een nieuw vak gaat, komen alle latere bewegingen bij het doorlopen op de verkeerde plek terecht.

Doorloop ook een programma voor een sprite

Lees “wanneer op de groene vlag wordt geklikt”, “beweeg 2 naar rechts”, “beweeg 1 omhoog”, “zeg Hoi!”. De vlag start de code. De sprite beweegt twee roostervakken naar rechts en dan één omhoog. Pas daarna zegt hij “Hoi!”.

Voer het programma nu uit en bekijk elke actie. Als het resultaat anders is dan je voorspelling, lees de commando’s dan opnieuw. Misschien heb je een beweging verkeerd doorlopen of moet de code worden verbeterd. Zoek de stap waar jouw uitwerking en de uitvoering voor het eerst verschillen.

Belangrijkste punten

  • Voorspel voordat je het programma uitvoert en controleer daarna door naar de uitvoering te kijken.
  • Doorloop elk commando op volgorde.
  • Houd zowel het vak als de kijkrichting bij.
  • Houd je pionnetje op hetzelfde vak tijdens een draai.

2.2 Geef redenen en vergelijk veranderingen

Een voorspelling is sterker als je kunt vertellen waarom je dat denkt. Logisch redeneren betekent dat je gebruikt wat je over elk commando weet om uit te zoeken wat er gebeurt. Je kunt bijvoorbeeld zeggen: “Hij bereikt de bloem, omdat hij met drie bewegingen vooruit de drie vakken aflegt.”

Vergelijk twee routes

Begin met een robot die vooruit kijkt. Een ster ligt één vak vooruit en twee vakken naar rechts. Doorloop elk programma vanaf dezelfde start.

  • Programma A: forward, turn right, forward, forward.
  • Programma B: turn right, forward, forward, forward.

Programma A gaat één vak vooruit en dan twee naar rechts. Het bereikt de ster. Programma B draait voordat het beweegt. Het gaat drie vakken naar rechts over de startrij en mist de ster dus.

Er is nog een route naar de ster: turn right, forward, forward, turn left, forward. Die gaat eerst naar rechts en dan vooruit. Zowel die route als programma A bereikt het doel. De paden verschillen en ook de kijkrichting aan het einde is anders.

Denk na over één verandering

Als “3 vooruit” verandert in “2 vooruit”, eindigt die beweging één vak eerder. Het volgende commando begint vanaf de nieuwe plek. Doorloop de rest om te zien waar het hele programma eindigt.

Als je een draai naar links verandert in een draai naar rechts, verandert op dat punt de kijkrichting. Latere bewegingen vooruit volgen die nieuwe richting. Verander in je tekening niet alleen de draai terwijl je het latere pad hetzelfde laat.

Herken commando’s die elkaar opheffen

Na een draai naar rechts gevolgd door een draai naar links wijst de voorkant weer dezelfde kant op. Beide draaien gebeuren op hetzelfde vak. Daarom eindigt forward, turn right, turn left, forward op dezelfde plek als forward, forward, met dezelfde kijkrichting.

Gebruik een misser als aanwijzing

Een robot stopt vóór een bloem. Controleer eerst zijn startvak en kijkrichting. Doorloop daarna de code. Op een recht pad vanaf de juiste start kan een ontbrekende beweging vooruit de misser verklaren. Ook een verkeerde draai of een verkeerd getal kan ervoor zorgen dat hij het doel mist. Kijk naar de werkelijke stappen voordat je kiest wat je gaat verbeteren.

Als een voorspelling niet klopte, vraag jezelf dan af: “Welke stap verraste me?” Voer dat commando uit. De betekenis ervan helpt je uit te leggen wat er gebeurde.

Belangrijkste punten

  • Leg een voorspelling uit met wat elk commando doet.
  • Doorloop bij het vergelijken van routes elk programma vanaf dezelfde start.
  • Verschillende paden kunnen hetzelfde doel bereiken.
  • Doorloop na het veranderen van een commando ook de commando’s die erop volgen.
  • Controleer de start en doorloop het programma voordat je bepaalt waarom een doel is gemist.
3

Zoek de programmeerfout en probeer die te verhelpen

Een robot kan zijn programma afmaken en toch zijn doel missen. Kijk wat er gebeurt en vergelijk dat met je plan. Je leert de eerste verkeerde stap te herkennen, een kleine verbetering te maken en het opnieuw te proberen. Elke test geeft je een aanwijzing over wat er moet veranderen.

3.1 Herken een programmeerfout

Een programmeerfout is een fout in de code waardoor het programma niet doet wat je wilde. Debuggen betekent dat je programmeerfouten opspoort en verhelpt. Zelfs ervaren programmeurs moeten dat doen.

Kijk naar het soort fout
ProgrammeerfoutWaar let je op
Verkeerde volgordeDe nodige commando’s staan erin, maar op de verkeerde plek.
Ontbrekend commandoEen nodige stap staat er niet in.
Overbodig commandoIn de lijst staat een stap die je niet nodig hebt.
Verkeerd commandoEén commando moet een ander commando zijn.
Verkeerd getalHet getal in een blok is te groot of te klein.

Deze aanwijzingen helpen je kiezen wat je gaat onderzoeken. Vergelijk ze met je doel en je route.

Vergelijk de code met de taak

De kaas ligt twee vakken vooruit en één vak naar rechts. De robot begint met zijn voorkant vooruit. Het programma is forward, turn right, forward, forward. Hij gaat maar één vak vooruit voordat hij draait en daarna twee naar rechts. Alle vier de nodige commando’s staan erin. De volgorde is verkeerd. Gebruik forward, forward, turn right, forward.

Voor een bloem drie vakken recht vooruit zijn drie bewegingen vooruit nodig. In een lijst met twee keer vooruit ontbreekt een commando. Een lijst met vier keer vooruit heeft een overbodig commando en gaat voorbij de bloem.

Een draai naar links op de plek waar een draai naar rechts nodig is, is een verkeerd commando. Met “beweeg 5 naar rechts” gaat een sprite voorbij een bal die vier vakken naar rechts ligt. Het getal moet 4 zijn.

Luister naar een programmeerfout bij geluid

In sommige apps begint “start geluid” een geluid en gaat het programma meteen verder. Twee van deze blokken kunnen geluiden starten die tegelijk klinken. Als je wilt dat het ene geluid is afgelopen voordat het volgende begint, gebruik dan blokken “speel geluid tot het klaar is”. Door het verkeerde soort geluidsblok kunnen de geluiden in je melodie door elkaar klinken.

Controleer meer dan de code

De robot begint misschien op het verkeerde vak of kijkt de verkeerde kant op. Bij een robot die commando’s bewaart, kan een oude lijst zijn blijven staan omdat niemand op Wissen heeft gedrukt. Controleer dit voordat je een goede route verandert.

Een programma kan een programmeerfout hebben, ook als het tot het einde wordt uitgevoerd. Kijk wat het doet en vergelijk dat met je doel. Een lijst afmaken is niet hetzelfde als het doel bereiken of geluiden op volgorde afspelen.

Belangrijkste punten

  • Door een programmeerfout doet het programma niet wat je wilde.
  • Zoek naar een verkeerde volgorde, ontbrekende of overbodige commando’s, een verkeerd commando of een verkeerd getal.
  • Controleer geluidsblokken als geluiden tegelijk klinken.
  • Controleer de start en de opgeslagen commando’s voordat je de code verandert.
  • Vergelijk het resultaat met het doel, ook als de code helemaal is uitgevoerd.

3.2 Zoek de eerste verkeerde stap

Een programmeerfout vinden is makkelijker als je weet wat je verwachtte. Vertel wat het doel was en wat het resultaat was: “Ik wilde dat de robot op de bal kwam. Hij stopte aan de andere kant.”

Kijk waar de route voor het eerst verandert

Begin met je voorkant vooruit. De bal ligt één vak vooruit en twee naar links. Je code zegt forward, turn right, forward, forward.

De eerste keer vooruit past bij je plan. Bij het tweede commando kijkt de robot naar rechts. Volgens je plan moet hij naar links kijken. Dit is de eerste verkeerde stap, ook al heeft hij het vak nog niet verlaten. De draai naar rechts is de programmeerfout.

Latere bewegingen kunnen hun commando’s goed volgen, maar toch vanuit de verkeerde kijkrichting beginnen. Begin bij het eerste verschil, zodat je niet elk later vak apart probeert te verbeteren.

Voer de code langzaam stap voor stap uit

Wijs steeds één commando aan. Voer het uit met een pionnetje en vergelijk het daarna met de getekende route. Houd de pijlkaarten naast de mat, zodat je ze samen kunt controleren.

Stop als een commando verschilt van het plan. Vlak daarvoor kan ook een nodig commando ontbreken. Als je plan een draai nodig heeft maar het volgende commando vooruit is, controleer dan of de draai ontbreekt.

Maak een snel programma makkelijker te volgen

Een sprite kan zo snel bewegen dat je alleen zijn laatste plek ziet. Zet een blok “wacht” tussen de acties om de uitvoering te vertragen. Nu kun je zien of hij te vroeg sprak of te ver bewoog.

Je kunt ook alleen de eerste paar commando’s testen. Begin bij de geplande start en voer dat deel uit. Als je daarmee het juiste vak en de juiste kijkrichting bereikt, zoek dan verderop in de code. Als je een langer deel test, begin je weer vanaf dezelfde start.

Bespreek de blokken

Vertel een ander wat elk blok doet. Je kunt het zelfs aan een knuffel vertellen: “Eerst gaat hij vooruit. Daarna draait hij naar rechts.” Als je de naam van de draai uitspreekt, hoor je misschien dat het naar links moet zijn. De ander kan de route controleren terwijl jij de code aanwijst.

Als er niets start, controleer dan de beginvoorwaarden. Zit er een startblok vast? Staan de blokken bij de juiste sprite? Controleer bij een vloerrobot Start, de kijkrichting en het gewiste geheugen voordat je een verkeerde beweging zoekt.

Belangrijkste punten

  • Vertel wat er moest gebeuren en wat er echt gebeurde.
  • Voer de code stap voor stap uit tot je het eerste verschil met het plan vindt.
  • Een draai kan de eerste verkeerde stap zijn zonder dat de robot van vak verandert.
  • Gebruik korte tests of wachtblokken om de acties te zien.
  • Leg de code hardop uit om een programmeerfout te helpen vinden.

3.3 Maak een kleine verbetering en voer het programma opnieuw uit

Als je de programmeerfout hebt gevonden, verander je het deel dat fout is. Laat de delen staan die hun taak al goed uitvoeren. Je kunt bijvoorbeeld commando’s verwisselen, er één toevoegen of weghalen, of een commando of getal veranderen.

Verbeter de draai

De bal ligt één vak vooruit en twee naar links. De robot begint met zijn voorkant vooruit. Je hebt de verkeerde draai gevonden in forward, turn right, forward, forward.

Verander alleen turn right in turn left. Je nieuwe programma is forward, turn left, forward, forward. De eerste beweging brengt de robot nog steeds één vak vooruit. Door de nieuwe draai kijkt hij naar links. De laatste twee bewegingen brengen hem bij de bal.

Als je de eerste beweging vooruit zou veranderen, zou dat de verkeerde draai niet verhelpen. Laat je verandering passen bij de aanwijzing die je hebt gevonden.

Test één verandering tegelijk

Maak één verandering en test daarna. Als je tegelijk de draai verandert en een beweging vooruit weghaalt, verandert het resultaat op twee manieren. Je weet dan niet welke verandering hielp.

Zorg bij de test voor dezelfde beginvoorwaarden:

  1. Zet de robot terug op Start.
  2. Zet hem met zijn voorkant in de geplande richting.
  3. Wis opgeslagen commando’s en voer het verbeterde programma in.
  4. Druk op GO en bekijk de hele route.

Zet bij een sprite de startplek en de veranderde kijkrichting, grootte of zichtbaarheid terug. Druk daarna op de groene vlag.

Controleer de hele taak

Door een verbetering kan de robot misschien verder komen en een andere programmeerfout laten zien. Hij kan de juiste draai maken, maar toch te vroeg stoppen. Controleer alle stappen, ook de laatste beweging, woorden en geluiden. Blijf programmeerfouten zoeken en verhelpen totdat het hele programma aan je doel voldoet.

Als je verandering niet hielp, maak die dan ongedaan en doorloop het programma opnieuw. Zoek het eerste verschil tussen het plan en de uitvoering. Je hoeft niet elke keer een helemaal nieuw programma te beginnen.

Je kunt zeggen: “Ik heb het nog niet opgelost.” Een test vertelt je waar je daarna naar kunt kijken. Als je de volgende programmeerfout ziet, maak je nog een kleine verandering en probeer je het opnieuw.

Belangrijkste punten

  • Verander het deel dat fout is en laat de werkende delen staan.
  • Verhelp één ding en test daarna.
  • Begin opnieuw vanaf de geplande plek en met de geplande kijkrichting.
  • Voer het hele programma uit om te controleren of er meer programmeerfouten zijn.
4

Maak je eigen werkende programma

Kies een kleine taak voor je robot of sprite. Je kunt een auto naar een garage sturen of een personage een vriend laten begroeten. Teken of vertel de stappen voordat je gaat bouwen. Test daarna steeds een klein deel en maak je code makkelijk te volgen voor iemand anders.

4.1 Zet je idee om in commando’s

Kies wat je programma moet doen. Vertel het doel in gewone woorden, zoals “De auto rijdt naar de garage en toetert.” Bepaal waar hij begint en waar hij moet eindigen.

Teken of vertel het plan

Volg een route met je vinger of teken die op een rooster. Teken voor een verhaal de acties als plaatjes in een strip. Vertel wat er eerst, daarna en als laatste gebeurt.

Dit plan is je algoritme. Je kunt het veranderen voordat je tijd besteedt aan blokken vastklikken of knoppen indrukken.

Verdeel een grote stap in kleine commando’s

Een vloerrobot heeft geen knop die “bezoek de garage” heet. Kijk naar de route en gebruik commando’s die hij kent.

De garage is twee vakken vooruit en één vak naar links. De robot begint met zijn voorkant vooruit. Je plan zegt: “Ga twee vakken vooruit, draai naar de garage en ga dan één vak vooruit.”

Bouw de code stap voor stap:

  1. Voor twee vakken vooruit heb je forward, forward nodig.
  2. Om naar de garage te kijken heb je turn left nodig.
  3. Voor het laatste vak heb je forward nodig.

Schrijf ↑ ↑ ↰ ↑ op en doorloop het om te controleren. De draai is op het tweede vak vooruit, vóór de laatste beweging.

Bedenk het verhaal van een sprite

Een kat komt binnenlopen, zegt “Hallo!” en springt dan. In een roosterapp kun je na het startblok en de blokken die de beginstand terugzetten “beweeg 3 naar rechts”, “zeg Hallo!” en dan “spring” gebruiken. Het praten hoort tussen het lopen en springen, omdat dat het verhaal is dat je hebt bedacht.

Selecteer het personage voordat je het blokken geeft. Elke sprite heeft zijn eigen code. Zorg dat één personage werkt voordat je het deel van een ander personage bouwt.

Controleer zowel het plan als de code

Leg de code naast het getekende pad of de plaatjes van het verhaal. Heeft elke geplande stap commando’s? Staan ze op de juiste plek?

Als de code het plan volgt maar toch het doel mist, controleer dan ook het plan. Misschien heb je de route verkeerd geteld. Als het plan klopt en een blok anders is, verbeter dan het blok.

Meer dan één programma kan een doel bereiken. Een korter programma is vaak makkelijker te lezen, maar moet nog steeds elk deel van de taak uitvoeren. Controleer de route en het einde voordat je ervoor kiest.

Belangrijkste punten

  • Vertel het doel en kies de start voordat je gaat bouwen.
  • Teken een pad of een verhaalplan op volgorde.
  • Verdeel elke grote stap in commando’s die de robot of sprite kent.
  • Als het resultaat fout is, controleer dan zowel het plan als de code.

4.2 Bouw een stukje, test een stukje

Testen betekent dat je je programma uitvoert om te controleren of het doet wat je wilde. Je kunt al testen voordat het hele programma klaar is. Een programmeerfout is makkelijker te vinden in een paar nieuwe blokken dan in een lange lijst die nog niet is getest.

Voeg één klein deel toe

Bouw de eerste paar commando’s. Voorspel wat ze doen, voer ze uit en controleer het resultaat. Verhelp eventuele programmeerfouten voordat je het volgende deel toevoegt.

Zorg bij een auto die een garage moet bereiken en moet toeteren eerst dat de route werkt. Controleer op welk vak de auto stopt. Voeg daarna de toeter toe en controleer of die na de route klinkt. Elk nieuw deel heeft een duidelijke taak die je kunt testen.

Laat je doel de test bepalen

Let op elk deel van het doel. Een robot kan het juiste vak bereiken maar de verkeerde kant op kijken. Een sprite kan zijn plek bereiken maar de verkeerde woorden zeggen. Kijk en luister naar de hele uitvoering.

Vraag een vriend of vriendin om ook te testen. Vertel het doel en laat de ander vertellen wat die zag. Vriendelijke feedback noemt iets wat werkt en iets wat verbeterd moet worden: “De auto bereikt de garage. De toeter moet na de beweging klinken.”

Maak code makkelijker te lezen

Zoek naar commando’s die elkaar opheffen. Een draai naar rechts met meteen daarna een draai naar links laat de robot op hetzelfde vak staan, met dezelfde kijkrichting. Als je doel alleen die route en dat einde nodig heeft, kun je beide draaien weghalen.

In een roosterapp die getallen in bewegingsblokken toestaat, kunnen vier blokken “beweeg 1 naar rechts” één blok “beweeg 4 naar rechts” worden. De sprite bereikt dezelfde plek. Controleer of je doel geen aparte acties tussen die bewegingen nodig heeft.

Test na het overzichtelijk maken opnieuw vanaf het begin. Een kortere lijst is alleen nuttig als die de taak nog steeds uitvoert.

Vertel wat je hebt geleerd

Laat een ander elk deel van je code zien en vertel wat het doet. Vertel over één programmeerfout die je hebt verholpen. Je kunt zeggen: “Ik telde Start als een beweging. Nu tel ik alleen de vakken waar de robot naartoe gaat.”

Gebruik die les bij je volgende programma. Als links en rechts lastig waren, controleer die dan van achter de robot voordat je zijn draaien invoert. Als een blok los zat, controleer dan tijdens het bouwen of de blokken vastzitten.

Belangrijkste punten

  • Test een paar commando’s voordat je het volgende deel toevoegt.
  • Controleer elk deel van het doel, ook woorden, geluiden en kijkrichting.
  • Geef vriendelijke, duidelijke feedback als je met een vriend of vriendin test.
  • Haal onnodige commando’s weg of voeg dezelfde bewegingen samen waar de app dat toelaat.
  • Test na het overzichtelijk maken vanaf het begin.
  • Onthoud een programmeerfout die je hebt verholpen en let er de volgende keer op.

Programmeren en debuggen: voorbeelden

4 Walkthroughs

1

Geef een robot en een sprite een taak

18 stappen
Bouw met commando’s een route en laat daarna een personage op een scherm acties op volgorde uitvoeren.
  1. 1
    IntroductieVan een idee naar een programma

    Je wilt dat een robot een speelgoedboom bereikt. “Bezoek de boom” noemt de taak, maar de robot heeft kleinere stappen nodig. Je kiest commando’s, zet ze op volgorde en controleert de draaien. Daarna bouw je een kort programma met blokken voor een sprite op een scherm.

  2. 2
    UitlegHet ene commando na het andere

    Een commando geeft één instructie, zoals “vooruit”. Een programma is een lijst met commando’s die een robot of computer volgt. De commando’s heten code. In jouw volgorde heeft elk commando een plek: het eerste wordt vóór het tweede uitgevoerd, enzovoort.

  3. 3
    AnalogieBedenk eerst de taak

    Denk aan de stappen om je klaar te maken voor tekenen: pak papier, kies een kleurpotlood, teken. Een plan met stappen is een algoritme. Een programma schrijft een plan in commando’s die een computer kent. Voor de tocht van de robot heb je commando’s voor bewegen en draaien nodig in plaats van stappen om te tekenen.

  4. 4
    VoorbeeldProbeer een verwisseling

    Zet een pionnetje op Start, met zijn voorkant naar boven. Voer forward, turn left uit. Het gaat vooruit en kijkt dan naar links. Zet het terug en probeer turn left, forward. Het gaat nu vanaf Start naar links. Dezelfde commando’s bereiken verschillende vakken omdat de volgorde is veranderd.

  5. 5
    UitdagingEindigen ze op dezelfde plek?

    Begin op een getallenlijn bij 0. Eén programma gaat 1 vooruit en dan 4 vooruit. Een ander gaat 4 vooruit en dan 1 vooruit. Eindigen ze op dezelfde plek?

    ---reveal---

    Ja, beide stoppen op 5. Beide gaan vijf plaatsen vooruit. Bij deze verwisseling blijft de totale afstand op dezelfde rechte getallenlijn gelijk.

  6. 6
    UitlegDraai zonder verder te gaan

    Op de mat van je robot gaat hij met vooruit één vak in de richting van zijn voorkant. Met achteruit gaat hij naar achteren zonder te draaien. Een draai naar links of rechts is een kwartslag op de plaats. Doe een draai naar rechts na: je voorkant verandert van richting, maar je voeten blijven op dezelfde plek.

  7. 7
    TipGa achter je robot staan

    Gebruik links en rechts vanuit de robot gezien. Als hij naar je toe kijkt, is zijn rechts aan jouw linkerkant. Ga achter hem staan en kijk dezelfde kant op. Wijs met je rechterhand naar zijn rechterkant. Dat helpt je de draai te kiezen voordat je de route invoert.

  8. 8
    VoorbeeldBereik eerst het vak waar je draait

    De boom staat drie vakken vooruit en één vak links van Start. Je robot begint met zijn voorkant naar boven. Leg ↑ ↑ ↑ neer. Elke pijl betekent vooruit. Tel de drie nieuwe vakken waar hij naartoe gaat. Hij is nu naast de rij van de boom en kijkt nog steeds naar boven.

  9. 9
    VoorbeeldDraai nu naar de boom

    Houd de robot op dat vak. Voeg ↰ ↑ toe: draai naar links en dan vooruit. De draai verandert zijn kijkrichting zonder hem te verplaatsen. Met vooruit gaat hij naar het vak met de boom. Je volledige route is ↑ ↑ ↑ ↰ ↑. Druk bij een robot die commando’s bewaart eerst op Wissen, voer de lijst in en druk op GO.

  10. 10
    UitdagingBereik speelgoed naast Start

    Een robot kijkt naar boven. Speelgoed ligt één vak rechts van hem. Sam voert alleen ↱ in. Waar stopt de robot en welk commando ontbreekt?

    ---reveal---

    Hij blijft op Start staan en kijkt nu naar rechts. Voeg ↑ toe na de draai om het speelgoed te bereiken. Hier volgt de pijl vooruit de nieuwe voorkant van de robot.

  11. 11
    UitlegKies de sprite

    Een sprite is een personage of voorwerp op een scherm. Selecteer de sprite voordat je blokken naar zijn codegebied sleept. Zijn blokken besturen die sprite. Klik de blokken aan elkaar in de volgorde van je app, over het scherm of van boven naar beneden.

  12. 12
    VoorbeeldStart, zet terug en beweeg

    Een vogel moet naar een nest bewegen dat vijf roostervakken rechts van de beginplek ligt. Begin met “wanneer op de groene vlag wordt geklikt”. Klik een blok vast dat de positie terugzet naar de beginplek en daarna “beweeg 5 naar rechts”. In deze roosterapp telt de beweging vakken naar de rechterkant van het scherm.

  13. 13
    VoorbeeldPraat na aankomst

    Voeg “zeg Thuis!” toe na de beweging. Het verbonden programma start, zet de vogel terug, beweegt vijf vakken naar rechts en toont dan “Thuis!”. Een zegblok verandert wat je ziet. Een geluidsblok kan iets toevoegen wat je hoort, zoals een tjilp na het praten.

  14. 14
    KernpuntZet zo nodig meer terug dan de plek

    Stel dat de vogel aan het einde van de uitvoering groeit en verdwijnt. Als je hem de volgende keer terug naar de beginplek laat gaan, verandert alleen zijn plek. Voeg na de start blokken toe die zijn oorspronkelijke grootte terugzetten en hem laten verschijnen. Anders begint de volgende test met een grote, verborgen vogel.

  15. 15
    UitdagingWaarom zegt de vogel niets?

    Je vogel beweegt naar het nest, maar zijn blok “zeg Thuis!” ligt los naast het programma. Hoe kun je hem na aankomst laten praten?

    ---reveal---

    Klik het zegblok vast aan het einde van de verbonden volgorde van de vogel. Een los blok wordt niet met die volgorde uitgevoerd, ook niet als het dicht bij het bewegingsblok ligt.

  16. 16
    TipLaat elk geluid aflopen

    Sommige apps hebben zowel blokken “start geluid” als “speel geluid tot het klaar is”. Het eerste begint een geluid en gaat verder. Het tweede wacht tot het geluid is afgelopen. Kies voor een melodie waarvan de geluiden na elkaar moeten klinken de wachtende blokken, zodat de geluiden niet tegelijk klinken.

  17. 17
    UitdagingControleer de voorbereiding voor een nieuwe uitvoering

    Je hebt een nieuwe route naar de boom geschreven. Je robot bewaart oude commando’s en zijn voorkant wijst nu naar links. Je plan begint met de voorkant naar boven. Wat moet je voorbereiden voordat je de nieuwe route invoert en uitvoert?

    ---reveal---

    Wis oude commando’s. Zet de robot op Start met zijn voorkant naar boven, voer daarna de nieuwe route in en druk op GO. Zowel de code als de beginvoorwaarden beïnvloeden de tocht.

  18. 18
    SamenvattingKlaar om commando’s te geven

    Een programma zet een plan om in commando’s die de robot of sprite kent. Controleer hun volgorde, lees wat elke beweging betekent en laat draaien op hetzelfde vak gebeuren. Selecteer bij blokken de juiste sprite, klik zijn volgorde aan elkaar en zorg bij elke uitvoering voor dezelfde begineigenschappen.

2

Voorspel een route met een pionnetje

11 stappen
Houd de plek en kijkrichting bij en leg daarna uit wat er verandert als je de code verandert.

Sla deze les op om elke Walkthrough stap voor stap te volgen.

  1. 1
    IntroductieLees voordat je uitvoert
  2. 2
    UitlegHoud twee dingen in gedachten
  3. 3
    VoorbeeldVolg de eerste drie commando’s
  4. 4
    VoorbeeldMaak dezelfde route af
  5. 5
    UitdagingGa achteruit na een draai
  6. 6
    VerbandLeg het pad uit met een reden
  7. 7
    VoorbeeldVerander de laatste beweging
  8. 8
    UitdagingVergelijk twee paden
  9. 9
    TipGebruik een misser om te kiezen wat je controleert
  10. 10
    UitdagingVerander een draai en doorloop opnieuw
  11. 11
    SamenvattingControleer je voorspelling
3

Volg de aanwijzingen naar een programmeerfout

14 stappen
Zoek een verkeerde draai, verhelp de fout en controleer de hele route vanaf het begin.

Sla deze les op om elke Walkthrough stap voor stap te volgen.

  1. 1
    IntroductieWat wilde je laten gebeuren?
  2. 2
    UitlegBenoem de fout
  3. 3
    VoorbeeldLees het programma naar de tent
  4. 4
    UitdagingBenoem een andere programmeerfout
  5. 5
    VoorbeeldBekijk het begin van de route naar de tent
  6. 6
    VoorbeeldStop bij het eerste verschil
  7. 7
    TipMaak elke stap beter zichtbaar
  8. 8
    UitdagingZoek het eerste verkeerde blok
  9. 9
    VoorbeeldVerander één draai
  10. 10
    VoorbeeldVoer het hele verbeterde programma uit
  11. 11
    UitdagingEr verschijnt later een programmeerfout
  12. 12
    KernpuntEén verandering vertelt je meer
  13. 13
    UitdagingDe code krijgt geen goede kans
  14. 14
    SamenvattingVolg de aanwijzing en test daarna
4

Bouw een kort verhaal met een sprite

11 stappen
Bedenk de acties van een personage, test elk deel en maak de voltooide code makkelijker te lezen.

Sla deze les op om elke Walkthrough stap voor stap te volgen.

  1. 1
    IntroductieKies een kort verhaal
  2. 2
    UitlegGeef elke actie een plek
  3. 3
    VoorbeeldZet het eerste plaatje om in code
  4. 4
    UitdagingHoud het verhaal op volgorde
  5. 5
    VoorbeeldTest eerst de route
  6. 6
    TipLuister naar de test van een ander
  7. 7
    VoorbeeldVoeg dezelfde bewegingen samen
  8. 8
    UitdagingControleer na het overzichtelijk maken
  9. 9
    UitdagingAls het plan verbeterd moet worden
  10. 10
    VerbandOnthoud wat je van een programmeerfout leert
  11. 11
    SamenvattingLaat een werkend programma zien

Programmeren en debuggen: oefenvragen

40 Oefenvragen in 4 sets

Set 1: Commando’s, draaien en eerste programma’s10 Oefenvragen

Vraag 1 van 10

Mia wijst één instructie aan in een langer robotprogramma: “draai naar links”. Hoe heet die instructie?
  1. Een volgorde
  2. Een algoritme
  3. Een commando
  4. Een heel programma
Toon antwoordVerberg antwoord
Antwoord: C
Een commando is één instructie die de robot moet volgen. Een volgorde geeft de volgorde van commando’s aan; het is niet de naam voor de enkele instructie die Mia gaf.

Vraag 2 van 10

Een vloerrobot kijkt naar de bovenkant van zijn mat. Je voert turn right in. Waar is de robot na dat commando?
  1. Op zijn startvak
  2. Eén vak naar rechts
  3. Eén vak naar boven op de mat
  4. Eén vak achteruit
Toon antwoordVerberg antwoord
Antwoord: A
De robot maakt een kwartslag op zijn startvak. Zijn voorkant wijst nu naar rechts, maar hij is niet naar rechts gegaan. Daarvoor heeft hij een commando vooruit nodig.

Vraag 3 van 10

Een robot kijkt naar je toe. Een fiche ligt één vak rechts van de robot. Met welke commando’s bereikt hij het fiche?
  1. forward, turn right
  2. turn left, forward
  3. backward, turn right
  4. turn right, forward
Toon antwoordVerberg antwoord
Antwoord: D
Gebruik rechts vanuit de robot gezien en ga dan vooruit naar het fiche. Als hij naar je toe kijkt, is die kant aan jouw linkerkant. Als je naar links draait, volg je jouw kijkrichting en stuur je de robot de verkeerde kant op.

Vraag 4 van 10

Je drukt op de groene vlag. De schildpad voert zijn verbonden blokken uit, maar er ligt een los blok “zeg Hoi!” naast. Wat gebeurt er met het losse blok?
  1. Het wordt vóór de andere blokken uitgevoerd.
  2. Het wordt bij deze uitvoering overgeslagen.
  3. Het wordt na het laatste blok uitgevoerd.
  4. Het wordt aan het dichtstbijzijnde blok gekoppeld.
Toon antwoordVerberg antwoord
Antwoord: B
Alleen de blokken die met deze start verbonden zijn, worden samen uitgevoerd. Het losse zegblok blijft buiten de volgorde. Dat het naast het laatste blok ligt, zorgt er niet voor dat het na dat blok wordt uitgevoerd.

Vraag 5 van 10

Een sprite begint op de beginplek. Zijn verbonden programma is “wanneer op de groene vlag wordt geklikt”, “beweeg 6 naar rechts”, “zeg Welkom!”. De app telt roostervakken. Wat gebeurt er nadat je op de vlag drukt?
  1. Hij praat en beweegt dan zes vakken naar rechts.
  2. Hij beweegt één vak naar rechts en praat dan.
  3. Hij beweegt zes vakken naar rechts en praat dan.
  4. Hij beweegt naar rechts en blijft stil.
Toon antwoordVerberg antwoord
Antwoord: C
De vlag start de volgorde en daarna beweegt de sprite zes vakken naar rechts. Het zegblok komt daarna. Als hij eerst zou praten, zou de volgorde van de twee actieblokken omgekeerd zijn.

Vraag 6 van 10

Een robot kijkt naar de bovenkant van een mat. Doorloop forward, turn left, backward. Waar eindigt hij ten opzichte van Start?
  1. Eén vooruit en één naar links
  2. Eén vooruit en één naar rechts
  3. Eén achteruit en één naar links
  4. Eén achteruit en één naar rechts
Toon antwoordVerberg antwoord
Antwoord: B
De eerste beweging gaat één vak vooruit. Door de draai naar links wijst de voorkant naar links, dus gaat achteruit naar rechts. Na die draai naar links gaan zou bij een commando vooruit passen, maar dat is hier niet het laatste commando.

Vraag 7 van 10

Een robot kijkt naar boven. Een schelp ligt twee vakken vooruit en twee naar rechts vanaf Start. Doorloop forward, turn right, forward, forward, turn left, forward. Waar stopt hij?
  1. Op de schelp, met de voorkant naar boven
  2. Op de schelp, met de voorkant naar rechts
  3. Eén vak vóór de schelp, met de voorkant naar boven
  4. Eén vak voorbij de schelp, met de voorkant naar rechts
Toon antwoordVerberg antwoord
Antwoord: A
De route gaat één vak vooruit, twee naar rechts en dan één vooruit. Zo bereikt de robot de schelp en door de laatste draai kijkt hij naar boven. Als hij naar rechts blijft kijken, mis je het effect van de draai naar links.

Vraag 8 van 10

Een kikkersprite moet vijf roostervakken omhoog bewegen. Op zijn enige bewegingsblok staat “beweeg 7 omhoog”. Wat voor programmeerfout zit er in dat blok?
  1. Een ontbrekend commando
  2. Een verkeerde volgorde
  3. Een overbodig commando
  4. Een verkeerd getal
Toon antwoordVerberg antwoord
Antwoord: D
De beweging gaat de goede kant op, maar het getal is te groot. Verander 7 in 5. Bij een overbodig commando zou er een blok te veel zijn; hier zit de fout in het ene bewegingsblok.

Vraag 9 van 10

Je wilt dat een sprite zwaait, naar een tent loopt en dan praat. Wat moeten je verhaalplaatjes laten zien?
  1. Lopen, dan zwaaien, dan praten
  2. Zwaaien, dan lopen, dan praten
  3. Zwaaien, dan praten, dan lopen
  4. Praten, dan lopen, dan zwaaien
Toon antwoordVerberg antwoord
Antwoord: B
De plaatjes moeten de volgorde van acties uit het doel aanhouden: zwaaien, lopen, praten. Als praten vóór lopen komt, praat het personage voordat het de tent bereikt.

Vraag 10 van 10

Een sprite op een rooster begint op de beginplek. Hij beweegt twee keer 1 omhoog, zegt “Kijk!” en beweegt dan vier keer 1 omhoog naar een nest. Welk korter programma laat hem op dezelfde plek praten en waar moet de test beginnen?
  1. move up 2, say "Look!", move up 3; test vanaf de beginplek.
  2. move up 6, say "Look!"; test vanaf de beginplek.
  3. move up 2, say "Look!", move up 4; test vanaf het nest.
  4. move up 2, say "Look!", move up 4; test vanaf de beginplek.
Toon antwoordVerberg antwoord
Antwoord: D
Laat het praten na twee vakken komen, dus gebruik daarvoor “beweeg 2 omhoog” en daarna “beweeg 4 omhoog”. Test opnieuw vanaf de beginplek. Als je alle zes bewegingen vóór het praten samenvoegt, verandert de plek waar de sprite praat.
Set 2: Volg routes en vind kleine programmeerfouten10 Oefenvragen

Sla deze les op om elk antwoord te zien en elke set te oefenen.

Vraag 1 van 10

Een robot begrijpt forward, backward en draaicommando’s. Je plan zegt “bezoek het kleed”. Wat moet je doen voordat je het plan invoert?
  1. Zet de tocht om in commando’s die hij kent.
  2. Voer alleen de laatste beweging vooruit in.
  3. Druk op GO voordat je commando’s toevoegt.
  4. Gebruik het woord “kleed” als bewegingscommando.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 2 van 10

Een robot kijkt langs een rechte rij naar een beker. De rij is Start, leeg vak, leeg vak, leeg vak, beker. Hoeveel commando’s vooruit zijn nodig om de beker te bereiken?
  1. Drie
  2. Vijf
  3. Vier
  4. Twee
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 3 van 10

Je sprite groeit en verdwijnt tijdens zijn programma. De volgende uitvoering begint met een blok dat alleen zijn plek terugzet. Wat moet het begin van het programma nog meer terugzetten?
  1. Zijn plek en de achtergrond
  2. Zijn grootte en zichtbaarheid
  3. Zijn geluid en de achtergrond
  4. Zijn plek en zijn bewegingsgetal
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 4 van 10

Een robot kijkt naar de onderkant van een mat. Doorloop backward, turn left, forward. Waar is hij ten opzichte van Start?
  1. Eén omhoog en één naar links
  2. Eén omlaag en één naar rechts
  3. Eén omlaag en één naar links
  4. Eén omhoog en één naar rechts
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 5 van 10

Een robot kijkt naar boven. Doorloop forward, turn right, backward, turn left, forward. Wat zijn zijn eindplek en kijkrichting?
  1. Twee vooruit, één naar links; kijkt naar boven
  2. Twee vooruit, één naar rechts; kijkt naar boven
  3. Eén vooruit, twee naar links; kijkt naar rechts
  4. Twee vooruit, één naar links; kijkt naar rechts
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 6 van 10

Een robot moet stoppen op een blad twee vakken recht vooruit. Hij begint goed en voert forward, forward, forward uit. Door welke programmeerfout gaat hij voorbij het blad?
  1. Een verkeerde draai
  2. Een ontbrekend commando
  3. Een verkeerde volgorde
  4. Een overbodig commando
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 7 van 10

Het plan is forward, turn left, forward. De robot begint goed, maar voert forward, forward, turn left uit. Bij welk commando verschilt hij voor het eerst van het plan?
  1. Bij commando 1
  2. Bij commando 2
  3. Bij commando 3
  4. Pas na commando 3
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 8 van 10

Het doel voor een sprite is twee vakken naar rechts bewegen, drie omhoog en dan praten. Zijn verbonden blokken na de start zijn “beweeg 2 naar rechts”, “beweeg 4 omhoog”, “zeg Hallo!”. Wat moet je eerst onderzoeken?
  1. Het startblok, omdat het eerst wordt uitgevoerd
  2. Het zegblok, omdat het als laatste wordt uitgevoerd
  3. Het blok omhoog, waar de route voor het eerst afwijkt
  4. Het blok naar rechts, waar de route begint
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 9 van 10

Je hebt een verkeerde draai midden in een route gevonden. Wat moet je daarna doen?
  1. Verander die draai en test vanaf Start.
  2. Verander die draai en test vanaf het eindpunt.
  3. Verander beide draaien en test vanaf Start.
  4. Verwijder de eerste beweging en test vanaf Start.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 10 van 10

Je code komt precies overeen met je getekende route, maar beide missen het doelvak. Je hebt de start en kijkrichting van de robot gecontroleerd. Wat moet je daarna controleren?
  1. Of een draai toevoegen de code verbetert
  2. Of je twee keer op GO moet drukken
  3. Of een andere sprite de code heeft
  4. Of de getekende route het doel bereikt
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Set 3: Aanwijzingen voor debuggen en zorgvuldig opnieuw testen10 Oefenvragen

Sla deze les op om elk antwoord te zien en elke set te oefenen.

Vraag 1 van 10

Bij jouw robot worden nieuwe knopdrukken aan het opgeslagen programma toegevoegd. Je wilt een nieuwe route invoeren. Op welke knop moet je eerst drukken?
  1. GO
  2. Vooruit
  3. Wissen
  4. Draai naar links
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 2 van 10

Je hebt bewegingsblokken toegevoegd terwijl de vogelsprite was geselecteerd. Je wilde de beer laten bewegen, maar de beer blijft stilstaan. Waar moeten de bewegingsblokken van de beer staan?
  1. In het codegebied van de vogel
  2. In het codegebied van de beer
  3. Bij de keuzes voor geluid
  4. Bij de keuzes voor achtergronden
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 3 van 10

Een robot kijkt naar boven. Hij voert forward, forward, turn right, backward, turn right, forward uit. Waar eindigt hij ten opzichte van Start?
  1. Eén vooruit en één naar rechts
  2. Twee vooruit en één naar links
  3. Twee vooruit en één naar rechts
  4. Eén vooruit en één naar links
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 4 van 10

Twee robots beginnen samen en kijken allebei naar boven. De ene voert forward, turn left, turn right, forward uit. De andere voert forward, forward uit. Hoe verhouden hun eindplekken en kijkrichtingen zich tot elkaar?
  1. Hetzelfde vak en dezelfde kijkrichting
  2. Hetzelfde vak, een andere kijkrichting
  3. Verschillende vakken, dezelfde kijkrichting
  4. Verschillende vakken en kijkrichting
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 5 van 10

In je app gaat “start geluid” meteen verder, terwijl “speel geluid tot het klaar is” wacht. Twee verschillende lange geluiden moeten na elkaar klinken. Beide blokken zijn “start geluid” en de geluiden klinken tegelijk. Hoe verhelp je dit?
  1. Verwissel de twee blokken “start geluid”.
  2. Voeg nog een blok “start geluid” toe.
  3. Gebruik blokken “speel geluid tot het klaar is”.
  4. Zet beide blokken vóór de start.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 6 van 10

De bewegingen van je sprite gaan te snel om de verkeerde stap te zien. Wat kun je tussen de bewegingen toevoegen om de uitvoering te vertragen?
  1. Een groter bewegingsgetal
  2. Een tweede startblok
  3. Een los zegblok
  4. Een wachtblok
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 7 van 10

Een robot moet twee vakken vooruit en dan twee naar links. Met zijn eerste twee commando’s bereikt hij het juiste vak en de juiste kijkrichting. Bij de volledige uitvoering mist hij het doel. Welk deel moet je daarna doorlopen?
  1. Het startvak opnieuw, vóór het lezen van de code
  2. De latere commando’s, te beginnen bij commando 3
  3. Het eerste commando, dat wel fout moet zijn
  4. De eerste twee commando’s, in omgekeerde volgorde
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 8 van 10

Een programma heeft twee programmeerfouten: een verkeerde draai en daarna een overbodige beweging. Je verbetert de draai en voert het programma opnieuw uit vanaf de juiste start. Nu volgt het de geplande route, maar gaat het voorbij het doel. Wat moet je doen?
  1. Behoud de verbeterde draai en zoek de overbodige beweging.
  2. Maak de verbeterde draai ongedaan en behoud de overbodige beweging.
  3. Verander de start om de overbodige beweging te verbergen.
  4. Voeg een draai toe vóór de overbodige beweging.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 9 van 10

Nadat je één blok hebt veranderd, wordt het resultaat slechter. Wat is een nuttige volgende stap?
  1. Verander nog meer blokken tegelijk.
  2. Behoud de verandering en verplaats het doel.
  3. Maak de verandering ongedaan en doorloop opnieuw.
  4. Laat de rest van het programma weg.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 10 van 10

Een robot kijkt naar boven. De brievenbus staat één vak onder Start en twee naar rechts. De robot moet eindigen met zijn voorkant naar rechts. Welk programma voldoet aan het hele doel?
  1. forward, turn right, forward, forward
  2. backward, turn right, forward, forward
  3. turn right, forward, forward, forward
  4. backward, turn left, forward, forward
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Set 4: Laat programma’s van begin tot eind werken10 Oefenvragen

Sla deze les op om elk antwoord te zien en elke set te oefenen.

Vraag 1 van 10

Je hebt code voor een robot geschreven, maar nog niet uitgevoerd. Welk woord geeft de volgorde van zijn commando’s aan?
  1. Voorspelling
  2. Debuggen
  3. Volgorde
  4. Testen
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 2 van 10

Een robot kijkt naar boven. Speelgoed ligt twee vakken achter hem. Met welke commando’s bereikt hij het speelgoed en blijft hij naar boven kijken?
  1. backward, backward
  2. turn right, forward, forward
  3. forward, forward
  4. turn left, forward, forward
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 3 van 10

Een sprite moet de woorden “Goedemorgen!” in een tekstballon tonen. Wat voor blok doet dat?
  1. Een bewegingsblok
  2. Een geluidsblok
  3. Een startblok
  4. Een uiterlijkblok
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 4 van 10

Een robot kijkt naar rechts. Doorloop forward, turn right, forward, turn left, backward. Waar eindigt hij en welke kant kijkt hij op?
  1. Eén onder Start, kijkt naar beneden
  2. Eén onder Start, kijkt naar rechts
  3. Eén boven Start, kijkt naar rechts
  4. Eén rechts van Start, kijkt naar beneden
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 5 van 10

Een robot kijkt naar boven. Hij voert forward, turn right, forward, turn left, forward uit. Je verandert alleen de eerste draai in turn left. Waar stopt hij nu?
  1. Twee vooruit en één naar links
  2. Twee vooruit en één naar rechts
  3. Eén naar links op de startrij
  4. Eén naar rechts op de startrij
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 6 van 10

Begin op een getallenlijn bij 1. Programma Eén gaat 4 vooruit en dan 2 vooruit. Programma Twee gaat 2 vooruit en dan 4 vooruit. Waar stoppen ze?
  1. De ene op 5, de andere op 3
  2. Allebei op 7
  3. Allebei op 6
  4. De ene op 7, de andere op 6
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 7 van 10

Een robot moet één vak vooruit en dan één naar rechts. Hij begint met zijn voorkant vooruit en voert turn right, forward, forward uit. Wat voor programmeerfout zit er in deze lijst?
  1. Een overbodig commando
  2. Een ontbrekend commando
  3. Een verkeerd getal
  4. Een verkeerde volgorde
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 8 van 10

Een sprite begint op de beginplek, klein en zichtbaar. Hij beweegt 2 roostervakken naar rechts, groeit, beweegt 3 naar rechts en verdwijnt dan. Bij de volgende uitvoering wordt alleen zijn plek teruggezet. Waar eindigde de eerste uitvoering en wat moet nog meer worden teruggezet om de volgende uitvoering op dezelfde manier te laten beginnen?
  1. Drie naar rechts; klein en zichtbaar
  2. Vijf naar rechts; klein en zichtbaar
  3. Vijf naar rechts; groot en zichtbaar
  4. Vijf naar rechts; klein en verborgen
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 9 van 10

Het doel van een robot noemt alleen zijn pad en kijkrichting aan het einde. Zijn code is forward, turn left, turn right, forward, turn right, forward. Welke kortere code behoudt dat pad en die kijkrichting?
  1. forward, forward, forward
  2. forward, turn left, forward, forward
  3. forward, forward, turn right, forward
  4. turn right, forward, forward, forward
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 10 van 10

Een sprite moet vijf roostervakken naar rechts bewegen naar een bankje en dan “Ga hier zitten!” zeggen. Zijn code na de start en het terugzetten is “beweeg 2 naar rechts”, “zeg Ga hier zitten!”, “beweeg 3 naar rechts”. Welke feedback legt uit wat werkt en wat moet worden verbeterd?
  1. “Hij bereikt het bankje. Zet het praten na beide bewegingen.”
  2. “Hij bereikt het bankje. Verwijder de laatste beweging van drie vakken.”
  3. “Hij zegt de woorden. Zet het praten vóór beide bewegingen.”
  4. “Hij zegt de woorden. Verander de eerste beweging in vijf vakken.”
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Kom je niet uit je eigen opgave? Huiswerkhulp

Kernbegrippen

45 Kernbegrippen, elk met een definitie

A

Achteruit
Achteruit laat een vloerrobot één stap naar achteren bewegen zonder hem om te draaien.
Je robot gaat achteruit van het speelgoed weg, maar blijft ernaar kijken.
Algoritme
Een algoritme is een plan met stappen om een probleem op te lossen of een taak uit te voeren.
Je algoritme geeft de stappen om een robot naar een bloem te brengen.

B

Bewegingsblok
Een bewegingsblok is een commandoblok dat een sprite op het scherm laat bewegen of draaien.
Een bewegingsblok brengt je auto drie roostervakken naar links.
Blok
Een blok is een stukje code dat je in een blokkenapp kunt slepen en aan andere blokken kunt vastklikken.
Je klikt een zegblok vast na het blok dat je sprite laat bewegen.

C

Code
Code bestaat uit de commando’s die zijn geschreven om door een robot of computer te worden gevolgd.
In je code zet je een beweging vóór het blok dat een sprite laat praten.
Code overzichtelijk maken
Code overzichtelijk maken betekent dat je code makkelijker leesbaar maakt en de acties behoudt die voor het doel nodig zijn.
Je voegt drie dezelfde bewegingen van één vak samen tot één beweging van drie vakken.
Commando
Een commando is één instructie die een robot of computer vertelt om één ding te doen.
“Draai naar rechts” is een commando dat je een vloerrobot kunt geven.

D

Debuggen
Debuggen betekent dat je fouten in een programma opspoort en verhelpt, zodat het de bedoelde taak uitvoert.
Je debugt de route door een verkeerde draai te veranderen en de route daarna opnieuw uit te voeren.
Deeltest
Bij een deeltest voer je een paar commando’s apart uit, zodat je dat stukje van het programma kunt controleren.
Je test de eerste drie commando’s en controleert zowel het vak als de kijkrichting.
Doel
Een doel is de plek die je robot of sprite moet bereiken.
Als de schelp je doel is, controleer je of elk programma dat je probeert die bereikt.
Doel
Het doel van een programma is wat je wilt dat het doet, en ook waar het moet eindigen.
Je doel is dat de auto de garage bereikt en dan toetert.
Draaibewegingen die elkaar opheffen
Draaibewegingen die elkaar opheffen zijn draaien die de robot zonder een beweging terugbrengen naar zijn eerdere kijkrichting.
Een draai naar rechts met meteen daarna een draai naar links maakt de verandering van kijkrichting ongedaan.

E

Eerste verkeerde stap
De eerste verkeerde stap is de eerste actie die verschilt van wat je programma volgens je plan moet doen.
De robot draait bij stap twee naar links terwijl je route daar een draai naar rechts nodig heeft.

F

Feedback
Feedback vertelt iemand wat je aan zijn of haar programma hebt opgemerkt en wat beter kan.
Je zegt: “De auto bereikt de deur. Zet de toeter na de laatste beweging.”

G

Geluidsblok
Een geluidsblok laat een sprite als onderdeel van zijn programma een geluid afspelen.
Je voegt een geluidsblok toe na de blokken die je auto laten bewegen, zodat hij aan het einde toetert.
GO
GO is de knop waarmee een vloerrobot zijn ingevoerde programma uitvoert.
Je voert drie commando’s vooruit in en drukt dan op GO om de route te beginnen.

I

In kleine delen opbouwen
In kleine delen opbouwen betekent dat je een paar commando’s toevoegt en controleert voordat je er meer toevoegt.
Je zorgt dat de blokken die je auto laten bewegen werken voordat je een spraakblok aan het einde toevoegt.

K

Kijkrichting
De kijkrichting van een robot is de richting waarin zijn voorkant wijst en die zijn volgende beweging vooruit bepaalt.
Je noteert de kijkrichting van de robot na een draai voordat je de volgende beweging doorloopt.
Kwartslag
Een kwartslag laat de robot op hetzelfde vak naar links of rechts draaien, over een kwart van een hele draai.
Een robot die naar boven kijkt, maakt een kwartslag naar rechts en kijkt nu naar rechts.

L

Logisch redeneren
Logisch redeneren betekent dat je de betekenis van commando’s gebruikt om uit te zoeken wat er gebeurt en uit te leggen waarom.
Je legt uit dat twee bewegingen vooruit een doel bereiken dat twee vakken verder ligt.

O

Ontbrekend commando
Een ontbrekend commando is een nodige instructie die uit de code is weggelaten.
Door een ontbrekend commando vooruit stopt je robot te vroeg op een recht pad.
Opnieuw testen
Opnieuw testen betekent dat je het programma na een verandering nog eens uitvoert en het resultaat met het doel vergelijkt.
Je test opnieuw vanaf Start nadat je het getal in een bewegingsblok hebt veranderd.
Overbodig commando
Een overbodig commando is een onnodige instructie waardoor het programma verschilt van het plan.
Door een overbodig commando vooruit gaat je robot één vak voorbij het eindpunt.

P

Plan
Een plan laat zien welke stappen je wilt uitvoeren voordat je ze omzet in commando’s.
Je getekende plan laat zien waar de robot moet draaien op weg naar de vijver.
Programma
Een programma is een lijst met commando’s die een robot of computer volgt om een taak uit te voeren.
Je voert een programma in dat je robot naar een speelgoedhuis brengt.
Programmeerfout (bug)
Een programmeerfout is een fout in de code waardoor een programma niet doet wat je wilde.
Je robot mist de garage omdat een verkeerde draai een programmeerfout in zijn programma is.
Programmeren
Programmeren betekent dat je commando’s voor een robot of computer schrijft.
Je bent aan het programmeren als je blokken aan elkaar klikt om een sprite te laten springen.

R

Route
Een route is het pad dat een robot of sprite vanaf zijn start naar een doel volgt.
Je vergelijkt een route die eerst naar rechts gaat met een route die eerst vooruitgaat.

S

Sprite
Een sprite is een personage of voorwerp op een scherm dat een programma kan besturen.
Je selecteert de bootsprite voordat je die blokken geeft om over het water te bewegen.
Stap voor stap doorlopen
Een programma stap voor stap doorlopen betekent dat je de commando’s één voor één volgt en elke actie uitzoekt.
Je doorloopt een route met een pionnetje en draait het als je bij een draaicommando komt.
Stap voor stap uitvoeren
Code stap voor stap uitvoeren betekent dat je steeds één commando uitvoert en controleert wat er gebeurt.
Je voert de code stap voor stap uit met een ander en stopt bij de eerste verkeerde draai.
Startblok
Een startblok begint een verbonden programma wanneer de bijbehorende startactie gebeurt.
Je startblok “wanneer op de groene vlag wordt geklikt” wordt uitgevoerd als je op de vlag drukt.

T

Terugzetten naar de beginstand
Een sprite terugzetten naar de beginstand betekent dat je zijn plek of andere begineigenschappen terugzet vóór een nieuwe uitvoering.
Je zet de plek, grootte en zichtbaarheid van de sprite terug na een uitvoering die ze heeft veranderd.
Testen
Testen betekent dat je een programma uitvoert om te controleren of het doet wat je wilde.
Tijdens het testen controleer je waar de sprite stopt en luister je naar zijn geluid.

U

Uiterlijkblok
Een uiterlijkblok verandert hoe een sprite eruitziet of toont woorden in een tekstballon.
Je gebruikt een uiterlijkblok om je personage “Hallo!” te laten zeggen.

V

Verhaalplan
Een verhaalplan zet de acties van een sprite op volgorde, zoals de plaatjes in een strip.
Je verhaalplan laat een zwaai zien, een wandeling naar een tent en daarna een begroeting.
Verkeerd commando
Bij een programmeerfout met een verkeerd commando staat één instructie waar een andere instructie nodig is.
Een draai naar links stuurt je robot weg van een doel waarvoor een draai naar rechts nodig is.
Verkeerd getal
Bij een programmeerfout met een verkeerd getal staat in een blok een getal dat te groot of te klein is voor de taak.
Met “beweeg 6 naar links” gaat de sprite voorbij een doel vier vakken naar links, omdat het getal verkeerd is.
Verkeerde volgorde
Bij een programmeerfout met een verkeerde volgorde staan nodige commando’s op plekken die niet bij de geplande volgorde passen.
Je sprite praat voordat hij beweegt, maar in zijn verhaal moet het praten daarna komen.
Vloerrobot
Een vloerrobot is een kleine robot die commando’s volgt om over de vloer of een mat te bewegen.
Je vloerrobot voert de route uit nadat je op GO hebt gedrukt.
Volgorde
Een volgorde geeft aan welk commando van een programma eerst wordt gevolgd, welk daarna en zo verder.
Als je de volgorde verandert, praat je sprite voordat hij beweegt.
Voorspelling
Een voorspelling vertelt wat je denkt dat er gebeurt voordat je het programma uitvoert.
Je voorspelling zegt dat de robot naast de boom stopt en naar rechts kijkt.
Vooruit
Vooruit laat een vloerrobot één stap bewegen in de richting waarin zijn voorkant wijst.
Nadat de robot naar links is gedraaid, brengt vooruit hem naar die nieuwe kant.

W

Wachtblok
Een wachtblok onderbreekt de volgorde voordat het volgende commando wordt uitgevoerd.
Je zet een wachtblok tussen bewegingen om te zien waar je sprite de fout in gaat.
Wissen
Wissen verwijdert de opgeslagen commando’s op een robot die ze tussen uitvoeringen bewaart.
Je drukt op Wissen voordat je je nieuwe route naar de brug invoert.

Over deze les

Door StudeliFout melden

Maak je eigen Studiemateriaal

Maak van je aantekeningen, slides en documenten Leermodules, Oefenvragen, Flashcards en 6 andere tools.

Aan de slag