Algoritmiek

Zijn computers eigenlijk wel altijd zo snel?

Voor wie

De module is met name geschikt voor leerlingen uit de 5e of 6e klas vwo. Havo-leerlingen uit de 5e klas die hier uitdaging in zien, kunnen er ook mee uit de voeten.

Beschikbaarheid

Conceptversie vanaf juli 2020

Met deze module ga je dieper in op algoritmen. Je leert meer algoritmen kennen en vooral leer je hoe je kunt bepalen hoe snel die algoritmen zijn, of beter gezegd, de efficiëntie van algoritmen. Computers kunnen snel rekenen, maar bij grote hoeveelheden data kan het toch weer heel lang duren. En dat is erg belangrijk voor allerlei toepassingen, in het ontwikkelen van medicijnen tot routenavigatie. Je wilt ten slotte niet minuten lang moeten wachten voordat de kortste weg naar de universiteit op je scherm verschijnt.

Ook logica komt aan bod, waarmee je beter kunt beredeneren of een algoritme eigenlijk wel correct is.

Afbeelding uit het lesmateriaal over efficiëntie van twee zoek-algoritmes
Afbeelding uit het lesmateriaal over efficiëntie van twee zoek-algoritmes

Activiteiten

Dit zijn de belangrijkste activiteiten binnen de module.

  • Je kunt het materiaal redelijk zelfstandig doorlopen, het wordt stap voor stap uitgelegd en je kunt gelijk je eigen antwoorden controleren.
  • In het eerste deel leer je hoe je de efficiëntie van een algoritme kunt meten. Je doet dit aan de hand van voorbeelden en kleine programmaatjes.
  • Vervolgens leer je hoe je de efficiëntie kunt beredeneren op basis van het algoritme. Op die manier kun je de looptijd van algoritmes met elkaar vergelijken.
  • In het deel over correctheid en logica ga je oefenen met het redeneren over allerlei logische uitspraken.
  • Als je wilt, kun je ook één of meerdere algoritmes programmeren.
  • Voor de eindopdracht ga je zelf een algoritme uitpluizen en proberen zo efficiënt mogelijk te maken.

Hieronder zie je ter illustratie een opgave uit het lesmateriaal.

Voor de docent

Opbouw

De module bestaat uit de volgende onderdelen:

  1. Algoritmen en kwaliteit
  2. Looptijden meten en beredeneren
  3. Paden en afstanden
  4. Benaderingen
  5. Correctheid en logica
  6. Eindopdracht

Docenten worden aangemoedigd unplugged activiteiten te gebruiken en begrippen toe te lichten en te introduceren.

Vereiste hard- en software

Voor de programmeeropdrachten is een programmeeromgeving nodig, dat kan bijvoorbeeld in een online editor zoals Repl.it. De voorbeelden zijn uitgewerkt in Python.

Voorkennis

De leerlingen zijn in staat algoritmes te lezen en op stellen met bijvoorbeeld een stroomdiagram. De leerlingen hebben een basis programmeren (zie domein D uit het kernprogramma). De voorbeelden in de module zijn in Python uitgewerkt, dus dat heeft de voorkeur.

Belangrijkste begrippen

De belangrijkste begrippen bij deze module zijn algoritme, efficiëntie (complexiteit), looptijd, mate van groei, orde, grote O notatie, zoeken, sorteren, kortste pad, kortste ronde, logica, proposities, waarheidstabellen, connectieven (en/of/niet), (wederzijdse) implicatie.

Keuze en verdieping

Voor de leerlingen die meer uitdaging aan kunnen staan er enkele programmeeropdrachten beschreven en uitgewerkt in Python.

Wijze van beoordelen

Er wordt een voorbeeldtoets meegeleverd met het materiaal. Ook de eindopdracht, waarbij leerlingen zelf een algoritme uitpluizen en proberen zo efficiënt mogelijk te maken, kan worden beoordeeld.

Omvang

De module is ongeveer 40 SLU.

Docentenhandleiding

De docentenhandleiding is te vinden via het i&i forum: https://forum.ieni.org/t/domein-g-algoritmiek-docentenhandleiding/895