
LLM Assisted coding¶
Op de 5e en 6e verdieping van het Wibauthuis zijn tijdelijk 10 i(e)Beacons verstopt. Ze zien er uit als een ei maar bevatten een iBeacon.
Als je alle eiBeacons wil vinden zal je ze moeten zoeken met behulp van je laptop, je smartphone of je ESP32. Maar, er is een catch:
Je moet de eiBeacons vinden met je eigen geschreven code!
Daar heb je een middag de tijd voor. Dat is niet lang maar gelukkig mag je alle hulp inroepen van jouw AI naar keuze.
Welke AI?
Er zijn meerdere AI assistenten beschikbaar:
Naam | Toegang | Opmerkingen |
---|---|---|
ChatGPT (OpenAI) | chat.openai.com | Beschikbaar via gratis en betaalde versies. GPT-4 presteert goed bij programmeertaken. |
Copilot (GitHub) | in Visual Studio Code | Goed geïntegreerd in ontwikkelomgevingen, zeer geschikt voor live code-aanvulling. Tip:gratis voor studenten |
Gemini (Google) | gemini.google.com | Sterk in integratie met Google-tools, handig voor brainstorm en tekst. |
Claude (Anthropic) | claude.ai | Sterk in lange contexten en tekstuele uitleg, erg goed in code. De gratis versie is beperkt. |
Code Llama (Meta) | Verschillende platformen | Specifiek gericht op programmeren, minder beschikbaar via een chatinterface. Dit LLM werkt ook lokaal, op je eigen computer. Daar kan je lm studio of jan.ai voor gebruiken. |
Tips voor het programmeren met AI
- 🎯 Wees specifiek over je doel Geef duidelijk aan wat je wil dat de code doet. Niet alleen “scan naar beacons”, maar bijvoorbeeld:
“Ik wil een app die op een Android-telefoon draait, BLE-beacons scant, en de naam en RSSI van elk gevonden device toont in een lijst.”
- 💻 Geef de context mee Vertel waar de code moet draaien en in welke taal je wil werken. Bijvoorbeeld:
“Schrijf deze code in JavaScript voor een webapp die draait in de browser.”
“Ik gebruik een ESP32 DevKit v1, programmeer in Arduino.”
- 🧱 Vraag eerst om een structuur, daarna om details In plaats van meteen de volledige code te vragen, kun je starten met:
“Welke stappen moet ik volgen om een app te maken die BLE-beacons scant op een iPhone met Swift?” Daarna kun je per stap code laten schrijven.
- 🔁 Itereer bewust Gebruik het antwoord om een betere prompt te maken. Bijvoorbeeld:
“Deze code geeft een fout over ‘BLEAdapter’, kun je dat uitleggen en verbeteren?”
“Kun je deze code herschrijven zodat hij werkt met de nieuwste Android BLE API?”
- 📌 Vraag om uitleg bij de code Zo leer je meer van wat je krijgt:
“Leg stap voor stap uit wat deze code doet.”
“Wat doet deze regel precies en waarom is die nodig?”
- 📷 Gebruik voorbeelden of concrete situaties Bijv.:
“Ik heb een iBeacon met de naam ‘egg123’. Mijn code moet deze herkennen en de afstand schatten op basis van RSSI.”
- 🧠 Geef beperkingen of randvoorwaarden op Zoals:
“Gebruik geen externe bibliotheken.”
“Zorg dat de code werkt op een ESP32 met weinig geheugen.”
“Ik wil alleen console-output, geen UI.”
- 📚 Vraag om documentatie of leermateriaal Bijv.:
“Geef me een uitleg en voorbeeld over hoe BLE werkt op een ESP32 in de Arduino IDE.”
“Welke permissies zijn nodig om BLE te gebruiken op Android 14?”
- 🧪 Gebruik het als een programmeermaatje, niet alleen als codegenerator Vraag het model om samen na te denken:
“Wat is een efficiënte manier om meerdere beacons tegelijk te scannen?”
“Wat zijn alternatieven als mijn apparaat BLE niet ondersteunt?”
- ✍️ Reflecteer met prompts
“Help mij een reflectie te schrijven over hoe ik ChatGPT heb gebruikt bij het maken van deze app.”
“Wat waren volgens jou sterke en zwakke punten in mijn aanpak?”
“Waar zou ik meer aandacht aan moeten besteden in de nabije toekomst?”
Niet meenemen!
Laat de eieren wel liggen als je ze hebt gevonden! Zo krijgt iedereen de kans om ze te vinden. Neem alleen een foto van het ei en noteer de naam en de ruimte waar je het ei gevonden hebt.
Deelopdrachten¶
1. Verkenning en technologiekeuze¶
Probleem: Welk apparaat en welke programmeertaal/platform zijn het meest geschikt voor het detecteren van BLE-beacons in jullie situatie?
Zorg ervoor dat je genoeg context geeft zodat je AI assistent weet wat jullie situatie is. Laat de LLM meerdere opties overwegen en besluit zelf welk platform, welke programmeertaal en welke libraries het beste zijn voor jullie.
2. Requirement engineering¶
Probleem: Wat moet je applicatie precies doen? Gebruik alle informatie die je hebt om tot goede prompts te komen.
3. Eerste versie van de app maken¶
Probleem: Hoe schrijf je de eerste versie van je app of script?
Kijk kritisch naar de gegenereerde code en bepaal of je dit in de gegeven tijd kan laten draaien. Moet je veel dingen installeren? Duurt het lang voordat je de code kan draaien? etc.
Probeer meerdere LLM’s
Als je goede requirements hebt opgesteld kan je die eens aan een andere AI-assistent voorleggen. Sommige LLMs zijn beter in code schrijven dan anderen.
Test de code en gebruik het LLM opnieuw voor foutopsporing. Wees uitgebreid bij het beschrijven van de fouten en probeer de gegeven verbeteringen te begrijpen voordat je ze uitvoert.
4. Verbeteringen aanbrengen¶
Probleem: Hoe maak je je app gebruiksvriendelijker, stabieler of uitgebreider?
Heb je nog tijd voor een userinterface? Kan je filteren zodat je de goede beacons sneller vind?
Eerst testen
Doe eerst een kleine testrun voordat je verbeteringen aanbrengt. Implementeer verbeteringen op basis van je ervaringen.
5. Beaconzoektocht¶
Gebruik je app om de 10 beacons te vinden. Log bij elke beacon:
- De naam van de beacon
- Een foto
- De locatie (ruimte, verdieping)
6. Reflectie¶
Wat heb je geleerd over het gebruik van een LLM? Wat werkte goed, wat minder?
Je reflectie bevat minimaal:
- Welke prompts je gebruikt hebt
- Wat werkte goed, wat niet
- Hoe je je prompts hebt aangepast
- Wat je een volgende keer anders zou doen
Plaats je reflectie in Portflow en bespreek deze met je docent voor Hardware, Software, Onderzoekend Probleemoplossen en Persoonlijk Leiderschap.
Als het niet lukt
Als het niet lukt om de eiBeacons te scannen met je eigen code, dan mag je aan het einde wel een bestaande beacon-scanner app gebruiken om de eieren te vinden.