Beleidsinformatica
Deel 2: Basis Programmeren (Python) — Prof. dr. W. Verbeke
Doel van deze gids: alles wat je nodig hebt om te slagen, gestructureerd en met de essentie eerst. Per
onderwerp krijg je: Kernidee → Uitleg → Code → Examen-tip. De 🔗-tekens leggen links tussen
hoofdstukken.
📑 Inhoudsopgave
📘 STUDIEGIDS — Grondslagen van de Beleidsinformatica
Deel 2: Basis Programmeren (Python) — Prof. dr. W. Verbeke
📑 Inhoudsopgave
🎯 DEEL 0 — Examen begrijpen & studieaanpak
0.1 Hoe ziet het examen eruit?
0.2 Wat vragen ze precies? (uit de voorbeeldexamens)
0.3 Slimme studievolgorde
🧠 DEEL A — CONCEPTEN & THEORIE
(basis voor meerkeuze-theorie + open vragen — H1, H2, H18, H21)
A1. Algoritme, proces, programma — de kerndefinities
🔑 De drie centrale definities (LEER DEZE EXACT)
Hoe ze samenhangen (klassieke open vraag!)
⚠️ Subtiel verschil: algoritme ≠ computeralgoritme
A2. Eigenschappen van een computationele procedure
⚠️ Eindig vs. "oneindige" processen
A3. Data, programmeren & programmeertalen
Data vs. informatie
, Wat is programmeren?
Wat is een programmeertaal? (primitieven + syntax)
🔑 De generaties programmeertalen (vaak gevraagd!)
Compiler vs. interpreter
A4. Complexiteit van algoritmen (H18)
🔑 Efficiëntie = snelheid waarmee een algoritme tot een oplossing komt
Twee manieren om efficiëntie te bepalen
🔑 Tijdscomplexiteit & grote-O notatie
A5. Hashing (H21)
🔑 Hashing = een input (bv. string) omzetten naar een geheel getal
Zoeken via hashing
Collisions
Eigenschappen van een goede hashfunctie
Hashing en beveiliging
🐍 DEEL B — PYTHON FUNDAMENTEN
(variabelen, datatypes, conversies, bewerkingen — H3, H4, H5)
B1. Variabelen & typing (H3)
🔑 Een variabele heeft 3 attributen: NAAM, WAARDE, TYPE
Toewijzen (=) en declareren
🔑 Static vs. dynamic typing
Naamgevingsregels (Python)
B2. Datatypes (H3)
🔑 Overzicht van de datatypes
Belangrijke details per type
🔑 Matrix = lijst van lijsten
B3. Conversies tussen datatypes (H3)
B4. Bewerkingen (H4)
Rekenkundige operatoren (op getallen)
Volgorde van bewerkingen (wiskundige volgorde)
Vergelijkingsoperatoren → geven een bool
Gecombineerd toewijzen (compacte notatie)
Logische bewerkingen (op Booleans): and, or, not, xor
Bewerkingen op strings, lijsten, tupels
B5. Input & output (H5)
Output: print()
Input: input() geeft ALTIJD een string!
, Geformatteerd printen: .format() en %
🏗️ DEEL C — PROGRAMMASTRUCTUREN
(DIT IS DE KERN VAN DE 6/10 — H6, H7, H8, H13, H14, H17)
C1. Keuzestructuur: if / elif / else (H6)
🔑 Basisstructuur
Een conditie is een Booleaanse uitdrukking — kan zijn:
🔑 Exhaustief & Exclusief (GELIEFD examenonderwerp!)
C2. Iteratiestructuur: de for-lus (H6)
🔑 Kernidee — VOORSPELBARE iteratie
range() — een reeks gehele getallen genereren
Itereren over verschillende datastructuren
🔑 Inline for-lus (list comprehension) — heel vaak gebruikt!
C3. Iteratiestructuur: de while-lus (H6)
🔑 Kernidee — ONVOORSPELBARE iteratie
🔑 Twee dodelijke valkuilen
C4. break & continue (H6)
C5. Geneste lussen & matrices (H6, WC4/WC5)
🔑 Geneste for-lus = lus binnen een lus → matrices doorlopen
⚠️ Volgorde-effect bij geneste lussen (examen-traceervraag!)
Geneste lussen & complexiteit 🔗
C6. Basisalgoritmen: zoeken (H7)
🔑 Typische structuur van een zoekalgoritme
🔑 Correctheid controleren: hoe weet je of je algoritme klopt?
C7. Bewijs van het tegendeel (H7)
🔑 Het principe (logica)
🔑 Algoritmisch patroon (voor controle-algoritmen)
Wat is de "beste" oplossing? (open vraag)
C8. Functies (H8) ⭐ — examen-favoriet
🔑 Wat & waarom?
Structuur van een functie
Meerdere resultaten teruggeven
De main()-conventie
🔑 Formele vs. actuele parameters (open vraag!)
C9. Bereik (scope): lokaal vs. globaal + mutabel/immutabel (H8) ⭐
🔑 De algemene regel
🔑 Verschil lokaal ↔ globaal (open vraag!)
, Een globale variabele wijzigen binnen een functie?
🔑 Mutabel vs. immutabel (open vraag!) + objecten
🔑 Parameters wijzigen binnen een functie (pass by reference) — TRACEERVRAAG!
Default parameterwaarden & keyword arguments
Functies in functies (scope van functies)
C10. Foutafhandeling (H13)
🔑 De vier soorten fouten (LEER DEZE — MC-vraag!)
🔑 Runtime errors anticiperen: try / except / finally
C11. Input & output met bestanden (H14)
🔑 Communicatie met een tekstbestand in 3 stappen
CSV-bestanden
C12. Modules (H17)
🔑 Wat & waarom?
🔑 Importeren — twee manieren met VERSCHILLENDE gevolgen
De belangrijkste modules (kunnen gebruiken!)
🎓 DEEL D — EXAMENTRAINING
D1. "Voorspel de output" — de traceermethode
Stappenplan
Uitgewerkt voorbeeld (geneste for-lus — WC4)
D2. Uitgewerkte voorbeeldexamenvragen
🔹 MEERKEUZE — Theorie (H2)
🔹 MEERKEUZE — Theorie (H6)
🔹 MEERKEUZE — Code traceren (H8)
🔹 OPEN VRAGEN — modelantwoorden in het kort
D3. Programmeeroefening — stappenplan (6/10!)
Aanpak van een programmeeroefening
🔑 De functie-documentatie (verplicht format in dit vak!)
Volledig uitgewerkt voorbeeld — Determinant van een 2×2-matrix (WC7)
D4. Top-valkuilen (lees dit de avond vóór het examen!)
📋 DEEL E — CHEAT SHEET (syntax-overzicht)
Snelle herhaling — print dit eventueel apart af.
Variabelen & types
Conversies
Operatoren
Input / output
Keuzestructuur