AI Development Curriculum - NOVI Hogeschool
Een 18-weekse cursus die studenten meeneemt van AI-beginner naar AI-powered developer.
Totaal: 30 EC verdeeld over 4 delen.
Versies
| Versie | Status | Beschrijving |
|---|---|---|
| v1 | Gegeven | Originele lessen (Les01, Les02 mappen) |
| v2 | In ontwikkeling | Verbeterde lessen op basis van feedback |
Feedback & Reflectie: v1-feedback.md - Bevindingen na het geven van les 1 en 2
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.
| Les | Onderwerp | Deel | Status |
|---|---|---|---|
| 01 | Introductie tot AI en Large Language Models | 1 | ✅ Gegeven |
| 02 | AI Code Assistants (OpenCode → Cursor) | 1 | ✅ Gegeven |
| 03 | Cursor Setup & Basics | 1 | 🔨 In ontwikkeling |
| 04 | Effectief Prompting, Iteratief Werken & Skills | 1 | 📋 Samenvatting |
| 05 | TypeScript Basics | 2 | 📋 Samenvatting |
| 06 | Next.js 1: Pages, Routing & Layouts | 2 | 📋 Samenvatting |
| 07 | Next.js 2: Server Components & Data Fetching | 2 | 📋 Samenvatting |
| 08 | Next.js 3: API Routes & Server Actions | 2 | 📋 Samenvatting |
| 09 | Database Principles & Supabase Setup | 2 | 📋 Samenvatting |
| 10 | Supabase: Auth & CRUD | 2 | 📋 Samenvatting |
| 11 | Full-Stack Mini Project | 3 | 📋 Samenvatting |
| 12 | Styling: Tailwind CSS & shadcn/ui | 3 | 📋 Samenvatting |
| 13 | Hands-on: Van Idee naar Prototype | 3 | 📋 Samenvatting |
| 14 | Project Setup & AI Config (.cursorrules, claude.md) | 3 | 📋 Samenvatting |
| 15 | Vercel AI SDK, Tool Calling & Agents | 4 | 📋 Samenvatting |
| 16 | AI Chat Interface & Streaming | 4 | 📋 Samenvatting |
| 17 | Eindproject Werkdag | 4 | 📋 Samenvatting |
| 18 | Deployment, Presentaties & Evaluatie | 4 | 📋 Samenvatting |
Tool Progressie
| Deel | Lessen | Tools | Kosten |
|---|---|---|---|
| Deel 1: AI Foundations | 1-4 | ChatGPT, v0.dev, OpenCode, Cursor | Gratis (Cursor Student Plan) |
| Deel 2: Technical Foundations | 5-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) |
Eindopdracht: Cursor (Student Plan - gratis Pro voor 1 jaar)
Deel 1: AI Foundations
4 lessen · 7 EC
Kennismaking met AI, LLMs en de basis van AI-assisted development met Cursor.
Les 1: Introductie tot AI en Large Language Models
Tools: ChatGPT, v0.dev, Vercel, GitHub
Docent vertelt:
- Het AI-landschap anno nu (ChatGPT, Claude, Grok, Gemini)
- Wat zijn Large Language Models? Next-token prediction uitgelegd
- Hallucinaties: waarom AI soms dingen verzint
- AI Modellen & Kosten: Gratis opties (ChatGPT Free, Claude Free, Groq, Ollama) vs Betaald ($20/maand) vs Premium (Claude Opus)
- Privacy: Ollama voor lokaal draaien (data verlaat je computer niet)
- ChatGPT Projects: Werkruimtes met eigen instructies en geheugen
- Prompt engineering basics: rol, context, taak, format
- De schets-naar-website workflow
Studenten doen:
- ChatGPT account aanmaken en verkennen
- Custom Instructions instellen + Project aanmaken voor v0.dev
- Complete workflow: schets op papier → foto → ChatGPT Project → v0.dev → deploy naar Vercel
Lesopdracht: Doorloop de complete workflow: teken een hero section op papier, maak foto, genereer prompt met ChatGPT, bouw in v0.dev, deploy naar Vercel.
Huiswerk: Reflectie schrijven (500 woorden), 5 AI use cases bedenken voor eigen projecten, tweede component bouwen via de workflow.
Lesmateriaal:
Les 2: AI Code Assistants (OpenCode → Cursor)
Tools: OpenCode Desktop App, Cursor (Preview), Git, Vercel
Docent vertelt:
- Recap: OpenCode workflow uit Les 1 huiswerk
- Introduceer Cursor: professionele AI editor
- Cursor vs OpenCode: krachten en zwakten
- Installatie en configuratie
- Keyboard shortcuts:
Tab(autocomplete),Ctrl+K(inline edit),Ctrl+L(chat) - De deployment workflow: git push → Vercel auto-deploy
Studenten doen:
- OpenCode Desktop App gebruiken voor continue integratie
- Cursor installeren en eerste keer verkennen
- Bestaand v0 project openen in Cursor
- Met Cursor een nieuwe pagina maken + link op homepage
- Deployen via git push → Vercel
Lesopdracht: Maak een nieuwe pagina in je v0 project. Clone je repo, draai lokaal, maak een pagina (/about, /services, of /contact) met componenten, voeg link op homepage toe, deploy minimaal 2x naar Vercel.
Huiswerk:
- Maak nieuw project vanaf scratch met
create-next-app - Bouw 3 componenten met Cursor (navbar, hero, + keuze)
- Push naar GitHub, koppel aan Vercel
- Schrijf reflectie (300 woorden)
Lesmateriaal:
Les 3: Cursor Setup & Basics
Tools: Cursor, Git, GitHub
Docent vertelt:
- Cursor overview: tab completion, inline edits, chat, composer
- Free tier vs Student Plan vs Pro
- Installatie en first-time setup
- Keyboard shortcuts:
Tab(autocomplete),Ctrl+K(inline),Ctrl+L(chat),Ctrl+Shift+L(composer) - AI model keuze: wanneer Haiku vs Sonnet?
- Privacy & security: hoe Cursor data behandelt
.cursorrulesintroduceer: custom instructions voor je project
Studenten doen:
- Groepsdiscussie: Bespreek klassikaal ervaringen van vorige les - wat vond je van Cursor vs OpenCode?
- Cursor installeren en Student Plan activeren
- Een van je Les 2 projecten openen in Cursor
- Tab completion, Ctrl+K, en Ctrl+L uitproberen
- Begint
.cursorrulesbestand voor je project
Lesopdracht: Open je Les 2 project in Cursor, voeg 3 nieuwe features toe (elk met ander shortcut: Tab, Ctrl+K, Chat), test telkens of het werkt, noteer: welke shortcut voelt het nuttigst?
Huiswerk: Experimenteer met Cursor Composer (Ctrl+Shift+L) op een bestaande component, schrijf reflectie (300 woorden) vergelijk je Cursor/OpenCode ervaringen, maak start-.cursorrules voor je eindproject.
Les 4: Effectief Prompting, Iteratief Werken & Skills
Tools: OpenCode/WebStorm, Skills.sh
Docent vertelt:
- Zero-shot vs few-shot prompting (met voorbeelden)
- Chain-of-thought reasoning: laat AI stap voor stap denken
- Role prompting en constraint-based prompting
- Skills.sh: wat het is en waarom het werkt
- Iteratief werken: start simpel → voeg complexiteit toe
Studenten doen:
- Groepsdiscussie: Bespreek klassikaal ervaringen met OpenCode - wat werkte, wat niet?
- Verschillende prompt technieken uitproberen
- Skills.sh installeren en eerste skill toevoegen
- Vergelijk output met/zonder skill
- Bouw feature in 4 iteraties (simpel → complex)
Lesopdracht: Installeer Skills.sh, vergelijk output met/zonder skill, bouw data filtering systeem in 4 iteraties (basis filter → multi-filter → sort → search).
Huiswerk: Maak persoonlijke prompt library met 8 templates voor verschillende taken, installeer en test 3 Skills, documenteer concrete verschillen.
Deel 2: Technical Foundations
6 lessen · 10 EC
Stevige technische basis: TypeScript, Next.js, databases en Supabase.
Les 5: TypeScript Basics
Tools: OpenCode/WebStorm, TypeScript
Docent vertelt:
- Waarom TypeScript? Voordelen boven JavaScript
- Basic types: string, number, boolean, array, object
- Type inference: wanneer TypeScript types zelf raadt
- Interfaces en type aliases
- TypeScript met React: Props typen, useState met types
- Generics basics (Array, Promise)
- Veel voorkomende TypeScript errors en hoe ze op te lossen
Studenten doen:
- JavaScript file omzetten naar TypeScript
- Interfaces schrijven voor eigen data
- React component met typed props maken
- TypeScript errors debuggen
Lesopdracht:
- Zet bestaand JS component om naar TypeScript
- Maak interface voor User en Product data
- Bouw typed React component met props
- Fix 5 TypeScript errors in gegeven code
Huiswerk: Maak 3 nieuwe components volledig in TypeScript, schrijf interfaces voor je eindproject data, maak cheat sheet met TypeScript patterns.
Les 6: Next.js 1: Pages, Routing & Layouts
Tools: Next.js 14, OpenCode/WebStorm, Vercel
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
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
Lesopdracht:
npx create-next-app@latestmet TypeScript + Tailwind + App Router- Maak 4 pagina's: home, about, products, contact
- Maak root layout met Header en Footer
- Maak
/products/[id]dynamic route - Deploy naar Vercel
Huiswerk: Voeg nested layout toe voor products section, maak loading.tsx en error.tsx, experimenteer met metadata.
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:
- Maak Server Component met async data fetching
- Bouw Client Component met React Query
- Implementeer useQuery voor producten
- Voeg useMutation toe voor user interactions
- Test caching behavior
Huiswerk: Experimenteer met revalidation strategies, voeg error boundaries toe, bouw loading states voor betere UX.
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:
- Maak
/api/itemsroutes (GET, POST, PUT, DELETE) - Bouw Server Actions voor form submissions
- Voeg request validation toe met Zod
- Implementeer error handling
- Test all CRUD operations
Huiswerk: Voeg authentication middleware toe, implementeer optimistic UI updates, schrijf API route tests.
Les 9: Database Principles & Supabase Setup
Tools: Diagramming tool (draw.io/Excalidraw), Supabase, Cursor
Docent vertelt:
- Wat is een relationele database? Tabellen, rijen, kolommen
- Primary Keys, Foreign Keys en relaties
- Relatie types: one-to-one, one-to-many, many-to-many
- Normalisatie basics
- Wat is Supabase? (database + auth in één)
- Supabase project setup
- Table Editor: tabellen maken zonder SQL
- Environment variables configuratie
Studenten doen:
- Database schema tekenen voor eigen project
- Supabase account en project aanmaken
- Tabellen maken via UI (op basis van eigen schema)
.env.localconfigureren- Supabase client instellen
Lesopdracht:
- Teken database schema voor jouw eindproject
- Maak Supabase project
- Implementeer je tabellen in Table Editor
- Configureer
.env.local - Test connectie met Supabase client
Huiswerk: Refine je database schema, voeg meer relaties toe, dokumenteer decisions, bereid Les 10 vor.
Les 10: Supabase: Auth & CRUD
Tools: Supabase, Next.js, Cursor, React Query
Docent vertelt:
- Supabase Authentication: email/password, OAuth basics
- User sessions en JWT tokens
- Row Level Security (RLS) policies
- CRUD operaties in Supabase
- Realtime subscriptions introduceer
- Error handling en validation
- Best practices: secrets, security
Studenten doen:
- Groepsdiscussie: Database schemas van vorige les - aanpassingen nodig?
- Auth setup met email/password
- User sessions implementeren
- RLS policies schrijven
- CRUD app bouwen (Todo, Notes, Bookmarks)
- Realtime features testen
Lesopdracht:
- Setup Supabase Auth (email/password)
- Maak login/signup forms
- Implementeer user sessions
- Schrijf RLS policies voor je tabellen
- Bouw complete CRUD app met auth
Huiswerk: Add OAuth provider (Google/GitHub), implementeer logout en password reset, deploy naar Vercel met env secrets.
Deel 3: Full-Stack Development
4 lessen · 7 EC
Integratie van alle geleerde technieken, styling en voorbereiding op eindproject.
Les 11: Full-Stack Mini Project
Tools: Cursor, Supabase, Browser DevTools
Docent vertelt:
- Je hebt nu alle bouwstenen: TypeScript, Next.js, Supabase, Auth
- Vandaag combineren we alles in een werkende mini-app
- Geen nieuwe concepten - alleen integratie en toepassing
- Probleemoplossing in real time
Studenten doen:
- Groepsdiscussie: Bespreek auth & CRUD ervaringen uit Les 10
- Mini-project kiezen: Bookmarks, Todo's, Notes, of Recipe Collection
- Met Cursor alle onderdelen kombinieren: auth, database, API, UI
- Zelfstandig problemen oplossen
- Polish en afronden
Lesopdracht: Bouw een volledige mini-app met: login, CRUD operaties, RLS security. Checkpoints: 30 min setup, 60 min auth, 90 min CRUD, 120 min testing, 150 min polish.
Huiswerk: Verbeterpunten toevoegen, reflectie schrijven (200 woorden), repo opruimen, voorbereiden op styling.
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).
Les 12: Styling: Tailwind CSS & shadcn/ui
Tools: Tailwind CSS, shadcn/ui, Cursor
Docent vertelt:
- Waarom Tailwind? Utility-first CSS approach
- Tailwind setup in Next.js (meestal al aanwezig)
- Basis utilities: flexbox, grid, spacing, colors
- Tailwind components: buttons, cards, forms
- Wat is shadcn/ui? High-quality component library
- shadcn/ui installatie en configuratie
- Theme customization
- Dark mode setup
Studenten doen:
- Tailwind basix oefenen op bestaande components
- shadcn/ui components installeren en gebruiken
- Custom Tailwind themes making
- Bestaande mini-project restylen met Tailwind + shadcn
- Dark mode implementeren
Lesopdracht:
- Refactor je mini-project UI met Tailwind classes
- Installeer 5 shadcn/ui components (Button, Card, Input, etc.)
- Cre je eigen color theme in Tailwind
- Implementeer dark mode toggle
- Polish: zorg dat het er professioneel uitziet
Huiswerk: Refactor alle components, add animations met Tailwind, explore shadcn variations, dokumenteer styling decisions.
Les 13: Hands-on: Van Idee naar Prototype
Tools: Cursor, ChatGPT (voor planning)
Docent vertelt:
- Hoe ga je van vaag idee naar concrete features?
- Feature breakdown methode
- Component thinking: UI opdelen in herbruikbare stukken
- MVP (Minimum Viable Product) denken
- User stories schrijven
- Efficiënt met Cursor samenwerken voor iteratie
Studenten doen:
- Groepsdiscussie: Reflectie op styling - waar ben je tevreden mee?
- Kiezen van eindproject idee (of voorgestelde opties)
- Met AI feature breakdown maken
- Component structuur ontwerpen
- Start codebase met folder structure
- Eerste components bouwen
Voorbeeld projecten:
- E-commerce product filter & search
- Recipe planner met shoppinglist
- Expense tracker met analytics
- Blog platform met comments
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.
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)
Tools: Cursor, Git, GitHub
Docent vertelt:
- Waarom goede project structuur cruciaal is voor AI samenwerking
- De ideale folder structuur voor Next.js + AI tools
.cursorrulesfiles: syntax, best practices, examplesclaude.md: project documentation voor Claudedocs/folder: AI-DECISIONS.md, ARCHITECTURE.md- Environment variables: lokaal vs productie setup
.gitignoreen.cursorignorevoor AI tools- README en documentatie best practices
Studenten doen:
- Eindproject repository aanmaken/opschonen
- Folder structuur optimaliseren
- Uitgebreide
.cursorrulesschrijven - Project documentatie in claude.md
- docs/ folder vullen
- Eerste commits pushen
Lesopdracht:
- Review folder structuur van je huidige project
- Schrijf comprehensive
.cursorrules(50+ lines) - Maak
claude.mdmet project overview - Vul
docs/AI-DECISIONS.mdin - Push naar GitHub met cleane git history
Huiswerk: Polish documentatie, add architecture diagrams, test .cursorrules in Cursor, prepare voor Deel 4.
Les 15: Vercel AI SDK, Tool Calling & Agents
Tools: Vercel AI SDK, Zod, Externe APIs, Cursor
Docent vertelt:
- Vercel AI SDK basics: useChat, streaming
- Tool Calling: AI laat externe APIs aanroepen
- Agents: AI voert autonome multi-step taken uit
- Zod voor schema validation
- System prompts schrijven
- Error handling en best practices
- Gratis APIs voor projecten
Studenten doen:
- AI SDK + Zod installeren
- Chat interface bouwen met streaming
- Tools definiëren voor externe API
- Tool calling implementeren
- Simple agent bouwen
Lesopdracht:
- Installeer Vercel AI SDK en Zod
- Bouw chat interface met streaming
- Definieer minimaal 2 tools
- Implementeer tool calling
- Test met externe API
Huiswerk: Add more tools, implementeer agents met maxSteps, documenteer in AI-DECISIONS.md, integreer in eindproject.
Les 16: AI Chat Interface & Streaming
Tools: Vercel AI SDK, Cursor, Browser APIs
Docent vertelt:
- Streaming responses: hoe werkt het?
- useChat hook: state management
- Chat UI patterns: message history, loading states
- Markdown rendering in chat
- Error states en edge cases
- User input handling en sanitization
- Performance optimalisatie
Studenten doen:
- Chat UI bouwen met useChat
- Streaming responses implementeren
- Message history managen
- Error handling toevoegen
- Styling met Tailwind
- In eindproject integreren
Lesopdracht:
- Bouw chat interface met Vercel AI SDK
- Implementeer streaming responses
- Maak message history persistent (localStorage of DB)
- Voeg error handling toe
- Style met Tailwind + shadcn/ui
Huiswerk: Add chat features (clear history, export, favorites), deploy naar Vercel, gather user feedback.
Les 17: Eindproject Werkdag
Tools: Cursor, Vercel, Supabase, alle vorige tools
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
- Testing en bug fixes
- Voorbereiding voor presentatie
- Code review voorbereiden
Lesopdracht:
- Alle features afmaken van je eindproject
- Testing: user flows doorlopen
- Bug fixes en edge cases
- Code cleanup en refactoring
- Deploy naar Vercel
Huiswerk: Laatste fixes, presentatie voorbereiden, documentatie finaliseren, demo video opnemen (optioneel).
Les 18: Deployment, Presentaties & Evaluatie
Tools: Vercel, GitHub, Supabase
Deployment Setup (30 min):
- Vercel deployment flow
- Environment variables setup
- Supabase productie configuration
- Custom domains (optioneel)
- Performance optimization (Lighthouse)
- Security checklist
Presentaties & Evaluatie (90 min):
- Iedereen presenteert eindproject (5 min per student)
- Live demo
- Vragen van docent en klasgenoten
- Feedback ontvangen
- Course evaluatie
Docent vertelt:
- Best practices deployment
- Performance monitoring
- Error tracking en logging
- Continuous deployment setup
- Next steps: career paths, advanced topics
Studenten doen:
- Final deployment naar Vercel
- Performance audit (Lighthouse)
- Security checklist doorlopen
- Presentatie geven (5 min)
- Course feedback geven
Lesopdracht:
- Deploy eindproject productie
- Configure environment variables
- Run Lighthouse audit (score >80)
- Complete security checklist
- Present your project
Huiswerk: N.A. - Course afgerond!
Tech Stack
- Frontend: React, Next.js, TypeScript, Tailwind CSS
- Backend: Supabase (Postgres database, Auth)
- Data Fetching: React Query (TanStack Query)
- AI Tools: ChatGPT, Claude Desktop, v0.dev, OpenCode, Cursor
- AI SDK: Vercel AI SDK voor AI features in apps
- Deployment: Vercel, GitHub
Structuur per Les
Elke uitgewerkte les bevat:
Les[xx]-Slide-Overzicht.md- Slide deck structuurLes[xx]-Lesplan.md- Tijdsindeling en activiteitenLes[xx]-Docenttekst.md- Uitgebreide docenthandleidingLes[xx]-Bijlage-A-Lesopdracht.md- Lesopdracht (2 uur)Les[xx]-Bijlage-B-Huiswerkopdracht.md- Huiswerkopdracht (2 uur)