Hoofdstuk 7  ·  10% van het examen

Algoritmen

Stappenplannen, computationeel denken, flowcharts en Scratch

Denk even na …

Elke ochtend zet je een alarm, poets je je tanden en maak je je ontbijt klaar. Je volgt daarvoor altijd een vaste volgorde — eerst de tandenborstel nat maken, dan tandpasta erop, dan poetsen. Als je de stappen door elkaar doet, werkt het niet meer. Dat is precies wat een algoritme is: een stappenplan in een vaste volgorde.

Computers zijn erg goed in het uitvoeren van algoritmen. Snel, precies en zonder fouten — maar alleen als het algoritme goed is ontworpen. Een computerspel, een navigatie-app, een sorteerprogramma: ze werken allemaal op basis van algoritmen die iemand heeft bedacht en uitgeschreven.

Leren denken als een computer — stap voor stap, logisch en gestructureerd — is een vaardigheid die je overal kunt gebruiken.

1

Wat is een algoritme?

Definitie Algoritme

Een algoritme is een stappenplan met instructies in een vaste volgorde om tot het einddoel of de oplossing van een probleem te komen.

Algoritmen komen overal voor, niet alleen in computers. Ze kunnen digitaal zijn (gebruikt door een computer) of niet-digitaal (uitgevoerd door een mens).

Voorbeelden van algoritmen

Niet-digitale algoritmen

  • Het recept om een cake te bakken: de stappen moeten in de juiste volgorde worden uitgevoerd
  • Het stappenplan om getallen te sorteren van klein naar groot
  • De instructies om een rechthoek te tekenen

Digitale algoritmen

  • Het coderen van een computerspel: de computer volgt instructies bij elke actie van de speler
  • Een zoekalgoritme dat de snelste route berekent in een GPS-app
  • Een sorteeralgoritme dat een lijst namen alfabetisch ordent

Een algoritme wordt gebruikt om eenvoudige of complexe problemen op te lossen door het uitschrijven van een stappenplan. Zelf een algoritme kunnen ontwerpen is relevant voor heel veel beroepen en situaties.

💡 Denkvraag

Welk algoritme gebruik jij elke dag zonder het te beseffen? Denk aan dingen zoals brood smeren, een wiskundevraagstuk oplossen, of je schooltas inpakken. Schrijf het stappenplan op en vergelijk met een klasgenoot.

2

Computationeel denken

💡
Definitie Computationeel denken

Computationeel denken is een probleemoplossende aanpak waarbij je problemen analyseert en oplost op een manier die ook door een computer kan worden uitgevoerd. Het steunt op vier principes.

De 4 principes

Principe 1 — Abstractie Irrelevante details weglaten om zo vlotter het probleem op te lossen. Je focust op wat belangrijk is en laat de rest weg.

Voorbeeld: een kaart van een stad — huisnummers zijn weggelaten, alleen straatnamen en routes blijven zichtbaar. Zo zie je sneller hoe je van A naar B geraakt.
Principe 2 — Decompositie Een probleem opsplitsen in kleinere, goed gekozen deelproblemen en elk deel afzonderlijk aanpakken. Grote problemen zijn makkelijker op te lossen als je ze opdeelt.

Voorbeeld: een website bouwen → opsplitsen in: navigatie bouwen / inhoud schrijven / stijl opmaken. Elk deel kun je apart aanpakken.
Principe 3 — Patroonherkenning Het achterhalen van een gelijkenis tussen verschillende problemen om een oplossing te vereenvoudigen. Als je een gelijkaardig probleem al eens hebt opgelost, kun je die oplossing hergebruiken.

Voorbeeld: als je weet hoe je een cirkel tekent, kun je ook een spiraal programmeren — dezelfde basisbeweging, maar met een kleine aanpassing.
Principe 4 — Algoritme Het systematisch omschrijven van een reeks stappen om een probleem op te lossen. Dit is het eindresultaat van de drie andere principes: je hebt het probleem geanalyseerd, opgesplitst en gelijkenissen gezien — nu schrijf je de oplossing stap voor stap uit.

Overzicht van de 4 principes

Principe Beschrijving Voorbeeld
Abstractie Irrelevante details weglaten Kaart met alleen hoofdwegen en straatnamen
Decompositie Probleem opsplitsen in deelproblemen Website bouwen in afzonderlijke deelstappen
Patroonherkenning Gelijkenissen vinden tussen problemen Sorting-algoritme hergebruiken voor verschillende lijsten
Algoritme Stapsgewijze oplossing uitschrijven Stappenplan om een getal te controleren op deelbaarheid
💡 Denkvraag

Kies een activiteit die je goed kent, zoals een sportregel of een kookrecept. Welk principe van computationeel denken zou je toepassen om die activiteit makkelijker te maken? Leg uit waarom.

3

Een algoritme ontwerpen

Het ontwerpen van een algoritme doe je stap voor stap. Hieronder volg je het voorbeeld: “Ik wil weten of een getal een priemgetal is.”

1

Probleemstelling formuleren

Wat is precies het probleem? Wat moet het algoritme doen?
Voorbeeld: “Ik wil weten of een getal een priemgetal is.”

2

Analyseer het probleem (IPO-model)

Het IPO-model beschrijft wat het algoritme nodig heeft en wat het oplevert:
Input: wat gaat er in? → het getal dat gecontroleerd moet worden
Process: hoe wordt het verwerkt? → deel door alle getallen van 2 tot getal−1
Output: wat komt er uit? → ja (priemgetal) of neen (geen priemgetal)

3

Deelproblemen opstellen

Splits het probleem op indien nodig (decompositie):
• Deelprobleem 1: hoe controleer je of een getal deelbaar is door een ander getal?
• Deelprobleem 2: hoe loop je door alle getallen van 2 tot n−1?

4

Oplossing uitwerken (flowchart/stappenplan)

Zet het algoritme om in een gestructureerde, leesbare vorm — een flowchart of een genummerd stappenplan. Elk stap moet duidelijk en ondubbelzinnig zijn.

5

Testen en debuggen

Test het algoritme met voorbeelden. Zoek en herstel fouten. Dit proces heet debuggen.
Voorbeeld: test met getal 7 (priemgetal) en met getal 8 (geen priemgetal). Geeft het algoritme de juiste uitvoer?

Begrip — Debuggen Debuggen is het opsporen en oplossen van een fout in een algoritme of computerprogramma. De naam komt van het Engels: “bug” betekent letterlijk insect, maar in de informatica staat het voor een fout in een programma. Fouten kunnen logische fouten zijn (het algoritme doet iets verkeerd) of schrijffouten in de code.
Begrip — IPO-model Het IPO-model staat voor Input – Process – Output. Het beschrijft elk probleem als een transformatie: je geeft iets in (input), er wordt iets mee gedaan (process), en er komt een resultaat uit (output). Het is een handige manier om een probleem te analyseren vóór je begint te programmeren.
💡 Denkvraag

Analyseer het volgende probleem via het IPO-model: “Een wekker die afgaat als de ingestelde tijd bereikt is.” Wat is de input? Wat is het process? Wat is de output?

4

De flowchart (stroomdiagram)

Definitie Flowchart

Een flowchart is een visuele voorstelling van een algoritme. Elke stap wordt weergegeven door een symbool met een vaste betekenis. Pijlen verbinden de symbolen en geven de volgorde aan.

Symbolen van de flowchart

Ovaal / afgeronde rechthoek

Start of Stop van het algoritme. Elke flowchart begint en eindigt met een ovaal.

Rechthoek

Een actie of instructie uitvoeren. Bijv.: “tel x op bij y”, “sla de waarde op”.

Ruit / diamant

Een beslissing of conditie. Bijv.: “Is x > 5?” Heeft altijd een JA- en een NEEN-uitgang.

Parallelogram

Invoer of uitvoer. Bijv.: “Lees getal in” (invoer) of “Druk resultaat af” (uitvoer).

Pijl

Verbindt de stappen en geeft de volgorde (richting) aan van het algoritme.

Voorbeeld-flowchart: even of oneven?

Hieronder zie je een tekstuele beschrijving van de flowchart om te controleren of een getal even of oneven is:

Flowchart: is een getal even of oneven?

  1. [OVAAL] Start
  2. [PARALLELOGRAM] Invoer: lees het getal in → sla op als n
  3. [RUIT] Beslissing: Is n deelbaar door 2? (n mod 2 = 0?)
    JA → ga naar stap 4
    NEEN → ga naar stap 5
  4. [PARALLELOGRAM] Uitvoer: druk af “Het getal is even” → ga naar stap 6
  5. [PARALLELOGRAM] Uitvoer: druk af “Het getal is oneven” → ga naar stap 6
  6. [OVAAL] Stop
Onthoud

Elke flowchart heeft precies één beginpunt (Start) en minstens één eindpunt (Stop). Pijlen gaan altijd van boven naar beneden of van links naar rechts, tenzij je een lus (herhaling) tekent. Een ruit heeft altijd twee uitgangen: JA en NEEN.

5

Scratch

🛠
Definitie Scratch

Scratch is een visuele programmeertaal waarmee je algoritmen kunt programmeren door gekleurde codeblokjes samen te klikken. Ontwikkeld door MIT, gratis beschikbaar op scratch.mit.edu.

Hoe werkt Scratch?

Niet-digitale vs. digitale algoritmen

Type Beschrijving Voorbeeld
Niet-digitaal algoritme Wordt uitgevoerd door een mens, op papier of in het hoofd. Geen computer nodig. Stappenplan voor het smeren van een boterham met choco: brood pakken → mes pakken → choco opscheppen → smeren → klaar
Digitaal algoritme Wordt uitgevoerd door een computer of elektronisch apparaat. Geschreven in een programmeertaal. Programmeren van een flikkerend lampje in Scratch: herhaal voor altijd → zet kleur op rood → wacht 1 seconde → zet kleur op blauw → wacht 1 seconde
💡 Denkvraag

Je wil in Scratch een personage laten rondlopen in een vierkant. Schrijf eerst het algoritme als niet-digitaal stappenplan (bijv. “zet 100 stappen, draai 90 graden, …”) en vertaal het daarna naar een Scratch-lus. Hoeveel stappen heeft je algoritme?

Een algoritme is als een recept: als je de ingrediënten en de stappen kent, kun je het resultaat altijd opnieuw maken — voor mensen én voor machines.

Techniek  ·  Eerste Graad A-stroom

Oefeningen

Oefening 1

Niet-digitaal algoritme schrijven

Schrijf een niet-digitaal algoritme (stappenplan) voor: het zetten van een kop thee. Gebruik minstens 8 stappen. Schrijf elke stap als een duidelijke instructie in de gebiedende wijs (bijv. “Vul de waterkoker met water”).

Tip: denk aan de volgorde. Wat moet er zeker eerder gebeuren dan iets anders? Wat mag je niet vergeten?

Oefening 2

De 4 principes van computationeel denken

Leg de 4 principes van computationeel denken uit met een eigen voorbeeld voor elk principe. Kies voorbeelden uit je dagelijks leven (school, sport, hobby, …) die niet in dit hoofdstuk voorkomen.

  1. Abstractie — eigen voorbeeld + uitleg
  2. Decompositie — eigen voorbeeld + uitleg
  3. Patroonherkenning — eigen voorbeeld + uitleg
  4. Algoritme — eigen voorbeeld + uitleg

Oefening 3

Flowchart: temperatuuralarm

Teken of beschrijf de flowchart voor het volgende probleem: een temperatuurmeter die een alarm afgeeft als de temperatuur boven 30°C komt.

  1. Wat is de input? Wat is de output? (IPO-model)
  2. Schrijf of teken de flowchart met de juiste symbolen: ovaal (start/stop), parallelogram (invoer/uitvoer), ruit (beslissing), rechthoek (actie).
  3. Welk symbool gebruik je voor de beslissing “Is de temperatuur > 30?”

Tip: vergeet de JA- en NEEN-takken niet bij de beslissing.

Oefening 4

Debuggen — fouten opsporen

Een algoritme bevat een fout: bij het sorteren van getallen worden twee getallen niet omgewisseld op het juiste moment, waardoor de lijst niet correct gesorteerd is.

  1. Hoe noem je het proces van fouten opsporen in een algoritme? Wat is de juiste term?
  2. Beschrijf in twee zinnen hoe je zo’n fout zou aanpakken.
  3. Geef een voorbeeld van een test die je zou uitvoeren om te controleren of het sorteeralgoritme nu wel correct werkt.

Oefening 5

IPO-model: getallen sorteren

Analyseer het probleem “willekeurige getallen sorteren van klein naar groot” via het IPO-model.

  1. Input: wat gaat er in het algoritme?
  2. Process: wat doet het algoritme stap voor stap? Beschrijf het in je eigen woorden.
  3. Output: wat komt er uit het algoritme?
  4. Welk principe van computationeel denken gebruik je als je dit sorteermethode ook wil toepassen op een lijst namen? Leg uit.

Tip voor deelvraag 2: denk aan hoe je zelf een rij getallen zou sorteren. Vergelijk je het eerste met het tweede? Wissel je om?

Samenvatting