Een probleem uit getallenleer

Een natuurlijk getal bestaat uit 9 verschillende cijfers 1 tot en met 9. Schrijft men het opnieuw met telkens de eerste k cijfers, dan is het getal een veelvoud van k. Om welk getal gaat het?

 

  • Het getal gevormd door de eerste 2 cijfers is dus deelbaar door 2, gevormd door de eerste 3 cijfers door 3,…Het getal zelf is dus deelbaar door 9.
  • Dat laatste is altijd voldaan omdat de som der cijfers gelijk is aan 45 en dat is deelbaar door 9. Bijgevolg is het getal zelf ook deelbaar door 9. 
  • We moeten dus enkel controleren voor de eerste 2 tot de eerste 8 cijfers.
  • Het volgende programma in Python geeft de oplossing:

Python: de zeef van Eratosthenes

De zeef van Eratosthenes  (Bibliothecaris van de bibliotheek van Alexandrië rond 240 v.C.) is een algoritme om priemgetallen te bepalen kleiner dan een gegeven getal n:

  • Maak een geordende lijst van alle getallen van 2 tot n.
  • Neem het kleinste getal in deze lijst en schrap alle veelvouden van dit getal ( het getal zelf niet!).
  • Neem het volgende getal in de lijst en doe hiervoor hetzelfde.

Een programma in Python geeft bijvoorbeeld alle priemgetallen kleiner dan 50

:

Uitleg: 

  • Neem een lijst van lengte n en zet op elke plaats de boolse waarde True.
  • Begin met p=2 en zet alle veelvouden van 2 in de lijst op False. Begin met het eerste veelvoud van 2 na 2 zelf: dat is 2*2.
  • Neem dan p=3 en zet alle veelvouden van 3 op False, beginnend met 3*3 
    (want alle vroegere veelvouden zijn sowieso al op False gezet.
  • Doe zo verder zolang p*p kleiner is dan de gegeven waarde n.

Computationeel denken

Computationeel denken is een denkmethode waarbij je alles wat je doet, omschrijft in kleine deelstappen zodat je een opdeling krijgt van de op te lossen ‘probleempjes’. Het is een individueel proces. Elke leerling werkt vanuit andere deelvragen. Hoe jonger je leerlingen zijn, hoe meer gelijklopend die deelvragen of stappen zullen zijn.

Er zijn met computationeel denken altijd meerdere mogelijke  werkwijzen. De oplossing binnen wiskunde zal hetzelfde zijn voor de hele klas, maar elke leerling kan een eigen strategie kiezen of bedenken om tot die oplossing te geraken. Vanaf dat een kind praat, stelt het zelf alles in vraag “Waarom?”. Hoe jonger het kind, hoe kleiner we de deelstappen maken.”

Eerst wordt er een overzicht gegeven van het eindproduct ‘het grote probleem’ om vervolgens stap voor stap het probleem op te lossen. Er wordt stap voor stap, blok per blok gebouwd om tot het geheel te komen. Eigenlijk is dat computationeel denken. Oudere leerlingen zijn zelf in staat om te beslissen welke vragen ze zichzelf moeten stellen om tot het eindproduct te komen.


Wiskunde is het meest logische vak om computationeel denken aan te leren. Als heuristiek wordt een probleem opgelost door het stellen van deelvragen, denk aan het algoritme: gegeven, gevraagd, oplossing. Probleemoplossend denken is eigenlijk hetzelfde basisprincipe als computationeel denken. Het inzichtelijk leren of het leren door zichzelf vragen te stellen, stelt de leerling in staat inzicht te krijgen in het grote geheel. 

De Amerikaanse onderzoekster Jeannette Wing introduceerde in 2006 het begrip computationeel denken als volgt:

“Computational thinking is reformulating a seemingly difficult problem into one we know how to solve, perhaps by reduction, embedding, transformation or simulation.”

Computationeel denken is daarom, volgens haar,  een basisvaardigheid, die iedereen zou moeten beheersen, naast lezen, rekenen en schrijven.