Hoppa till innehållet
Teknik · Årskurs 7 · Algoritmernas logik och struktur · Hösttermin

Felsökningstekniker

Eleverna övar på att systematiskt hitta och åtgärda fel i programkod.

Skolverket KursplanerLgr22: Teknik - Åk 7-9 - Strategier för att skriva och felsöka kod

Om detta ämne

Felsökningstekniker handlar om att eleverna övar systematiska metoder för att hitta och åtgärda fel i programkod. I årskurs 7 lär sig eleverna att bryta ner kod i mindre delar, testa steg för steg och använda enkla verktyg som print-satser eller debug-läge i blockbaserade miljöer som Scratch eller Python. Detta svarar direkt mot Lgr22:s mål inom teknikämnet om strategier för att skriva och felsöka kod, och kopplar till enhetens fokus på algoritmers logik och struktur.

Eleverna utvärderar strategier som binärsökning, där man testar mitten av koden för att halvera sökintervallet, eller parfelsökning för att diskutera logiska buggar. De lär sig skilja mellan syntaxfel som stoppar körning, logiska fel som ger fel resultat och runtime-fel som uppstår vid exekvering. Dessa färdigheter stärker problemlösning och kritiskt tänkande, essentiella i digitalt skapande.

Aktivt lärande gynnar felsökning särskilt väl eftersom elever genom praktiska övningar med egen kod upplever hela processen. När de arbetar i par och förklarar felet högt för varandra blir strategierna konkreta, ökar självförtroendet och gör abstrakta begrepp minnesvärda.

Nyckelfrågor

  1. Hur kan vi systematiskt hitta felet i en kod som inte körs?
  2. Utvärdera olika strategier för att lösa logiska buggar.
  3. Förklara varför det är viktigt att testa koden i olika steg av utvecklingen.

Lärandemål

  • Identifiera och klassificera olika typer av fel (syntaxfel, logiska fel, runtime-fel) i en given kodsnutt.
  • Analysera en programkod för att systematiskt lokalisera en specifik bugg med hjälp av felsökningsstrategier.
  • Utvärdera effektiviteten hos olika felsökningsmetoder, såsom print-satser och stegvis exekvering, för att lösa ett programmeringsproblem.
  • Förklara vikten av att testa kod i olika utvecklingsfaser för att säkerställa korrekt funktionalitet.

Innan du börjar

Grundläggande programmeringskoncept (t.ex. variabler, loopar, villkor)

Varför: Eleverna behöver förstå hur grundläggande programmeringskonstruktioner fungerar för att kunna identifiera när de inte beter sig som förväntat.

Algoritmer och problemlösning

Varför: Förmågan att bryta ner problem i mindre steg och tänka logiskt är en grundförutsättning för att kunna felsöka effektivt.

Nyckelbegrepp

SyntaxfelEtt fel i kodens struktur eller grammatik som hindrar programmet från att köras överhuvudtaget. Exempelvis ett saknat semikolon eller felaktig stavning av ett kommando.
Logiskt felEtt fel där koden körs men producerar ett oväntat eller felaktigt resultat. Programmet kraschar inte, men gör inte det som var tänkt.
Runtime-felEtt fel som uppstår under programmets körning, ofta när programmet försöker utföra en omöjlig operation, som att dela med noll. Programmet avbryts då.
DebuggaProcessen att systematiskt hitta och åtgärda fel (buggar) i en programkod.
Print-satsEn instruktion i koden som skriver ut värdet av en variabel eller ett meddelande till skärmen. Används för att följa programmets flöde och kontrollera variablers värden.

Se upp för dessa missuppfattningar

Vanlig missuppfattningAlla fel är syntaxfel som stoppar koden helt.

Vad man ska lära ut istället

Många buggar är logiska och ger fel resultat trots körning. Parfelsökning hjälper elever att testa utdata och diskutera förväntat vs verkligt beteende, vilket avslöjar dolda fel snabbare.

Vanlig missuppfattningMan hittar felet genom att läsa koden en gång.

Vad man ska lära ut istället

Felsökning kräver systematiska tester, inte bara läsning. Stationrotationer med stegvisa tester visar eleverna värdet av iterativ process, och bygger vana vid metodiska strategier.

Vanlig missuppfattningFelet ligger alltid i den sista raden man skrev.

Vad man ska lära ut istället

Fel kan vara i tidiga delar som påverkar senare. Binärsökningsövningar tränar elever att testa mitten först, vilket effektivt lokaliserar problem oavsett position.

Idéer för aktivt lärande

Se alla aktiviteter

Kopplingar till Verkligheten

  • Spelutvecklare på Mojang Studios använder ständigt felsökningstekniker för att identifiera och åtgärda buggar i Minecraft, vilket säkerställer en stabil spelupplevelse för miljontals spelare världen över.
  • Systemutvecklare på Spotify felsöker kod för att säkerställa att musikströmningen fungerar felfritt och att nya funktioner implementeras korrekt, vilket är avgörande för användarnas dagliga lyssnande.
  • Webbutvecklare på IKEA.com felsöker kod för att åtgärda problem med laddningstider eller felaktiga produktvisningar, vilket är viktigt för att kunderna ska kunna handla smidigt online.

Bedömningsidéer

Utgångsbiljett

Ge eleverna en kort kodsnutt med ett dolt fel. Be dem identifiera feltypen (syntax, logiskt, runtime) och skriva en kort förklaring till varför de tror att det är just den typen av fel. De ska också föreslå en första åtgärd för att börja felsöka.

Diskussionsfråga

Presentera ett scenario där ett program ger felaktigt resultat men inte kraschar. Ställ frågan: 'Vilka strategier skulle ni använda för att systematiskt hitta det logiska felet? Beskriv steg för steg hur ni skulle gå tillväga och vilka verktyg ni skulle använda.' Diskutera sedan elevernas olika strategier.

Kamratbedömning

Låt eleverna arbeta i par med en enkel programmeringsuppgift. När de tror att de är klara, ska de byta kod med varandra. Varje elev ska sedan försöka hitta ett fel i partnerns kod och skriva ner en kort instruktion till partnern om var felet kan finnas och hur det skulle kunna åtgärdas.

Vanliga frågor

Hur kan vi systematiskt hitta felet i en kod som inte körs?
Börja med att kontrollera syntax i editorn, lägg sedan in print-satser vid varje steg för att spåra var körningen avbryts. Använd binärsökning genom att kommentera bort halva koden och testa. Detta bygger systematik och minskar frustration, särskilt i Scratch eller Python för årskurs 7.
Vilka strategier är bäst för logiska buggar?
Parprogrammering och rubber duck-metoden är effektiva: förklara koden högt för att upptäcka inkonsekvenser. Testa med olika indata för att jämföra förväntat och verkligt resultat. Dokumentera strategin i en felsökningslogg för att utvärdera och förbättra nästa gång.
Hur kan aktivt lärande hjälpa elever att förstå felsökning?
Aktiva metoder som parfelsökning och stationer låter elever uppleva processen hands-on med egen kod. De förklarar tänkandet för varandra, testar iterativt och ser omedelbara resultat, vilket gör abstrakta strategier konkreta. Detta ökar engagemanget, minskar rädsla för fel och utvecklar självständig problemlösning långsiktigt.
Varför testa koden i olika steg av utvecklingen?
Tidiga tester fångar fel innan de växer, sparar tid och lär elever vanan vid iterativ utveckling. I Lgr22 betonas detta för robust kod. Använd checkpoints efter varje modul för att verifiera logik, vilket kopplar till enhetens algoritmfokus.

Planeringsmallar för Teknik