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.

 

 

 

Een getal raden

Schrijf in Python een programma dat zelf een getal kiest tussen 1 en 100. Jij moet raden welk getal het is. de computer geeft enkel aan of je lager of hoger moet gokken.

Een paar opmerkingen:

  • input geeft steeds een string-variabele. Vandaar de toevoeging int om hiervan een geheel getal te maken.
  • randint(1,101) geeft een geheel getal tussen 1 en 100. Lett op je moet dus 1 getal hoger geven: 101
  • != betekent is niet gelijk aan bij een test.

Een mogelijke output :

Delen in Python

Een deling in Python:

  • In de verzameling der reeële getallen in [1]
  • In de verzameling van de gehele getallen in [2], kan je quotiënt en rest bepalen bij deling van a door b
    Een mooie toepassing is van een reeks getallen nakijken of ze even zijn of niet. Even getallen geven rest 0 bij deling door 2:

 

 

 

Een opgave over absolute waarden

Schrijf een Python programma dat de absolute waarde van een getal uit een gegeven lijst afdrukt als het getal kleiner is dan -5 of groter dan 2. Zoniet wordt er gewoon afgedrukt dat het getal niet werd uitgevoerd.

Spoiler

 

 

  • We gaan met een for lus alle getallen uit de gegeven lijst controleren.
  • Als het voldoet aan de voorwaarde <-5 of >2 dab drukken we de absolute waarde af ( Abs(x)).
  • Zoniet geven we de andere boodschap.

 

merk op dat er 3 manieren gegeven zijn om tekst in te voegen. De eerste via een commentaar lijn ( #…). En dan 2 mogelijkheden met een print bevel.

 

Python probleem 3

Bepaal de grootste priemfactor van 600851475143.

Antwoord

 

 

  • We gaan een functie definiëren die de grootste priemfactor berekent van een willekeurig getal n. We importeren math om te werken met een vierkantswortel.
  • We gaan eerst kijken of n een macht van 2 is. We delen alle factoren 2 weg. Ofwel komen we 1 uit en dan is de hoogste priemfactor 2, ofwel komen we een getal uit groter dan 2. 
  • In de volgende lus herhalen we deze procedure voor alle getallen groter dan 3, met stapjes van 2 ( want de factoren 2 zijn al weg), tot aan wortel(n).
  • Nu is het enkel nog kwestie van afdrukken.