# AI Development Curriculum - NOVI Hogeschool Een 18-weekse cursus die studenten meeneemt van AI-beginner naar AI-powered developer. **Totaal: 30 EC** verdeeld over 3 delen. --- ## Overzicht | Les | Onderwerp | Deel | Status | |-----|-----------|------|--------| | 01 | [Introductie tot AI en Large Language Models](Samenvattingen/Les01-Samenvatting.md) | 1 | βœ… Uitgewerkt | | 02 | [AI Code Assistants en OpenCode Desktop App](Samenvattingen/Les02-Samenvatting.md) | 1 | πŸ“‹ Samenvatting | | 03 | [AI Ethics, Privacy & Security + WebStorm](Samenvattingen/Les03-Samenvatting.md) | 1 | πŸ“‹ Samenvatting | | 04 | [Effectief Prompting, Iteratief Werken & Skills](Samenvattingen/Les04-Samenvatting.md) | 2 | πŸ“‹ Samenvatting | | 05 | [AI Tool Selection & Workflows](Samenvattingen/Les05-Samenvatting.md) | 2 | πŸ“‹ Samenvatting | | 06 | [Hands-on: Van Idee naar Prototype](Samenvattingen/Les06-Samenvatting.md) | 2 | πŸ“‹ Samenvatting | | 07 | [Next.js Project Setup](Samenvattingen/Les07-Samenvatting.md) | 2 | πŸ“‹ Samenvatting | | 08 | [Supabase Basics](Samenvattingen/Les08-Samenvatting.md) | 2 | πŸ“‹ Samenvatting | | 09 | [AI Agents - Custom GPTs & Claude Projects](Samenvattingen/Les09-Samenvatting.md) | 2 | πŸ“‹ Samenvatting | | 10 | [Introduction to Cursor](Samenvattingen/Les10-Samenvatting.md) | 3 | πŸ“‹ Samenvatting | | 11 | [Project Setup & Repository Structure](Samenvattingen/Les11-Samenvatting.md) | 3 | πŸ“‹ Samenvatting | | 12 | [MCP & Context Management](Samenvattingen/Les12-Samenvatting.md) | 3 | πŸ“‹ Samenvatting | | 13 | [Mastering Cursor](Samenvattingen/Les13-Samenvatting.md) | 3 | πŸ“‹ Samenvatting | | 14 | [Debugging & Code Review met AI](Samenvattingen/Les14-Samenvatting.md) | 3 | πŸ“‹ Samenvatting | | 15 | [Vercel AI SDK - AI Features in je App](Samenvattingen/Les15-Samenvatting.md) | 3 | πŸ“‹ Samenvatting | | 16 | [Deployment & Production](Samenvattingen/Les16-Samenvatting.md) | 3 | πŸ“‹ Samenvatting | | 17 | [Eindopdracht Kickoff](Samenvattingen/Les17-Samenvatting.md) | 3 | πŸ“‹ Samenvatting | | 18 | [Eindproject Werksessie](Samenvattingen/Les18-Samenvatting.md) | 3 | πŸ“‹ Samenvatting | --- ## Tool Progressie | Deel | Tools | Kosten | |------|-------|--------| | Deel 1 | ChatGPT, v0.dev, OpenCode, WebStorm | Gratis (WebStorm via school) | | Deel 2 | OpenCode, Claude Desktop, Skills.sh | Gratis | | Deel 3 | Cursor | Free tier beschikbaar | **Eindopdracht:** Cursor (free tier voldoende) --- # Deel 1: Fundamentals of AI-Driven Development **3 lessen Β· 5 EC** Kennismaking met AI, LLMs en de basis van AI-assisted development. --- ### 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 - Prompt engineering basics: rol, context, taak, format - De schets-naar-website workflow **Studenten doen:** - ChatGPT account aanmaken en verkennen - Eerste prompts schrijven en itereren - Complete workflow: schets op papier β†’ foto β†’ ChatGPT prompt β†’ 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. [β†’ Ga naar Les 1](Samenvattingen/Les01-Samenvatting.md) --- ### Les 2: AI Code Assistants en OpenCode Desktop App **Tools:** OpenCode Desktop App, Ollama/Groq API **Docent vertelt:** - Verschil chat-interfaces vs geΓ―ntegreerde development tools - OpenCode als standalone desktop applicatie (gratis!) - Hoe AI code assistants werken - Best practices voor code generation prompts - Wanneer AI wel/niet te vertrouwen **Studenten doen:** - OpenCode installeren en configureren - Gratis model koppelen (Ollama lokaal of Groq API) - Interface verkennen: code editor, chat, terminal - Eerste component bouwen met AI hulp **Lesopdracht:** Installeer OpenCode, koppel gratis model, bouw responsive navbar component met AI assistance, experimenteer met verschillende prompts. **Huiswerk:** Bouw landing page component library (hero, features, testimonial, CTA, footer), schrijf blog post over ervaring met OpenCode (300 woorden). [β†’ Ga naar Les 2](Samenvattingen/Les02-Samenvatting.md) --- ### Les 3: AI Ethics, Privacy & Security + WebStorm Integration **Tools:** WebStorm (school licentie), OpenCode plugin, Git **Docent vertelt:** - Privacy risico's: wat NOOIT te delen met AI (API keys, credentials, client data) - Data ownership bij AI services - waar gaat je code naartoe? - Security vulnerabilities in AI-generated code (SQL injection, XSS) - GDPR/AVG compliance basics - WebStorm als professionele IDE **Studenten doen:** - Security workshop: identificeer problemen in AI-generated code - Maak persoonlijke "AI Safety Checklist" - WebStorm installeren met school licentie - OpenCode plugin configureren in WebStorm **Lesopdracht:** Security audit van AI-generated code (vind 5 problemen), setup WebStorm met OpenCode plugin, maak je eerste project in WebStorm. **Huiswerk:** Bouw secure feature (contact form of auth flow), review met je Safety Checklist, schrijf uitgebreide README met gevonden issues en fixes. [β†’ Ga naar Les 3](Samenvattingen/Les03-Samenvatting.md) --- # Deel 2: Intermediate AI-Driven Development **6 lessen Β· 10 EC** Verdieping in prompt engineering, hands-on bouwen, en introductie tot Supabase en AI agents. --- ## 2.1 Prompt Engineering & Consolidatie ### 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:** - 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. [β†’ Ga naar Les 4](Samenvattingen/Les04-Samenvatting.md) --- ### Les 5: AI Tool Selection & Workflows **Tools:** ChatGPT, Claude, v0.dev, OpenCode **Docent vertelt:** - Overzicht van alle AI tools die we kennen - Sterke en zwakke punten per tool - Wanneer gebruik je welke tool? - Tool selection framework: taak β†’ tool - Workflow patterns voor AI-assisted development **Studenten doen:** - Dezelfde taak uitvoeren in 3 verschillende tools - Output vergelijken en analyseren - Tool selection framework invullen - Eigen workflow documenteren | Tool | Sterk in | Minder sterk in | |------|----------|-----------------| | ChatGPT | Brainstormen, uitleg, planning | Grote codebases | | Claude | Lange context, nuance, analyse | Soms te voorzichtig | | v0.dev | UI components, snel prototypen | Complexe logica | | OpenCode | Code schrijven, project context | Geen web access | **Lesopdracht:** Bouw een "Contact Form" component met 3 tools (ChatGPT planning β†’ v0.dev UI β†’ OpenCode logica). Documenteer per tool: wat werkte, wat niet, hoe lang duurde het. **Huiswerk:** Maak je eigen "Tool Selection Cheat Sheet", test het op 2 nieuwe taken, reflecteer op je workflow (400 woorden). [β†’ Ga naar Les 5](Samenvattingen/Les05-Samenvatting.md) --- ### Les 6: 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:** - 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), bereid je voor op Les 7 (Next.js). [β†’ Ga naar Les 6](Samenvattingen/Les06-Samenvatting.md) --- ## 2.2 Next.js & Supabase ### Les 7: Next.js Project Setup **Tools:** Next.js, OpenCode/WebStorm, Git, Vercel **Docent vertelt:** - Wat is Next.js en waarom gebruiken we het? - `npx create-next-app` stap voor stap - Project structuur uitgelegd (app/, components/, lib/) - TypeScript basics voor React - Tailwind CSS in Next.js - Git basics: commits, push, .gitignore **Studenten doen:** - Eerste Next.js project aanmaken - Project structuur verkennen - Simpele pagina's maken - Components maken en importeren - Deployen naar Vercel **Lesopdracht:** 1. Run `npx create-next-app@latest` met TypeScript + Tailwind 2. Maak 3 pagina's (home, about, contact) 3. Maak 2 herbruikbare components (Header, Footer) 4. Style met Tailwind 5. Deploy naar Vercel **Huiswerk:** Voeg 2 extra pagina's toe, maak 3 extra components, experimenteer met Tailwind, push alles naar GitHub. [β†’ Ga naar Les 7](Samenvattingen/Les07-Samenvatting.md) --- ### Les 8: Supabase Basics **Tools:** Supabase, Next.js, OpenCode **Docent vertelt:** - Wat is Supabase? (database + auth in één) - Supabase project aanmaken (live demo) - Table Editor: tabellen maken zonder SQL - Environment variables: wat, waarom, hoe - Supabase client setup - CRUD operaties uitgelegd - Auth UI component (plug & play login) **Studenten doen:** - Supabase account en project aanmaken - Eerste tabel maken via UI - `.env.local` configureren - Supabase client maken - Data ophalen en tonen - Auth toevoegen **Lesopdracht:** 1. Maak Supabase project 2. Maak `todos` tabel via Table Editor 3. Configureer `.env.local` 4. Bouw Todo app: lijst tonen, toevoegen, afvinken, verwijderen 5. Voeg login toe met Auth UI **Huiswerk:** Extend Todo app (filtering, user-specifieke todos), deploy naar Vercel met env vars, test in productie. [β†’ Ga naar Les 8](Samenvattingen/Les08-Samenvatting.md) --- ## 2.3 AI Agents ### Les 9: AI Agents - Custom GPTs & Claude Projects **Tools:** ChatGPT (Custom GPTs), Claude Desktop (Projects) **Docent vertelt:** - Wat zijn AI Agents? Verschil chatbot vs agent - Custom GPTs: hoe maak je ze, wat kun je ermee - Claude Projects: custom instructions + project knowledge - Wanneer een agent vs gewoon chatten - Best practices voor agent instructions **Studenten doen:** - Custom GPT maken voor code review - Claude Project opzetten voor eigen project - Agents testen en vergelijken - Instructions itereren en verbeteren **Lesopdracht:** 1. Maak Custom GPT "Code Reviewer" met specifieke checklist 2. Maak Claude Project voor je Todo app met project context 3. Test beide met dezelfde code 4. Documenteer: welke geeft betere feedback? **Huiswerk:** Maak "Personal Dev Assistant" agent afgestemd op jouw workflow, test in echt werk, deel je beste agent config met de klas. [β†’ Ga naar Les 9](Samenvattingen/Les09-Samenvatting.md) --- # Deel 3: Advanced AI-Driven Development **9 lessen Β· 15 EC** Cursor als professionele tool, MCP, debugging, AI features bouwen, en het eindproject. --- ## 3.1 Cursor & Professional Workflow ### Les 10: Introduction to Cursor **Tools:** Cursor **Docent vertelt:** - Waarom Cursor? De professionele AI editor - Free tier vs Pro: wat krijg je? - Core features: Tab completion, CMD+K, Chat, Composer - Cursor vs OpenCode: wanneer welke? - Live demo van Cursor workflow **Studenten doen:** - Cursor installeren - Bestaand project openen in Cursor - Tab completion ervaren - CMD+K voor inline edits - Chat voor vragen over code - Composer voor multi-file changes **Lesopdracht:** 1. Installeer Cursor (free tier) 2. Open je Todo app in Cursor 3. Voeg nieuwe feature toe met alleen Cursor (bijv. due dates) 4. Gebruik elke feature minstens 3x: Tab, CMD+K, Chat, Composer 5. Noteer: wat werkt goed, wat is wennen? **Huiswerk:** Bouw complete mini-feature met Cursor, vergelijk ervaring met OpenCode, schrijf reflectie (400 woorden). [β†’ Ga naar Les 10](Samenvattingen/Les10-Samenvatting.md) --- ### Les 11: Project Setup & Repository Structure **Tools:** Cursor, Git, GitHub **Docent vertelt:** - Waarom goede project structuur cruciaal is voor AI - De ideale folder structuur voor Next.js + Cursor - .cursorrules files: wat zijn ze, hoe schrijf je ze - docs/ folder: PROMPT-LOG, AI-DECISIONS, PROJECT-BRIEF - Environment variables: lokaal vs productie - README best practices **Studenten doen:** - Eindproject repository aanmaken - Folder structuur opzetten - .cursorrules files schrijven - docs/ templates invullen - Eerste commit en push **Lesopdracht:** 1. `npx create-next-app` voor je eindproject 2. Maak folder structuur aan (zie template) 3. Schrijf `general.mdc` met jouw project regels 4. Vul PROJECT-BRIEF.md volledig in 5. Push naar GitHub **Huiswerk:** Voeg extra .cursorrules files toe, start PROMPT-LOG.md, maak eerste components met Cursor. [β†’ Ga naar Les 11](Samenvattingen/Les11-Samenvatting.md) --- ### Les 12: MCP & Context Management **Tools:** Cursor, Claude Desktop, MCP servers **Docent vertelt:** - Wat is MCP (Model Context Protocol)? - MCP servers: filesystem, GitHub, databases - Claude Desktop + MCP configureren - Context windows: wat zijn tokens, waarom limiet? - Context strategieΓ«n: relevante files, pruning - .cursorignore voor grote projecten **Studenten doen:** - MCP servers configureren in Claude Desktop - Filesystem MCP testen - GitHub MCP verkennen - Context optimalisatie oefenen - .cursorignore opzetten **Lesopdracht:** 1. Configureer Claude Desktop met filesystem MCP 2. Test: laat Claude je project analyseren 3. Configureer GitHub MCP 4. Maak .cursorignore voor je project 5. Experimenteer: wat gebeurt er met grote vs kleine context? **Huiswerk:** Voeg extra MCP server toe (naar keuze), optimaliseer je project voor AI context, documenteer in AI-DECISIONS.md. [β†’ Ga naar Les 12](Samenvattingen/Les12-Samenvatting.md) --- ### Les 13: Mastering Cursor **Tools:** Cursor, Claude models **Docent vertelt:** - Model keuze: wanneer Haiku vs Sonnet vs Opus? - Composer Mode diepgaand: multi-file generatie - @ mentions: @Files, @Folders, @Code, @Docs, @Web - Codebase indexing optimaliseren - .cursorrules advanced: meerdere files, condities - Cost management: tokens monitoren **Studenten doen:** - Verschillende models testen op zelfde taak - Complexe feature bouwen met Composer - @ mentions effectief gebruiken - .cursorrules uitbreiden en testen **Lesopdracht:** Bouw complexe Multi-Step Form Wizard met Cursor Composer (4 stappen, progress indicator, validation, localStorage persistence). **Huiswerk:** Research .cursorrules voorbeelden online, schrijf uitgebreide .cursorrules voor jouw eindproject, test en itereer. [β†’ Ga naar Les 13](Samenvattingen/Les13-Samenvatting.md) --- ## 3.2 Quality & AI Features ### Les 14: Debugging & Code Review met AI **Tools:** Cursor, Browser DevTools, React DevTools **Docent vertelt:** - Waarom AI goed is in debugging - Error messages lezen en begrijpen - Debugging workflow: isoleer β†’ context β†’ vraag AI β†’ begrijp - Browser DevTools basics (Console, Network, Elements) - Code review met AI: wat kun je vragen? - Wanneer AI NIET te vertrouwen **Studenten doen:** - Debugging challenge: 6 bugs fixen met AI hulp - Browser DevTools gebruiken - Code review van eigen code met AI - Refactoring met AI suggesties **Lesopdracht:** Los 6 opzettelijke bugs op in gegeven project, documenteer per bug: error message, prompt aan AI, oplossing, wat je leerde. **Huiswerk:** Code review 3 files uit je eindproject met AI, fix gevonden issues, maak persoonlijke debugging checklist. [β†’ Ga naar Les 14](Samenvattingen/Les14-Samenvatting.md) --- ### Les 15: Vercel AI SDK - AI Features in je App **Tools:** Vercel AI SDK, Cursor, OpenAI/Anthropic API **Docent vertelt:** - Waarom Vercel AI SDK? (vs raw API calls) - Installatie en setup - useChat hook: chat interfaces bouwen - useCompletion hook: single completions - Streaming responses: hoe en waarom - API routes voor AI - System prompts schrijven - Kosten en rate limiting **Studenten doen:** - AI SDK installeren - API route maken - Chat component bouwen met useChat - Streaming implementeren - Custom system prompt schrijven **Lesopdracht:** 1. `npm install ai @ai-sdk/openai` 2. Maak `/api/chat` route 3. Bouw chat component met useChat 4. Implementeer streaming 5. Pas system prompt aan voor jouw app **Huiswerk:** Integreer AI feature in je eindproject (Recipe chat / Budget advisor / Travel planner), sla conversations op in Supabase. [β†’ Ga naar Les 15](Samenvattingen/Les15-Samenvatting.md) --- ## 3.3 Deployment & Eindproject ### Les 16: Deployment & Production **Tools:** Vercel, GitHub, Supabase **Docent vertelt:** - Vercel deployment flow - Environment variables in Vercel - Supabase productie setup - Custom domains - Performance basics (Lighthouse) - Monitoring en error tracking - Security checklist voor productie **Studenten doen:** - Eindproject deployen naar Vercel - Env vars configureren - Supabase redirect URLs instellen - Lighthouse audit runnen - Security checklist doorlopen **Lesopdracht:** 1. Deploy eindproject naar Vercel 2. Configureer alle env vars 3. Test volledige app in productie 4. Run Lighthouse, fix issues tot score >80 5. Doorloop security checklist **Huiswerk:** Custom domain toevoegen (optioneel), performance optimaliseren, documentatie updaten met productie URL. [β†’ Ga naar Les 16](Samenvattingen/Les16-Samenvatting.md) --- ### Les 17: Eindopdracht Kickoff **Tools:** Cursor, alle geleerde tools **Docent vertelt:** - Eindopdracht requirements doorlopen - Beoordelingscriteria uitleggen - Timeline en deadlines - Tips voor succesvol afronden - Q&A over onduidelijkheden **Studenten doen:** - Eindopdracht document lezen - Vragen stellen - Planning maken voor komende weken - Beginnen aan ontbrekende features - Peer review setup **Lesopdracht:** Maak gedetailleerde planning voor afronden eindproject, identificeer wat nog moet gebeuren, begin met hoogste prioriteit items. **Huiswerk:** Werk aan eindproject volgens planning, documenteer voortgang, bereid vragen voor voor werksessie. [β†’ Ga naar Les 17](Samenvattingen/Les17-Samenvatting.md) --- ### Les 18: Eindproject Werksessie **Tools:** Cursor, alle geleerde tools **Docent vertelt:** - Korte standup: waar staat iedereen? - Beschikbaar voor vragen en hulp - Geen nieuwe theorie **Studenten doen:** - Werken aan eindproject - Hulp vragen waar nodig - Peer feedback geven - Laatste features afronden - Documentatie completeren - PROMPT-LOG en AI-DECISIONS afronden **Focus:** Dit is werktijd. De docent loopt rond, beantwoordt vragen, helpt bij problemen. Studenten werken zelfstandig aan hun eindproject. **Deliverable eind van de les:** - Werkende app deployed - Documentatie compleet - Klaar voor inleveren (of bijna) [β†’ Ga naar Les 18](Samenvattingen/Les18-Samenvatting.md) --- ## Tech Stack - **Frontend:** React, Next.js, Tailwind CSS - **Backend:** Supabase (Postgres database, Auth) - **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 structuur - `Les[xx]-Lesplan.md` - Tijdsindeling en activiteiten - `Les[xx]-Docenttekst.md` - Uitgebreide docenthandleiding - `Les[xx]-Bijlage-A-Lesopdracht.md` - Lesopdracht (2 uur) - `Les[xx]-Bijlage-B-Huiswerkopdracht.md` - Huiswerkopdracht (2 uur)