abonneren
article

Code met een luchtje eraan: Onderzoek toont aan hoe belangrijk het is om netjes te programmeren

In januari 2016 onderzochten Felienne Hermans en Efthimia Aivaloglou van de vakgroep software engineering van de TU Delft of en hoe rommelige code de programmeervaardigheid van kinderen op de proef stelt. Hun conclusie is overduidelijk: Je maakt het kinderen moeilijker als je ze slechte code voorschotelt. Leraren die programmeren met hun leerlingen, kunnen hier maar beter rekening mee houden.

“Het lijkt een open deur, dat onderzoek van ons”, geeft Felienne Hermans toe. “Het klinkt zo logisch, dat kinderen moeite zouden kunnen hebben met rommelige code, maar tot nu toe heeft niemand de moeite genomen om uit te zoeken hoe dat precies werkt. Wij vonden dat belangrijk om goed te onderzoeken, zeker omdat er nu zoveel belangstelling is voor programmeren op school. We hoopten op aanknopingspunten over hoe programmeeronderwijs beter gegeven zou kunnen worden.”

Code smells

“Veel programma’s die online te vinden zijn en gebruikt worden voor de lol of als leermateriaal, zijn wat slordig gecodeerd. Er zitten geen echte fouten of bugs in, maar wel wat wij ‘code smells’ noemen – daar is geen Nederlandse term voor. Code smells zijn stukjes programma die niet zo handig in elkaar zitten. Je kunt ze vergelijken met een boek zonder hoofdstukindeling, met alle tekst achter elkaar door. Al is de inhoud prima, het is niet lezersvriendelijk en lastiger te begrijpen”, legt Felienne Hermans uit. “Computers lopen niet vast op code smells, mensen vaak wel. Onder volwassenen is er al heel wat onderzoek naar gedaan, onder andere door mij en mijn collega’s van de TU Delft. Voor professionele programmeurs blijken code smells het onderhouden van programma’s lastig te maken. Het effect op kinderen was nog niet onderzocht.”

Het onderzoek

“We kozen voor de programmeertaal Scratch, omdat die populair is onder kinderen. Bovendien heeft Scratch een uitwisselingsplatform (scratch.mit.edu) waar programma’s en spellen van anderen gemakkelijk aangepast (geremixt) kunnen worden. Daar wordt op grote schaal gebruik van gemaakt; aanwezige code smells zouden dat remixen kunnen bemoeilijken.

We deden onderzoek onder 61 brugklassers. Eerst gaven we alle leerlingen een uur Scratch-les. Daarna kreeg iedereen een spelprogrammaatje voorgeschoteld, met opdrachten om uit te leggen hoe het spel werkt en om er wat in aan te passen.”

Er waren drie verschillende onderzoeksgroepen:

  1. Een groep kreeg nette code.
  2. Een andere groep kreeg een programma met verdubbelingen erin (bijvoorbeeld op meerdere plekken een instructie over wat er moet gebeuren als een bepaald aantal punten wordt gehaald).
  3. De derde groep kreeg een grote kluit code met een ingewikkelde als..., dan…, anders…-constructie.

Resultaat

Wat bleek: De leerlingen met de nette, schone code waren niet sneller, maar maakten wel veel minder fouten dan de rest. Gemiddeld haalden ze 3 punten meer (van de maximaal 13).

Bij het uitleggen hoe het programma werkte, was de groep met de lange kluit code flink in het nadeel. Bij het aanpassen van het programma (‘Het spel stopt nu als je 5 punten hebt, kun je de code zo aanpassen dat je tot 10 punten doorgaat?’) had de groep met de verdubbelingen het moeilijker.

test           
Schone code                                      Lange kluit code

Betekenis voor het onderwijs

Felienne Hermans: “Uit ons onderzoek blijkt overduidelijk dat kinderen meer moeite hebben met het begrijpen en aanpassen van code met code smells. We hebben dan ook de volgende tips voor leraren:

  1. Gebruik voorbeeldprogramma’s met schone, nette code zonder code smells.
  2. Bij de opdracht: ‘Zoek een programma dat je leuk lijkt en ga dat remixen’, heb je geen controle over de kwaliteit van de gekozen programma’s. Geef leerlingen liever een lijstje met schone programma’s om uit te kiezen.
  3. Opruimen (refactoring) van zelf geschreven code is een belangrijke vaardigheid om leerlingen bij te brengen: ‘Eerst maak je een werkend spel en dan ga je kijken of je het nog kunt opruimen, corrigeren en verbeteren; tot het zo makkelijk mogelijk in elkaar zit. Pas dan deel je je programma met anderen’.
  4. Vergelijk het maar met het redigeren van een geschreven tekst: Zelfs als de spelling correct is, kan de leesbaarheid soms nog verbeterd worden door het opdelen in paragrafen bijvoorbeeld.”

Ook meedoen?

Dit onderzoek was een eerste stap. Felienne Hermans en haar collega’s van de TU Delft willen graag vervolgonderzoek doen. Leraren van groep 6-7-8 of klas 1-2 kunnen zich aanmelden om mee te doen met dit vervolgonderzoek. De klas krijgt een gratis Scratch-les en wat puzzels (vergelijkbaar, maar anders dan in dit eerste onderzoek). De leraar hoeft niets voor te bereiden en mag zelf ook aan de slag.

Op www.felienne.com/onderzoek-naar-scratch staat een link naar het wetenschappelijke onderzoekspaper en aanmeldinformatie voor geïnteresseerde leraren.

blog comments powered by Disqus