Programmeren en computationeel denken
Je laat zien dat je een probleem kunt opdelen, in stappen beschrijven en omzetten in werkende code, en dat je fouten systematisch opspoort.
Computationeel denken
- Vier kernvaardigheden: decompositie (opdelen in deelproblemen), patroonherkenning, abstractie (weglaten wat niet nodig is) en het algoritme (een ondubbelzinnige, eindige stappenreeks).
- Schrijf een algoritme eerst als pseudocode of stroomdiagram; dan wordt de code daarna kort en controleerbaar.
Bouwstenen
- Variabele met datatype (integer, float, string, boolean) en toekenning; input en output.
- Sequentie, selectie (if/elif/else) en iteratie: for bij een bekend aantal herhalingen, while zolang een conditie waar is.
- Een functie is een herbruikbaar blok met parameters en eventueel een return-waarde; in een lijst begint de index bij 0.
Uitgewerkt voorbeeld
Gemiddelde van een lijst cijfers:
cijfers = [4, 7, 9]
som = 0
for c in cijfers:
som = som + c
if len(cijfers) > 0:
gemiddelde = som / len(cijfers)
Redenering: som begint op 0, anders telt een oude waarde mee; de loop telt elk cijfer op; delen door len() mag alleen als de lijst niet leeg is, anders deel je door nul. Bij [4, 7, 9] is som 20 en het gemiddelde 6,67.
Debuggen
- Lees de foutmelding van boven naar beneden, print tussenliggende waarden, test randgevallen (0, leeg, negatief) en loop de code met de hand door.
Valkuilen
- = (toekennen) verwarren met == (vergelijken).
- Off-by-one: < gebruiken waar <= nodig is.
- Vergeten een teller of som te initialiseren.
- Een while-conditie die nooit onwaar wordt en dus een oneindige loop geeft.