Inleiding programmeren: Wat is algoritmisch denken?

Hoe worden app’s en andere programma’s geschreven? Hoe begin je hier aan? In dit hoofdstuk leer je wat een algoritme is en hoe het je kan helpen om een programma te schrijven of the programmeren.

In dit hoofdstuk leer je:

  • Het begrip algoritme.
  • Het verschil tussen een algoritme en een programma
  • De verschillende stappen in het oplossen van een probleem


Oefeningen   Presentatie

Een algoritme

Elke dag zijn er meerdere situaties waarbij we een probleem moeten oplossen. In de meeste gevallen is dit een klein probleem waar we niet over moeten nadenken of een probleem waarvoor we de oplossing reeds weten. Bijvoorbeeld:

  • Wat is de kortste weg naar school?
  • Hoe stuur ik een bericht met mijn gsm?

Wanneer we een nieuw of groter probleem tegenkomen, overlopen we verschillende denkpistes om tot een gewenst resultaat te komen. De weg om van een probleemstelling tot een oplossing te komen, noemen we een algoritme. Een algoritme is een reeks instructies die vanuit een gegeven begintoestand naar een beoogd doel leiden.

Voorbeelden

  • In een doos Lego zitten er heel wat losse stukjes. Het probleem is heel eenvoudig: “Hoe maken we met deze losse stukken dezelfde constructie als het voorbeeld op de doos?”. Hiervoor gebruiken we de handleiding, een reeks van instructies die ons naar het gewenste resultaat begeleidt.
  • Wanneer je een nieuwe smartphone aankoopt, heb je steeds een handleiding (al dan niet op internet) om je te helpen probleemsituaties om te zetten in oplossingen, bv.:
    • Hoe wis je alle berichten?
    • Hoe bewaar ik een contactpersoon?
  • Wanneer je zelf iets wil koken, kan je best gebruik maken van een recept. Hierin wordt immers stap voor stap uitgelegd hoe je van je beginsituatie tot een lekker gerecht komt.

Algoritme vs. programma

Elk computerprogramma is eigenlijk één groot algoritme, maar dan omgezet in een programmeertaal. Vermits het algoritme van een programma meestal te ingewikkeld is voor de programmeur om zomaar te programmeren, deelt hij het algoritme op in kleinere deelalgoritmen. Al deze verschillende deelalgoritmen worden vervolgens geprogrammeerd in een programmeertaal en samengevoegd tot één programma.

Enkele voorbeelden van programmeertalen zijn:

  • Javascript
  • Java
  • PHP

Stappen naar succes

Wanneer we een programma willen schrijven, dien je eerst een voorbereiding te maken. We willen namelijk niet in het wilde weg beginnen programmeren. De verschillende stappen die we nodig hebben om tot een algoritme en vervolgens het programma te komen zijn als volgt:

  • Probleemstelling: Wat is het probleem? Wat willen we als resultaat?
  • Probleemanalyse:
    • Welke gegevens worden er ingevoerd door de gebruiker (wat is de input)? (bv. een geboortedatum, de straal van een cirkel, …)
    • Welke verwerking moet er gebeuren (proces)? (bv. Wat is de formule om de oppervlakte van een cirkel te berekenen?)
    • Wat moet er uitgevoerd/getoond worden (output)? (bv. de leeftijd van de gebruiker, de oppervlakte van de cirkel, …)
  • Algoritme uitschrijven:
    • Controleer of het probleem moet opgesplitst worden in deelproblemen.
    • Maak voor elk deelprobleem een schema waarin alle stappen van begin tot einde zijn opgenomen.
  • Het programma: Zet je algoritme om in een programma. We schrijven het programma (of de code) in een programmeertaal.
  • Testfase: Controleer of je programma werkt door dit op verschillende manieren te testen.
  • Documenteren: De code van een programma kan vrij ingewikkeld worden. Om er voor te zorgen dat jij of andere mensen de code later nog begrijpen, voorzie je commentaar in je code.

Een programma schrijven

Leren programmeren is niet altijd even eenvoudig. Je moet namelijk heel wat code schrijven en dit kan soms erg complex worden. Om al de frustraties achterwege te laten en toch op een leerrijke manier de wereld van het programmeren te verkennen, is er het programma “Scratch“. Via eenvoudig sleepwerk van instructies kan je een algoritme omzetten in een werkend programma. Dit programma kan je nadien ook eenvoudig online toegankelijk maken.