Algoritmisch denken

Inleiding

Samenvatting video

In de video wordt er uitgelegd dat ik een probleem heb, namelijk dat ik honger heb.
Dan bedenk ik een algoritme (een paar stappen) dat ik kan uitvoeren om tot een oplossing te komen.

Kort samengevat is dit de situatie:
Probleem: Ik heb honger (mijn maag is leeg)
Oplossing: Een gevulde maag

Het algoritme dat ik heb bedacht om van het probleem tot de oplossing te komen is het volgende:

  1. Ik zoek eten
  2. Ik bereid dit eten
  3. Ik eet het eten op

Tijdens het uitvoeren van mijn algoritme merk ik dat ik een nieuw probleem heb, ik weet niet hoe ik het eten kan bereiden.
Gelukkig had iemand al een algoritme (een stappenplan) op de achterkant van het noedelpakje geschreven hoe ik dit kan doen.

Over dit onderdeel

In dit onderdeel zullen we zien:

Algoritmes

Algoritmes

Wat is een algoritme?

Wat moet je kennen en kunnen na dit deel?
- Weten wat een algoritme is
- Voorbeelden kunnen geven waar we algoritmes tegen komen in het dagelijkse leven.

Bekijk de volgende video's die uitleggen wat een algoritme is:

Eigenschappen algoritme

Aan de hand van de video's kunnen we de volgende eigenschappen toekennen aan een algoritme:

1. Het is een eindige reeks van instructies
2. Waarvan de volgorde belangrijk is
3. Die je uitvoert om tot een gewenst einddoel te raken of probleem op te lossen

Hieronder bekijken we elke eigenschap wat nauwkeuriger.

1. Het is een eindige reeks van instructies

Een algoritme bestaat dus uit een aantal instructies of stappen die je moet volgen.
Het is ook een eindige reeks instructies. Eindig betekent dat de instructies niet oneinding lang doorlopen.
Er is een bepaald punt waar je alle instructies hebt uitgevoerd.

2. Waarvan de volgorde belangrijk is

De volgorde waarin de stappen worden uitgevoerd is belangrijk!

In de eerste video wordt duidelijk gemaakt dat als je aardappelen eerst frituurt, dan schilt en dan pas in frieten snijd je geen goede frieten zult maken.

JJ0bpuy.png

3. Die je uitvoert om tot een gewenst einddoel te raken of probleem op te lossen.

De reden dat je een algoritme uitvoert is om van een beginsituatie naar een eindsituatie te raken.

Je hebt bijvoorbeeld vuile kleren, en je wilt ze proper maken.

Beginsituatie: vuile kleren
Gewenste eindsituatie (doel): propere kleren

Je zou dan het algoritme (de stappen) van de 2e video kunnen volgen om de was te doen.
Deze stappen leggen uit hoe je van de beginsituatie naar de eindsituatie raakt.

Belangrijk
Vaak worden ook de woorden "Probleem" en "Oplossing" gebruikt in plaats van beginsituatie en eindsituatie.
In het voorbeeld hierboven zou dit dan zo zijn:
Probleem: vuile kleren
Oplossing: propere kleren

Oefeningen

1. Culinair algoritme

In de eerste video wordt er gesproken over een "culinair algoritme".

Wat wordt er hiermee bedoeld denk je?
Welk ander woord kan je gebruiken om dit te beschrijven?

Als het formulier hieronder niet werkt kan je hier klikken.

2. Volgorde van de stappen

In de video hieronder wordt er nog een culinair algoritme uitgelegd.
Bekijk de stappen nauwkeurig.

Probeer nu zelf de stappen in de juiste volgorde te zetten zoals beschreven in de video.
(Je kan de blokjes slepen in de juiste volgorde of de pijltjes achteraan elk blokje gebruiken)

Als het formulier hieronder niet werkt kan je hier klikken.

3. Welke andere algoritmes ken je?

We hebben hierboven al een paar voorbeelden aangehaald van algoritmes:
- Een recept (een kookalgoritme)
- Het inladen van een wasmachine

Welke andere algoritmes ken je vanuit je dagelijkse leven?
Kies er een uit en typ dit neer in het formulier dat hieronder is gelinkt.
Schrijf dan ook kort uit wat de verschillende stappen zijn in dat algoritme.

Als het formulier hier onder niet werkt kan je hier klikken.

Algoritmes

Wat is een programma?

Wat moet je kennen en kunnen na dit deel?
- Weten wat een (computer)programma is
- Weten wat het verschil is tussen een algoritme en een computerprogramma

CFUyNeF.jpg

Wat is een programma?

Zoals verteld in het onderdeel computer onderdelen voert de processor in een computer instructies uit. De computer kan zelf niet nadenken maar kan alleen instructies uitvoeren die hem gegeven worden.

Een computer is dus een ideaal hulpmiddel om algoritmes automatisch te laten uitvoeren want algoritmes zijn gewoon een lijst van instructies.

Computertaal

Maar computers verstaan geen gewone spreek- of schrijftaal.
Daarom moeten algoritmes eerst in een speciale computertaal of programmeertaal geschreven worden.
Op deze manier begrijpt de computer de stappen in het algoritme.

Wanneer een algoritme is neergeschreven op een manier dat de computer dit begrijpt noemen we dit een (computer)programma.
Alle computerprogrammas zijn geschreven op basis van een algoritme.

Verschil algoritme (computer)programma
Algoritme Programma
Een algoritme is een beschrijving van hoe je een probleem kan oplossen.

Een programma is een implementatie van een algoritme.

(Het algoritme is neergeschreven in een programmeertaal die de computer begrijpt)

De computer verstaat dit niet en kan dit niet uitvoeren De computer kan dit wél uitvoeren en verstaan

Programmeertalen

Er zijn verschillende types programmeertalen met elk hun eigen doelen.

Een videospel zal bijvoorbeeld in een andere programmeertaal geschreven worden dan een website.
Bij verzekeringsmaatschappijen gebruiken ze speciale programmeertalen om statistische berekeningen te maken.

Een paar populaire programmeertalen

NgxCmYg.png

Naam Waarvoor de taal gebruikt wordt
Java Desktop applicaties, Games, Android apps
C++ Programma's die zeer snel moeten draaien en niet groot mogen zijn, Games, Desktop applicaties
Python Desktop applicaties, websites, wetenschappelijke berekeningen
C# Desktop applicaties, Websites, Games
Javascript Voornamelijk websites
PHP Websites
R Statistische berekeningen
MATLAB Statistische en wetenschappelijke berekeningen
Swift Wordt vooral gebruikt om Apple apps te schrijven
Objective-C Wordt vooral gebruikt om Apple apps te schrijven

Oefening

Probleemoplossend denken

Probleemoplossend denken

Inleiding

Wat moet je kennen en kunnen na dit deel?
- Weten welke stappen er bij probleemoplossend denken gebruikt worden.
- Weten in welke volgorde de stappen uitgevoerd worden.

Probleemoplossend denken

Algoritmisch denken wordt ook probleemoplossend denken genoemd.
Als je een probleem hebt begin je best niet willekeurig wat dingen uit te proberen om tot je doel te komen maar denk je best even na welke stappen je kan ondernemen.

Bij probleemoplossend denken gebruiken we een paar stappen om tot een goed algoritme te komen.

  1. Probleemdefinitie
  2. Analyse
  3. Algoritme opstellen
  4. Programma schrijven
  5. Testen en documenteren

Elk van deze stappen zullen we nu nader bekijken in de volgende stukken.

Probleemoplossend denken

1. Probleemdefinitie

Wat moet je kennen en kunnen na dit deel?
- Een probleem en een doel kunnen identificeren.

In deze stap probeer je eerst je probleem en je doel uit te zoeken.
Deze stap wordt soms ook de probleemstelling genoemd.

Lego voorbeeld

Probleem: Je hebt een hoop Legoblokjes maar je weet niet hoe je een kasteel kan bouwen.
Doel: Je wilt een kasteel van Legoblokjes hebben.