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.

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