Interactie in the spotlight (4): Datastructuren

Gepost door Wouter van den Brink op 22 januari 2024

In de methode kom je op een groeiend aantal plekken interactieve elementen tegen. Dit zijn stukjes in de methode waar leerlingen zelf spelenderwijs aan de slag kunnen om meer te leren over een onderwerp. Er zijn allerlei toepassingen mogelijk:

Interactieve elementen herken je aan het icoontje in de rechterkantlijn:

In deze serie artikelen nemen we een aantal van de interactieve elementen onder de loep: waar vind je ze terug? Hoe werken ze? En wat hebben jij en je leerlingen eraan?

 

In deze vierde en laatste editie bekijken we de interactieve elementen uit subdomein B2. In dit subdomein staan datastructuren centraal. Datastructuren helpen je bij het gestructureerd opslaan van data in een computerprogramma. Naarmate je programma groeit in functionaliteit en complexiteit, zal het steeds meer data moeten opvragen, verwerken en opslaan. Door goed na te denken over de vertaalslag tussen data en informatie voorkom je een grote spaghetti van ongeorganiseerde gegevens en houd je je programma toekomstbestendig.

In de zomer van 2022 hebben we dit subdomein grondig onder de schop genomen. We hebben er toen voor gekozen om met het subdomein verder de diepte gaan in de abstracte kant van datastructuren. Je hebt er geen enkele programmeerervaring voor nodig. Kennis over de architectuur van een computer is wel handig — die vind je terug in onderdeel E1.

Een groot nadeel van zulke abstracte onderwerpen is natuurlijk dat het soms moeilijk kan zijn om voor je te zien hoe concepten en processen er 'uit zien'; hoe ze werken. Interactieve elementen bieden hierin een uitkomst. Leerlingen kunnen live aan de slag met een datastructuur: waarden in het geheugen veranderen, en direct zien wat er gebeurt met de inhoud van een datastructuur. Of waarden toevoegen aan en verwijderen uit een binary search tree en zien hoe de boom van vorm verandert.

Highscore-array in een game

Het eerste voorbeeld van zo'n interactief element dat we graag laten zien vind je terug in paragraaf 2.2. In deze paragraaf wordt het concept van arrays uitgelegd: verzamelingen van meerdere waarden van hetzelfde type, zoals getallen. In de paragraaf gebruiken we als voorbeeld een game. Om hier de high scores in bij te houden, kun je gebruikmaken van een array. Je houdt dan een lijst bij van de hoogste scores:

Om de high scores te laten zien, ga je door de array heen en geef je ze onder elkaar weer. Je moet dan wel goed weten waar je begint en eindigt met 'door de array heen gaan'! Wij mensen kunnen namelijk wel zien dat er vijf waarden in deze lijst staan, maar voor een computer is dat niet zo. Dan staan er allerlei andere gegevens voor en na de array opgeslagen:

Dit alles komt samen in het volgende interactieve element:

 

Pas de waarden in de tabel aan om de high scores te veranderen!

Hint: de high scores worden pas zichtbaar als je levens op zijn...

Kommagetallen

In hoofdstuk 1 bespreken we de eenvoudigste datastructuren: booleans en integers. Het is de eerste stap in het begrijpen van de noodzaak en toepassing van een vertaalslag tussen waarden in het geheugen en de interpretatie ervan door de programmeur. Zo heeft een computer zelf geen idee wat true en false precies zijn. Daarom spreken we met z'n allen af dat bijvoorbeeld een 0 false betekent, en ieder ander getal true betekent. Deze formaliteit moesten we overigens niet alleen voor computers verzinnen; rond 1850 hadden wiskundigen er ook al mee te maken!

Voor de experts hebben we een extra verdiepingsparagraaf opgenomen, die verder ingaat op kommagetallen. Ook daarvoor moeten we namelijk afspraken maken. Een computer kan onmogelijk kommagetallen opslaan in het geheugen, dus moeten we verzinnen hoe een arbitrair kommagetal kan worden opgeslagen als één of meer gehele getallen. Daar zijn verschillende manieren voor. De bekendste is misschien wel IEEE 754, die door allerlei programmeertalen en architecturen wordt ingezet.

In de verdiepingsparagraaf behandelen we een vereenvoudigde subset van IEEE 754, die een kommagetal opslaat met drie gehele getallen: de sign, het getal, en de factor. Dat werkt als volgt:

Een kommagetal dat is opgeslagen met dit systeem schrijf je op door de sign, het getal en de factor na elkaar te zetten tussen haakjes:

Hieronder kun je (negatieve) kommagetallen invoeren op twee manieren. Je kunt het getal invoeren zoals we het op papier schrijven, maar ook met drie gehele getallen, op de manier die je in deze paragraaf hebt geleerd. Door één veld te wijzigen, zal de rest automatisch worden bijgewerkt.

=
(
,
,
)

 

In de opgaven moeten leerlingen proberen om -0.374 en 0 op te schrijven in dit systeem. Daar kan het interactieve element helaas niet bij helpen!

 

Deze en meer interactieve elementen zijn standaard beschikbaar voor alle gebruikers van Fundament. Heb je vragen over de methode, of ben je geïnteresseerd in een proeflicentie? Neem dan contact op met onze adviseurs via [email protected]. Heb je zelf ideeën voor interactieve elementen in onze methode? Dan horen we dat ook graag!

 

-- Share It --