De computer begrijpt niets vanzelf

De computer

begrijpt niets

vanzelf

Leren programmeren: logisch denken + proberen + verbeteren

Algoritmen · Code · Bugs · Debuggen · Computationeel Denken

1 / 17
volgende
Slide 1: Slide
newEditorInformaticaMiddelbare schoolvmbo, mavoLeerjaar 1,2

In deze les zitten 17 slides, met interactieve quizzen en tekstslides.

time-iconLesduur is: 45 min
Dit is niet oké

Onderdelen in deze les

De computer

begrijpt niets

vanzelf

Leren programmeren: logisch denken + proberen + verbeteren

Algoritmen · Code · Bugs · Debuggen · Computationeel Denken

Verhaal: De computer begrijpt niets vanzelf

Stel je voor: je wilt een computer iets laten doen. Bijvoorbeeld een poppetje laten bewegen in een game, punten laten tellen, een deur laten openen in een robotspel of een knop laten werken in een app.

Dan moet je één ding goed onthouden: een computer denkt niet zoals een mens.

Een mens begrijpt vaak wat je ongeveer bedoelt. Een computer niet. Een computer doet alleen precies wat jij zegt. Niet meer. Niet minder.

Daarom betekent programmeren dat je een computer heel precies vertelt wat hij moet doen.

Je maakt eigenlijk een soort stappenplan: eerst dit, daarna dat, daarna weer iets anders. Als de stappen goed zijn, doet de computer wat jij wilt. Bijvoorbeeld: eerst beweegt het poppetje naar rechts, daarna telt het programma één punt erbij, daarna kijkt het programma of je gewonnen hebt.

Je kunt programmeren vergelijken met een recept voor het bakken van een lekkere appeltaart. Je kunt niet zomaar zeggen: “Maak een appeltaart.” Je moet precies aangeven wat er moet gebeuren: pak de appels, snijd ze in stukjes, doe er suiker bij, maak het deeg, stop alles in de oven. Als je een stap vergeet, krijg je geen goede appeltaart. Met programmeren werkt dat net zo. De computer heeft een duidelijk recept nodig.

Programmeren is daarom vooral: nadenken, proberen, fouten zoeken en verbeteren.

Je schrijft bijna nooit in één keer perfecte code. Dat hoeft ook niet. Programmeurs maken voortdurend fouten. Het verschil is dat een goede programmeur leert om die fouten te vinden en op te lossen. Dus als iets niet werkt, denk je niet meteen: “Ik kan dit niet.” Je denkt: “Waar gaat mijn stappenplan fout?”

Programmeren begint met logisch denken en het maken van een stappenplan. Zo’n stappenplan noemen we een algoritme.

Een algoritme is een rij duidelijke stappen om een probleem op te lossen. Bijvoorbeeld: hoe laat je een poppetje naar de finish lopen? Hoe laat je een robot stoppen voor een muur? Hoe laat je een game controleren of iemand genoeg punten heeft? Het algoritme is dus het plan voordat de computer iets uitvoert.

Voordat je code gaat schrijven, moet je eerst goed nadenken. Daarbij gebruik je een paar belangrijke denkstappen.

De eerste denkstap is vereenvoudigen.

Dat betekent: grote problemen splitsen in kleine stukken. Als je een hele game wilt maken, is dat veel te groot om in één keer te doen. Dus maak je het kleiner. Eerst zorg je dat het poppetje kan bewegen. Daarna voeg je punten toe. Daarna maak je vijanden. Daarna maak je een eindscherm. Zo wordt een groot probleem een serie kleine problemen die je één voor één kunt oplossen.

De tweede denkstap is patroonherkenning.

Dat betekent: letten op overeenkomsten en terugkerende patronen. Misschien merk je dat een vijand steeds hetzelfde rondje loopt. Of dat je dezelfde opdracht vaker nodig hebt. Als je patronen herkent, kun je slimmer programmeren. Je hoeft dan niet steeds alles opnieuw te bedenken.

Daarna gebruik je abstractie.

Abstractie betekent: je focust op de hoofdzaken en laat onbelangrijke details even weg. Stel dat je een racegame maakt. In het begin hoef je nog niet te denken aan mooie kleuren, geluidseffecten of een perfecte achtergrond. Eerst moet de auto kunnen rijden. De details komen later. Abstractie helpt je dus om niet te verdwalen in bijzaken.

En dan komt debuggen.

Debuggen betekent: fouten in je code vinden én oplossen. Als je poppetje de verkeerde kant op loopt, als je score niet optelt of als je game vastloopt, dan zit er ergens een fout. Die fout zoek je stap voor stap. Je kijkt: welke opdracht gaat goed? Waar gaat het mis? Wat moet ik aanpassen? Debuggen hoort bij programmeren. Het is geen bewijs dat je slecht bent; het is juist hoe programmeren werkt.

Daarna komen we bij code.

Code zijn de instructies voor de computer.

Dat zijn de opdrachten die jij schrijft of met blokken maakt. Eén opdracht kan bijvoorbeeld zijn: “ga vooruit”, “draai links”, “tel 1 punt op” of “laat tekst zien”. Een hele serie code-instructies vormt samen een programma.

Een programma is dus niet één losse opdracht, maar een verzameling opdrachten die samen iets doen. Bijvoorbeeld een game, een app, een website, een robot of een animatie.

Een losse opdracht noemen we een commando.

Een commando is één enkele opdracht voor de computer. Bijvoorbeeld: beweeg, spring, wacht, speel geluid af, toon tekst of verander de score. Als je meerdere commando’s goed achter elkaar zet, ontstaat er gedrag. Dan lijkt het alsof het programma slim is, maar eigenlijk volgt de computer gewoon jouw opdrachten.

Maar die opdrachten moeten wel op de juiste manier geschreven zijn. Daarvoor heb je syntax.

Syntax zijn de schrijfregels van programmeertaal.

Elke programmeertaal heeft regels. Net zoals Nederlands regels heeft voor zinnen, heeft code regels voor opdrachten. Als je in een gewone zin letters vergeet, begrijpt iemand je misschien nog. Maar een computer is strenger. Eén verkeerd teken kan ervoor zorgen dat je programma niet werkt.

Als er een fout in je code zit, noemen we dat een bug.

Een bug is dus een fout in de code.

Dat kan een tikfout zijn, een verkeerde volgorde, een vergeten stap of een opdracht die niet logisch is. Bijvoorbeeld: je zegt tegen een poppetje dat het moet springen voordat het op de grond staat. Of je laat een score aftrekken terwijl je juist wilt optellen. Dan werkt je programma anders dan je bedoelde.

En daarom eindigt programmeren bijna altijd met dezelfde vraag:

Wat wilde ik dat de computer deed?

Wat doet de computer nu echt?

Waar zit het verschil?

Welke stap moet ik verbeteren?

Dat is programmeren: niet zomaar code maken, maar logisch nadenken, een stappenplan maken, kleine problemen oplossen, fouten vinden en steeds verbeteren. Een programmeur is dus niet iemand die nooit fouten maakt. Een programmeur is iemand die snapt dat fouten erbij horen en die stap voor stap leert om zijn programma beter te maken.

Wat is programmeren eigenlijk?

Deze slide heeft geen instructies

Deze slide heeft geen instructies


Computer vs. Mens


MENS

  • Begrijpt wat je ongeveer bedoelt

  • Vult ontbrekende info zelf aan

  • Begrijpt de context

  • Denkt flexibel


COMPUTER

  • Doet precies wat jij zegt

  • Niet meer, niet minder

  • Begrijpt geen context

  • Heeft exacte opdrachten nodig

Deze slide heeft geen instructies


Wat is Programmeren?



De Appeltaart-analogie

  • Je kunt niet zomaar zeggen: "Maak een appeltaart"

  • Je moet elke stap precies beschrijven

  • Pak appels → snijd → doe suiker erbij → oven in

  • Vergeet je één stap? Dan mislukt het recept

  • Programmeren werkt precies zo


Programmeren =

een computer heel precies vertellen wat hij stap voor stap moet doen

Nadenken

Proberen

Verbeteren

Deze slide heeft geen instructies


Het Algoritme

Een algoritme is een rij duidelijke stappen om een probleem op te lossen.



Poppetje naar finish

1. Lees toetsinvoer

2. Beweeg richting finish

3. Check: op finish?

4. Zo ja: game gewonnen!



Robot stopt voor muur

1. Meet afstand

2. Afstand < 20 cm?

3. Zo ja: stop motoren

4. Zo nee: rij door



Punten controleren

1. Lees huidige score

2. Score ≥ 100?

3. Zo ja: toon winnaar

4. Zo nee: ga verder



Game over check

1. Check levens over

2. Levens = 0?

3. Zo ja: toon game over

4. Zo nee: herstart

Deze slide heeft geen instructies


Computationeel Denken



1. Vereenvoudigen

Grote problemen splitsen in kleine stukken.

Eerst poppetje bewegen → dan punten → dan vijanden.



2. Patroonherkenning

Let op overeenkomsten en herhalingen.

Een vijand loopt steeds hetzelfde rondje? Hergebruik die code.



3. Abstractie

Focus op hoofdzaken, laat details even weg.

Eerst de auto laten rijden, mooie kleuren komen later.



4. Debuggen

Fouten in je code vinden én oplossen.

Stap voor stap zoeken: wat gaat goed, waar gaat het mis?

Deze slide heeft geen instructies


Code, Commando&apos;s & Syntax



CODE

De instructies voor de computer.

Opdrachten die jij schrijft of met blokken maakt.

Bijv: "ga vooruit", "tel 1 punt op".



COMMANDO

Één enkele opdracht voor de computer.

Beweeg · spring · wacht · toon tekst.

Meerdere commando&apos;s = gedrag van het programma.



SYNTAX

De schrijfregels van de programmeertaal.

Eén verkeerd teken → programma werkt niet.

Like grammatica, maar strenger.


ga_vooruit() draai_links() score += 1 print("Gewonnen!")

Deze slide heeft geen instructies


Bugs & Debuggen


WAT IS EEN BUG?

Een fout in de code.

Tikfout · verkeerde volgorde · vergeten stap · logische fout.


Voorbeelden:

  • Poppetje springt voordat het op de grond staat

  • Score trekt af in plaats van optellen

  • Game loopt vast door oneindige loop


HOE DEBUG JE?

1

Wat wilde ik dat de computer deed?

2

Wat doet de computer nu echt?

3

Waar zit het verschil?

4

Welke stap moet ik verbeteren?

Deze slide heeft geen instructies

Samenvatting


Computer:

Doet precies wat jij zegt — niet meer, niet minder


Programmeren:

Een computer stap voor stap vertellen wat hij moet doen


Algoritme:

Een rij duidelijke stappen om een probleem op te lossen


Vereenvoudigen:

Groot probleem → kleine behapbare stukken


Abstractie:

Focus op hoofdzaken, details komen later


Code / Commando:

Instructies voor de computer; één commando = één opdracht


Bug:

Een fout in de code — hoort erbij!


Debuggen:

Stap voor stap fouten zoeken en oplossen

Een programmeur maakt fouten. Wat hem onderscheidt: hij lost ze op.

Deze slide heeft geen instructies

Wat is abstractie in programmeren?

A

Alle details opnemen.

B

Focus op hoofdzaken, details weglaten.

C

Een programma testen.

D

Een computer herstellen.

Deze slide heeft geen instructies

Wat is een bug?

A

Een codetaal.

B

Een programma.

C

Een soort computer.

D

Een fout in de code.

Deze slide heeft geen instructies

Wat is debuggen?

A

Nieuwe code schrijven.

B

Fouten in code zoeken en oplossen.

C

Een computer upgraden.

D

Een programma starten.

Deze slide heeft geen instructies

Maak een stappenplan: Beschrijf in zes stappen hoe je een boterham met pindakaas smeert. Gebruik duidelijke instructies.

Deze slide heeft geen instructies

Wat is een algoritme?

A

Een stappenplan voor een probleem.

B

Een software-update.

C

Een programmeertaal.

D

Een type computer.

Deze slide heeft geen instructies

Wat betekent programmeren?

A

Een spel spelen.

B

Instructies voor de computer geven.

C

Teksten schrijven.

D

Een computer repareren.

Deze slide heeft geen instructies

Opdracht: Maak een game 👾

We gaan zelf aan de slag:


Flappy: https://studio.code.org/flappy/1



Deze slide heeft geen instructies