# Programmeren, de basis/Leidraad
## Algemene didactische wenken

* Eerst denken en dan doen” is het belangrijkste bij algoritmisch denken.
* Bij complexere problemen een algoritme schematisch (laten) voorstellen door een Nassi-Shneiderman diagram (NSD). In de andere gevallen volstaat een uitgebreide beschrijving van de verwerkingsfase in de analyse.
* Gebruik een actuele, motiverende ontwikkelomgeving waarover de leerlingen ook thuis kunnen beschikken. Het is niet de bedoeling de leerlingen een programmeertaal aan te leren. Er zijn voldoende gratis alternatieven die voor deze doeleinden geschikt zijn zoals Greenfoot, Scratch, Small Basic, Alice ...
* Toon eens de werking van een gemaakt programma in een professionele ontwikkelomgeving.
* De complexiteit van en de soort oefeningen is afhankelijk van de studierichting. In een meer wiskundige richting komen uiteraard meer wiskundige probleemstellingen aan bod.
* Geef de leerlingen de tijd en de ruimte om zelfstandig oefeningen uit te werken. Succeservaringen zijn heel belangrijk.
* Vertrek vanuit de fouten van de leerlingen bij het aanleren van foutanalyse. Leer hen zelf hun fouten te analyseren. Gebruik hiervoor onder meer de mogelijkheden van de ontwikkelomgeving.
* Leer de leerlingen ook een werkend programma aanpassen.

## Inzien wat een algoritme is. Het verschil tussen een algoritme en een programma kennen
### De competenties

* Het begrip algoritme kaderen in het dagelijkse leven.
* Omschrijven wat een algoritme en een programma is.
* De verschillende stappen in het oplossen van een probleem kennen en continu toepassen bij het oplossen van problemen nl. probleemdefinitie, analyse, algoritme, programma, testen en documenteren.

### Didactische wenken

* Vertrekkend vanuit een aantal algoritmes uit het dagelijkse leven, de leefwereld van de leerlingen, het begrip algoritme aanbrengen. Het is niet de bedoeling om hier heel lang bij stil te staan en de leerlingen zelf algoritmes uit het dagelijks leven te laten opstellen.

## Een probleemstelling omzetten in een werkend programma. De verschillende controlestructuren kennen en gebruiken
### De competenties

* Ongeacht de eenvoud of de complexiteit van een probleem, een analyse maken en vooraleer tot het gebruik van de computer over te gaan, minimaal voor zichzelf het principe van een oplossing formuleren.
* De verschillende elementen en mogelijkheden van de gebruikte ontwikkelomgeving doelgericht aanwenden.
* Met variabelen en constanten werken.
* De toekenningsoperator gebruiken.
* Rekenkundige-, vergelijkings- en logische operatoren integreren.
* De controlestructuren met hun kenmerken kennen en toepassen waaronder de sequentie, de selectie en de iteratie.
* De eenzijdige, tweezijdige en geneste selectie of keuze toepassen.
* De voorwaardelijke en begrensde herhaling gebruiken.

### Didactische wenken

* Laat de leerlingen inzien wat de betekenis is van een toekenningsoperator. Onderstreep het verschil met de wiskundige gelijkheidsoperator. Maak duidelijk dat de richting van deze operator van rechts naar links gaat. Gebruik ook constructies zoals var = var + 1, var1 = var1 + var2 om de werking van een toekenningsoperator te verduidelijken.
* Beperk de voorwaardelijke herhaling tot de voorwaardelijke herhaling met aanvangsvoorwaarde of afbreekvoorwaarde.
* Het algoritmisch denken van de leerling worden niet aangescherpt door voorgekauwde probleemstellingen en oplossingen te presenteren. Aanvankelijk is de voorbeeldfunctie van de leraar van groot belang. De leerlingen moeten de wijze waarop de leraar systematisch algoritmisch denkt, leren nabootsen. De leraar kan dit bevorderen door als het ware ‘luidop na te denken’. De leerlingen moeten oplossingen gaandeweg zien ontstaan en hieraan meer en meer actief participeren. Hun zelfwerkzaamheid is van groot belang en moet voortdurend groeien.