Författare: Håkan Elderstig
Oavsett vilken nivå du befinner dig på kan du prestera mycket bättre med hjälp av AI. Störst förbättring får du på områden där du inte kan så mycket. Inom programmering är det särskilt tydligt. Mina elever byggde applikationer i Python, html, CSS och Javascript med nästintill inga förkunskaper. Hur går det till och vilka möjligheter öppnas här?

Inledning
Micke Kring skrev inspirerande om hur man kan levla upp med hjälp av AI. Trots detta tog det emot att prova själv. Jag var förvisso ganska bra på Fortran 77 på åttiotalet och har sedan dess fuskat lite i html, CSS, Javascript och Python.
Jag började testa lite vad vår språkmodell deepseek-coder-33B-instruct-AWQ kunde göra. Jag såg också i mina kurser hur eleverna använde ChatGPT för att skapa kod till sina Arduinoprojekt.
Jag visste att vi under våren fått ett API till TeachGPT men jag kände ett visst motstånd mot att prova vad man kunde göra med det men Nils Gustafsson som gjorde sin VFU hos oss testade (med ChatGPT) och skapade en övning för en lektion där eleverna skulle öva sig på Python-programmering och API:et mot TeachGPT.
Jag testade detta i mina fem klasser, utan de bästa förutsättningarna i slutet av vårterminen och inte direkt motiverat av centrala innehållet eller betygsgrundande. Det skedde i kurserna Teknik 1, Teknik 2 och Konstruktion 1. Eleverna som läste Teknik 1 gick i ettan och hade inte läst kursen programmering 1, men de hade i teknikkursen programmerat Arduino och därefter fått en fyra-lektioners-kurs i Pythonprogrammering. Eleverna i Teknik 2-kursen hade genomfört nästan hela Programmering 1 och naturligtvis programmerat Arduino. Treorna som hade konstruktionskursen hade naturligtvis ännu mer erfarenhet av programmering i C# och, Arduinokod men hade i de flesta fall ingen erfarenhet av Python.
Genomförande
Av brist på tid planerade jag in denna övning för en lektion. Det som Nils Gustafsson planerat för en lektion utökade jag med fler uppgifter där eleverna skulle utveckla vidare med hjälp av vår AI. Det är tydligt att tiden inte räckte riktigt men det var ett test som jag ville genomföra i så många klasser som möjligt för att få in erfarenheter. Man kan säga att jag tittade efter positiva resultat hos de som kom längst och hade en lägre ambitionsnivå för de övriga. Syftet med lektionen var att visa att man kan nå mycket längre än man tror med AI-stöd, att man kan bygga saker på teknikområden där man saknar tidigare erfarenhet samt att man i princip kan realisera vilken (teknisk) idé som helst om man har AI-stöd och lägger den tid som krävs.
Lektionsupplägget
Vi började med Nils Gustafssons instruktion som fanns i en pdf. Här installerar eleverna Python samt ett bibliotek. Därefter skaffar de en API-nycket till vår AI TeachGPT. Slutligen kör de ett program som ställer en fråga till språkmodellen. Detta sker i Pythonkoden och är långt ifrån en chatbot.
Förståelse
Min uppmaning är att använda AI för förståelse. Exempelvis kan eleven be om att få en kod förklarad och sedan klippa in koden, där man får bättre resultat om man förklarar vad övningen handlar om, att man inte kan så mycket Python, att modellen är en duktig lärare, osv.

Nu använder vi min lektionsplanering där jag lagt in några länkar som stöd för eleverna. Bland annat kan det hända att eleverna förlorar indenteringen när de kopierar Nils Gustafssons exempelkod så jag länkar till en korrekt fil.
Utveckla interaktionen med programmet
Uppmaningen var: Gör det lättanvänt.
Det är lite beroende av slumpen vilka förbättringsförslag eleverna får men det vanligaste förslaget gick ut på att använda biblioteket tkinter för att skapa dialogrutor. I ett typfall får man en pop-up-ruta för att ställa fråga till språkmodellen och en ny ruta ger svaret. Eleverna kan be om många olika modifieringar, exempelvis att förlänga textfältet, låta texten skrivas på flera rader, kombinera in- och utmaningsrutorna till en, osv.

Här finns det många möjligheter till stegvisa förbättringar som visas i bilden nedan.

Tag det till webben
Nästa uppmaning: Tag det till webben.
Även om vi ökat på användarvänligheten med de tidigare kodförbättringarna är det begränsande att arbeta i Python. Om vi går över till html, CSS och Javascrip ökar möjligheterna till design och layout. Detta är helt nytt för de flesta elever, men det går bra ändå, eftersom språkmodellen klarar att generera fungerande kod.


Ge dem tid
Även om modellen kan generera kod krävs det viss erfarenhet för att använda koden och ställa rätt frågor till modellen. Exempelvis kan man be modellen baka in CSS och Javascript i html-filen, vilket inte är uppenbart för en novis. Jag märkte efterhand att min instruktion inte räckte till och skapade en presentation som visar på hur utvecklingen kan gå med exempel från min dialog. Denna presentation kunde jag visa för klassen vid lämpliga tillfällen när de behövde komma på banan igen. Det är viktigt att ge eleverna gott om tid för att prova olika frågor till modellen och att stötta dem så de utvecklar sitt promptande. Presentationen kan du ladda ner och bygga vidare om du vill.
(För min egen referens ligger dialogen som bilderna hämtats från här: https://teachgpt.ssis.nu/chat/135)
Resultat
Trots att grupperna som gjorde övningen hade olika erfarenheter av programmering så var erfarenheterna desamma. Jag redovisar mina reflektioner från årskurs ett nedan.
Teknik 1-kursen
Jag har använt språkmodeller i Teknik 1, där bl.a. övningen har som mål att eleverna ska se faktisk nytta med språkmodellerna. Eleverna hade fått en minikurs i programmering med Python. Första momentet i lektionen gick ut på att de fick be om respons på sin egen kod. Eleverna upptäckte att de behöver ge modellen tydliga instruktioner för att få ett bra svar.
Därefter fick de Nils Gustafssons färdiga kod som kopplar upp mot API till TeachGPT. Den koden är mer avancerad än vad eleverna lärt sig och de fick be språkmodellen förklara koden, vilket den gör bra. Förklaringen av koden är ganska lång och många elever orkar inte läsa den noggrant. Här kunde jag ha uppmanat eleverna att be om att få förklaringen i punktform, eller korta stycken.
Sedan fick de be om hjälp med att förbättra koden och här kan de verkligen höja sin förmåga flera steg. De kan gå från att språkmodellen svarar i terminalfönstret till att använda dialogrutor och vidare till att skapa en hemsida med chatfunktion. Detta visar att eleverna med AI-stöd i princip kan bygga vilka applikationer som helst, bara fantasin sätter gränser. Här uppkommer stor spridning i vad eleverna klarar av och jag behöver återkomma till övningen med dem lite senare för att ge dig mer tid så att fler elever upptäcker potentialen.
Pythonspelet
Två elever kom till mig någon dag innan betygen i Teknik 1 skulle vara satta och undrade om jag vill titta på det spel de tillsammans byggt. Det visade ett grafiskt spel med flera nivåer och uppgifter som skulle lösas. Inför slutuppgiften fick man råd och information genom att chatta med språkmodellen, som hade försetts med information om spelet.


Sammanfattning
Elever kan göra betydligt mer i ett programmeringsspråk som de har lite kännedom om så man kan definitivt säga att de levlar upp, men inte bara det. Eleverna kan ge sig in på nya områden, nya språk och nya ramverk.
Ett entreprenöriellt perspektiv är att det saknas gränser för vad eleverna kan åstadkomma. Har man en idé kan man få all hjälp av AI för att genomföra den. Det kommer förstås att ta tid men även om man inte kan programmera eller använda verktyg av olika slag kan man bygga det man vill ha: hemsidor, appar, AI-tjänster, spel m.m.
Men, när det fungerar är det oerhört stort. Jag har sett elever installera Python och förbättra kod, använda API, installera bibliotek, använda terminalen och Json och sedan gå in på html, CSS och Javascript. Självklart har de inte lärt sig så mycket om alla de har språken och ramverken men de har sett hur saker hänger ihop, hur man kan bygga komplexa produkter och hur de kan vidga vyerna och nå bortom horisonten. Det krävs tid och arbete men då blir allt möjligt.
Fortsättning och uppmaning
Jag hoppas inspirera andra att låta eleverna upptäcka de enorma möjligheter som finns med att utveckla tillsammans med en AI. Mitt exempel är bara ett av oändligt många. Du som läser detta får gärna kopiera mitt upplägg men gör hellre din egen grej. En viktig erfarenhet är att ta det i mindre steg och ge eleverna gott om tid. Själv tänker jag ha med något liknande i var och en av mina kurser i höst.
En sak jag tar med mig är att ägna mer tid åt att låta eleverna upptäcka det här arbetssättet. Ett sätt kan vara att använda flipped classroom. Introducera en uppgift i klassrummet så att alla kommer igång. Ge sedan i läxa att de ska laborera hemma så mycket de hinner. Nästa lektion får de visa vad de gjort och diskutera sina erfarenheter.