📘 CodingMarble Learn

Inleiding tot probleemoplossen

Een probleem oplossen met een computer gaat in stappen: eerst analyseer je het probleem (invoer, uitvoer, regels), dan maak je een algoritme (een eindige, duidelijke reeks stappen in de juiste volgorde), dan schrijf je de code in een programmeertaal, dan test je met verschillende invoer en ten slotte debug je (fouten zoeken en verwijderen). Een algoritme kun je tekenen als stroomdiagram (ovaal = start/stop, parallellogram = invoer/uitvoer, rechthoek = bewerking, ruit = beslissing, pijlen = looprichting) of opschrijven als pseudocode (gewone taal met een vaste structuur). Bij decompositie knip je een groot probleem in kleine deelproblemen, los je die apart op en voeg je ze daarna samen.

🎬 Verhaal in stappen

  1. Een probleem oplossen heeft vijf stappen: analyseren, een algoritme schrijven, coderen, testen en debuggen.
  2. Decompositie betekent dat je een groot probleem in kleine stukjes knipt. Los elk stukje op en zet ze daarna weer samen.
  3. Een stroomdiagram gebruikt vormen. Ovaal is start of stop. Parallellogram is invoer of uitvoer. Rechthoek is een bewerking. Ruit is een beslissing.
  4. Dit stroomdiagram print het grootste getal van A en B. Het bolletje volgt het JA-pad, omdat 7 groter is dan 4.
  5. Pseudocode schrijft dezelfde stappen op in gewone taal, regel voor regel.
  6. Jouw beurt: kies A en B. Kijk welk pad het bolletje neemt.

Tip: sleep de 3D-scène om hem te draaien. Gebruik twee vingers om te zoomen.

🤔 Veelvoorkomende twijfels, opgehelderd

Waarom schrijf je een algoritme voordat je codeert?

Als je de stappen eerst bedenkt, codeer je het juiste idee. Een plan verbeteren is veel makkelijker dan een groot programma verbeteren.

Is decompositie alleen voor grote software?

Nee. Zelfs een klein programma wordt makkelijker als je het opdeelt in invoer, bewerking en uitvoer.

Waarom heeft een beslissing een ruit nodig?

De ruit toont een ja/nee-vraag met twee uitgangen. Een rechthoek heeft maar één uitgang, dus daarmee kun je niet splitsen.

Wat gebeurt er als A gelijk is aan B?

A > B is onwaar, dus het bolletje neemt het NEE-pad en print B, dat dezelfde waarde heeft. Probeer het zelf bij vrij spelen.

Stroomdiagram of pseudocode: wat is beter?

Stroomdiagrammen zie je makkelijk bij kleine problemen; pseudocode schrijf je sneller en lijkt bij grotere problemen meer op echte code.

Stappen van probleemoplossen

  1. Analyseer het probleem: begrijp wat gegeven is (invoer), wat gevraagd wordt (uitvoer) en wat de regels zijn.
  2. Maak een algoritme: schrijf de oplossing op als duidelijke stappen in de juiste volgorde.
  3. Code: zet het algoritme om in een programma in een taal zoals Python.
  4. Test: voer het uit met veel soorten invoer, ook randgevallen (0, negatieve getallen, heel grote waarden).
  5. Debug: zoek en herstel fouten en test daarna opnieuw.

Een algoritme heeft: duidelijke invoer en uitvoer, een eindig aantal stappen (het moet stoppen), nauwkeurige stappen zonder dubbele betekenis, en het moet het juiste resultaat geven.

Stroomdiagrammen

Een stroomdiagram is een plaatje van een algoritme met standaardsymbolen die met pijlen verbonden zijn.

Stroomdiagrammen zijn makkelijk te begrijpen, maar worden groot bij grote problemen.

Pseudocode

Pseudocode schrijft een algoritme op met eenvoudige zinnen en sleutelwoorden zoals INPUT, COMPUTE, PRINT, IF…ELSE, WHILE. Het is geen echte programmeertaal, dus de precieze schrijfregels (syntaxis) doen er niet toe.

INPUT A, B
IF A > B THEN
    PRINT A
ELSE
    PRINT B

Algoritmen kunnen opeenvolging hebben (stappen na elkaar), selectie (IF-beslissingen) en herhaling (lussen).

Decompositie

Decompositie betekent dat je een ingewikkeld probleem opdeelt in kleinere, eenvoudigere deelproblemen. Elk deel wordt apart opgelost (vaak door een andere persoon of functie) en daarna samengevoegd.

Voorbeeld: een systeem om treinkaartjes te reserveren valt uiteen in: treinen zoeken, plaatsen controleren, kaartje boeken, betalen en kaartje printen.

Voordelen: het is makkelijker te begrijpen, het werk kan gedeeld worden, fouten zijn sneller te vinden en onderdelen kun je opnieuw gebruiken.

Wat komt er in het examen?

Verwacht opdrachten als: een stroomdiagram tekenen of pseudocode schrijven voor eenvoudige taken (grootste van getallen, som van de eerste n getallen, even/oneven, cijfer uit punten), symbolen benoemen, de stappen van probleemoplossen opsommen en decompositie uitleggen met een voorbeeld.

Belangrijke formules en begrippen

Uitgewerkte voorbeelden

1. Schrijf een algoritme om de oppervlakte van een rechthoek te vinden.

1. Start. 2. Voer lengte L en breedte B in. 3. Oppervlakte = L × B. 4. Print de oppervlakte. 5. Stop.

2. Schrijf pseudocode om te controleren of een getal even of oneven is.

INPUT N IF N MOD 2 = 0 THEN PRINT "Even" ELSE PRINT "Oneven"

3. Beschrijf een stroomdiagram dat de som van de getallen van 1 tot 10 print.

Start → bewerking: som = 0, i = 1 → beslissing: i <= 10? → Ja: bewerking som = som + i, i = i + 1, pijl terug naar de beslissing → Nee: uitvoer som → Stop.

4. Verdeel 'een sportdag op school organiseren' in deelproblemen.

Deelproblemen: onderdelen kiezen, leerlingen inschrijven, terrein en materiaal regelen, een schema maken, uitslagen beoordelen en noteren, prijzen uitreiken. Elk deel kan een groepje doen en daarna voegen we ze samen.

5. Volg het stroomdiagram voor het grootste getal bij A = 5, B = 12.

Start → invoer A = 5, B = 12 → is 5 > 12? Nee → print B = 12 → Stop.

6. Schrijf pseudocode die het cijfer print: punten ≥ 90 → A, ≥ 75 → B, anders C.

INPUT M IF M >= 90 THEN PRINT "A" ELSE IF M >= 75 THEN PRINT "B" ELSE PRINT "C"

Veelgemaakte fouten

Oefentoets

1. Welk symbool gebruik je voor een beslissing in een stroomdiagram?
2. Fouten zoeken en verwijderen heet:
3. Een algoritme moet:
4. Invoer en uitvoer in een stroomdiagram gebruiken een:
5. Een probleem in kleinere delen opdelen heet:

Oefenen: beantwoord deze zelf

Typ of kies je antwoord en druk op Controleer. Gebruik een hint als je vastzit; de volledige uitwerking verschijnt na je antwoord.

Veelgestelde vragen

Wat zijn de stappen van probleemoplossen bij informatica?

Analyseer het probleem, maak een algoritme, schrijf de code, test het en debug het.

Wat is het verschil tussen een algoritme en een stroomdiagram?

Een algoritme is de oplossing stap voor stap in woorden; een stroomdiagram is een tekening van dezelfde stappen met symbolen.

Wat is decompositie?

Een ingewikkeld probleem opdelen in kleinere deelproblemen, die je apart oplost en daarna samenvoegt.

Waar dit wordt onderwezen

Canada (Ontario)Grade 10C. Programming
Canada (Ontario)Grade 11B. Software Development
Canada (Ontario)Grade 11B. Software Development
ItalySecondaria di secondo grado – classe 1ªComputer basics and programming
ItalySecondaria di secondo grado – classe 1ªElements of computer science
ItalySecondaria di secondo grado – classe 1ªElements of computer science
ItalySecondaria di secondo grado – classe 1ªElements of computer science
ItalySecondaria di secondo grado – classe 2ªComputer basics and programming
ItalySecondaria di secondo grado – classe 2ªElements of computer science
ItalySecondaria di secondo grado – classe 2ªElements of computer science
ItalySecondaria di secondo grado – classe 2ªElements of computer science
NetherlandsVWO 3 (onderbouw)Mathematical thinking
NetherlandsHAVO 4 (bovenbouw, 2e fase)Foundations
NetherlandsVWO 4 (bovenbouw, 2e fase)Foundations
PolandLiceum ogólnokształcące, klasa IUnderstanding, analysing and solving problems
PolandLiceum ogólnokształcące, klasa IIIDesigning and programming algorithms (I + II)
RomaniaClasa a VIII-aAlgorithms
RomaniaClasa a IX-aMilitary profile (mathematics-informatics, military)
RomaniaClasa a X-aFundamental algorithms on arrays
Spain2º ESOComputational thinking, programming and robotics
Spain3º ESOComputational thinking, programming and robotics
Spain1º BachilleratoAlgebraic Sense
Spain1º BachilleratoAlgebraic Sense
Spain1º BachilleratoAlgebraic sense and computational thinking
CBSE (India)Class 11Computational Thinking and Programming - 1
England (GCSE, A level)Year 103.1 Fundamentals of algorithms
USA (Common Core, NGSS, AP)Grade 8Algorithms and Programming
USA (Common Core, NGSS, AP)Grade 9Algorithms and Programming
USA (Common Core, NGSS, AP)Grade 10Big Idea 3: Algorithms and Programming
USA (Common Core, NGSS, AP)Grade 11Algorithms and Programming
Japan高校(専門学科)1〜3年Programming
Japan高校(専門学科)1〜3年Programming Technology
South Korea중학교 2학년Algorithms and programming
South Korea중학교 3학년Abstraction and algorithms
South Korea고등학교 3학년Abstraction and algorithms
FrancePremièreAlgorithms
FranceTerminaleAlgorithms
FranceTerminaleSpecific option — management information systems
Russia7 классAlgorithms and programming
Russia8 классAlgorithms and programming
Russia10 классAlgorithms and programming
China高一Comp.1 Ch.2 Algorithms and programs

Leer hierna