Når du programmerer, løser du problemer ved å bryte dem ned i små steg og oversette stegene til kode. Underveis oppstår det feil, og å finne dem er en viktig del av arbeidet. Programmene dine kan både løse matematiske oppgaver, styre fysiske enheter som en mikrokontroller, og simulere virkelige situasjoner.
Å utvikle et dataprogram betyr å planlegge en løsning, skrive kode og teste at programmet gjør det det skal. Feilsøking handler om å finne og rette feil i koden. Programmene kan styre fysiske enheter, som en robot eller en lampe, eller simulere hendelser på skjermen.
Målet handler om å gå fra en idé til et fungerende program. Du skal ikke bare skrive kode, men også forstå problemet du løser, velge en god fremgangsmåte og sjekke at resultatet er riktig. Dette kalles programvareutvikling i liten skala.
Feilsøking, eller debugging, er like viktig som selve kodingen. Alle programmer inneholder feil i starten. Å lære seg å finne og rette dem systematisk er en kjerneferdighet som brukes i all programmering, fra skoleprosjekter til profesjonell utvikling.
Fysiske objekter kan være en Arduino, en Micro:bit eller en Raspberry Pi. Å kontrollere slike enheter med kode gir programmeringen en tydelig og konkret mening. Du kan for eksempel blinke med en LED, lese av en sensor eller styre en liten motor.
Start alltid med å forstå problemet. Skriv med egne ord hva programmet skal gjøre, og lag gjerne en enkel skisse eller liste over stegene løsningen krever. Dette er algoritmisk tenkning, å planlegge fremgangsmåten før du begynner å kode.
Del problemet i mindre deler og kode en del om gangen. Test hver del før du går videre. Slik vet du alltid hvilken del av koden som virker og hvilken som ikke gjør det.
Når du feilsøker, bruk utskrifter (print-setninger) for å se hva variablene inneholder underveis. Les feilmeldingene nøye. De forteller deg som regel hvilken linje feilen er på og hva slags feil det er. Søk etter feilmeldingen hvis du ikke forstår den, det er helt lov.
Når programmet fungerer, kan du rydde opp i koden. Gi variablene forståelige navn, skriv kommentarer der koden er komplisert, og sjekk at programmet håndterer uventede inngangsverdier uten å krasje.
En av de vanligste feilene er å prøve å skrive hele programmet på en gang uten å teste underveis. Da er det vanskelig å vite hvor feilen oppsto. Løsningen er å teste ofte og i små biter.
Variabelnavn som x, y og a gjør koden vanskelig å lese og feilsøke. Bruk navn som beskriver hva variabelen inneholder, for eksempel temperatur, antall_forsok eller er_ferdig.
Mange glemmer å håndtere kanttilfeller. Hva skjer hvis brukeren skriver inn et negativt tall, eller en tom tekst? Tenk gjennom hva som kan gå galt og legg inn sjekker i koden.
Ved kontroll av fysiske objekter er det lett å glemme at koden kjører raskt mens den fysiske enheten bruker tid. Legg inn korte pauser der det trengs, slik at sensorer og motorer rekker å reagere.
Den beste måten å bli god på er å programmere jevnlig, gjerne litt hver dag eller uke. Start med enkle oppgaver og øk vanskelighetsgraden gradvis. Plattformer som Scratch, Code.org, Python.org og MakeCode for Micro:bit er gode steder å begynne.
Kopier aldri kode du ikke forstår. Skriv heller koden selv og prøv å forklare for deg selv hva hvert steg gjør. Hvis du ikke kan forklare en linje, trenger du å forstå den bedre før du går videre.
Prøv å gjenskape noe du synes er kult, et enkelt spill, en animasjon eller et program som styrer en LED. Motivasjonen er mye høyere når du lager noe du selv bryr deg om.
Samarbeid med medelever. Å lese andres kode og forklare sin egen er en av de beste måtene å lære på. Sett ord på hva koden gjør, da oppdager du raskt om du virkelig forstår den.
Lag et program i Python som ber brukeren om to tall og skriver ut summen. Programmet skal gi en tydelig feilmelding hvis brukeren skriver inn noe som ikke er et tall.
Fasit: try: tall1 = float(input('Skriv inn det første tallet: ')) tall2 = float(input('Skriv inn det andre tallet: ')) sum = tall1 + tall2 print('Summen er:', sum) except ValueError: print('Feil: Du må skrive inn tall, ikke tekst.')
Steg 1: Bruk input() for å hente tall fra brukeren. Steg 2: Pakk inn koden i try-except for å fange feil hvis brukeren skriver tekst i stedet for tall. Steg 3: Regn ut summen og skriv den ut. Steg 4: Hvis brukeren skriver noe ugyldig, kjører except-blokken og gir en forståelig feilmelding i stedet for at programmet krasjer.
Prøv Lekselos gratis i 14 dager for å lese hele forklaringen, se eksemplet steg for steg og øve på valgfaget programmering tilpasset deg.
Lekselos loser barnet gjennom oppgaven ett steg om gangen, så det lærer i stedet for å kopiere. Du får ukeplan, prøver og gloser samlet, og ser hva som er gjort. Forankret i LK20, laget i Norge. 14 dager gratis, uten kort.
Feilsøking, også kalt debugging, betyr å finne og rette feil i et dataprogram. Du leser feilmeldinger, bruker print-setninger for å sjekke verdier underveis, og tester programmet systematisk til det fungerer som det skal.
For Micro:bit kan du bruke MakeCode på makecode.microbit.org, der du kan kode med blokker eller Python rett i nettleseren og laste ned koden til enheten. For Arduino bruker du Arduino IDE og koder i C. Begge har mange gratis eksempler og veiledninger på nettet.
Algoritmisk tenkning betyr å planlegge en løsning steg for steg før du begynner å kode. Du bryter problemet ned i mindre deler, bestemmer rekkefølgen på stegene og tenker gjennom hva som kan gå galt. Dette gjør selve kodingen enklere og koden bedre.
Les feilmeldingen nøye. Den sier som regel hvilken linje feilen er på og hva slags feil det er, for eksempel SyntaxError eller NameError. Kopier feilmeldingen og søk på den, det finnes svar på nesten alle vanlige feil på nettsteder som Stack Overflow.
Python er et godt valg fordi syntaksen er enkel og lesbar. Scratch passer bra for de som er helt nye, siden man koder med visuelle blokker. MakeCode for Micro:bit er også populært fordi det gir rask tilbakemelding via en fysisk enhet.
Forankring i læreplanen: Kompetansemål (LK20): Fag: Læreplan i valgfaget programmering Trinn: Programmering Kompetansemål: Eleven skal kunne utvikle og feilsøke dataprogram som løser definerte problemer, inkludert kontrollering eller simulering av fysiske objekter. Nynorsk: Eleven skal kunne utvikle og feilsøke dataprogram som løser definerte problemer, inkludert kontrollering eller simulering av fysiske objekter. Kjerneelement: Algoritmisk tenkning, Koding, Programvareutvikling (Kilde: Utdanningsdirektoratet)
Lekselos loser deg gjennom oppgaver med hint, ikke fasit, og lager øving tilpasset deg. Prøv gratis.