D,uEn9m%CuoKf?Q[BQ5Q,[3u'.4cSo2Un6g+@8ubfc$<*+i%YmZ"7pklBRf,*DP2BjINuj\#FgcOadD.Bi+Z#FQ>6DYZrE:Kn.cf^S]N0c:lA$M>J%N:W;!^%2ghWS=6uMM0^2VR1VA"^@,GQul9nj/FR\uASV?7$-l#2H!S:Pk.'r=[JUOKfh/V3NqaQ(OOVU:b!t"bXo)o3.W@XL-k"CelD/5In"Y%Sn0dH,u[>r.?/rnu4h.'Q=$$=K(R]6.OT!V,R^/2Au`(5E9?bhag#(dJ-<;.$_>RDL,SXC7S*_n0W1LjqY%:U?EHbOZT.I3fAcEI.tndB6\L,B#nNFRf-5U4,7rr@nNM:$NJ)@k[>43eap]A)(/YdT+phMViFp\-_F[6J%'?dJrCh9IY$ZUNda-6XARe/V&Z;ML)'XUVC';)HfmXX4q]\WhVT.OV)mM^Fk")t'G,ccG1?JP:5^p.aM;L22LM1.-5NFg\_VM(lQTEr%o-.TnCqU3&m=OY)Zo=^<&J\(d1h`BBW))(RM?=X-O_U-4\;h_L\P<,Ia^G$.hd*0;nJMnp3+\'t-(Q%*EIe;n&@^A!5Y4G=%jf6)b4cJi'(ogqCq\>BbQL%Ie&+R53o;TqU,h0g_ZpH5q*M<8;&KD"IAlEuq^dQ#1ANU0mAf=us\^JF1DE$d$q`VB+qh4ZN4b4X;j%Oe6F9_-X$!]LTnBX&moIGD8J$`/@ir+.Lp$k0c=*C32fg9e*5IN:7lb.#L9Ag_r)o+>t%sHUhl!^9]jXrqpD,r-9:4I75Q4jJj/_DRAMW<]R./B]j0i?H=QtIo+>&KVu!59MJ$Vf^0<1ASCrmON%#)\!&3:T-Rb]NL!BGrmKT=F/TYUYLo!OL7s$GN!t.s,'WQ--(NL3/L&U@h1[YmqM[]:Ca;G/46L'l8G^\\T@bd5DA]ih1!rtsl?.=L3qhB&+endstream
+endobj
+21 0 obj
+<<
+/Filter [ /ASCII85Decode /FlateDecode ] /Length 387
+>>
+stream
+GasbT4]B6P%#4NUMK^W,@:D1fA)sCY?/SCZ=PR*)V+L#_-dC%GO-11]Xog&Dc]Y+pdOUHaao:-t^k9YoZ\2<)431Bscmp[?k]8#qR8YE/$al(`.4+,#8]l2R/JNpQZ4TIb03?GmWr\Xtcjk>bLa8N:?(VnmV8JFo6tpBCpeY^['u_f5J(l;'aIsp4S.7YKQKNthP!hn<+,SE=$BfV.mbUMFB$h_lH$S6=V+2+O/6YJ!UXYBIE?7ZUa7MicAg41ajH,$~>endstream
+endobj
+xref
+0 22
+0000000000 65535 f
+0000000061 00000 n
+0000000132 00000 n
+0000000239 00000 n
+0000000351 00000 n
+0000000456 00000 n
+0000000533 00000 n
+0000000738 00000 n
+0000000853 00000 n
+0000001058 00000 n
+0000001263 00000 n
+0000001469 00000 n
+0000001675 00000 n
+0000001881 00000 n
+0000001951 00000 n
+0000002242 00000 n
+0000002335 00000 n
+0000004506 00000 n
+0000006858 00000 n
+0000009114 00000 n
+0000011303 00000 n
+0000013314 00000 n
+trailer
+<<
+/ID
+[<15bd1c06a323579dbb461de4ce8768e8><15bd1c06a323579dbb461de4ce8768e8>]
+% ReportLab generated PDF document -- digest (opensource)
+
+/Info 14 0 R
+/Root 13 0 R
+/Size 22
+>>
+startxref
+13792
+%%EOF
diff --git a/Les03-Cursor-Basics/Les03-Docenttekst-Notes.md b/Les03-Cursor-Basics/Les03-Docenttekst-Notes.md
deleted file mode 100644
index b555e05..0000000
--- a/Les03-Cursor-Basics/Les03-Docenttekst-Notes.md
+++ /dev/null
@@ -1,231 +0,0 @@
-# Les 3 - Keynote Notes
-
-**Spreektijd:** ~55 min | **Hands-on:** ~75 min | **Pauze:** 15 min (10:15-10:30)
-
----
-
-## BLOK 1: WELKOM & MEDEDELING (10 min)
-
----
-
-### Slide 1: Titelslide
-- Welkom Les 3, vandaag: Cursor
-- "Dit wordt je nieuwe favoriete tool!"
-
----
-
-### Slide 2: Planning
-- 09:00-09:30: Setup + Installatie
-- 09:30-09:58: Features + Skills + Request tips
-- 09:58-10:13: Live Demo nieuw project
-- 10:13-10:15: Start Hands-on
-- 10:15-10:30: PAUZE
-- 10:30-11:45: Hands-on vervolg
-- 11:45-12:00: Afsluiting
-
----
-
-### Slide 3: Terugblik Les 2
-- **OpenCode problemen:** token limits, EACCES, permission denied
-- "Niet jullie schuld, beperking platform"
-- **Waarom Cursor:** voor developers, meer requests, ingebouwde terminal, Skills
-
----
-
-### Slide 4: Wat is Cursor?
-- VS Code + AI ingebouwd
-- **Gratis Student plan:** 500 fast requests/maand
-- **5 features:** Chat, Inline Edit, Composer, Tab Completion, @mentions
-- Hobby EERST → Student upgrade later
-
----
-
-## BLOK 2: INSTALLATIE & SETUP (20 min)
-
----
-
-### Slide 5: Download Cursor
-- cursor.com → juiste OS versie
-- macOS: Intel of Apple Silicon (let op!)
-- Windows: Installer
-- "Allemaal gedownload?"
-
----
-
-### Slide 6: Account Aanmaken
-- Sign Up → **Hobby account EERST**
-- Email + wachtwoord verifiëren
-- Student upgrade: cursor.com/students (later)
-- ✓ CHECKPOINT: Cursor geopend, account gemaakt
-
----
-
-### Slide 7: Interface Tour
-- Activity Bar (links), Sidebar (files), Editor (midden)
-- **Chat Panel:** Ctrl+L (rechts)
-- **Terminal:** Ctrl+` (onderin) → alles in 1 window!
-
----
-
-### Slide 8: Terminal Setup Check
-- **SAMEN DOEN** - iedereen tegelijk
-- `node -v` (v20+)
-- `git --version` (2.x+)
-- `npm -v` (10.x+)
-- `npx -v` (10.x+) → **nodig voor create-next-app!**
-- Help bij errors, CHECKPOINT
-
----
-
-## BLOK 3: CURSOR FEATURES (15 min)
-
----
-
-### Slide 9: Chat Panel (Ctrl+L)
-- Vragen over code, AI ziet hele codebase
-- Wees specifiek → bespaart requests
-- "Analyseer dit project" → AI leest alles
-
----
-
-### Slide 10: Inline Edit (Ctrl+K)
-- Select code → Ctrl+K → instructie → Accept/Reject
-- Voorbeeld: inline styles → Tailwind
-- Voor: kleine aanpassingen, styling fixes
-
----
-
-### Slide 11: Composer (Ctrl+I)
-- Multi-file, grote taken
-- "Voeg pagina toe" → AI maakt alles
-- Preview → Accept → instant
-
----
-
-### Slide 12: Tab Completion
-- AI voorspelt code, druk Tab
-- **GRATIS - kost geen premium request!**
-- Benadrukken: gebruik dit voor kleine dingen
-
----
-
-### Slide 13: @ Mentions
-- @file, @folder, @web, @docs
-- **@docs belangrijk:** verwijst naar geïnstalleerde docs
-- "Hoe werkt App Router? @docs Next.js"
-
----
-
-## BLOK 4: SKILLS, RULES & REQUESTS (15 min)
-
----
-
-### Slide 14: Cursor Skills Installeren
-- **SAMEN DOEN!**
-- Settings → Features → Docs → Add
-- Toevoegen: nextjs.org/docs, react.dev, tailwindcss.com/docs
-- Test: Chat + @docs Next.js
-- ✓ CHECKPOINT: Docs toegevoegd
-
----
-
-### Slide 15: .cursorrules via Chat
-- NIET handmatig schrijven
-- Chat (Ctrl+L): "Genereer .cursorrules voor Next.js + Tailwind + TypeScript"
-- Kopieer → maak bestand → save
-- **1 request = goed besteed**
-
----
-
-### Slide 16: Request Management
-- Hobby = beperkte requests
-- **Tab Completion = GRATIS**
-- Chat/Composer/Inline Edit = 1 request
-- Tips: denk eerst, combineer taken, gebruik Tab Completion
-- "3 kleine prompts = 3 requests. 1 grote prompt = 1 request!"
-
----
-
-## BLOK 5: LIVE DEMO (15 min)
-
----
-
-### Slide 17: Demo Nieuw Project (blijft op scherm)
-1. mkdir + git init (1 min)
-2. npx create-next-app@latest . (2 min)
- - TypeScript, Tailwind, App Router: allemaal Yes
-3. npm run dev → localhost:3000 (1 min)
-4. Chat: genereer .cursorrules (3 min, 1 request)
-5. Composer: HeroSection component (4 min, 1 request)
-6. Refresh browser → toon resultaat (1 min)
-7. git add + commit (1 min)
-- **"Van niks naar werkende site in 15 min!"**
-
----
-
-## BLOK 6: HANDS-ON (75 min + 15 min pauze)
-
----
-
-### Slide 18: Opdracht (blijft op scherm)
-- STAP 1: mkdir + git init + npx create-next-app + npm run dev
-- STAP 2: Check Skills/Docs, genereer .cursorrules via Chat
-- STAP 3: Bouw componenten (Hero, Features, Form, Footer)
-- STAP 4: git commit
-- **Let op requests! Max ~6-7 in de les**
-- ☕ Pauze 10:15-10:30
-
-**Checks:**
-- 10:45: "Wie heeft npx gedaan? .cursorrules? Component?"
-- 11:00: "Wie heeft 2 componenten? Requests over?"
-- 11:30: "Wie heeft gecommit?"
-
----
-
-## BLOK 7: AFSLUITING (15 min)
-
----
-
-### Slide 19: Resultaten
-- 3-4 studenten tonen werk
-- "Welke componenten? Hoeveel requests?"
-
----
-
-### Slide 20: Samenvatting
-- ✅ Cursor setup + Skills/Docs
-- ✅ .cursorrules via AI Chat
-- ✅ npx create-next-app workflow
-- ✅ Chat, Composer, Inline Edit, Tab Completion
-- ✅ Request management (Tab = gratis!)
-
----
-
-### Slide 21: Huiswerk - Debug Challenge
-- Download zip van Teams
-- **Fouten:** missende deps, syntax errors, inline styles
-- Fix met Cursor terminal + AI
-- Push naar GitHub
-- Post op Teams: link + screenshot + beschrijving
-
----
-
-### Slide 22: Volgende Les
-- Les 4: Effectief Prompting & Iteratief Werken
-- Huiswerk MOET af zijn!
-
----
-
-## TIMING SUMMARY
-
-| Blok | Onderdeel | Duur |
-|------|-----------|------|
-| 1 | Welkom & Mededeling | 10 min |
-| 2 | Installatie & Setup | 20 min |
-| 3 | Cursor Features | 15 min |
-| 4 | Skills, Rules & Requests | 15 min |
-| 5 | Live Demo | 15 min |
-| **PAUZE** | | **15 min** |
-| 6 | Hands-On | 75 min |
-| 7 | Afsluiting | 15 min |
-| **TOTAAL** | | **180 min** |
diff --git a/Les03-Cursor-Basics/Les03-Docenttekst.md b/Les03-Cursor-Basics/Les03-Docenttekst.md
index b7802e2..23f3d4a 100644
--- a/Les03-Cursor-Basics/Les03-Docenttekst.md
+++ b/Les03-Cursor-Basics/Les03-Docenttekst.md
@@ -1,561 +1,155 @@
-# Les 3: Cursor - AI-Powered Code Editor
-## Docenttekst (Spreektekst voor Tim)
+# Les 3 — Docenttekst (normaal)
-> **Totale lesduur:** 3 uur (180 minuten)
-> **Totale spreektijd:** ~90 minuten (verdeeld over blokken)
-> **Hands-on praktijk:** ~75 minuten
-> **Pauze:** 15 minuten (10:15-10:30)
+**Fysieke les. Voor uitgebreide voorbereiding + context per blok.**
+**Voor letterlijk voorleesbaar script: zie `Les03-Docenttekst-Autocue.md`.**
---
-## BLOK 1: WELKOM & MEDEDELING (10 min)
+## Lesvorm en flow
-### Slide 1: Titelslide - Welkom Les 3, Cursor!
-**[09:00 - 09:02]**
-
-"Goedemorgen iedereen, welkom bij Les 3! Vandaag gaan we kennismaken met Cursor, een code editor die echt gemaakt is voor developers. Dit is geen random AI tool – het is gebouwd VOOR programmeurs. In de vorige les hebben jullie gemerkt dat OpenCode wat problemen had: token limits, EACCES errors, en niet echt ontworpen voor professionele development. Cursor lost dat allemaal op. We gaan hem vandaag installeren, je eerste project bouwen, en je zult zien hoe snel je daarmee dingen kunt maken."
-
-_[Glimlach, maak oogcontact. Stel de energie in voor een praktische, hands-on les.]_
+| Onderdeel | Indeling |
+|-----------|----------|
+| Theorie + demo | ±1,5 uur klassikaal |
+| Pauze | 15 minuten |
+| Hands-on | ±1,25 uur zelf bouwen met begeleiding |
---
-### Slide 2: Planning vandaag
-**[09:02 - 09:05]**
+## Voorbereiding — een week vooraf
-"Dit is de planning voor vandaag. We starten met een korte terugblik op waarom Cursor beter is dan OpenCode. Dan gaan we Cursor installeren en je account opzetten – dat gaat snel. Daarna laat ik alle features zien: Chat, Inline Edit, Composer, Tab Completion, en @mentions. We doen een interfacetour zodat je precies weet waar alles zit.
+**Studenten checklist (stuur via Slack):**
+- Laptop met admin-rechten (Cursor installatie vereist admin op Windows)
+- NOVI e-mailadres werkend
+- `node -v` werkt (versie 18 of hoger)
+- `git --version` werkt
+- Browser-bookmark voor `cursor.com/students` ergens klaarzetten
-Vervolgens duiken we in het inrichten van Cursor Skills – dat is belangrijk, je gaat framework documentatie inladen zodat de AI beter kan helpen. We maken je eerste .cursorrules file, en ik leg uit hoe je request limit management moet denken.
-
-Om 09:40 doen we een live demo: ik bouw in real-time een Next.js project van nul tot werkend. Dan krijgen jullie rond 10:00 een praktische opdracht. Jullie bouwen zelf een project, en we hebben een pauze van 10:15 tot 10:30. Na de pauze werken jullie verder, en we afsluiten met het delen van jullie resultaten, een samenvatting, en huiswerk."
-
-_[Wijs naar timeline op slide. Ga niet te snel. Geef studenten een gevoel van progressie.]_
+**Jouw eigen voorbereiding:**
+- Test je eigen Cursor Pro Student status (om geen "ik vergat hem te activeren" te krijgen tijdens demo)
+- Test `npx create-next-app@latest` (cache kan blokkeren — `npm cache clean --force` als nodig)
+- Backup-project klaar met Hero al gebouwd voor het geval live demo vastloopt
+- `.cursorrules` snippet copy-paste klaar
---
-### Slide 3: Terugblik Les 2 - Waarom Cursor beter is
-**[09:05 - 09:08]**
+## Voorbereiding — dag van de les
-"Laten we even teruggaan naar Les 2 met OpenCode. Veel van jullie hebben vast gelopen tegen problemen, toch? Token limits die onverwacht opraken, EACCES permission errors als je externe packages wilde installeren, en eigenlijk voelde het meer als een AI chatbot dan als een echte code editor.
+**30 minuten vooraf:**
+- Cursor open in een lege folder voor de demo
+- Twee terminals klaar (één in `~/web`, één leeg)
+- Browser tabs: cursor.com/students, cursor.com/download, github.com (logged in)
+- Slides in fullscreen op presentatiescherm
-Cursor is fundamenteel anders. Het is GEBOUWD voor developers. Cursor ziet je hele codebase tegelijk – Chat werkt niet op fragmenten, maar snapt je hele project. De AI completion (Tab completion) is ingebouwd en super snel. Bovendien: het Hobby plan is helemaal gratis, en studenten kunnen upgraden naar het Student plan, ook gratis, via cursor.com/students. Geen creditcard nodig.
-
-En het allerbelangrijkste: Cursor heeft een INGEBOUWDE terminal. Je kunt node -v, npm install, en git commands rechtstreeks uitvoeren zonder naar een ander venster te hoppen. Alles gebeurt in één editor."
-
-_[Maak oogcontact. Zeg duidelijk "gratis" – dat is een belangrijk voordeel.]_
+**Backup scenario:**
+- SheerID verificatie geeft soms 5–10 minuten vertraging → vertel studenten dit vooraf
+- `npx create-next-app` kan hangen → check cache of gebruik `bun create next-app` als alternatief
+- Internet traag in zaal → backup-project op standby
---
-### Slide 4: Wat is Cursor? Features en pricing
-**[09:08 - 09:10]**
+## Per blok — wat je extra wilt zeggen
-"Oké, wat IS Cursor precies? Het is eigenlijk VS Code – dezelfde editor die de helft van de wereld gebruikt – maar dan met krachtige AI features ingebouwd. Je krijgt vijf hoofdfeatures:
+### Blok 1 — Welkom + Wat is Cursor (slides 1–3)
+**Doel:** verwachtingen zetten, energie inschakelen.
-**Eerste: Chat (Ctrl+L).** Je kunt vragen stellen over je code. De AI ziet je hele codebase en kan context begrijpen. Je kunt vragen 'Hoe werkt deze functie?' of 'Wat doet dit component?'. Wees specifiek in je vragen, dan krijg je betere antwoorden.
+Vraag vooraf: wie heeft GitHub Copilot wel eens gebruikt? Wie ChatGPT voor code? Dat is je startpunt — Cursor is dat, maar nauwer geïntegreerd in de editor zelf.
-**Tweede: Inline Edit (Ctrl+K).** Je selecteert code, geeft een instructie zoals 'Zet dit om naar Tailwind classes', en de AI edit precies dat stukje. Super handig voor kleine aanpassingen.
+### Blok 2 — Student Plan + Installatie (slides 4–6)
+**Doel:** iedereen heeft Pro Student actief aan het eind van dit blok.
-**Derde: Composer (Ctrl+I).** Dit is voor grotere taken. Je kunt zeggen 'Voeg een product pagina toe met filtering en cart functionaliteit', en de AI genereert meerdere files tegelijk. Echt krachtig.
+**Vooraf melden:** SheerID-verificatie kan 1–10 minuten duren. Geen reden om paniek te krijgen.
-**Vierde: Tab Completion.** De AI voorspelt je code. Je begint te typen, en het suggereert wat je waarschijnlijk wilt. Je drukt Tab en klaar. Dit kost GEEN requests – het is gratis!
+**Common issue:** studenten met persoonlijk Gmail-adres in plaats van NOVI. Verificatie faalt → "log in met je NOVI-mail" — dat is non-negotiable.
-**Vijfde: @mentions.** Je kunt context geven door @file, @folder, @web, en @docs te gebruiken. @docs is echt belangrijk: je kunt framework documentatie inladen, zodat de AI tegen de juiste versie van React of Next.js praat.
+**Voor wie technisch slim is:** Cursor heeft een settings.json zoals VS Code. Importeer de jouwe als je hem hebt. Maakt de transitie soepel.
-Nu: pricing. Het Hobby plan is gratis en volstaat voor het meeste. Je krijgt beperkte requests – precies genoeg om te oefenen. Als je Student ben, kun je naar cursor.com/students gaan en upgraden naar Student, ook gratis, met veel meer requests."
+### Blok 3 — Skills/Docs + Eerste project (slides 7–9)
+**Doel:** student heeft `mijn-eerste-cursor-app` draaiend op localhost en open in Cursor.
-_[Toon de vijf features op je vingers. Zeg "GRATIS" luidop voor Tab Completion – veel studenten snappen niet dat dit geen request kost.]_
+**Verwacht problemen:**
+- "I get a permission error" → npm prefix issue, gebruik nvm of corepack
+- "create-next-app duurt eeuwig" → cache + slecht internet, even geduld
+- "ik krijg geen Tailwind" → student kiest "no" bij Tailwind-prompt, opnieuw beginnen
+
+Loop rond in dit blok — dit is waar studenten het meest vastlopen.
+
+### Blok 4 — Drie sneltoetsen (slides 10–14)
+**Doel:** student kan Tab, Cmd+K en Cmd+L actief gebruiken.
+
+**Voor elke sneltoets: doe een mini-live-demo.** Niet alleen praten — laat letterlijk zien wat er gebeurt. Studenten leren dit door te zien.
+
+**Bij Tab:** typ een commentaar en wacht 2 seconden — Cursor stelt de hele functie voor. Dat is een wow-moment.
+
+**Bij Cmd+K:** kies bewust iets simpels (zoals een variabele hernoemen) — niet iets complex dat 10 seconden duurt.
+
+**Bij Cmd+L:** stel een vraag, niet meteen een grote taak. *"Hoe werkt useEffect?"* — laat Cursor antwoorden zien.
+
+### Blok 5 — `.cursorrules` (slide 15)
+**Doel:** student weet wat het is + heeft één in zijn project.
+
+**Vertel ook:** in Les 14 (veel later) gaan we naar `.cursor/rules/` (folder met meerdere bestanden). Voor nu is het oude format prima en simpeler om uit te leggen.
+
+**Demo:** ik vraag Cursor in Cmd+L *"Maak een .cursorrules voor dit Next.js project"*. Laat de output zien, plak in `.cursorrules`-bestand, save.
+
+### Blok 6 — Hands-on (slides 16–19)
+**Doel:** elke student heeft een werkende Hero gebouwd en één commit gedaan.
+
+**Voor de pauze:** demonstreer taak 1 + 2. Niet meer.
+
+**Na de pauze:** loop rond. Voor elke vraag, beantwoord met "wat zou je in Cursor zelf vragen?" — leer ze om de IDE te benutten.
+
+**Verwacht vragen:**
+- "Mijn Hero ziet er saai uit" → vraag Cursor om een tweede iteratie via Cmd+K
+- "Tailwind classes werken niet" → check of `globals.css` `@tailwind base/components/utilities` heeft
+- "Git werkt niet" → check `gh auth login` of `git config user.email`
+
+### Blok 7 — Afronding (slide 20)
+**Doel:** koppel vandaag aan de rest van de opleiding.
+
+Maak expliciet: vandaag was de basis. Tab + Cmd+K + Cmd+L gaan jullie elke les terugzien. Les 4 gaat over TypeScript. Les 14 (veel later) gaat dieper op Cursor 3 features.
---
-## BLOK 2: INSTALLATIE & SETUP (20 min)
+## Veelvoorkomende vragen + antwoorden
-### Slide 5: Download en installatie
-**[09:10 - 09:14]**
+**"Werkt Cursor op Linux?"**
+Ja — AppImage download via cursor.com.
-"Goed, laten we beginnen met installatie. Je gaat naar cursor.com en klikt op Download. Cursor draait op Mac, Windows, en Linux – dus voor iedereen. De installer is heel eenvoudig: je downloadt het, opent het, sleep je Cursor naar je Applications folder, en klaar. Als je op Windows bent, run je de .exe en volg je de stappen.
+**"Wat als ik geen Pro Student krijg?"**
+Stuur student naar support@cursor.com met NOVI mail + bewijs van inschrijving. Werkt meestal binnen 24 uur.
-Dit kost ongeveer twee minuten. Als je al VS Code hebt, hoef je niks te desinstalleren – Cursor en VS Code kunnen naast elkaar bestaan zonder problemen."
+**"Mag ik mijn eigen OpenAI/Anthropic key gebruiken?"**
+Ja — Settings → Models → eigen key plakken. Soms goedkoper bij weinig gebruik, niet nodig met Pro Student.
-_[Navigeer naar cursor.com en wijs de download knop aan. Laat zien hoe het eruit ziet op Mac en Windows (screenshot).]_
+**"Wat is het verschil tussen Cmd+K en Cmd+L?"**
+Cmd+K = inline edit op selectie (één bestand, één gericht ding). Cmd+L = chat (uitleg vragen of grotere taak met meerdere bestanden).
+
+**"Wordt mijn code naar OpenAI/Anthropic gestuurd?"**
+Standaard: ja, voor inference. Cursor heeft een Privacy Mode in Settings — als die aan staat, wordt code niet bewaard. Geen training op je code.
+
+**"Wat als ik door 500 requests heen ben?"**
+Wacht op nieuwe maand (reset op de 1e), of upgrade naar betaalde tier ($20/maand), of plug je eigen API-key in.
+
+**"Kan ik blijven coden zonder internet?"**
+Tab + lokale modellen via Settings, ja. Cmd+K en Cmd+L vereisen internet.
---
-### Slide 6: Account aanmaken en upgraden
-**[09:14 - 09:18]**
+## Foutmodi tijdens de les
-"Zodra Cursor open is, maak je een account aan. Je hoeft NIET direct Student plan te nemen – begin met Hobby. Je geeft je emailadres en een wachtwoord in. Cursor stuurt je een bevestigingsmail.
-
-BELANGRIJK: als je Student bent, upgrade je NA deze eerste setup. Je gaat naar cursor.com/students, logt in met diezelfde email, en kiest Student plan. Geen creditcard, geen gedoe – je werkt gewoon mee met onze les en je bent gedekt.
-
-Na login zie je je Hobby account. Dan gaan we gelijk verder met setup."
-
-_[Toon account maken op je eigen machine. Zeg duidelijk: "Hobby EERST, Student plan LATER". CHECKPOINT: check rond of iedereen ingelogd is.]_
+| Probleem | Snelle fix |
+|----------|-----------|
+| SheerID hangt | Volgende student helpen, terugkomen na 10 min |
+| `npx create-next-app` hangt | `npm cache clean --force` of `bun create next-app` |
+| Cursor niet ingelogd na herstart | Settings → Account → opnieuw inloggen |
+| Tab-completion verschijnt niet | Settings → Features → Cursor Tab → check enabled |
+| Cmd+L opent niet | Mogelijk Notion of andere app vangt sneltoets — check System Preferences |
+| `.cursorrules` lijkt genegeerd | File moet in project-root staan, niet in src/ — herstart Cursor |
---
-### Slide 7: Interface tour
-**[09:18 - 09:22]**
+## Vooruitblik Les 4
-"Oké, je bent ingelogd. Laten we de interface doornemen zodat je weet waar alles zit.
+Volgende les: TypeScript Fundamentals. Strict types, generics, utility types. Studenten gaan ze toepassen in hun Next.js project. Geen extra installatie nodig — Next.js scaffold zit al met TS.
-Links zie je de **Activity Bar** – kleine iconen voor Files, Search, Source Control, en Run & Debug. Dit is hetzelfde als VS Code.
-
-Daaronder zie je de **Sidebar** – dit is waar je bestanden staan als je Files opent.
-
-In het midden: de **Editor**. Dit is waar je code schrijft en bewerkt.
-
-Aan de rechterkant – en dit is NIEUW vergeleken met normale VS Code – de **Chat Panel**. Dit open je met Ctrl+L. Hier stel je vragen over je code.
-
-Onder de editor zie je de **Terminal** – Ctrl+backtick, dus Ctrl+` – hier voer je commands uit.
-
-Het mooie is: ALLES zit in één window. Je hoeft niet tussen VS Code en ChatGPT heen en weer te springen."
-
-_[Beweeg je cursor rond op de interface. Duid elke component aan. Open de Chat Panel met Ctrl+L, sluit het weer met Escape.]_
-
----
-
-### Slide 8: Terminal setup check SAMEN
-**[09:22 - 09:30]**
-
-"Nu gaan we even checken of je setup klaar is. Dit doen we via de Terminal. Open Terminal met Ctrl+backtick – dus Ctrl+`.
-
-Je ziet prompt. We gaan drie commands checken:
-
-**Eerste: node -v** – dit geeft je Node.js versie. Je wilt versie 18 of hoger. Als je error ziet 'command not found', moet je Node.js installeren via nodejs.org.
-
-**Tweede: git --version** – dit geeft je Git versie. Versie 2.20 of hoger is prima.
-
-**Derde: npm -v** – dit is de Package Manager die met Node.js komt. Ook 7.0 of hoger.
-
-**Vierde: npx -v** – dit is ESSENTIEEL. npx gebruiken we straks om create-next-app te draaien. Als npx niet werkt, kun je geen nieuw project aanmaken. npx komt normaal mee met npm, dus als npm werkt, werkt npx ook. Maar even checken!
-
-Wie errors ziet, geen paniek. Steek je hand op, ik help je. Dit duurt twee minuten per persoon."
-
-_[Open je eigen Terminal. Typ de vier commands. Laat zien wat output eruitziet. Sta twee minuten stil en help studenten die problemen hebben.]_
-
-_[CHECKPOINT: zorg dat iedereen node, git, npm EN npx werkend heeft. Dit is essentieel voor de rest van de les.]_
-
----
-
-## BLOK 3: CURSOR FEATURES (15 min)
-
-### Slide 9: Chat Panel - Vragen over je code
-**[09:30 - 09:36]**
-
-"Nu duiken we in de échte kracht van Cursor: de Features. Laten we beginnen met **Chat Panel**.
-
-Je opent Chat met Ctrl+L. Ik open het nu even op mijn scherm. Je ziet een textbox waar je kunt typen. Het bijzondere: Cursor ziet je HELE project, niet gewoon het stukje code dat je hebt geselect.
-
-Stel je voor: je hebt een Next.js project met 15 componenten. Je kunt in Chat vragen: 'Hoe werkt de authentication flow in dit project?' en de AI snapt je hele setup en geeft een ingewikkeld antwoord.
-
-**Tips voor goede Chat vragen:**
-- Wees specifiek. Zeg niet 'Fix dit' maar 'Zet alle inline styles om naar Tailwind classes en zorg dat de layout hetzelfde blijft.'
-- Geef context. 'In de ProductCard component, de border is nu blauw, kan hij rood zijn en dikker?'
-- Stel vervolgvragen. De AI onthoudt wat je eerder vroeg.
-
-Chat kost één request per bericht. Hop voorzichtig – je hebt beperkte requests op Hobby."
-
-_[Open Chat (Ctrl+L). Typ een voorbeeld vraag. Laat zien hoe antwoord zich opent.]_
-
----
-
-### Slide 10: Inline Edit - Snelle code changes
-**[09:36 - 09:41]**
-
-"Volgende feature: **Inline Edit (Ctrl+K)**. Dit is voor als je kleine stukken wilt aanpassen.
-
-Stel je voor: je hebt een component met inline styles – die lelijke style={{color: 'red', marginTop: '10px'}}. Je wilt dit naar Tailwind. Je selecteert die hele component code, drukt Ctrl+K, en je typt: 'Zet alle inline styles om naar Tailwind classes, keep the same styling.'
-
-Cursor selecteert precies dat stukje, geeft een preview, en je ziet de diff. Je kunt dan een diff accepteren of afwijzen. Super handig voor refactoring.
-
-**Voorbeeld in mijn hoofd:**
-Input: Component met inline styles
-Instructie: 'Convert to Tailwind'
-Output: Dezelfde component, maar nu className='text-red-600 mt-2.5'
-
-Dit kost ook één request. Gebruik het voor kleine, chirurgische aanpassingen."
-
-_[Maak een voorbeeld component met inline styles. Demonstreer Ctrl+K en de AI vervanging.]_
-
----
-
-### Slide 11: Composer - Multi-file grote taken
-**[09:41 - 09:46]**
-
-"Nu het heavyweight: **Composer (Ctrl+I)**. Dit is voor als je GROTE dingen wilt doen – dingen die meerdere files raken.
-
-Stel je voor: je hebt een Next.js app met één pagina. Je wilt een heel nieuwe feature: een Admin Dashboard met login, user list, en stats panel. Dit raakt misschien 5 bestanden: nieuwe route, nieuwe component, styles, database queries, alles.
-
-In plaats van dit in stukken te vragen in Chat, openen je Composer met Ctrl+I. Je zegt: 'Voeg een Admin Dashboard toe met login, user management, en stats. Zet het op /admin route.'
-
-Composer genereert ALLES tegelijk – alle files, alle imports, alle routing. Je ziet een preview, klikt 'Accept', en BOEM – je project heeft een werkende admin dashboard.
-
-Dit is échte time-saver. En ja, dit kost ook één request – niet meer, niet minder, want Cursor snapt dat je één logische taak doet."
-
-_[Open je eigen project. Open Composer (Ctrl+I). Laat zien hoe je een multi-file taak kunt beschrijven.]_
-
----
-
-### Slide 12: Tab Completion - AI code voorspelling
-**[09:46 - 09:50]**
-
-"Feature vier: **Tab Completion**. Dit is mijn favoriet. En het BELANGRIJKSTE: dit kost GEEN requests. Nul. Gratis.
-
-Je begint gewoon code te typen. Terwijl je typt, ziet Cursor wat je waarschijnlijk wilt doen. Je typt:
-
-```javascript
-const handleClick = () => {
-```
-
-En Cursor suggereert al wat je waarschijnlijk volgende doet. Je drukt Tab en het wordt aanvaard. Je typt verder, Tab, verder, Tab. Dit gaat super snel.
-
-**Waarom is dit gratis?** Omdat Tab Completion niet intensief is voor Cursor – het is lokale voorspelling, niet een volledige AI analyse. Dus gebruik dit VEEL! Dit moet je reflexmatig doen.
-
-**Tip:** als je een suggestion ziet die je niet wilt, druk je gewoon Escape of tik je wat anders. Geen probleem.
-
-Dit is echt de feature waar je sneller in je code wordt als je het goed gebruikt."
-
-_[Demonstreer Tab Completion in je editor. Typ langzaam zodat Cursor suggestions toont. Druk Tab en laat zien hoe snel dit gaat.]_
-
----
-
-### Slide 13: @mentions - Context voor je vragen
-**[09:50 - 09:55]**
-
-"Laatste feature: **@mentions**. Dit is hoe je de AI context geeft.
-
-Je kent het van Slack en Discord: als je @iemand typt, tag je ze. In Cursor Chat doe je iets soortgelijks.
-
-Je kunt typen:
-- **@file** – je verwijst naar een specifiek bestand. Voorbeeld: '@pages/api/auth.js write a logout endpoint'
-- **@folder** – je verwijst naar een hele folder. Voorbeeld: '@components analyze this folder and tell me architecture'
-- **@web** – de AI zoekt het web op. Voorbeeld: 'how do I connect to @web stripe payment gateway?'
-- **@docs** – DIT IS HEEL BELANGRIJK – je verwijst naar framework documentatie. Voorbeeld: '@docs latest react patterns for state management'
-
-@docs is een game changer. Als je @docs docs react typen, zal de AI antwoorden tegen de officieële React documentatie, niet tegen oude tutorials. Dit voorkomt dat je advice krijgt van 2019.
-
-We gaan straks je Skills opzetten, en daar laad je @docs in. Ongelofelijk powerful."
-
-_[Typ in Chat: '@docs how do I use hooks?' Laat zien dat niks gebeurt totdat Skills ingesteld zijn – dat doen we volgende slide.]_
-
----
-
-## BLOK 4: SKILLS, RULES & REQUESTS (15 min)
-
-### Slide 14: Cursor Skills - Framework documentatie inladen
-**[09:55 - 10:05]**
-
-"Oké, volgende stap. Ik zei net dat @docs belangrijk is. Daarvoor moeten we eerst je **Cursor Skills** instellen. Dit is hoe je documentatie inlaadt zodat de AI weet tegen welke versies het praat.
-
-We doen dit SAMEN, dus volg mee op je eigen machine.
-
-**Stap 1:** Ga naar Settings. Op Mac: Cmd+, (command komma). Op Windows: Ctrl+, (control komma). De Settings paneel opent.
-
-**Stap 2:** Je zoekt naar 'Features' en je klikt op Features.
-
-**Stap 3:** Je zoekt naar 'Docs' – je ziet 'Cursor Docs' instelling. Daar klikt je op.
-
-**Stap 4:** Je ziet een + knop. Je klikt erop. Nu kun je documentatie toevoegen. Dit zijn de drie die ik aanraad:
-
-- **Next.js:** je gaat naar nextjs.org/docs en je pakt die URL. Voeg toe.
-- **React:** react.dev is de officieële React docs. Voeg toe.
-- **Tailwind CSS:** tailwindcss.com/docs. Voeg toe.
-
-Na toevoegen kun je in Chat @docs gebruiken en de AI leest tegen jouw documentatie. Test het: type in Chat '@docs what is the latest way to do routing in next.js?' en je krijgt antwoord uit de officieële Next.js documentatie, niet uit random StackOverflow.
-
-Dit is echt belangrijk voor professioneel werken."
-
-_[DOEN, niet demo. Zorg dat iedereen dit meegedaan heeft. Help met technische vragen. CHECKPOINT: vraag "Iedereen Skills ingesteld?" en wacht op bevestiging.]_
-
----
-
-### Slide 15: .cursorrules - Jouw AI richtlijnen
-**[10:05 - 10:12]**
-
-"Nu gaan we een .cursorrules bestand maken. Dit is NIET handmatig geschreven – Cursor genereert dit voor je.
-
-Een .cursorrules file is een bestand in de root van je project waarin je aan Cursor zegt: 'Hey, als je met mijn code werkt, volg deze richtlijnen.'
-
-Voorbeeld richtlijnen:
-- 'Alle componenten moeten TypeScript hebben type annotations'
-- 'Gebruik Tailwind, geen CSS modules'
-- 'Nederlandse comments in de code'
-- 'Altijd error handling toevoegen'
-
-Dit is SUPER handig omdat je je preferences maar één keer ingesteld hebt, en dan volgt de AI altijd.
-
-**Hoe maak je het?** Heel makkelijk:
-
-**Stap 1:** Je opent Chat (Ctrl+L).
-
-**Stap 2:** Je plakt deze prompt:
-
-'Genereer een .cursorrules bestand voor een Next.js + Tailwind CSS + TypeScript project. Include richtlijnen voor: code style, components best practices, error handling, en Nederlandse comments. Output het volledige bestand klaar om te kopieën.'
-
-**Stap 3:** Cursor genereert een complete .cursorrules file. Je kopieert dit.
-
-**Stap 4:** In je project maak je een nieuw bestand genaamd `.cursorrules` in de root folder. Je plakt de content en je saved.
-
-**Klaar!** Dát is één request, en nu volgt Cursor altijd jouw rules.
-
-Dit is echt tijd besparen. Je zegt nooit meer 'gebruik TypeScript' – dat weet Cursor al."
-
-_[Open Chat. Paste je eigen .cursorrules prompt (aanwezig op je machine). Laat zien hoe output eruitziet. Demonstreer kopieën naar nieuw bestand.]_
-
----
-
-### Slide 16: Request management - Budget uitzetten
-**[10:12 - 10:20]**
-
-"Oké, de grote vraag: requests. Op Hobby heb je BEPERKT aantal requests. Je wilt ze slim gebruiken.
-
-**Hier is de breakdown:**
-- **Tab Completion:** GRATIS. Ongelimiteerd. Gebruik dit voor kleine dingen.
-- **Chat:** 1 request per bericht. Wees voorzichtig.
-- **Inline Edit:** 1 request. Snel maar denk je in voor je tikt.
-- **Composer:** 1 request, ongeacht hoe groot. Dit is eigenlijk heel voordelig voor grote dingen.
-
-**Budget tips:**
-
-**Eén: Denk eerst, prompt daarna.** Voordat je iets vraagt, bepaal je wat je PRECIES wilt. Maak een kopje koffie, bedenk je vraag, tik dan. Dit voorkomt vijf mislukte requests.
-
-**Twee: Combineer taken.** In plaats van drie aparte Chat vragen, maak je één grote vraag. Zeg alles in één bericht.
-
-**Drie: Gebruik Tab Completion voor kleine dingen.** Import statements, losse variabelen, functies. Dit bespaart requests.
-
-**Vier: Composer voor grote refactors.** Als je iets aan meerdere files moet doen, doe je het in Composer, niet in aparte Chat vragen.
-
-**Vijf: @mentions voor efficiency.** @docs helpt je beter vragen stellen, minder 'wat is het beste patroon' vragen.
-
-Op Hobby krijg je genoeg om deze hele les te doen en meer. Maar als je gaat echt projecten bouwen, upgrade je naar Student. Dan heb je veel meer."
-
-_[Toon scherm met request counter. Leg uit waar je request status ziet (rechtsboven in Cursor).]_
-
----
-
-## BLOK 5: LIVE DEMO (15 min)
-
-### Slide 17: Live Demo - Van nul naar werkende website
-**[10:20 - 10:35]**
-
-"Oké, genoeg theorie. Ik bouw nu in real-time een werkende Next.js website. Dit doet twee dingen: één, je ziet hoe snel dit echt gaat, en twee, je ziet de volledige workflow die je straks zelf doet.
-
-**Stap 1: Project setup**
-```bash
-mkdir my-demo-site
-cd my-demo-site
-git init
-```
-
-Ik heb een folder, git aan. Cursor openen.
-
-**Stap 2: Next.js project**
-```bash
-npx create-next-app@latest . --typescript --tailwind --app
-```
-
-Ik zeg Yes op TypeScript, Yes op Tailwind, Yes op App Router. Dit duurt ongeveer een minuut.
-
-**Stap 3: Dev server**
-```bash
-npm run dev
-```
-
-Nu draait http://localhost:3000 met de default Next.js pagina.
-
-**Stap 4: .cursorrules via Chat**
-Ctrl+L. Ik paste mijn prompt. Één request. Copy. Make file `.cursorrules`. Done.
-
-**Stap 5: HeroSection via Composer**
-Ctrl+I. 'Create a Hero section component in app/components/HeroSection.tsx with a headline, subheading, and a Call-to-Action button. Use Tailwind classes. Make it look modern.'
-
-Cursor genereert de hele component. Één request. Ik accepteer.
-
-**Stap 6: Integrate in page**
-Ik open app/page.tsx. Voeg import HeroSection. Zet het in HTML. Refresh browser. BOOM. Werkende website, mooi design.
-
-**Stap 7: Git commit**
-```bash
-git add .
-git commit -m "Initial setup with HeroSection"
-```
-
-**Totaal:** Ik gebruikte 2 requests (één voor .cursorrules, één voor HeroSection). Tab Completion hielp met imports en minor edits. Van nul naar werkende website in 15 minuten. Dat kan jij straks ook."
-
-_[ECHTE DEMO, niet gerendeert. Wys elke stap live. Stop niet totdat npm run dev werkt en browser toont mooi design. Timing is belangrijk – studenten moeten zien dat dit ECHT snel gaat.]_
-
----
-
-## BLOK 6: HANDS-ON PRAKTIJK (75 min + 15 min pauze)
-
-### Slide 18: Hands-on opdracht - Studenten bouwen eigen project
-**[10:35 - 10:50] (+ pauze 10:15-10:30, dan verder tot 11:30]**
-
-"Jullie beurt. Hier is wat je gaat doen. Dit is dezelfde workflow als mijn demo, maar je doet het zelf.
-
-**Opdracht:** Bouw een NIEUW project. Mag elk onderwerp zijn – portfolio site, blog, product showcase, whatever. Belangrijkste: je volgt deze stappen:
-
-**Stap 1: Project initialize**
-```bash
-mkdir my-awesome-project
-cd my-awesome-project
-git init
-```
-
-**Stap 2: Next.js setup**
-```bash
-npx create-next-app@latest . --typescript --tailwind --app
-```
-TypeScript = Yes, Tailwind = Yes, App Router = Yes.
-
-**Stap 3: Cursor Skills check**
-Zorg dat je Next.js, React, en Tailwind documentatie ingeladen hebt. Test @docs.
-
-**Stap 4: .cursorrules genereren**
-Chat, één prompt, één request. Kopieën naar bestand.
-
-**Stap 5: Componenten bouwen**
-Gebruik Composer (Ctrl+I) om componenten te genereren:
-- HeroSection (headline, subheading, CTA)
-- FeatureCards (3-4 feature cards met iconen en beschrijvingen)
-- TestimonialSection (3 testimonials)
-- Footer
-
-Elke Composer request = één component.
-
-**Stap 6: Integreren in main page**
-Import alle componenten in app/page.tsx. npm run dev. Check dat alles looks good.
-
-**Stap 7: Git commit**
-```bash
-git add .
-git commit -m "Complete project setup with all components"
-```
-
-**Timing:**
-- Nu tot 10:15: je begint. Ik loop rond, ik help met problemen.
-- 10:15-10:30: PAUZE. Stretch, koffie, toilet.
-- 10:30-11:15: jullie bouwen verder. Meer componenten, refinement, styling tweaks. Ik help.
-
-**Checks tussendoor:**
-- Is npm run dev werkend?
-- Hoe veel requests heb je gebruikt?
-- Zit je stuck? Vraag me.
-
-**Let op:** dit is HANDS-ON. Je moet dit zelf doen, niet copy-paste van mij. De waarde zit in het leren van de workflow."
-
-_[Zet timer op. Check na 10 minuten wie klaar is met setup. Help trackers. Zorg dat iedereen minstens HeroSection werkend heeft voor de pauze.]_
-
-_[Na pauze: motiveer studenten, help met volgende componenten, praise progress.]_
-
----
-
-## BLOK 7: AFSLUITING (15 min)
-
-### Slide 19: Resultaten delen
-**[11:15 - 11:25]**
-
-"Goed werk iedereen! Nu gaan we een paar resultaten delen. Ik wil 3-4 van jullie zien wat je hebt gebouwd.
-
-[Roep studenten op om hun project op scherm te delen. Laat hun website zien. Zeg wat je goed vindt – 'Leuke kleuren!' of 'Mooie layout, hoe heb je die FeatureCards gedaan?' Geef high-fives digitaal of letterlijk.]
-
-Dit is echt professioneel werk. En je hebt dit in anderhalf uur gebouwd. Besef je dat? Met OpenCode zou dit twee keer zo lang geduurd hebben."
-
-_[Echt naar mensen luisteren. 3-4 korte demo's, niet lang. Maak het positief.]_
-
----
-
-### Slide 20: Samenvatting - De les in vijf punten
-**[11:25 - 11:35]**
-
-"Laten we samenvatten wat je vandaag geleerd hebt.
-
-**Eén: Setup.** Je kunt Cursor installeren, een account maken, Skills configureren. Dit is standaard, je doet dit nu automatisch.
-
-**Twee: AI Features.** Je kent Chat, Inline Edit, Composer, Tab Completion, @mentions. Elke feature heeft een use case. Chat voor vragen, Composer voor grote dingen, Tab Completion voor snelheid.
-
-**Drie: Workflow.** Initialize project, create Next.js app, .cursorrules, build components, integrate, commit. Dit is de bouwsteen voor alle projecten voortaan.
-
-**Vier: Request Management.** Je weet dat je beperkt hebt, je plant je requests, je combineert taken. Je denkt, daarna prompt.
-
-**Vijf: Speed.** Je bouwde een website in anderhalf uur. Dat gaat niet slimmer worden – dat is de norm voortaan.
-
-Dit zijn de fundamentals. Volgende les gaan we dieper: effectief prompting, hoe je betere vragen stelt, hoe je iteratief werkt met de AI. Dat is waar de echte magie gebeurt."
-
-_[Zeg duidelijk, maak oogcontact. Dit is de afsluiting.]_
-
----
-
-### Slide 21: Huiswerk - DEBUG CHALLENGE
-**[11:35 - 11:40]**
-
-"Huiswerk. Dit is een DEBUG CHALLENGE. Je gaat een zip bestand krijgen via Teams. Die zip bevat een half-gebouwde Next.js project – EXPRES met fouten.
-
-**Wat zit erin:**
-- Missende dependencies (package.json incomplete)
-- Syntax errors (typos in components)
-- Inline styles die naar Tailwind moeten
-- Import statements die broken zijn
-- Misschien een API route die niet werkt
-
-**Je taak:**
-1. Download de zip
-2. Extract em
-3. Open in Cursor
-4. USE Cursor om ALLE fouten te fixen. Niet handmatig repareren – dat is het punt niet. Gebruik Chat, Inline Edit, Composer. Leer hoe je de AI gebruikt om bugs op te spotten en te fixen.
-5. Als alles werkend is: npm run dev moet geen errors geven
-6. Push naar je GitHub
-
-**Due:** volgende les. Zorg dat je een werkend project hebt en een GitHub link.
-
-Dit is echt oefenen. Debugging met AI is een skill. Je leert het nu."
-
-_[Upload de zip naar Teams. Zeg de naam van het bestand luid.]_
-
----
-
-### Slide 22: Volgende les preview
-**[11:40 - 11:45]**
-
-"Volgende les: **Effectief Prompting & Iteratief Werken**. We gaan dieper.
-
-Vandaag maakte je basale prompts. Volgende keer leren we:
-- Prompt engineering: hoe je vragen stelt zodat de AI beter begrijpt wat je wilt
-- Iteratie: hoe je feedback geeft en verbeteringen doet, stap voor stap
-- Context building: hoe je de AI steeds meer context geeft voor betere resultaten
-- Real-world scenarios: fixing bugs, refactoring code, building complex features
-
-Dit is waar development met AI echt wordt. Prompting is een skill, net als typen of debuggen. We gaan het trainen.
-
-Tot volgende week!"
-
-_[Smile. Dit is motiverend. Zeg "Goed gedaan vandaag" en bedank iedereen voor de aandacht.]_
-
----
-
----
-
-## TIMING OVERVIEW
-
-| Blok | Slides | Duratie | Totaal (min) |
-|------|--------|---------|------|
-| **BLOK 1: Welkom & Mededeling** | 1-4 | 10 min | 0-10 |
-| **BLOK 2: Installatie & Setup** | 5-8 | 20 min | 10-30 |
-| **BLOK 3: Cursor Features** | 9-13 | 15 min | 30-45 |
-| **BLOK 4: Skills, Rules & Requests** | 14-16 | 15 min | 45-60 |
-| **BLOK 5: Live Demo** | 17 | 15 min | 60-75 |
-| **BLOK 6: Hands-on (incl. pauze)** | 18 | 75 min + 15 min pauze | 75-165 |
-| | | Pauze: 10:15-10:30 | |
-| **BLOK 7: Afsluiting** | 19-22 | 10 min | 165-175 |
-| **TOTAAL** | 22 | **175 minuten (2h 55min)** | |
-
----
-
-## EXTRA NOTES VOOR TIM
-
-- **Checkpoints:** Slide 6, 8, 14 – zorg dat iedereen op dezelfde plek is voor je verdergaat
-- **Problemen:** Bij terminal setup kan het 5 minuten extra kosten. Plan dit in.
-- **Live demo timing:** dit duurt 15 minuten ECHT. Niet sneller – studenten moeten het zien gebeuren.
-- **Hands-on pauze:** 10:15-10:30 is VAST. Studenten hebben dit nodig.
-- **Request usage:** controleer rond 10:45 dat niemand meer dan 5 requests gebruikt heeft. Anders raken ze op.
-- **Debugging hw:** zip bestand moet express simple bugs hebben (missing import, extra comma, inline style). Niet complex.
-- **Energy:** rond minuut 120 zakt energie. Zet muziek op pauze, trek grappen, keep it real.
+Stuur de avond ervoor een Slack-bericht: "voor les 4: zorg dat je Cursor Pro Student actief hebt, anders sta je achter".
diff --git a/Les03-Cursor-Basics/Les03-Docenttekst.pdf b/Les03-Cursor-Basics/Les03-Docenttekst.pdf
new file mode 100644
index 0000000..6acca3c
--- /dev/null
+++ b/Les03-Cursor-Basics/Les03-Docenttekst.pdf
@@ -0,0 +1,149 @@
+%PDF-1.4
+% ReportLab Generated PDF document (opensource)
+1 0 obj
+<<
+/F1 2 0 R /F2 3 0 R /F3 4 0 R /F4 6 0 R /F5 7 0 R
+>>
+endobj
+2 0 obj
+<<
+/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font
+>>
+endobj
+3 0 obj
+<<
+/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font
+>>
+endobj
+4 0 obj
+<<
+/BaseFont /Courier /Encoding /WinAnsiEncoding /Name /F3 /Subtype /Type1 /Type /Font
+>>
+endobj
+5 0 obj
+<<
+/Contents 14 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 13 0 R /Resources <<
+/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
+>> /Rotate 0 /Trans <<
+
+>>
+ /Type /Page
+>>
+endobj
+6 0 obj
+<<
+/BaseFont /Symbol /Name /F4 /Subtype /Type1 /Type /Font
+>>
+endobj
+7 0 obj
+<<
+/BaseFont /Helvetica-Oblique /Encoding /WinAnsiEncoding /Name /F5 /Subtype /Type1 /Type /Font
+>>
+endobj
+8 0 obj
+<<
+/Contents 15 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 13 0 R /Resources <<
+/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
+>> /Rotate 0 /Trans <<
+
+>>
+ /Type /Page
+>>
+endobj
+9 0 obj
+<<
+/Contents 16 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 13 0 R /Resources <<
+/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
+>> /Rotate 0 /Trans <<
+
+>>
+ /Type /Page
+>>
+endobj
+10 0 obj
+<<
+/Contents 17 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 13 0 R /Resources <<
+/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
+>> /Rotate 0 /Trans <<
+
+>>
+ /Type /Page
+>>
+endobj
+11 0 obj
+<<
+/PageMode /UseNone /Pages 13 0 R /Type /Catalog
+>>
+endobj
+12 0 obj
+<<
+/Author (NOVI Hogeschool Utrecht) /CreationDate (D:20260615075148+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260615075148+00'00') /Producer (ReportLab PDF Library - \(opensource\))
+ /Subject (\(unspecified\)) /Title (Les 3 Docenttekst) /Trapped /False
+>>
+endobj
+13 0 obj
+<<
+/Count 4 /Kids [ 5 0 R 8 0 R 9 0 R 10 0 R ] /Type /Pages
+>>
+endobj
+14 0 obj
+<<
+/Filter [ /ASCII85Decode /FlateDecode ] /Length 1720
+>>
+stream
+Gb!;c99[go&AIV:ki-,\,s6L3;aM)u'GX0i74u<5V7%pjUesUE%=?07:QHcJrUu[*/m.S[/,/\rS*mJl)%>cKg>>a;n7i(Z?8Gt)N2FB1dt,nnpgnR=f+%$l4j3Ia.qIRBSf,%*LX+;fVWCspj+:tM6T_Zj$uPqH._-^nCi.1E;,/Gh@"C4E[0?j(YlYlaQK?$11;]cg0ro%+%go:VcGfSC;]*bfoM#/Q41u.!j+YA[J$t;N><.D4D7-g-g9t_gh^X2nlRu7q)1oZHKMPJqB[SrXM8D)==O;[,lM#"T^iP3&l;"6^i.C^jR5!\#fLdWsDY'St:mEs5R>d^">4MK*U-i_"d8;Etd&D.d$*Sg;2g.(N_;%^^6AG"CV97=]>[UB;AJ@H4f$q,[uM2(O.k)rp:4V_-+JDoTVmN9rhLG2:^:+#%/JT6]KaV6P6)N&]Fr4)fh8)RA&Yo/+L(o/gqGnUkc)9as_o3\4tRnQ&K<''kQ*?LbY6/%/4DSQH.X[$VdB='>1?nN6:b]=V'_VoV%>Y\]6N&HVrolSeb%[`A*ol/,+c7EFm39;JWDnL=92dof\0]9OtK*AB_<5#pq(3_VS+dF7L@Mb\p/j"I;d(BDI*g1GF7"&`TcSI_@IA=K^(&In0_=:V^8*g'9.O[HX5X;TDDU[2bD+p2L*\#hB(W[Pg?e;-Q]08C/n"4-JUPo46j*hNgBA?JTe?=ZatF7-D?kh8I6GA2BZ_P_lanri4P9[7E=5#p*[PWVPf!9*JQH)rKL;IW$5oU>`C/dXH,qZ-c$c-U.l%QjuWYYh"pLd[JE`nssUB0=u4VSrR?%g(5+$R@A1if/p*\/-IQDcPiiY,2B_=aO+g"KN;RQ^")ZUZ0Q`%VsR1P?65f)jbT%4A`'jV2;^6$;`>Xl8ps?J2nDiZtYB0\X$_%c<3A<.J&/mp(,(:jB/XeJ]oI,%[']eIh'&6l37RCIU(/;0'7%^>.A_h^F2<6Ula2A'XU:H]I\Q*^."cCq*,ogSAkWOGgS-IR>.i5;YIN\cj<2D8_c"s;FS*nP)BR(M0[S2Rj6AiS)PreO.+KFQ(2>`G?iN*$?)$sOpalL4n$B2$dImf";g]4:_L435:h%Z$Rs9fKldk!'XQgue^+Zco1=r4P)_GglrgUk=[EHdKC[R\`_Hqer02'k]#:H[h`o5+,9>9];S@_cUYG1u6e\pT+aJGC2!N;SM1.uL$CN.V'8EF4\2r)FLrGoUA(nUE'rHs%'t&'uQctUN14hi2TG@-.Ps:jGK2?WE'n-m%FU\n^#Rde5\][ulo+)Z?B(u~>endstream
+endobj
+15 0 obj
+<<
+/Filter [ /ASCII85Decode /FlateDecode ] /Length 2126
+>>
+stream
+Gb!;dgJZcs&:N^l]):W*Yco`Q4ttB_F)=@gE(\uUE,>1_Ui_P8@$(O=`Gmj(3;"-l06CUe#2`09/#1NO&LR),<5PZK-.mB!e03!0Y2e\UP"%+r9DC1hs1f*Tb%)fi!k"gLsFE&?2(e!*n1t:c9eaVIK7'S4Q6PCi&L"Q(Cn%80E?#.g5jC4^\3V68BGI?gN5WeDuAYUG;,K'kRW$VGC"*Y$%9#?qZHlT>u6"<1%%7_IPjLBkGPOPbpPVcL*KA(-O+UVk0U^HJj(2G\L\.]qj>cIb2j>-91N?`/SB]B^NsPY-?g4/jJGIE>%7jtYZ+6$aklLk&4UT)_k:5jot[4bYSKkn7pj-Um_(GE>@t>UCLdW2&oUL"A_C)og9=rtAkYrKmO)X"Smf9^R*e]+'<9A\(OT*7WEj8"$X("@Hei'RYOg+Q_P!4'jM*4\)e/Sf&3cF=$oC5jA5hD!mMHU5cgmIBM^%It>0Sc[TJD*KPKEUONoT$+!pBkH;]J;6)"i56NlN4I#O;V`kHr"Ll+f>"PR_&pL9XP_TH67N'f.O6TXnnC.kV7ciKV]t2sVETr9f!*r6gAfTDRpo\KhZT:S4^QId,5j'FU2CHh]n0nJk:2SLY..m9K,`F7:cjKK&B!gV_n;^5'=R+t58ilMndZ*@dNP8O4XCD?L`e?1P,3hR\H/8G],Q+3I:M.h@?&m]cLfK$KiNu9;JV!0#1%Mgg;+.p']dQBkEQD:LJr7tH:QE]A7"W&@I3`U/peFK"]6ZB2n^m\PhD*&/qYR:p4f4L?Vel>/I[9q)>Z@gHk:@(UIW;K;%fPi,,+a##/bf!3:<*nkMN4omAbHa(*7+`$=%)'^Ci,po*D2JYpC!B51h7-e/_JXJa`[@iriSa)Km,kGuC"UusNF!M:QEF-F2,5`X=tAET3X*Wa3*G9phj+[r\6^$51:@!HX>FN7G(1n9]5PH,4Z-eT)]&s]6;KjN"W$D&dH;^`]3'X5-g(4h4oQfrs@bljkkb9EmmXHlEq7,e_&u$m&mGLh8f`"aATCM/6QkDV8(d(dr0-L36Ku-IfO;3Kp2EleX1jT,!*?Op@Md#.AACE)bh>U(/$n[nAde*VRKhee4AE=iJQe4k`T8Ni4H_We?DmCb2&UogP!/A6A-`(^oS=)-8WPr7DDb%U87dP+8u[bWnp#8+eR$L1rtBF[$u8P8-p25N^K8Q[`B!o$1%,>M<@DqquUA![r8mN?'j'6ri=\_g\J\PAD/024dh^K?eqG.M!=(ktBpXdXrlnQ7H1rsjRUrU7R2)$]IJp.tBtWYIg]b.d@[IdbgB>@4?uB\=aF?KCm,1*MYSZ*eYlVAh"40POPjL1GpfXpq)\&Ej4OJ>iK_I+^#Ur99Jmendstream
+endobj
+16 0 obj
+<<
+/Filter [ /ASCII85Decode /FlateDecode ] /Length 2205
+>>
+stream
+GauHL?$"c/&q/*0f[8IZq:;62MY_:(3c4_Ueub.5'2A%l(Pm`X80l!6TU#<(hm4FS/!f6MnX[\)V',kKEVAbP!s[iH-ZFRqSEQk2?+^Lm#\h#I+S$_F?dl4MBE((%g6%TGRp:]7!DQ&tD`7;6ben9k%!Kt6X;nQlm_u5g!hZ+IL$emqV;X'sAhVGC^2B6X",9e.3g&.E<_E9%Q>Z2k.f'W^jN>n[1_0:^PL=QNes_KEXCZ32pSdn;3Rkh6F"CQ\3YcNdj*73nSj*N/1MhL:Gjt05Bk9cRC_!q)^oh7fo,#;KM,B\FZ/kB`W<*mWScSRZ4b*&$SaY]9o#F:Qfpc+S#k?d<5#]L`o/VQa[B*SSBq/`-TGMQ[bmR@[m$aCk3/[VH:d-)5F:kF\>OWU^7Xu^;+*j4SO[/^bg`725o/Vk\FH+3$HOl>P,r'ZFt@LjRV]M6@*X$:RTn_KGIuUV;DkQp"X47VTMlT7%E2T,e.*LonY([=X)a,d5'It?!0*TbaI5.E[*kUqH]DA;RnXW2ITYC=*SQP*8+"sK#6aSWW*)]HLJp"W=\`n4PW@,`p1^4W'%B0^&X<1HLs\7p"1M'nam4co4WYm`$=5P`Y;AjSMW+KJF8OSk`/;D`WrS2M?6(iZ$Xlp>Y.R=JT(PRdHm:]A(S6pOI7)HdL8S1_.,'-fHm#P;es+UJ&OOq5%9M%sS[[V^I*:"l;3EB#3>-O/!;7rp[a>mWbmDm[/5i:aLd(ocA3q'g7@#*)@X&V7lK2fHRq4Q55Gr=]X`g_CBLq#q*T>T%qeR7a\sU>j-[BH@fYW1RJQ8D3[jEc9tYu()m8u%33+`]D+k8)`"IH-BVnP.C.*SX+MI50_S#k#.:M:V5WGYFK[A:E`l\t'T]>2rtuW^aRV_X9C*YgK9,-_X[+QkG*o..LrmW5DVM0i?oAE.I)Pe2qIG-Of92!H*I`l.k2#3"f*W/k$j2Hm"DG<]Pd*1]$<(PRd6%$)52+ob4a/&VENp9p:fYE6=K&L$Mc;,@S4odG*#4sS7ac9sh`\?bJWm'*HDbTRM=OUIT<+co@mLet;g'd*pGrGHU$GYmi"^NWaJ,J9@WRDr`XbNR[aq5pGAud^4'%`Ni6gd5oq`sM'VZQ9p^BPdA@gG/g;GuqIDpa6q[C16WWc`V5HJG^ISb[Ek^8`dm;q`>^6[,^"c!TqCLkQ(:=N[aL=$%%8M()`L2d#.,98jeYi&Yl=aCqP0RK_jiMtOk/SGH$tiAHK%)!($OUgi3YS`OkD\;CBEYnplMu?Wn84b7^k/)I^qXoG;J0(YUEEgil>\Be6I^FJ'96X0t]_mmEVuK907f)=Xpl>XRlA,Tommod>&=g@L*X9ag;]p1to;nQJYTMo?tbT(-RcN-Vm&=Jn>t9`h6%)L'O5C&JF@V3EjD)a-=[R>)W"721s=-Cdc=llU5Q5[,'^6[T'^[roD/C8$*ff*Vii2cneoc"WG7Le(-tA"NaVq&FctHrT:2,.6pDu!Mg3<2]gNP]O6%`VS?%%'&NB8a(\0F;ZeTuUL_4]/+F/@/fmT+Wm!mf#eNE~>endstream
+endobj
+17 0 obj
+<<
+/Filter [ /ASCII85Decode /FlateDecode ] /Length 1134
+>>
+stream
+GatU1a`?,q&A@B[\oL\((+hjXIEO06c'0T@7'&E1!eDq\&dWGAd'?rCNBCK_'`dkh'AWMh;SR75A5G%(p]@?=8YIEdCRa6/m5_OsVkm!>pL74#6*(;'lQDa`qM:-.)dcs,L9!IaN0SrIj-s?*kQ@9^748Fu%6nh6$efr-;?E2W.A,`r\ZeL\/*.kpN7X'!Z`jfab<3cfA1>H"dhc#P"'G.EP_nD;H8?,%qXK73uUM_0OBa;)p2)f5_0hS?^&K4u/sT8P&d4(H%5VU5TIM&&]`T[ZEu;V@dY/2ro))Q^$e>1.;]'>IiXa+]n0ARRD8Hrm!j]GEoD"Qq;cFA;;6h^Dk>QO7dda"ZqUbP6B1FB(u@V,hP*WJPK&,JPku$Q0F4IQ#(i'r*Y]C;$;n'`)T&WA2=4:iRDVr#@I[D-ch8r0LW>'46L5T_5dk4t1]&po$8>WUVqW#;LdFjZD):d*T.'NOFDAN5\.\X,"]("eQ3@86Q=9cGeCrSL6H49IgE7kKs?2)[dSB1RT7Mm0tU>@Z3p']a_Bs3tujM[&3ULk;9q@ha:nlFW]l#pd54Fgpe[$(O^H?cVG1^TP_O),Zsj"`Pdk6qrP`6$fTiK*E5g6l#%fK-D.p9Bcfc[gdc?XAprS(UXK9Ai^GTLqH8@Q3sbb'UE/;N-`dWQNj9>M7BB^]7!RFmV-V8b&%;[jE.l,s"G/K,c9:ggkPh!@Wo)8'NYicH$qmG2JaB)MPqZcd@G.ZN'>I^')\6!#Per$KoB*&g#.g^^XY"*u+8Q'ef$Q=ZE^=8k7g/+rRQ&J)=%oUY>GB<%`09&\)8!e=%nLI-cu<_.C'?&s/W!8G?5@sIN%0hFRuN^o4I-bmKSk()>BqlP.LQ.[<0UX'J=tnG>31:sNf!umlBUF>5?g3C[e9p^F9c],JfAsaVLY1@f\o@R["(ZBJ."ti6f#Mc=8artAogQe3%\;o[-ld5cOVB&!>N"bR/~>endstream
+endobj
+xref
+0 18
+0000000000 65535 f
+0000000061 00000 n
+0000000132 00000 n
+0000000239 00000 n
+0000000351 00000 n
+0000000456 00000 n
+0000000661 00000 n
+0000000738 00000 n
+0000000853 00000 n
+0000001058 00000 n
+0000001263 00000 n
+0000001469 00000 n
+0000001539 00000 n
+0000001834 00000 n
+0000001913 00000 n
+0000003725 00000 n
+0000005943 00000 n
+0000008240 00000 n
+trailer
+<<
+/ID
+[]
+% ReportLab generated PDF document -- digest (opensource)
+
+/Info 12 0 R
+/Root 11 0 R
+/Size 18
+>>
+startxref
+9466
+%%EOF
diff --git a/Les03-Cursor-Basics/Les03-Hands-On-Opdracht.pdf b/Les03-Cursor-Basics/Les03-Hands-On-Opdracht.pdf
deleted file mode 100644
index 8940d3b..0000000
--- a/Les03-Cursor-Basics/Les03-Hands-On-Opdracht.pdf
+++ /dev/null
@@ -1,231 +0,0 @@
-%PDF-1.4
-% ReportLab Generated PDF document (opensource)
-1 0 obj
-<<
-/F1 2 0 R /F2 3 0 R /F3 4 0 R /F4 5 0 R /F5 6 0 R /F6 9 0 R
->>
-endobj
-2 0 obj
-<<
-/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font
->>
-endobj
-3 0 obj
-<<
-/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font
->>
-endobj
-4 0 obj
-<<
-/BaseFont /Helvetica-Oblique /Encoding /WinAnsiEncoding /Name /F3 /Subtype /Type1 /Type /Font
->>
-endobj
-5 0 obj
-<<
-/BaseFont /ZapfDingbats /Name /F4 /Subtype /Type1 /Type /Font
->>
-endobj
-6 0 obj
-<<
-/BaseFont /Courier /Encoding /WinAnsiEncoding /Name /F5 /Subtype /Type1 /Type /Font
->>
-endobj
-7 0 obj
-<<
-/Contents 19 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 18 0 R /Resources <<
-/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
->> /Rotate 0 /Trans <<
-
->>
- /Type /Page
->>
-endobj
-8 0 obj
-<<
-/Contents 20 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 18 0 R /Resources <<
-/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
->> /Rotate 0 /Trans <<
-
->>
- /Type /Page
->>
-endobj
-9 0 obj
-<<
-/BaseFont /Symbol /Name /F6 /Subtype /Type1 /Type /Font
->>
-endobj
-10 0 obj
-<<
-/Contents 21 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 18 0 R /Resources <<
-/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
->> /Rotate 0 /Trans <<
-
->>
- /Type /Page
->>
-endobj
-11 0 obj
-<<
-/Contents 22 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 18 0 R /Resources <<
-/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
->> /Rotate 0 /Trans <<
-
->>
- /Type /Page
->>
-endobj
-12 0 obj
-<<
-/Contents 23 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 18 0 R /Resources <<
-/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
->> /Rotate 0 /Trans <<
-
->>
- /Type /Page
->>
-endobj
-13 0 obj
-<<
-/Contents 24 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 18 0 R /Resources <<
-/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
->> /Rotate 0 /Trans <<
-
->>
- /Type /Page
->>
-endobj
-14 0 obj
-<<
-/Contents 25 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 18 0 R /Resources <<
-/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
->> /Rotate 0 /Trans <<
-
->>
- /Type /Page
->>
-endobj
-15 0 obj
-<<
-/Contents 26 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 18 0 R /Resources <<
-/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
->> /Rotate 0 /Trans <<
-
->>
- /Type /Page
->>
-endobj
-16 0 obj
-<<
-/PageMode /UseNone /Pages 18 0 R /Type /Catalog
->>
-endobj
-17 0 obj
-<<
-/Author (\(anonymous\)) /CreationDate (D:20260224202513+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260224202513+00'00') /Producer (ReportLab PDF Library - \(opensource\))
- /Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False
->>
-endobj
-18 0 obj
-<<
-/Count 8 /Kids [ 7 0 R 8 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R ] /Type /Pages
->>
-endobj
-19 0 obj
-<<
-/Filter [ /ASCII85Decode /FlateDecode ] /Length 1236
->>
-stream
-Gau0Bd;mr#'Rf-pm_7(d&X"]e&oU?"h53h9d^n0L5HGZ#@KJHm@FFE,o\4_(C^1'>Ubb)CK!Fa/mQ'Iq8.6nq=RgmR!&tL^s-<]G&:=L*Lk&k=QU0f>_obNHM5N<>[gn"ma*q'p%W$P#d(TiJT1#baab4G"Kmn^41HQ:X6:u<(0CVCY$D>n&JcK,1"8aH!PnoM6^r]eJ9OjGaa5rQgajgU1qm>1Jm\f!CZmY9Z2D4d,q@/rp4R15TR9q(^Arl<5k'<'K#IcmURLu3=!`OkFSu=u$T=U1"I<1OZf;cOlj>Ar=e96?eQA8sX]VB]6o27Z"XR]na$#NUWQ#O-OfikH/86Rf%RDA-+;Ol)LQ!C7$8Mur?6aK&'\,J$"u/tQCG&6?7DI2^UlB8#_S%N:D33h#>ndDN$aho,d,L6`U&.>pkC\A=kNTT4MCm77ZP3"S2V#3C_8&Br!f0/ku2IUp^bO*HAWlKOY6Ckpg>2q2IGS8/Y49XY?flK@0Ig_#Wu7+dr4P3M5RbM[=!0M1('Wch`%[LatoOnC4mNjdZ@%_<_MZriqX9'guukM0XZ5^M<*/b7$mae8VQab*4tmk6_3N]u109q5ri`XiD@i_^Q;C1VIK>[bEM7\"[WS,,C^p86*AnYJC*;G"X,DK\]qI036d(pO@AJ%U\T0\Hd]^`+Q)M5d!gErn+485D40gp6-Y+8'qE@KUK@;@UTj#!ImfgYZ[J)IL:WV:40)9Q_i7a8aAZ@Y!Y,dg1=u-7D:K3opI"fh*d4X*`C#LdDASJiCUoVMkVX(bZ:b\o?igO<4V!^8^6Q_&&ZMrS#&f8%[E=;co!h\L`JeitJGFLeLm,PdMc]9mtF7\`X[T$FUpl4W;9,[ai>7U4L>s'&bYYnjI94B]S`J0S6NW-r#)\]S[()CK%iW&NU,*',CsUgSWcU%0A'$BMH<:fThOIFm1.URMsTR-0tR2X$JqUXRud%.#.&T#)bokD!k))JFFF4ST=9C~>endstream
-endobj
-20 0 obj
-<<
-/Filter [ /ASCII85Decode /FlateDecode ] /Length 1186
->>
-stream
-Gau0BgMYb*&:O:SbQ<33".84VP[Ck)_qAQZYS14mYWuO%17bA*,t1k'G/&K]ZL%?ib=.$`O\$%aGK8-j*@&@A$4XL?W5#gGAS8e@bV^hpSRI)UNU!5I6$JR9ulWhFZNV81n^.1B&\*A\"UL"So\Y0fEZ?[!X('b">G&BrrK,4&Vcn/Z&V3)ePOYGRnR5hs^GJ'`WL%rhnq)OKn9p]A9c,Bd/)fH\E?@>6L,mbg-+lh..kX]?&)2Ep0j8Jq-H82Zjti+AX:6.,&%OZ7#3WMn9&Z-sC:FePKVX8M:I3$\Q5#bYGh>QgCgLC#8\WnoHH:Qi-T>]6o^teB>+XhQ*$hq[f,G%=pM'bN4MBdAiQ,;<#N'SaM2F8GIm4ie:(<=jnV/F\m1]K(MkcjaC8&pC4db$CBd:QU]Ut%JMP&6UN0BSfSO.f]BnEtE)<]uPIS_PU_-RgQ(T)1\UG=@62ZV^uORmFpC<&?E5NXtbZffaP%59_%i(U9!LO;82Z_E+,M8KLEk[$(XqknDNI=%'M1AC83::NA`je\n+duh[Q1;7(EX2h^Y;4X]b$4C'c[DhCN=;\@FlKoX&O-3lH)UG+%:*%g4%$a>Y=dFqtlb[#4595X$.L%E.=-78>Q;MNupp\=N0If5aNE/'kIOr[TfBjnf'IJmoU?i1Yl"O>(lWqCTP2TVZJ4S0qTkoVG"P_+D]h5J#A>Ui(Ip)P"[OuK+LqO8nZ@Ea\7+p?^*^7MVptJ@sguCe;WV8Fn8XLm8!%qRe&?aF9PKJ#+L(!aP$@f1LH&4PT2=W]87NEJu>lf)V@a0mOClXm#o^GL4qh$r&GNs_8\TZN5/TsH^:IG.sd/WudF?N$Y4kL5iPZa<0m`#d%=qCDNq:e#sR2Imm7!&GVU1)Il+gNrq"T`0HLY38Cio,VB9)jDO/&+f=endstream
-endobj
-21 0 obj
-<<
-/Filter [ /ASCII85Decode /FlateDecode ] /Length 1317
->>
-stream
-GauHJ?!$#V&:N_Ce@snC[f)c8[i&5u3NJf?G(&ISKM2ZnqeXF?4s!8g+&5%DAfKJR#!8-gm,2!dBtfZ$ke6tjl^'8$"B.h(`L^L_&XYs7koD(Xp69X+3N'RU1Ql\)W?kdtrWBIEA_($c:-hT-G?X,&3Do1$*D8@N]"e,9QV"CSmJ1-:^YZD!)cs-E6ND%g3`l?^XRochFXZP)?=1YB/D1FDUfi;`M*TnpPCs:9([,eq^KHDOum3.-[P!12F'UH;7-3I0n),rMOZM0bc-kf+r*[,3j)uD9$_Oi/2V(j9XGZ@di=ftYunM,ks,*Dgho;UW!f]d>aC^XmFG?Y4B7g5(;P/,MuD%l]aXZs%$qYS5^d!\mU%8r`]nI[e`!EJ:+dE]:?SQH5X[=J6D8\nU>&lo8(`ji,s*'9pAIPJFm1g;"oP#JRh"I)Yb$"GFcl1,+p&)-_*d>Npr`!0`0:4AudG0B5+T]Oh9s(jc3ZXVH9lW8f225j3TMT4^S81O1qdmDE;WrJPN[m%E]Chr0ZXn9G7e&RGXLdP+!Uc;ZFbPgt\3rA:_Rd$%T3J!C-.?2.^P1#357493h6sQuQ@X"V(l/c;n(aP<=b$M">2?B-srbh>b)L?W=.\6SgT2MPr#b>aN`uTN]SK$(Msi<"A;Rs"$_N:0kDfh'+h3/6_$WWKUBV3Q9p[Ya#6rHibPCNlHNoYA7&ERmXER_P9K`d"f"6CW\."&dQS"k8`&Z/o,=*LIpFi-!M(W[f(X>Ol#RYMUb(FGZ!0[J"Nf!-sYh`a/^JdT@3ja5,1qS`KWoJQB=_EI8_>e'f5iMUn@Us<$uQPIA+^mY0DfbAec*1WW2rjj"r+,7R,\f8KA0eD6oA$`>3b]EYi>$7L(MJbqZN?'[G*aRNWFJL+IgemC_3-Wk0S@0j=![9aaf=s2HbRr@/aQqm/eOKHGO"I6upGCVm,@g[lq"5!4$%*]jI05,Ljje$h3Xef>SI0R\qi'_W8mU&GHg;%ZD:3n"P,e=IJW`j,Y^QiC!guPXkO*"E)J(TPVI^J!D'V:brUV&To=:i04OMUMQWMQsaW_9JjO!c?UaG2e~>endstream
-endobj
-22 0 obj
-<<
-/Filter [ /ASCII85Decode /FlateDecode ] /Length 1397
->>
-stream
-GauHKhbW8l&:WfGR+nOE$Z>>+7oJRm30q6H$d3QYHd\lH+`Z7%)i#[Bp:n@^P(kl3lPX-u)apEj]!mZCMLBH8S`'LD.k(7'"Gf"OL&'`&eV5$-q*d=TaJ4TQ7OH0oMo]$De.>cAu$HICTCD_I^+@7g!I3;3C55Il>MTWL;QhWRa(oiOqu08TFDS2m]Rg1IE&kF'Y"6PT#E1b]WbP[:&LO_S*tX6hPf>"C6>lQ&L:d>mqJ^QGl>*'!;+@Q(2L/;6Qk(JA-gAoR`9jDa4QsT*^`OW#JR/Gr"eei`X^LZQ/F4lp=U-PGU0ZIdYMPIT9BbXpI*UpLd+PSYBpha]STd2B8G1jcm9_.'r-+6#k,&H(*]fK?5Y70EdCsMbnum):'1/%TdW90@G9:kg&O<2Oo+cX/!W!8-n^e5G=#CM'>9g!-&\dC,&_VE#FE)TJ:A%.bs6d9M>djRh;%473;-VJYKn9O-IU>WT%Llf=TNYN,sW.?7)M?*^MNqD6Cm((ajL?0Ue4ea'!,(o\t-7SA=O)/5:GDJLL"b7ImB##a=LOP/^=_^SXR`?@(0uUW3r3("B)-&;E(#0[';q37\l)Mq>3-W:S%`X^#@!$KokN^?asFg_E@@/J7"3OM"bi\3PV>FBcn/="MRBb4pJYA"oSHRk1`rhk$4a,[+9/P:4l4mPO$cg,m1aSqm\H9b^>MVC2\Pj#CtTfd6E#U>`7=5O/KP9@NPZiJML&G#p]+*Aa=7./!_kN%$B\!a$UR*WV$r0#1*+NZa_"Z@X\85c@n^SBMg!Sl1=%)J.1>(pDR4N.=1B3'fF>]H2&M,O?(p4,`gg@nQ6Y-=;\&BNZa>^,'ZDtF_EfcCTf@Y-O3$6P[&R@@GEW&f#7\!ca^qH:jh[n88,p)3a9S^u%W%a[A[RR\r\c4!PdU5B0C[S7>G@T6#Y)olbcoW4V6\"ABcX8"%jftGH:Ph$^45,m,f_fB?o'2N*2">!Ou6^pM,X)Q8>(1#$ZPWI.88d]paS__Mf[XoeWTn0lK:0T2.Ko['4[p4i/_iIU`o4RCiJl.B4%\"~>endstream
-endobj
-23 0 obj
-<<
-/Filter [ /ASCII85Decode /FlateDecode ] /Length 1209
->>
-stream
-Gau0B9lo;R&A@ZcHKR\.M6LMn[SsSh$k&>"11;s"RM-LV.)`s1Lb4e3r;(8]0d"4s%U5r"\@^;VpXJID"U>9u4d4P!cek:p%Q6IHS?jqG7,lqX"/o0;3do3I$^U2?@Xg\W[b(']IFa(WO3d*;l0o?:EUW^h"E%dmagCt8)8t(%!@+=W/Co0j*^ka]e*>RjNY"CK24+l`7U9?K#qn97j^`ug']I?l)r*$iM/)(ArmKVDdn4L&EC$1C^es;RmUKjQPEQ<`8Q6#prZ/Yo*6.9)!^/=f]/Uk%,7"e][c]IfQ[6G1Vq/Vi8Ed=?;nuN=_SoYsh[pW!DO5VM(PIH=-K*[.@BMbB7Ak=q2=aj\6UDlC=kCO\"2844n9t"75#Jo3A)stu#D1oK'C>&?Zh;gKCpjEe"kA19X6@J7]\*);`3F09?$P#:]`=ofEajWe78=37\kWQKQUk+>q@P)&4NA#S)X5\Ce?Y@OIG,S@L_"OVO.pX+'O"a7/pXZ>[/>8Y.&c.Bk\;GQZi&0uXI"b-Q[4bBh';WN_&6%3-![?jK9L:&orWbP&fAKl&)eE/V]2(j5'4V2-fC&.cVnYe"uQSUendstream
-endobj
-24 0 obj
-<<
-/Filter [ /ASCII85Decode /FlateDecode ] /Length 1234
->>
-stream
-Gau`RD/\-!&H9tYQrO%BZsr'D[2nLRV3E7(8P#d5pOs+]ZN2H3-%+_PmQd;[AN,9cn)gJdSjN2TiB-@Lru,@'Hor`,i`GMPeb5>a>?WOjX-Ln_o'B6u[tIod4hD7EmnQbIfjL!Oig`F7jU9!4Bn`:UP".iHAK[47W<+')lhLVRL"`YK7r[>%,gKgX*Wt*=?XarP$@YYTU4+`2aNWg,2!=A*Kj:N:2)%_Dn>M+fJ]FF3@1o-lfphpqE0!i\dp6Z1Bi*QFPgBN1\&`%^XCmp;2oFT1>fQS>0g`tt#'9p),+J#HBG#L-o)cI\MXYn.5A%jEbC41u:FdH['Z6t[*^:sq7;AE9KIP8Q'VeeNiBq471t'.$E\_3&g*2s6BQLR8'pPAU.HIH*"@N]W"[h`Vo0T_+$jVc8]e3qZ7JOFsV]V.DS-dmH@0sZ'K5uXS&D:^/Q7'Y$K4d'a`n$UT/30oaP:nZpm^ub'%.#3Wa-*L"a+Rjh&EsC2GSETRG@)J%k5kDaW:Qg1IEpU8rT\nq2&Y4!`l$;o_MmPhUdFiaoE5d_!SV)AM`B;&gu,lt3Q;Hi17_mrSDgMO^lq6u?4*7bfu`/oDt6guf1)nLD8l*c&smp/(@a1s-(kn]7jWTeNjX>Zg"p5&_XgIAM="Z;Q31cHLWb,sm!^tJG!1L:j2[29MKUqH=UL]S2X$<&Q@Hf?#s?6-kR:VAMCm_dq"u!klQ4*CeKt#$<_?[eJ.&.l5RU1c8lG:#6=,p^IXH%3%/'"Z1_aXT~>endstream
-endobj
-25 0 obj
-<<
-/Filter [ /ASCII85Decode /FlateDecode ] /Length 941
->>
-stream
-Gaua=?#u_o'Sc)T'k_l)GK6'R&qW(@['d6C[U!OL]V-/W"_%Merqnn[ldW'I]lA4_JI*LAo=g!$&dB%'1d%.G^2FRU_bO%RK*N>/lCkrO\-JI=7M1(D_$jfF,T-DV0*8a7`@Li'/4*2:0NM%^.3-&=1hYK/;>o4f<\*B<:$%Bhfs(,4-TZ!+u==Vj+\KCap+Eu=,MJh6JV;]%)oo\IZdFIU3>h_ZW_hmhg:5EBHkD7Q$Wq=/E*K;qbX`8YS,:pn/ShPAE#njYsAuh0sPJQef^Mh9XL%NhAPF_BFkYpRiKrD#9hD[-[b3G?+I!/@=Ih.GHfL::obT.%`_>_B@:m='0$GTu-qD3Y-l-eAN"kF91XkXYqGVHH0X1>%bCfi:f!aj1KeWs-T2q42OY^,)Ba2ZUlaGMa9N^-4*>jC`R:!37FkP/6chb9n[g`_2]!#.nZQ^#\(Rh1H2\5-`8q?7hKF)8^Of_SZL$aYH;KL%^ZH-pU[V6ti6J+Su9N=+uW&f!=KB]cTaZAq%nQ9=Hq[Eam`O/'Vt1g%)kZ3RF<@bj*Cl1e`FDBWC%f>7ST>N:*)9,q&6hPH%_^,^"m]A-'b9Phoe2CJ`0Q&3AX3V/P5K9T(mPFHf-)gun'V3:sapUb77G?I3#ds4WgDi]iendstream
-endobj
-26 0 obj
-<<
-/Filter [ /ASCII85Decode /FlateDecode ] /Length 1266
->>
-stream
-Gb!#[D/\/e&H88.E@?RYCD!#28;bR!2G9C0=hU]dL&hH9-)>`ZCP[r*YR\U@E#6?`Yj4ukBcU76@JE"Q5h_5(UmDJQ*"3/0L!u"(QIg]?Wg#k0BY#LiLMK<`j8$pbU\tPD?epMIl!SA`r#!]qK*#Pg7Vi!W3`ld#aXSf;)n?7j`oJGAYo+[4WLT[8s/kqRZo!&C8pH185?F^1$cl?[el@ec9;XulAlX`ci!t_If$IAeqQ&P3BVrJg*`KbWO6c?1EB-MF6M%P?M!9e'_H0lT;8\"*.=22J@]t4(N5$ZG%r6(`1%m)Wj,3GIeW(RZo-OKC/QJb>Mf5@@ASt\1Z+I"!P1CqbOd8iXt,s0eTrs:DL'pI]g`to3YE@gApQ3/KBq=181qi:Sl,5!4V/DCIHbmb/jI88gdpP1\8$.uFOK%.7R6!&pA?$RoZWrG:.ej/?osZbhS.4CJT<\J'[\'>p*Q%RDeIEJA@_.u8M81h_LMJ(FS]%muiWHWU:@WN,(PFR.eu:%+ptb=B^ib`.`VD'=fdb-sn@i^&f\ar&^4GTd@>aPendstream
-endobj
-xref
-0 27
-0000000000 65535 f
-0000000061 00000 n
-0000000142 00000 n
-0000000249 00000 n
-0000000361 00000 n
-0000000476 00000 n
-0000000559 00000 n
-0000000664 00000 n
-0000000869 00000 n
-0000001074 00000 n
-0000001151 00000 n
-0000001357 00000 n
-0000001563 00000 n
-0000001769 00000 n
-0000001975 00000 n
-0000002181 00000 n
-0000002387 00000 n
-0000002457 00000 n
-0000002738 00000 n
-0000002846 00000 n
-0000004174 00000 n
-0000005452 00000 n
-0000006861 00000 n
-0000008350 00000 n
-0000009651 00000 n
-0000010977 00000 n
-0000012009 00000 n
-trailer
-<<
-/ID
-[]
-% ReportLab generated PDF document -- digest (opensource)
-
-/Info 17 0 R
-/Root 16 0 R
-/Size 27
->>
-startxref
-13367
-%%EOF
diff --git a/Les03-Cursor-Basics/Les03-Huiswerk.md b/Les03-Cursor-Basics/Les03-Huiswerk.md
deleted file mode 100644
index d325a14..0000000
--- a/Les03-Cursor-Basics/Les03-Huiswerk.md
+++ /dev/null
@@ -1,375 +0,0 @@
-# Les 3: Cursor Basics - Huiswerkopdracht (Homework - DEBUG CHALLENGE)
-
-**Deadline:** Vóór Les 4
-
-**Type:** Debug Challenge - Je krijgt een kapot Next.js project en moet het repareren met Cursor.
-
----
-
-## Introductie
-
-Dit huiswerk is anders dan gewoon code schrijven. Je krijgt een **intentioneel kapot** Next.js project dat je met Cursor moet debuggen.
-
-Je leert:
-- Errors opsporen met Cursor
-- De Terminal gebruiken voor error messages
-- Inline styles naar Tailwind CSS converteren
-- Missing imports en dependencies vinden
-- ESLint warnings beheren
-
-**Geschatte tijd:** 1.5-2 uur
-
----
-
-## Stap 0: Download het Zip-bestand
-
-Download `les3-debug-challenge.zip` van Teams.
-
-Unzip het bestand:
-```bash
-unzip les3-debug-challenge.zip
-cd les3-debug-challenge
-```
-
-Open het in Cursor:
-```bash
-cursor .
-```
-
----
-
-## Wat je tegenkomt
-
-Het project `les3-debug-challenge` bevat deze INTENTIONELE ERRORS:
-
-### Error Type 1: Missing Dependencies
-
-**Wat:** `lucide-react` wordt gebruikt in `components/HeroIcon.tsx`, maar staat niet in `package.json`.
-
-**Hoe te vinden:**
-- Open Terminal in Cursor (Ctrl+`)
-- Run: `npm run dev`
-- Je ziet: `Error: Module not found: lucide-react`
-
-**Hoe te fixen:**
-```bash
-npm install lucide-react
-```
-
-### Error Type 2: Syntax Errors (typos, missing closing tags)
-
-**Wat:** Een component heeft een vergeten closing JSX tag of import typo.
-
-**Bijv. in `app/page.tsx`:**
-```tsx
-
-```
-
-Of in imports:
-```tsx
-import { Button } from '@/componenst/Button' // typo: componenst
-```
-
-**Hoe te vinden:**
-- Terminal errors: `SyntaxError` of `Cannot find module`
-- Cursor geeft rode underlines in editor
-- Gebruik Cursor Chat (Ctrl+L) om de error uit te leggen
-
-**Hoe te fixen:**
-1. Kijk naar de regel number in error
-2. Open dat bestand
-3. Controleer imports en JSX syntax
-4. Fix typos
-5. Save en test: `npm run dev`
-
-### Error Type 3: Inline Styles (moeten naar Tailwind)
-
-**Wat:** Een component gebruikt `style={{...}}` ipv Tailwind classes.
-
-**Bijv. in `components/Card.tsx`:**
-```tsx
-
- Content
-
-```
-
-**Hoe te fixen:** Gebruik Cursor **Inline Edit (Ctrl+K)**
-
-1. Open het bestand
-2. Selecteer de `style={{...}}` block
-3. Druk **Ctrl+K**
-4. Type:
-
-```
-Converteer deze inline styles naar Tailwind CSS classes.
-Verwijder de style prop en voeg className toe.
-```
-
-5. Cursor converteerd het naar:
-
-```tsx
-
- Content
-
-```
-
-6. Accept en verify
-
-**Tabel: Inline Styles → Tailwind Mapping**
-| Inline Style | Tailwind Class |
-|--------------|----------------|
-| `padding: '20px'` | `p-5` (4px × 5) |
-| `backgroundColor: '#f0f0f0'` | `bg-gray-100` |
-| `borderRadius: '8px'` | `rounded-lg` |
-| `border: '1px solid #ccc'` | `border border-gray-300` |
-| `marginBottom: '16px'` | `mb-4` |
-| `display: 'flex'` | `flex` |
-| `justifyContent: 'center'` | `justify-center` |
-
-### Error Type 4: Missing Imports
-
-**Wat:** Een component wordt gebruikt maar niet geïmporteerd.
-
-**Bijv. in `app/page.tsx`:**
-```tsx
-export default function Home() {
- return // FeatureCards is niet geïmporteerd!
-}
-```
-
-**Hoe te vinden:**
-- Cursor geeft rode underline: "Cannot find name 'FeatureCards'"
-- Terminal error bij `npm run dev`
-
-**Hoe te fixen:**
-- Voeg import bovenaan toe:
-
-```tsx
-import FeatureCards from '@/components/FeatureCards';
-```
-
-Of gebruik Cursor's **Quick Fix** (Ctrl+. op de fout).
-
----
-
-## Debug-aanpak stap-voor-stap
-
-### Stap 1: Installeer eerst alles
-
-```bash
-npm install
-```
-
-### Stap 2: Start dev server
-
-```bash
-npm run dev
-```
-
-Lees ALLE errors van boven naar beneden.
-
-### Stap 3: Fix errors één voor één
-
-**Beginnen bij:**
-1. **npm install errors** (missing packages)
-2. **Syntax errors** (ESLint, typos)
-3. **Runtime errors** (module not found, missing imports)
-4. **Styling issues** (inline styles)
-
-### Stap 4: Use Cursor Chat voor moeilijke errors
-
-Druk **Ctrl+L** en beschrijf de error:
-
-```
-Ik krijg deze error:
-Error: Cannot find module 'lucide-react'
-
-Hoe fix ik dit?
-```
-
-Cursor helpt je.
-
-### Stap 5: Verify in browser
-
-Na elke fix:
-1. Zorg dat `npm run dev` draait zonder errors
-2. Open http://localhost:3000
-3. Check visueel dat alles werkt
-4. Geen rode errors in console (F12 → Console tab)
-
----
-
-## Checklist van errors om op te lossen
-
-Zorg dat je ALLE deze punten fixt:
-
-- [ ] **npm install errors** - Alle missing dependencies geïnstalleerd
-- [ ] **Syntax errors** - Alle closing tags toegevoegd, imports gecorrigeerd
-- [ ] **Missing imports** - Alle componenten die gebruikt worden zijn geïmporteerd
-- [ ] **Inline styles** - Minimaal 3 inline styles → Tailwind conversions
-- [ ] **ESLint warnings** - Geen rode/oranje squiggly lines meer
-- [ ] **Browser console** - Geen rood errors (F12)
-- [ ] **Visual check** - Website ziet er correct uit
-
----
-
-## Tips per error-type
-
-### Voor Missing Dependencies
-
-```bash
-# Check welke packages ontbreken
-npm install
-
-# Of installeer handmatig
-npm install [package-name]
-```
-
-### Voor Syntax Errors
-
-- **Controleer imports:** `import X from '@/components/X'` (check spelling)
-- **Controleer JSX closing:** Elke `` moet ` ` hebben
-- **Controleer quotes:** Tailwind classes moeten in dubbele quotes: `className="..."`
-
-### Voor Inline Styles → Tailwind
-
-Gebruik altijd Inline Edit (Ctrl+K):
-1. Select de `style={{...}}` code
-2. Ctrl+K
-3. Type: "Convert to Tailwind classes"
-4. Accept
-
-Tailwind Cheat Sheet:
-- Padding: `p-2`, `p-4`, `p-8` (2, 4, 8 × 4px)
-- Margin: `m-2`, `mb-4`, `mt-2`
-- Background: `bg-white`, `bg-gray-100`, `bg-blue-500`
-- Border: `border`, `border-2`, `border-gray-300`
-- Radius: `rounded`, `rounded-lg`, `rounded-full`
-- Display: `flex`, `grid`, `block`
-- Colors: `text-white`, `bg-red-500`, `border-blue-300`
-
-### Voor Missing Imports
-
-Cursor's Quick Fix (Ctrl+.) werkt vaak:
-1. Klik op de rode error
-2. Druk Ctrl+.
-3. "Add import"
-
-Of manual:
-```tsx
-import ComponentNaam from '@/components/ComponentNaam';
-```
-
----
-
-## Submitting Your Work
-
-### Voor Les 4:
-
-Maak een **GitHub commit** en **push** het:
-
-```bash
-git add .
-git commit -m "fix: debug all errors and convert styles to Tailwind"
-git push
-```
-
-Post in Teams:
-1. **GitHub link** naar je debugged project
-2. **Screenshot** van je werkende website (http://localhost:3000)
-3. **Korte beschrijving:** Welke errors heb je gerepareerd?
- ```
- - Fixed missing lucide-react dependency
- - Fixed typo in import statement (componenst → components)
- - Converted 5 inline styles to Tailwind classes
- - Added missing Hero import to page.tsx
- - Verified no ESLint errors
- ```
-
-### Checklist voor inlevering
-
-- [ ] Alle npm/syntax/import errors zijn fixed
-- [ ] `npm run dev` draait zonder errors
-- [ ] http://localhost:3000 toont de website correct
-- [ ] Browser console (F12) toont geen errors
-- [ ] Minimaal 3 inline styles zijn converted naar Tailwind
-- [ ] Git commit is gemaakt
-- [ ] GitHub link gepost in Teams
-
----
-
-## Bonus: Maak je eigen component (optioneel)
-
-Na alle errors te hebben opgelost, voeg je **een eigen component** toe:
-
-Ideeën:
-- Een "Newsletter Signup" sectie
-- Een "Call to Action" button bar
-- Een "Stats" sectiie met cijfers
-- Een "Testimonials" carousel
-- Een "FAQ" sectie met accordions
-
-**Hoe:**
-1. Open Composer (Ctrl+Shift+I)
-2. Prompt:
-
-```
-Maak een [ComponentNaam] component met:
-- [beschrijving]
-- Tailwind CSS styling
-- Responsive design
-- TypeScript types
-
-Voeg het toe aan /components en importeer het in /app/page.tsx
-```
-
-3. Accept en test
-
-**Bonus punten!**
-
----
-
-## Troubleshooting Debug Errors
-
-### Error: "SyntaxError: Unexpected token"
-**Oorzaak:** Ontbrekende haakje, quote, of JSX closing tag
-**Fix:** Kijk naar de regel in de editor, controleer haakjes
-
-### Error: "Cannot find module 'X'"
-**Oorzaak:** Package niet geïnstalleerd OF typo in import
-**Fix:**
-- Check spelling in import statement
-- Of: `npm install X`
-
-### Error: "Cannot find name 'Component'"
-**Oorzaak:** Component niet geïmporteerd
-**Fix:** Voeg import toe boven het bestand
-
-### Error in Browser Console (F12)
-**Oplossing:** Zeg dit tegen Cursor Chat:
-```
-Ik zie deze error in de browser console:
-[paste de error]
-
-Wat betekent het en hoe fix ik het?
-```
-
----
-
-## Veel Succes!
-
-Je gaat leren:
-- ✅ Debuggen met Cursor
-- ✅ Terminal errors lezen
-- ✅ Inline styles naar Tailwind converteren
-- ✅ Imports en dependencies beheren
-- ✅ Website testen in browser
-
-Dit zijn essentiële vaardigheden als je echt met code werkt!
-
-**Deadline:** Vóór Les 4 🚀
diff --git a/Les03-Cursor-Basics/Les03-Huiswerk.pdf b/Les03-Cursor-Basics/Les03-Huiswerk.pdf
deleted file mode 100644
index 76ca434..0000000
--- a/Les03-Cursor-Basics/Les03-Huiswerk.pdf
+++ /dev/null
@@ -1,225 +0,0 @@
-%PDF-1.4
-% ReportLab Generated PDF document (opensource)
-1 0 obj
-<<
-/F1 2 0 R /F2 3 0 R /F3 4 0 R /F4 7 0 R /F5 13 0 R
->>
-endobj
-2 0 obj
-<<
-/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font
->>
-endobj
-3 0 obj
-<<
-/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font
->>
-endobj
-4 0 obj
-<<
-/BaseFont /Courier /Encoding /WinAnsiEncoding /Name /F3 /Subtype /Type1 /Type /Font
->>
-endobj
-5 0 obj
-<<
-/Contents 18 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 17 0 R /Resources <<
-/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
->> /Rotate 0 /Trans <<
-
->>
- /Type /Page
->>
-endobj
-6 0 obj
-<<
-/Contents 19 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 17 0 R /Resources <<
-/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
->> /Rotate 0 /Trans <<
-
->>
- /Type /Page
->>
-endobj
-7 0 obj
-<<
-/BaseFont /Symbol /Name /F4 /Subtype /Type1 /Type /Font
->>
-endobj
-8 0 obj
-<<
-/Contents 20 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 17 0 R /Resources <<
-/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
->> /Rotate 0 /Trans <<
-
->>
- /Type /Page
->>
-endobj
-9 0 obj
-<<
-/Contents 21 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 17 0 R /Resources <<
-/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
->> /Rotate 0 /Trans <<
-
->>
- /Type /Page
->>
-endobj
-10 0 obj
-<<
-/Contents 22 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 17 0 R /Resources <<
-/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
->> /Rotate 0 /Trans <<
-
->>
- /Type /Page
->>
-endobj
-11 0 obj
-<<
-/Contents 23 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 17 0 R /Resources <<
-/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
->> /Rotate 0 /Trans <<
-
->>
- /Type /Page
->>
-endobj
-12 0 obj
-<<
-/Contents 24 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 17 0 R /Resources <<
-/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
->> /Rotate 0 /Trans <<
-
->>
- /Type /Page
->>
-endobj
-13 0 obj
-<<
-/BaseFont /ZapfDingbats /Name /F5 /Subtype /Type1 /Type /Font
->>
-endobj
-14 0 obj
-<<
-/Contents 25 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 17 0 R /Resources <<
-/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
->> /Rotate 0 /Trans <<
-
->>
- /Type /Page
->>
-endobj
-15 0 obj
-<<
-/PageMode /UseNone /Pages 17 0 R /Type /Catalog
->>
-endobj
-16 0 obj
-<<
-/Author (NOVI Hogeschool Utrecht) /CreationDate (D:20260607080655+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260607080655+00'00') /Producer (ReportLab PDF Library - \(opensource\))
- /Subject (\(unspecified\)) /Title (Huiswerk) /Trapped /False
->>
-endobj
-17 0 obj
-<<
-/Count 8 /Kids [ 5 0 R 6 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 14 0 R ] /Type /Pages
->>
-endobj
-18 0 obj
-<<
-/Filter [ /ASCII85Decode /FlateDecode ] /Length 1821
->>
-stream
-Gau`T8TWWE'Ya0?]VCr6,?RJ:bcQlb`0iGrC*eX1/i8:'Zmefu.D+iJmfPLFX(A,!/ScL8]_-Uj),P^cjtiP1r&0,hk6r2_a]Djn$"5#_o_cdT.f+s0f)gU>nf;HW_8O^fC4K8"i"BZRCP8%YqY8m0Y)bV1WNlk1mEqi7F`m82p8:K0]d.EjcetC46tKD&W4O]:h)%oG7DcNPr'?6c@_/1YX1K1lC"IL758i\m.PX1DA=<2>R0Im_R/G,Fm"Phd9oA;2?#\n\NlM(iAui9nc($HS1mo:e-[E+`%Jl\<-+pS`Z?fdT6cj8h^F`/t#_/B'MgT.'e3Im]dGQDV*9P-So94)#F.&?IU>Fi$EK0,]egSDHUbQW9_!3k3@b@nfoDX,sM[rO0CRAU'M;-Cse,ksu#\#"A$/TOHYgpqOEb#\?3A\c6c`Ci_l&BZaT>(X\gq/6Z,Wj9<"i1OqZlmZFRmNX5X5sar?71#9m**6o]JXY4AiI%7N3R>k/;bA&S%i`Z;o,1ZDG5q3/BeK#__o/$ZUd\e\g>"(;\+.YQS?FLK*?Lt)oG2W)tp^*.s@!VXIDD-[ue5+F]hD)Bq:Xo,ia9jG_N^RlHRP]qE%'NoGpM(6%[K`<\R6!bfiFO=@`gY05Q0caS3];21p)olkcN#WSqGcoYeA^6K[k8Wr0GR@V4MB:GPr16ngAnR4M&Z9d5Er=E<>Vfd:$rt'ggs:C0r^7K^Mo<=M(A-)<+S.uPm09U$Jo`*&LVcTaqZ+:qu/f%D>c#0k)YGXP;4HF[Zlc'5kWgpIqf)c*,Q6K;cASSfbEf[.kG*Ba@4W-uJ"g`S2T>r-I#eoXendstream
-endobj
-19 0 obj
-<<
-/Filter [ /ASCII85Decode /FlateDecode ] /Length 1764
->>
-stream
-Gb"/'>Bedj&:WeDbZgXF=gY6[NRRU.EH1A&[2YTA*rJi;/@')sU8s"#aiT&$lll`E"p6#/H&1E%H*oa.q.<)1*;iY1Rg]=(p7Qh%JMQEuJ9&N#pDUWVepf9gHkpZ3L`8Bm`.17Yq#cnj,^;NC,8O,^SUc@o#9HbUL/A3bcNO=Y5RA8iDc%X.mfXd=&lR$drMB*2saj.MVOC7fm?/Ia?.lP:8u<8BAN,8LDRhjPap?3=V=C4kX?=7/(hiCp[a*EK^"6$ROe#05Z/BW4n!c>cD^dX!*["a-0sl.\r0;C`a$bS0We6]"D7CoGnA#=@&orFHF_"TiJ-X7r8qf[rEn=9j,P+&nD)c1&`.E\&0WD[DEf,A&u59ni)$KPgOClKX^mF\m!M"qC0k*gc1tIbQ9n`7L7lO!nRJk"]?dG2::e+On.$+J=[*9bLdX[]S-tF4L-[P[r=1AE^qgaN(%4>c/Vs7DFO^!b!.Q7kecL+IG%qc!&u`TjnSXQC=tn-Ot?Pq3A2@PI-c9QWYO*In5<'P1NZ=*u_#$O6=_5Dc%.#Tj;]-1QJ/o+E2uil(".UeWH8iZeM9uh6MHiq:(Md6=fKLOKcTl3B'>O@[-]5e[-,>gbXeCSEHpti"9=8XHBnDp/iPB#;5G@Npjb9QA@EpIT2P63NCMqjFt;43%`_^cqI8S?I75*[!D'*+t>JS&$CU'BFq[3&LnOL4KLquFn(M)'8cg$\6Wf&\nk3Z\/Xigo?6K4667Z*nS$DnRCYG[bVas(%C4<>3,uLtIEfM)A`*6Z>Cq%1Baj=Sq=1H^F#!]0Dere5#:;X30j/DRHC#3kia6!+8(Ugun/bnr[4W_PJ:T2)nBFbr)I#hiSj*%k7#6DS%a:M-)'CnKf09)m>qj1.)7)!/$f81QC)UJg/(/H.2(_q=?7j\7K`8sXLU"3l(YTXZ[L;uL]'(`^U`'S<>6e0U(P(nK:jFBVBjaF&1L6q4WgDR?_dB=*Da"(>?K:Z]bs8HcT)iOU.W(p_`gJ`APD_74Eq:oP@DVurA::21DK;#RI(*>ih0h8?Y3peL;n_poESAQ2^L]@5+O(i0oS4'Ya?biA=$kRoD"@2f..m8.*SWh@IlHc]1u?:"]+Wc!bPiDcpg/&^2pd9IVTWBk[463*>Vkb6!0oA=EbW@3*Eqeu2nji\CcC11Z9)9l=23D*ZF:>b]FAt%G:IkSnO+4LBT0=chN4g,39n_3#^`$Wh%#rG;ek5Whrhl#Mo3CA@29)oEL+AY6G(@4(g6rcoVi&6k5FP=4\I$q&+ABh69]d!,*Ip4N>abt`+:C?7E7d]J)=\WL&~>endstream
-endobj
-20 0 obj
-<<
-/Filter [ /ASCII85Decode /FlateDecode ] /Length 1892
->>
-stream
-Gb!SlD0+/q&H;*)Ylc(%[(4t]FJhf@#"!jI"U]86Q[DZ+Mk`\+<(V?cPQ0LigW=Ui4392'Bq-;fhL0SADP,as@mKS%l@4F(^oIcX^L=o;9TFZq,%:%(lqKs!NsKs?Oq&%sWUMkY:K0Q?:Ib^N/oa&B1!il3XX$H^Lt8.%Nd=;P"hB3EB-RUK\Q!8L6o2m6mO`iQ>gCa(,`_2:bPJ>j\oQ+ADX/=Sg&*$29!C3%M^g!GbY\jDAha5Rn]O,/9;eWm:=:tR5Khgb-RBaQY2JD*]J^QQ:,A(uKukc;SlH!W5c)Y[X/K2)Idk=4-79JLH*'b4Ze%$B9[[QDKF0b$o_LcU1SG=05#K1Yu:(Co)&&oa#b\"jo9G..^\K48Wi7TN\r>/iF'r\-K@&<2s)F3u3mQVNkUTA$TgMA&)g'T@AO3jq-b*ddiE\MBm011kOm!#8#4Y'\&q3iE&Ptio-E*cj"s8fa2bR`Cr11lknAYk3,'G&r3IJ7k66J$c&P>M\3fE`IFMf\'bk@%L%%&-Jg]k=KHNm+hLOD:]N?i30or?Od[JrcP7e2.?Di/$9=0[ooO8KK*KO>5h4**N\/3a0biW9B=BCeK!;?d-2d?7AI/c:#(cDGIX&t0dD<'9%oTchNFG2Q-a=ZqI=+M3&)^!RA0>;E6o.oqjYO@mgr-)BfJ!&Wmj!^YmF$4EX9plo%t/l6HIErXh6ZOe)5%:m/3?k0('94Iou'@oCK:ml/!]\R]sLt<:UMr4Y/T@f9s2*P$ikjb.p\lnWs/HHD9tCB=hp5`j8+C/TKWofB!(#rfKdk+!>K[hH?Ugr%6gbj/Z96A3bL]0tV@DMiItlc&2.W?`fn(hFT.9RbkhiM65E%=6h[AdkKQV:<(>p6%&rI80lT[W[A@,sY;"I(q1nbn=/[_=P[(:IoL-J.DNo1.K""%UhBC$o>H0oAP+D+%+.'i3Qn@Ja^`"Jq0.j;+p`=uq'9rL`lX1'gQSej[X?dIHlm3/,Q2cc@H>9*%cb,89N2]6uhUWbU;UjeCr^GMK$C5l48_J`$?-L?G8Tqd(W!K%"N'3`+/_4did`[WZj6/L,!J=0Ic1??PKU@/8Ji8\#_,dg%"BmRCTl19(enEb1UG\9r]u2-'E,@"f<21cDSWr,'2NmGZ&igV/O@RWL6[gVQ.,F][NCSQVQ/%4Qs/VYT8`MSn/E9=5YVL_\VWYYLXOSLi5'%!VCMVck^INY#ZOn2]69-[%]e&@g6+h]m57NR'j9m1,OTPf2WD/;Q08csZY69"7>Z`,m8Jf^i5=WFn/%=u)P&mRWn.-+J#Bfkd@(FoC0YI%lAJc(AI^o=*>&N/D:P*JCoq#R3#Jgk9J@Y)mS'j$Xqm\I$=I.N9c[Mg%eg01Za/FdN;)l_GC7q<$02T/O,="\#lCqZc-'S#`*6;bm0S3nA^"M1H2A(`&%eUMCkYO+ck<5#]hAa=l6q`^VA_K0NiLp:p8Q4e)b0i/$W'G\~>endstream
-endobj
-21 0 obj
-<<
-/Filter [ /ASCII85Decode /FlateDecode ] /Length 1651
->>
-stream
-Gb"/'968iG&AIa;CickO-4g0?!9nYf9q6Hk),F2_8kutE1*k>C5QrE5HTM,o?19/_Q7U/*A9s&<,XGo0mI%FoL]PIR.t:&FJ@>XET.s^n#%M$^nR-;Gmg%->LN()+k6#]+l@p9Lkh6i?M5.m'7"d[5&5Yq"l%'X)&d2VC*9To8,T$^FQOX*A"dOWD,[e=l`2!,\&Y.n0*q=pi+3q(["VtE87#_[bFuYRr%'ND$j7"?uM*oQ\!S#R/P3AYo5"B4qfj2($!8QjNEA`jZ3$,r\nYE6+hMrnB(Jm253Rk?$&F*-G*=80I7SZ&-qa_>hGq#a2$OGkhJk!6ledo.og(>%,]LX#sC'C0_F=E/$f,?Yk#q!KH(2H'_WQk!UjP2^@]C!3STlin.7M-q4c-q].6P=FZ"h61I0'>OB,'>h?9b,ci*#2$Tj$Jgt37Z+$R2YdRa7.E$:,]sK)Td_,.1@n@o"o)8oh7f!U.uqSSO*97kkALs.*b)u.Yij!]"X\;$qcrRT:TAj3SLn?h8XQqe!@2eRP@jG(`MFn,!':_W.e`*%^`PZ":mo`Nn(Q\ZIW3B^6%tdrl5/ZG(BOkpGQH,:i#-Csj1@rSAWmGZ-,`BDn)Hn]S@OmPE]\C@@.W4ISU&8+Y>j1c;K(flj/4p4OG/XBPDXEHApB,sb.LoIb,P?mkG@j4[(V731lej^9aIm9&-d,Z9BrO,,o'7+rOo=8phfB.e'Z)Y5&($N(%r=E^&>aHTi/CiVFrJGI.H;Z%ZR@7d]+;-@CX*m3(3HWT_HB"hp+[b`$Y6`(N)@&rG&R9Ed>1t0JD5!4qB]K[gG(Z=9<=u\O686K\opJO7l;XLZmXJAj:RJr\L9OC!T!W3a&G*adUX>MmFtc':;:bBf&]?nG%k=KQdumq$nm$cVsZ1?K]_lAo6F4T#WmA"o8*ZI9KX"&67O,<9;G)org^F1%#6)HT&Pi&d@CR0uXU`.qj<923:W"Ih;:d*RoS9U\"AY<$f]p[8-U$g[-e?CA5hR;K(?q0NT;R.=*B23E('1%&Z$]?KK(-Wo>;endstream
-endobj
-22 0 obj
-<<
-/Filter [ /ASCII85Decode /FlateDecode ] /Length 1859
->>
-stream
-Gb!;d=``=U&:W67fU4p*aj_"*hL9/Pa(a=KP%Lf,R7;Ip8Q^R5!=T7eZ%%1gVeA`Q&Sp0&dYJNr4[/4d-",`%']7:Hi:RWcD[?s^_^ck<@DhRC:56H#4bL>qZQ1_Nhm&1ORLQgF%aE#kBXuJ`Sg#mO+?3"VWZ]Apr%0#GA4g'\Q;mhha'=;UZm^;g#\t&*XlOLc)c7d[6JjST8HK^uBq?Wr3BfS/e=[;3#;GJsSl]CUN$UXA2tN#eU#l>[_mE.A4lY(/U>B@EB6_@;m"/2"()R)FMSh!%H_aip8C3;i1EKiCB$Vi`QtJAknSr;^WZ3i]X8k1%+[95as:.d)rN[i6>F$i,)2MEk6ZcnA019.*@_goqHuHXMEp@USWiDHlV+W^VO.#mXP\T<:Vqoi0@SWR/W.^r?2<09FI)G3a"=k`M%I5Q!$f42VAY=9an/uUMj;CFIc::"/NB0V#*u)Z\hL8Ve'lpObKG[UnIas`:#\8:iOK=XBa6kkmZ'HT]=g,;t^,R`$u2+L3k@YVFn&73[I2gh?sU2$P4)DFu"f5.2+D_3^"Ai&fHDF6tZ;:1/2hLAcr2&!n[MQXD/bJlo[=2V1=A$S537%/_&P8*VN67pp>BId*?LR?B/>Cao/1h!'.tTnjJ+6XIRW.Bf3XgS8JFA;>eel=XH8[E"e+4EB+,hJnC+c/7W.1`3^Q"/^R7s2hBtW_5joKP;8o1F.r+`0T,-I_Pfn-r-*skKUDY@aV"'U:*D2u3/%';_/.._q?=UaQ:K[qP`&51j0cd84-gr)/+cH$nLW]EY>[+j`CrZ>4a"tPSGnM`@`s,29J'p)@F9E@ZcC*?`l[V.kQY^7D#P"d\=HUcTehc)Y,_;[(b*2lFW9t0!)#3[.llM6@9sH11#b62m$h&ZP:?Ss*faF$hD[AW`]go+R?)XkTSBOG;.>*+RWb6=23#I8H5JBNDO@`U/"OgU3SKb)]U]E=BoB#t6ra2'9$be8@mdMqKbKSqeM[Z*0Yn;oIC^CK)&/anhl%F60?9eK&NHs/h5J=2eU\Y\GJBK<2)iUSZ?7\=lhRK[4V6nD\]^l_#[DZbbgWVendstream
-endobj
-23 0 obj
-<<
-/Filter [ /ASCII85Decode /FlateDecode ] /Length 1789
->>
-stream
-Gb!#]=`<%S&:XAW(uuunV5-"8dJpr1D+ClV]34UV6'T`;IWLT<'>Wm-o&!1Bn8&6j0*r0sUF?b/(l[=gMp^JK!)\B;9F%A5XB?7!V.DiQMrP;ej1u.sN\\#sVT#Glj`o0RAs4=:r[aJd`<^lU"sV?Mn*M73Ucf4nCuZN"lYk'SJ'M9T:7!A#>o#+63:Z_M()X3"H(m6W!;'<""^<0j1au"3YLCIn;/QGuTQ/@[_'JY1ffdU_CU:V5c,NOO?Zg[/?%B(g][?+sUG#$").0&b/;mWGu\Z,MVh)H_Ch-Do],=+c&N16L[<\e&b#QU1/h>=0$ReNq[]>SfAo,N`o2*]&S`8/&3lD!?@4'Y.N$)n?ErsT#::_MBlG\^)%-d:2YLA6"q]N-QH(@-pP6eU;gSN(i%5'^1MYCFf23L4jpOP7&JfBCd7I(\Yer0n1p.*j#?"^MiC3Uq.a)fB7*uakp`&lPf]D\7Hl8W7@o^?]ZVu([p)Rmo#YS4O<$^('p$;B>u'-dW%DB#XAmFW7>g90aqZh>HI4JR,4_.a,dlU/TpI:YO:Vnc%B8n1R9.+n*&I'P&XXTKUMXF!_GSNsoqV)f#h84[Tf.mqk.:WJgmK/ID7iKM`ORId9[c*4elmJX7WbMuPk2-2\M"br^&X!B*t1q"8LdXb_Q$87TM<(%48rfaA?8XL?l`2[j&=am4$M.V&mEedUV*[_@GS;)%2(H!,=D"-i~>endstream
-endobj
-24 0 obj
-<<
-/Filter [ /ASCII85Decode /FlateDecode ] /Length 1994
->>
-stream
-Gb!;d>?BQ=&:Vs/R+%t?]-rsr>;e-]-sIJ4[^7U=mR,G.j+p+]=C0[3dU0a6a1%.'$-R?)P(OE:)U149q.;Gt*.60)IlmgX4+tE^"j14t$'Z)5_tWY;E8UaC5nF79E1IP>J<=gHVFQ1Ch[oko&l?mbr0?q-nJT6H3UqJ]]YD2/0:)XYeW;.A*>k8g=lf$"mqg'tsOl+bAfq1d1j)PWpfDPYQ0i-a:Sop%eZu]3)AX.34Zoi)[t9&Z]K/DXCB.UgR7mmSr-0SQ<]]KX=&PX57FirSLRo4MQD7V:XfM/Y5/%;.STW_H:-g-PJLpbigPp(E8XU;tM>[f`U`La5K1BNKe-@e\qmNRjb[XmHK_sfRC?OdbQ12Sk-8c\u,:KSjP4U.76.#G\Bn\S7?83'^csgrt?*!WMReC7HS+]Gm[]c-7>R8O5JRh`"9ul]G#oR;RU2P\,jV9e)='$hUg47h=&J3L!6*9n8S/(8!XC./K!El6"":\t7,#R-sA;ILI,#uF&N=9:I*SG!3#l]2eB_U66f5$R57^l,E>rG\KXGtn>$[MaCiGJ>C)=Le)DfbPXXOCE%[bNm;D"P;*4Mbdsa0'Q;kC_LV[56;C.TNf'9!E&6:(1\:a%bD=$f=!DCo_`OOhTK.faDSCRo!bm:cWh99lReRLjqlnrruGNEC!,5#-'7CL,,4"*n617.EB%D(T\m?[1h=LBI5js,(=$ao)?fJ>//VP4Pto)BRO)X9/ViG>NfJMl)[_V=XI@U(9M2cmqB-Se"9)@fp#M`0VgKUn1RTYSPATKSJOM#'d+l)c&210n+KC<=B9hr0bdgZ56-8DCtkM@^r]^$OmBRBk)Gi+K_`9ed15ik$clH=ck3HVj_^U1U-KJY=-I`t]n.5FPEIR\4-eG.nY"UiqB35_nHpo27A3YiLs4&f7jYZd]J/H4Z]p-27&!^`QZ?lII0!KK"?2QjTk6>c;1]YFaQRn%PF%e`8m"RgB6AHa%Z=dI"ikjGGK;k)q`@X34bUl1fX3"gLHU[iSu.59OHsIidnX6ER%YH/D=XrCl_o;8R,k1:WOaX03r/66EY%D/4q?0lK:%Nrf5<]>TgM3jrWd9tlF1p>5CH,N)I6"BeT[P]KQ$Wk,endstream
-endobj
-25 0 obj
-<<
-/Filter [ /ASCII85Decode /FlateDecode ] /Length 1676
->>
-stream
-Gb!#\a`?,q&A@B[H?+k*8hgGS!h_2FYoQo9UrGtp=_brtTI?2%7=bdP3KCk')Vi$IVUl_Z1*mLqj`R?qJHT5*On+"/"PB<]lTG<&_W1t.Eu7S7_V<2rkK'?e$Kd!$8_4=u3.Y`B+HK#2I.$KS"pC_P*%;^Y8K9/]#o(tt5m66UNa@_O3.eb/12nN/\`B+.HOcqf!K^/;:8S=4,g=+f,7sm),te;/*I:q$WQ0_rRXockFP]EO]u,H(j]X8b#I8Mb;-i0MZ]qZ7"Te6?pU)iOP!@?&$_dD7@/`\PNLH/V?=C&2`]!Gh%[e@a_U8"_MV!]gj$(AQ6^g3G2^V6KZk5[>LW'DidZ<97@OCC1TYE0WHgn[!]T\NRJ(B6@3t4V"B7#gR2@aYZbh;oH,#8lZB\?j"]t+>useZS@'#b6d8iiarI7CD3I(d:K(8$_O3g4Qt+Tf$ub`"bDViajW.-9SD[IF[V)V';[H@'YL7cN`%_d[j1r'O+;T3\"F"HI7E96'e-siF8k;e"tA-%^_Yd$;Hm:R,a-8oa6/N1P;%\#i:(,!E#:#(.&\S:bQ`dN;&Lab9B.r`s^7&QikLTM95nGL>u!AX+m[OEQimNMB?7Z/s$TG(lZ!J#Y-Qi!%a%e[\#%G!IG8[;$E>&AL_R1a^baUfa0Rl3Js;8dgbtdJ9.<0=M/KgDs,fW6KRF+0!M@miHUF1_\WEV+n?[NYHT\4`c)fo^C_hEouKR2"DDG=(MN$X4>`PN;JVJ/&JEN\j:IX\*!pG.X`gEbYTm\k%eXg(JE;Rn;3BaZ/0-J0g4e?ZbE09p10=*SOFgH`G#kqINWYl27J;TM,=2G-?-aa_s,:KShOcJq#PeGgh-d:t"79G@WkC_OB>-ID-l+TW^q5@j#p=5CH%tZQendstream
-endobj
-xref
-0 26
-0000000000 65535 f
-0000000061 00000 n
-0000000133 00000 n
-0000000240 00000 n
-0000000352 00000 n
-0000000457 00000 n
-0000000662 00000 n
-0000000867 00000 n
-0000000944 00000 n
-0000001149 00000 n
-0000001354 00000 n
-0000001560 00000 n
-0000001766 00000 n
-0000001972 00000 n
-0000002056 00000 n
-0000002262 00000 n
-0000002332 00000 n
-0000002618 00000 n
-0000002724 00000 n
-0000004637 00000 n
-0000006493 00000 n
-0000008477 00000 n
-0000010220 00000 n
-0000012171 00000 n
-0000014052 00000 n
-0000016138 00000 n
-trailer
-<<
-/ID
-[<523578e4abc2fdb4125b5ff1e456104b><523578e4abc2fdb4125b5ff1e456104b>]
-% ReportLab generated PDF document -- digest (opensource)
-
-/Info 16 0 R
-/Root 15 0 R
-/Size 26
->>
-startxref
-17906
-%%EOF
diff --git a/Les03-Cursor-Basics/Les03-Huiswerkopdracht.pdf b/Les03-Cursor-Basics/Les03-Huiswerkopdracht.pdf
deleted file mode 100644
index ee83852..0000000
--- a/Les03-Cursor-Basics/Les03-Huiswerkopdracht.pdf
+++ /dev/null
@@ -1,231 +0,0 @@
-%PDF-1.4
-% ReportLab Generated PDF document (opensource)
-1 0 obj
-<<
-/F1 2 0 R /F2 3 0 R /F3 4 0 R /F4 5 0 R /F5 6 0 R /F6 9 0 R
->>
-endobj
-2 0 obj
-<<
-/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font
->>
-endobj
-3 0 obj
-<<
-/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font
->>
-endobj
-4 0 obj
-<<
-/BaseFont /Helvetica-Oblique /Encoding /WinAnsiEncoding /Name /F3 /Subtype /Type1 /Type /Font
->>
-endobj
-5 0 obj
-<<
-/BaseFont /ZapfDingbats /Name /F4 /Subtype /Type1 /Type /Font
->>
-endobj
-6 0 obj
-<<
-/BaseFont /Courier /Encoding /WinAnsiEncoding /Name /F5 /Subtype /Type1 /Type /Font
->>
-endobj
-7 0 obj
-<<
-/Contents 19 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 18 0 R /Resources <<
-/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
->> /Rotate 0 /Trans <<
-
->>
- /Type /Page
->>
-endobj
-8 0 obj
-<<
-/Contents 20 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 18 0 R /Resources <<
-/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
->> /Rotate 0 /Trans <<
-
->>
- /Type /Page
->>
-endobj
-9 0 obj
-<<
-/BaseFont /Symbol /Name /F6 /Subtype /Type1 /Type /Font
->>
-endobj
-10 0 obj
-<<
-/Contents 21 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 18 0 R /Resources <<
-/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
->> /Rotate 0 /Trans <<
-
->>
- /Type /Page
->>
-endobj
-11 0 obj
-<<
-/Contents 22 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 18 0 R /Resources <<
-/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
->> /Rotate 0 /Trans <<
-
->>
- /Type /Page
->>
-endobj
-12 0 obj
-<<
-/Contents 23 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 18 0 R /Resources <<
-/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
->> /Rotate 0 /Trans <<
-
->>
- /Type /Page
->>
-endobj
-13 0 obj
-<<
-/Contents 24 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 18 0 R /Resources <<
-/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
->> /Rotate 0 /Trans <<
-
->>
- /Type /Page
->>
-endobj
-14 0 obj
-<<
-/Contents 25 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 18 0 R /Resources <<
-/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
->> /Rotate 0 /Trans <<
-
->>
- /Type /Page
->>
-endobj
-15 0 obj
-<<
-/Contents 26 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 18 0 R /Resources <<
-/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
->> /Rotate 0 /Trans <<
-
->>
- /Type /Page
->>
-endobj
-16 0 obj
-<<
-/PageMode /UseNone /Pages 18 0 R /Type /Catalog
->>
-endobj
-17 0 obj
-<<
-/Author (\(anonymous\)) /CreationDate (D:20260224202513+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260224202513+00'00') /Producer (ReportLab PDF Library - \(opensource\))
- /Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False
->>
-endobj
-18 0 obj
-<<
-/Count 8 /Kids [ 7 0 R 8 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R ] /Type /Pages
->>
-endobj
-19 0 obj
-<<
-/Filter [ /ASCII85Decode /FlateDecode ] /Length 1071
->>
-stream
-Gau`Qa`?,q&A@B[H>]19N;t(,'#(0SaHLU(ZCS4_9.l//;iiG)#3dG5q=nZCZR)*)aXKZ9"egM8If1<+$n+<@q(C4u7gZgkA\^8Nf>%M$OIX3>RG:P>[o13kOISZP"=+aF`,1^=fBeG*p=flcZ/eafK_%`f%#En8?ker'0I.UCfU%]$0a/%Lp*lXZ9L*V2`DNRQ6'B(V>ZVIV_#$2l4_T%n4ouZm`<+21.ijE,$G&WGB"82e?91fXPsu(\JjPY&,P]\3^pnR'Bq!ak]%^bWa[Gs*4b4;EQgjQKgn,q$2'U'R..FVd&hnFMUtS-c5YbI#IJb]mVA)"KsCKIWP_Yj.=D+5aM@fqGY&29#J)e+QYH#=o?,)/nuo=`a*4[9?*i#sqjEKiD9L/afhuJ:^3%qDgk/#,[BXGN#=kqEW3kl9)i2'D+\Y:_7$/BN8qGti:aNdQ5@eGsD$+L7,!eVZX-Pd..2[]j=./eGfo!V]YgjJDQ6FqE.IDbH.8.mTPQQ2Y2iB"kAi-L6>KXEJ9J);eI[0?l:sCB"m&idBo\''oFGjuf'=EXqKmdW2GG2;W@8mIc!XE&HZZ:$T0E/:g/O?B3LDZ.W%3o^di3.$^C,ZHmYr=f&%%k8K+TFJ18tt#^J1)fP/Bqc#B9M/ibWe.TKL!5cS#c(B(MX.PYk+$P%"i&*.)`<^Z\b3dq28<'?NVVH@%-MH+,jUURR"%o"c)QRe8foloPQ;*:.=P7I;c)(.E\>c&9kgT3CSBl+5RlZKoH/M+37]%_Z)&LuL!Q6AcFm8&':oG,LR$(*]Hdc6G8cHZ..^55u)\9,-`%=dDKendstream
-endobj
-20 0 obj
-<<
-/Filter [ /ASCII85Decode /FlateDecode ] /Length 855
->>
-stream
-Gau`Q?#SFN'Rf.Ggq?C_;I*XZLUV+%[1f8V9;ar>,pb1J5sc7;V#L3r-T%SM;>/@S=Mh>Hm@87cnI5PtL=Qh^.Ul.78_YZ9X(X6Rd/ab."U>;&W]lMG#J+m0a[eQ5pTo&TIt+o.&(fM5@L[CnJK%s6Ot7VQ$fe"4k`XX#<+m.1`.7,\SBE7.f40pYO[>_t3$YC]b&S/?A-"m]1kK7g_Sbcg'5fjM6WGqj&-_,'"_n]JDn'os=;\Vg+S<,XS#%e"EU%JNZfC:4=Y>+\o8EaAb`$ZQXV>WrN)<=IYF#X8?B!Vq4\2ZDPa"j1VDVW`FVB6NPF\n*#)`mRDMp8'\fIXmgk4+YZ]ZsiF+k3.2oqY];5R&h,n8msdNQo#1W!mQOg%F_.Y3_\.>2QlQnX;',:5#*DT@HqUfODRA5n["\f0^S7:VB0L0X.i'BfAXq#(BS!6uq`1`d12L(ee>oR%Aa-]dI3!7(fnBl"_Kku8=G-.?Dj'mYOKdW4$/$`VCcJ5^8?8H$kP3)h'#9ZX-s@9l&B#lA7#0R+:Z#g=`SdK25`B-5p&p?ZcmKA%2:>G2dW=D/c'?;:ST)QP^a`Nu`UGmHjN;B3moThM;u-P,qZqG-g[aGU\FOd.(a2R"SQbDTA`/Dn7qqiVYnf>,OqAMU$K=mjc%([A:p4i&@DRCL4_-omKSg])W*_uN9if6!3aFS<-65"12tUlnc"g1@4_7ECs"1506Ab,(j/VCApAA#P!?o4,_aA97oNgT&!\a/$!\_!-#>rpn$hI%;%pFM=`\1cbSV#,aIm@QMj,ANb=$bSF=_@LkHjIKP4>l1Y~>endstream
-endobj
-21 0 obj
-<<
-/Filter [ /ASCII85Decode /FlateDecode ] /Length 1260
->>
-stream
-Gau0C?#SIU'Re<2\F@CtX;rN`+-m?%@<3G7=L,*9cjcB>TLcH-7Nu,qG+9?Hn%4hGO#SlX,T?m]K3'8C4nm`!MLpU"D*IOui7AZ&cfoFCs!X]EI2)AKhOSIuhLUel^8f,-a!pO>gJ$c8*_!?iBWD>jS^T,K%Eb:;3W'3p^SkX,\*;)\(QGP*AV&2_FK(-Xen]0c?0.fQ>*9lQ5Pd9)bXK6!;TkM8_i5*Igb%A9M6WM>#t.Opfqem= |