fix: les 6

This commit is contained in:
2026-03-11 14:07:00 +01:00
parent d5066021ab
commit 9ffdecf2c4
117 changed files with 13198 additions and 5194 deletions

397
readme.md
View File

@@ -13,33 +13,46 @@ Een 18-weekse cursus die studenten meeneemt van AI-beginner naar AI-powered deve
| **v1** | Gegeven | Originele lessen (Les01, Les02 mappen) |
| **[v2](v2/)** | In ontwikkeling | Verbeterde lessen op basis van feedback |
**Feedback & Reflectie:** [v1-feedback.md](v1-feedback.md) - Bevindingen na het geven van les 1, 2 en 3
**Feedback & Reflectie:** [v1-feedback.md](v1-feedback.md) - Bevindingen na het geven van les 1-3
---
## Lesformat (Nieuw!)
**Feedback van studenten:** Het traditionele "1 uur lecture + 2 uur solo werk" werkt niet optimaal. Studenten voelen zich verloren en geven voorkeur aan samenwerken.
**Nieuw format (toegepast op alle lessen):**
- **~45 minuten:** Theorie met live demo's (docent codeert en verklaart)
- **15 minuten:** Pauze
- **~120 minuten:** Klassikaal bouwen (Tim codeert voor, studenten volgen mee met regelmatige "nu jullie" momenten waar zij zelf code schrijven)
Dit format betrekent meer interactie, sneller feedback en meer mogelijkheden voor sparring en samenwerken.
---
## Overzicht
> **Let op:** Curriculum v2 - geherstructureerd na feedback les 1-2. Cursor vervangt OpenCode als primaire AI tool. Meer tijd voor Next.js en Supabase.
> **Let op:** Curriculum v2 - geherstructureerd na teaching experience. Old Les 5 (TypeScript voor React/Next.js) is uitgewerkt in de twee Next.js lessen. Old Les 6-8 zijn samengevat in nieuwe Les 5-6. Old Les 9-16 verschuiven naar Les 7-14. Old Les 17 (1 werkdag) is uitgebreid naar 3 werkdagen (Les 15-17).
| Les | Onderwerp | Deel | Status |
|-----|-----------|------|--------|
| 01 | [Introductie tot AI en Large Language Models](Samenvattingen/Les01-Samenvatting.md) | 1 | ✅ Gegeven |
| 02 | [AI Code Assistants (OpenCode → Cursor)](Samenvattingen/Les02-Samenvatting.md) | 1 | ✅ Gegeven |
| 03 | [Cursor Setup & Basics](Samenvattingen/Les03-Samenvatting.md) | 1 | ✅ Gegeven |
| 04 | [TypeScript Fundamentals](Samenvattingen/Les04-Samenvatting.md) | 2 | 🔨 In ontwikkeling |
| 05 | [TypeScript voor React/Next.js](Samenvattingen/Les05-Samenvatting.md) | 2 | 📋 Samenvatting |
| 06 | [Next.js 1: Pages, Routing & Layouts](Samenvattingen/Les06-Samenvatting.md) | 2 | 📋 Samenvatting |
| 07 | [Next.js 2: Server Components & Data Fetching](Samenvattingen/Les07-Samenvatting.md) | 2 | 📋 Samenvatting |
| 08 | [Next.js 3: API Routes & Server Actions](Samenvattingen/Les08-Samenvatting.md) | 2 | 📋 Samenvatting |
| 09 | [Database Principles & Supabase Setup](Samenvattingen/Les09-Samenvatting.md) | 2 | 📋 Samenvatting |
| 10 | [Supabase: Auth & CRUD](Samenvattingen/Les10-Samenvatting.md) | 2 | 📋 Samenvatting |
| 11 | [Full-Stack Mini Project](Samenvattingen/Les11-Samenvatting.md) | 3 | 📋 Samenvatting |
| 12 | [Styling: Tailwind CSS & shadcn/ui](Samenvattingen/Les12-Samenvatting.md) | 3 | 📋 Samenvatting |
| 13 | [Hands-on: Van Idee naar Prototype](Samenvattingen/Les13-Samenvatting.md) | 3 | 📋 Samenvatting |
| 14 | [Project Setup & AI Config (.cursorrules, claude.md)](Samenvattingen/Les14-Samenvatting.md) | 3 | 📋 Samenvatting |
| 15 | [Vercel AI SDK, Tool Calling & Agents](Samenvattingen/Les15-Samenvatting.md) | 4 | 📋 Samenvatting |
| 16 | [AI Chat Interface & Streaming](Samenvattingen/Les16-Samenvatting.md) | 4 | 📋 Samenvatting |
| 17 | [Eindproject Werkdag](Samenvattingen/Les17-Samenvatting.md) | 4 | 📋 Samenvatting |
| 04 | [TypeScript Fundamentals](Samenvattingen/Les04-Samenvatting.md) | 2 | ✅ Gegeven |
| 05 | [Next.js — Het React Framework (Part 1)](Samenvattingen/Les05-Samenvatting.md) | 2 | ✅ Gegeven (v1) |
| 06 | [Next.js — QuickPoll Vervolg (Part 2)](Samenvattingen/Les06-Samenvatting.md) | 2 | 📋 Gepland |
| 07 | [Database Principles & Supabase Setup](Samenvattingen/Les07-Samenvatting.md) | 2 | 📋 Samenvatting |
| 08 | [Supabase: Auth & CRUD](Samenvattingen/Les08-Samenvatting.md) | 2 | 📋 Samenvatting |
| 09 | [Full-Stack Mini Project](Samenvattingen/Les09-Samenvatting.md) | 3 | 📋 Samenvatting |
| 10 | [Styling: Tailwind CSS & shadcn/ui](Samenvattingen/Les10-Samenvatting.md) | 3 | 📋 Samenvatting |
| 11 | [Van Idee naar Prototype](Samenvattingen/Les11-Samenvatting.md) | 3 | 📋 Samenvatting |
| 12 | [Project Setup & AI Config (.cursorrules, claude.md)](Samenvattingen/Les12-Samenvatting.md) | 3 | 📋 Samenvatting |
| 13 | [Vercel AI SDK, Tool Calling & Agents](Samenvattingen/Les13-Samenvatting.md) | 4 | 📋 Samenvatting |
| 14 | [AI Chat Interface & Streaming](Samenvattingen/Les14-Samenvatting.md) | 4 | 📋 Samenvatting |
| 15 | [Eindproject Werkdag 1](Samenvattingen/Les15-Samenvatting.md) | 4 | 📋 Samenvatting |
| 16 | [Eindproject Werkdag 2](Samenvattingen/Les16-Samenvatting.md) | 4 | 📋 Samenvatting |
| 17 | [Eindproject Polish & Code Review](Samenvattingen/Les17-Samenvatting.md) | 4 | 📋 Samenvatting |
| 18 | [Deployment, Presentaties & Evaluatie](Samenvattingen/Les18-Samenvatting.md) | 4 | 📋 Samenvatting |
---
@@ -49,9 +62,9 @@ Een 18-weekse cursus die studenten meeneemt van AI-beginner naar AI-powered deve
| Deel | Lessen | Tools | Kosten |
|------|--------|-------|--------|
| Deel 1: AI Foundations | 1-3 | ChatGPT, v0.dev, OpenCode, **Cursor** | Gratis (Cursor Student Plan) |
| Deel 2: Technical Foundations | 4-10 | TypeScript, Next.js, Supabase | Gratis |
| Deel 3: Full-Stack Development | 11-14 | Next.js, Supabase, Tailwind, **shadcn/ui**, Cursor | Gratis |
| Deel 4: Advanced AI & Deployment | 15-18 | Cursor, Vercel AI SDK, Vercel | Gratis (Cursor Student Plan) |
| Deel 2: Technical Foundations | 4-8 | TypeScript, Next.js, Supabase | Gratis |
| Deel 3: Full-Stack Development | 9-12 | Next.js, Supabase, Tailwind, **shadcn/ui**, Cursor | Gratis |
| Deel 4: Advanced AI & Deployment | 13-18 | Cursor, Vercel AI SDK, Vercel | Gratis (Cursor Student Plan) |
**Eindopdracht:** Cursor (Student Plan - gratis Pro voor 1 jaar)
@@ -212,136 +225,86 @@ Kennismaking met AI, LLMs en de basis van AI-assisted development met Cursor.
# Deel 2: Technical Foundations
**7 lessen · 12 EC**
**5 lessen · 10 EC**
Stevige technische basis: TypeScript, Next.js, databases en Supabase.
---
### Les 5: TypeScript voor React/Next.js
### Les 5: Next.js — Het React Framework (Part 1)
**Tools:** Cursor, TypeScript, React, Next.js
**Tools:** Next.js 15, Cursor, TypeScript, Tailwind CSS
**Docent vertelt:**
- TypeScript + React: props typen, useState met types
- Event handlers en callback types
- Generics basics (Array<T>, Promise<T>)
- API response types en async functies
- Type narrowing en utility types (Partial, Pick, Omit)
- JS naar TS omzetten in een React project
**Docent vertelt (~45 min, demo-driven):**
- Waarom Next.js? Het probleem met pure React
- Create-next-app en project structuur
- App Router: file-based routing, page.tsx, layout.tsx
- Dynamic routes ([id]) met TypeScript
- Server Components vs Client Components ("use client")
- Data Fetching in Server Components (async components)
- Server Actions introductie
- Route Groups en best practices
**Studenten doen:**
- React components typen met interfaces
- useState en useEffect met types gebruiken
- Event handlers correct typen
- Bestaand React project omzetten naar TypeScript
**Samen bouwen (~120 min, klassikaal):**
- QuickPoll app Part 1 (Stap 0-3 uit lesopdracht)
- Tim + klas: create-next-app, types definiëren, folder structuur
- Klassikaal: layout met navigatie, homepage met polls list
- Klassikaal: API route GET single poll
**Lesopdracht:** Bouw getypte React componenten met Cursor. Type props, state, events en API responses.
**Lesopdracht:** QuickPoll app Part 1 (Stap 0-3 uit lesopdracht) - stap-voor-stap handleiding
**Huiswerk:** Zet een compleet React project om van JavaScript naar TypeScript. Alle componenten, hooks en API calls volledig typen.
**Huiswerk:** Stap 0-3 zelfstandig afmaken als je het niet af hebt
[→ Ga naar Les 5](Samenvattingen/Les05-Samenvatting.md)
**Lesmateriaal:**
- Slide-Overzicht
- Docenttekst
- Les05-Lesopdracht.pdf (stap-voor-stap handleiding)
- les5-quickpoll-starter.zip (scaffolded project)
- les5-quickpoll-voorbeeld.zip (Tim's referentie)
[→ Ga naar Les 5 Samenvatting](Samenvattingen/Les05-Samenvatting.md)
---
### Les 6: Next.js 1: Pages, Routing & Layouts
### Les 6: Next.js — QuickPoll Vervolg (Part 2)
**Tools:** Next.js 14, OpenCode/WebStorm, Vercel
**Tools:** Next.js 15, Cursor, TypeScript, Tailwind CSS
**Docent vertelt:**
- Wat is Next.js? React framework met superpowers
- Server-Side Rendering (SSR) vs Client-Side Rendering (CSR)
- Waarom SSR? SEO, performance, initial load
- App Router: file-based routing uitgelegd
- Folder structuur: app/, pages, layouts, loading, error
- Dynamic routes: [id], [...slug], [[...optional]]
- Link component en navigation
- Metadata en SEO basics
**Docent vertelt (~30-40 min):**
- Recap Les 5 + Q&A
- API Route Handlers: GET, POST met NextResponse (dieper)
- Middleware: request intercepten, logging, rate limiting
- Environment Variables (.env.local, NEXT_PUBLIC_)
- Loading, Error, Not-Found special files
- next/image, next/link, Metadata
- Deployment op Vercel
- Cursor/AI workflow (.cursorrules, Cmd+K, Cmd+L)
**Studenten doen:**
- Next.js project aanmaken met `npx create-next-app@latest`
- Pagina's maken met App Router
- Layout en nested layouts implementeren
- Dynamic routes bouwen
- Navigation met Link component
**Samen bouwen (~120 min, klassikaal):**
- QuickPoll app Part 2 (Stap 4-7 uit lesopdracht)
- Klassikaal: API POST vote route
- Klassikaal: Poll detail pagina (server component)
- Klassikaal: VoteForm (client component met fetch)
- Klassikaal: Loading, error, not-found states
- Bonus: Create poll pagina
- Deploy naar Vercel
**Lesopdracht:**
1. `npx create-next-app@latest` met TypeScript + Tailwind + App Router
2. Maak 4 pagina's: home, about, products, contact
3. Maak root layout met Header en Footer
4. Maak `/products/[id]` dynamic route
5. Deploy naar Vercel
**Lesopdracht:** QuickPoll app Part 2 (Stap 4-7 uit lesopdracht)
**Huiswerk:** Voeg nested layout toe voor products section, maak loading.tsx en error.tsx, experimenteer met metadata.
**Huiswerk:** App afmaken en deployen op Vercel, bonus features toevoegen
[→ Ga naar Les 6](Samenvattingen/Les06-Samenvatting.md)
**Lesmateriaal:**
- Slide-Overzicht
- Docenttekst
- Les06-Lesopdracht.pdf (stap-voor-stap handleiding)
- les6-quickpoll-starter.zip (scaffolded project)
- les6-quickpoll-voorbeeld.zip (Tim's referentie)
[→ Ga naar Les 6 Samenvatting](Samenvattingen/Les06-Samenvatting.md)
---
### Les 7: Next.js 2: Server Components & Data Fetching
**Tools:** Next.js 14, React Query (TanStack Query), Cursor
**Docent vertelt:**
- Server Components vs Client Components
- 'use client' directive: wanneer en waarom
- Data fetching in Server Components (async/await)
- React Query: waarom, installatie, basics
- useQuery en useMutation hooks
- Caching en revalidation strategies
**Studenten doen:**
- Server Component met data fetching maken
- Client Component met React Query maken
- useQuery en useMutation implementeren
- Caching strategieën testen
**Lesopdracht:**
1. Maak Server Component met async data fetching
2. Bouw Client Component met React Query
3. Implementeer useQuery voor producten
4. Voeg useMutation toe voor user interactions
5. Test caching behavior
**Huiswerk:** Experimenteer met revalidation strategies, voeg error boundaries toe, bouw loading states voor betere UX.
[→ Ga naar Les 7](Samenvattingen/Les07-Samenvatting.md)
---
### Les 8: Next.js 3: API Routes & Server Actions
**Tools:** Next.js 14, Cursor, Supabase
**Docent vertelt:**
- API Routes: Route Handlers in App Router
- HTTP methods: GET, POST, PUT, DELETE
- Server Actions: form actions en mutations
- Request/response handling
- Error handling in API routes
- Middleware basics (authentication)
**Studenten doen:**
- API routes schrijven voor CRUD operaties
- Server Actions implementeren voor forms
- Request validation toevoegen
- Error handling testen
- Authentication middleware bouwen
**Lesopdracht:**
1. Maak `/api/items` routes (GET, POST, PUT, DELETE)
2. Bouw Server Actions voor form submissions
3. Voeg request validation toe met Zod
4. Implementeer error handling
5. Test all CRUD operations
**Huiswerk:** Voeg authentication middleware toe, implementeer optimistic UI updates, schrijf API route tests.
[→ Ga naar Les 8](Samenvattingen/Les08-Samenvatting.md)
---
### Les 9: Database Principles & Supabase Setup
### Les 7: Database Principles & Supabase Setup
**Tools:** Diagramming tool (draw.io/Excalidraw), Supabase, Cursor
@@ -369,13 +332,13 @@ Stevige technische basis: TypeScript, Next.js, databases en Supabase.
4. Configureer `.env.local`
5. Test connectie met Supabase client
**Huiswerk:** Refine je database schema, voeg meer relaties toe, dokumenteer decisions, bereid Les 10 vor.
**Huiswerk:** Refine je database schema, voeg meer relaties toe, dokumenteer decisions, bereid Les 8 vor.
[→ Ga naar Les 9](Samenvattingen/Les09-Samenvatting.md)
[→ Ga naar Les 7 Samenvatting](Samenvattingen/Les07-Samenvatting.md)
---
### Les 10: Supabase: Auth & CRUD
### Les 8: Supabase: Auth & CRUD
**Tools:** Supabase, Next.js, Cursor, React Query
@@ -405,7 +368,7 @@ Stevige technische basis: TypeScript, Next.js, databases en Supabase.
**Huiswerk:** Add OAuth provider (Google/GitHub), implementeer logout en password reset, deploy naar Vercel met env secrets.
[→ Ga naar Les 10](Samenvattingen/Les10-Samenvatting.md)
[→ Ga naar Les 8 Samenvatting](Samenvattingen/Les08-Samenvatting.md)
---
@@ -417,7 +380,7 @@ Integratie van alle geleerde technieken, styling en voorbereiding op eindproject
---
### Les 11: Full-Stack Mini Project
### Les 9: Full-Stack Mini Project
**Tools:** Cursor, Supabase, Browser DevTools
@@ -428,7 +391,7 @@ Integratie van alle geleerde technieken, styling en voorbereiding op eindproject
- Probleemoplossing in real time
**Studenten doen:**
- **Groepsdiscussie:** Bespreek auth & CRUD ervaringen uit Les 10
- **Groepsdiscussie:** Bespreek auth & CRUD ervaringen uit Les 8
- Mini-project kiezen: Bookmarks, Todo's, Notes, of Recipe Collection
- Met Cursor alle onderdelen kombinieren: auth, database, API, UI
- Zelfstandig problemen oplossen
@@ -438,43 +401,11 @@ Integratie van alle geleerde technieken, styling en voorbereiding op eindproject
**Huiswerk:** Verbeterpunten toevoegen, reflectie schrijven (200 woorden), repo opruimen, voorbereiden op styling.
[→ Ga naar Les 11](Samenvattingen/Les11-Samenvatting.md)
[→ Ga naar Les 9 Samenvatting](Samenvattingen/Les09-Samenvatting.md)
---
### Les 11: Hands-on: Van Idee naar Prototype
**Tools:** OpenCode/WebStorm, ChatGPT (voor planning)
**Docent vertelt:**
- Hoe ga je van vaag idee naar concrete features?
- Feature breakdown methode
- Component thinking: UI opdelen in herbruikbare stukken
- Minimum Viable Product (MVP) denken
- Korte demo van het proces
**Studenten doen:**
- **Groepsdiscussie:** Bespreek Tool Selection reflecties - welke workflows werken het beste?
- Kiezen van een simpel project idee
- Met AI features breakdown maken
- Component structuur bedenken
- Prototype bouwen met alles wat ze hebben geleerd
- Focus op WORKFLOW, niet perfectie
**Voorbeeld projecten:**
- Weer widget met 3-daagse forecast
- Simpele quiz app (3 vragen)
- Recipe card met ingrediënten toggle
**Lesopdracht:** Kies een mini-project, maak feature breakdown met AI, bouw werkend prototype. Documenteer je proces: welke prompts werkten, waar liep je vast, hoe loste je het op.
**Huiswerk:** Verbeter je prototype (styling, edge cases), schrijf "Lessons Learned" document (300 woorden).
[→ Ga naar Les 11](Samenvattingen/Les11-Samenvatting.md)
---
### Les 12: Styling: Tailwind CSS & shadcn/ui
### Les 10: Styling: Tailwind CSS & shadcn/ui
**Tools:** Tailwind CSS, shadcn/ui, Cursor
@@ -504,11 +435,11 @@ Integratie van alle geleerde technieken, styling en voorbereiding op eindproject
**Huiswerk:** Refactor alle components, add animations met Tailwind, explore shadcn variations, dokumenteer styling decisions.
[→ Ga naar Les 12](Samenvattingen/Les12-Samenvatting.md)
[→ Ga naar Les 10 Samenvatting](Samenvattingen/Les10-Samenvatting.md)
---
### Les 13: Hands-on: Van Idee naar Prototype
### Les 11: Van Idee naar Prototype
**Tools:** Cursor, ChatGPT (voor planning)
@@ -536,21 +467,13 @@ Integratie van alle geleerde technieken, styling en voorbereiding op eindproject
**Lesopdracht:** Kies eindproject idee, maak feature breakdown met AI, ontwerp component tree, zet up codebase, bouw eerste 2-3 components.
**Huiswerk:** Bouw meer components, integreer eerste data, documenteer architecture decisions, voorbereiding Les 14.
**Huiswerk:** Bouw meer components, integreer eerste data, documenteer architecture decisions, voorbereiding Les 12.
[→ Ga naar Les 13](Samenvattingen/Les13-Samenvatting.md)
[→ Ga naar Les 11 Samenvatting](Samenvattingen/Les11-Samenvatting.md)
---
# Deel 4: Advanced AI & Deployment
**4 lessen · 6 EC**
AI-powered features, streaming, finale afronding en deployment.
---
### Les 14: Project Setup & AI Config (.cursorrules, claude.md)
### Les 12: Project Setup & AI Config (.cursorrules, claude.md)
**Tools:** Cursor, Git, GitHub
@@ -581,11 +504,19 @@ AI-powered features, streaming, finale afronding en deployment.
**Huiswerk:** Polish documentatie, add architecture diagrams, test .cursorrules in Cursor, prepare voor Deel 4.
[→ Ga naar Les 14](Samenvattingen/Les14-Samenvatting.md)
[→ Ga naar Les 12 Samenvatting](Samenvattingen/Les12-Samenvatting.md)
---
### Les 15: Vercel AI SDK, Tool Calling & Agents
# Deel 4: Advanced AI & Deployment
**6 lessen · 8 EC**
AI-powered features, streaming, finale afronding en deployment.
---
### Les 13: Vercel AI SDK, Tool Calling & Agents
**Tools:** Vercel AI SDK, Zod, Externe APIs, Cursor
@@ -614,11 +545,11 @@ AI-powered features, streaming, finale afronding en deployment.
**Huiswerk:** Add more tools, implementeer agents met `maxSteps`, documenteer in AI-DECISIONS.md, integreer in eindproject.
[→ Ga naar Les 15](Samenvattingen/Les15-Samenvatting.md)
[→ Ga naar Les 13 Samenvatting](Samenvattingen/Les13-Samenvatting.md)
---
### Les 16: AI Chat Interface & Streaming
### Les 14: AI Chat Interface & Streaming
**Tools:** Vercel AI SDK, Cursor, Browser APIs
@@ -648,40 +579,106 @@ AI-powered features, streaming, finale afronding en deployment.
**Huiswerk:** Add chat features (clear history, export, favorites), deploy naar Vercel, gather user feedback.
[→ Ga naar Les 16](Samenvattingen/Les16-Samenvatting.md)
[→ Ga naar Les 14 Samenvatting](Samenvattingen/Les14-Samenvatting.md)
---
### Les 17: Eindproject Werkdag
### Les 15: Eindproject Werkdag 1
**Tools:** Cursor, Vercel, Supabase, alle vorige tools
**Focus:** Core features bouwen
**Docent vertelt:**
- Q&A session: wat loop je tegen aan?
- Cursor tips & tricks review
- Debugging strategies
- Performance optimization basics
- Deployment troubleshooting
- Final checklist review
**Studenten doen:**
- **Volle dag werken aan eindproject**
- Docent beschikbaar voor individuele hulp
- Features afmaken
- Docent beschikbaar voor individuele hulp en klassikaal sparring
- Core features bouwen
- Testing en bug fixes
- Voorbereiding voor presentatie
- Code review voorbereiden
- Regelmatig vragen stellen
**Lesopdracht:**
1. Alle features afmaken van je eindproject
1. Core features van eindproject afmaken
2. Testing: user flows doorlopen
3. Bug fixes en edge cases
4. Code cleanup en refactoring
5. Deploy naar Vercel
4. Code cleanup
5. Checkpoint: is het werkend?
**Huiswerk:** Laatste fixes, presentatie voorbereiden, documentatie finaliseren, demo video opnemen (optioneel).
**Huiswerk:** Voortgang bijhouden, notities maken voor volgende werkdag, extra features plannen.
[→ Ga naar Les 17](Samenvattingen/Les17-Samenvatting.md)
[→ Ga naar Les 15 Samenvatting](Samenvattingen/Les15-Samenvatting.md)
---
### Les 16: Eindproject Werkdag 2
**Tools:** Cursor, Vercel, Supabase, alle vorige tools
**Focus:** Features afmaken, testing, bug fixes
**Docent vertelt:**
- Recap vorige werkdag
- Extra features planning
- Performance optimization
- Deployment preparation
**Studenten doen:**
- **Volle dag werken aan eindproject**
- Docent beschikbaar voor hulp
- Remaining features afmaken
- Uitgebreide testing
- Korte demo's van voortgang aan de klas
- Performance optimization
**Lesopdracht:**
1. Alle geplande features afmaken
2. Uitgebreide testing en bug fixes
3. Performance audit
4. Code review voorbereiding
5. Presentatie voorbereiding
**Huiswerk:** Laatste polishing, documentatie finaliseren, code review met klasgenoot.
[→ Ga naar Les 16 Samenvatting](Samenvattingen/Les16-Samenvatting.md)
---
### Les 17: Eindproject Polish & Code Review
**Tools:** Cursor, Vercel, GitHub, Supabase
**Focus:** Code review in paren, UI polish, performance check, presentatie voorbereiding
**Docent vertelt:**
- Code review best practices
- Performance optimization details
- Presentation tips
- Deployment final checks
**Studenten doen:**
- Code review in paren (peer feedback)
- UI polish en refinement
- Performance optimization (Lighthouse audit)
- Accessibility audit
- Presentatie voorbereiding
- Final deployment checks
**Lesopdracht:**
1. Zorg dat iemand anders je code review
2. Voer feedback uit
3. Run Lighthouse en fix issues
4. Accessibility check
5. Deploy final version
**Huiswerk:** Presentatie oefenen, demo video opnemen (optioneel), laatste tweaks.
[→ Ga naar Les 17 Samenvatting](Samenvattingen/Les17-Samenvatting.md)
---
@@ -727,7 +724,7 @@ AI-powered features, streaming, finale afronding en deployment.
**Huiswerk:** N.A. - Course afgerond!
[→ Ga naar Les 18](Samenvattingen/Les18-Samenvatting.md)
[→ Ga naar Les 18 Samenvatting](Samenvattingen/Les18-Samenvatting.md)
---
@@ -746,7 +743,9 @@ AI-powered features, streaming, finale afronding en deployment.
Elke uitgewerkte les bevat:
- `Les[xx]-Slide-Overzicht.md` - Slide deck structuur
- `Les[xx]-Lesplan.md` - Tijdsindeling en activiteiten
- `Les[xx]-Lesplan.md` - Tijdsindeling en activiteiten (nu: ~45 min theorie + 15 min pauze + ~120 min klassikaal bouwen)
- `Les[xx]-Docenttekst.md` - Uitgebreide docenthandleiding
- `Les[xx]-Bijlage-A-Lesopdracht.md` - Lesopdracht (2 uur)
- `Les[xx]-Bijlage-B-Huiswerkopdracht.md` - Huiswerkopdracht (2 uur)
- `Les[xx]-Bijlage-A-Lesopdracht.md` - Lesopdracht (klassikaal en huiswerk)
- `Les[xx]-Bijlage-B-Huiswerkopdracht.md` - Huiswerkopdracht
**Lesformat verandering (v2):** Meer klassikaal bouwen, minder solo werk. Docent codeert voor, studenten volgen mee met regelmatige "nu jullie" momenten. Betere interactie en sparring.