Algoritmer

8. trinn

En algoritme som fungerer på ÉN test er ikke nødvendigvis en god algoritme – den må testes med flere ulike innganger, inkludert vanskelige spesialtilfeller, før du kan stole på den. Denne siste ferdigheten, å teste, feilsøke og forbedre kode systematisk, er noe av det mest nyttige du lærer i programmering – langt utover matematikken.

Bygger på: Algoritmer (7. trinn)

Start: Teste og forbedre en algoritme →
  1. 1Teste og forbedre en algoritmeUndertema
  2. 2Programmere en enkel matematisk algoritmeUndertema
  3. 3Feilsøke i kodeUndertema
  4. 4Ord og uttrykkOrdliste
  5. 5Sjekk din forståelseQuiz
  6. 6EksamensoppgaverEksamensoppgaver

Vanlige feil

Vanlig feilGjør heller dette
Tester en algoritme kun med ett «vanlig» tilfelle og konkluderer at den er feilfri.Test alltid med randtilfeller også: like tall, null, negative tall, tomme lister – det er der de fleste feil skjuler seg.
Bruker feil sammenligningstegn, f.eks. > i stedet for ≥, og overser dermed grensetilfeller (en «av-med-én»-feil).Sjekk grensen nøye ved å spore algoritmen med akkurat grenseverdien – gir den svaret oppgaven faktisk krever?
Retter en feil uten å teste den nye versjonen mot ALLE tidligere testtilfeller igjen.Etter en rettelse, kjør gjennom alle testtilfellene på nytt – en rettelse kan ha innført en NY feil et annet sted.

Til foreldre / leksehjelper

Kompetansemål fra læreplanen (Udir)
  • utforske hvordan algoritmer kan skapes, testes og forbedres ved hjelp av programmering (se hos Udir)

Eleven skal kunne utforske hvordan algoritmer kan skapes, TESTES og FORBEDRES ved hjelp av programmering – vekten på testing og feilsøking (ikke bare det å skrive kode) er kjernen i dette kompetansemålet.

Slik kan du hjelpe

  • Spill «finn feilen» sammen: skriv ned en enkel steg-for-steg-oppskrift (algoritme) for noe hverdagslig, som å lage en brødskive, med en bevisst feil – la eleven finne og rette feilen.
  • Hvis du selv ikke har programmeringsbakgrunn: fokuser på selve tenkemåten («hva skjer hvis input er 0, eller negativt, eller veldig stort?»), ikke syntaksen i et bestemt programmeringsspråk.

Nye begreper

Feilsøking (debugging)
Å finne og rette feil i en algoritme eller et program.
Randtilfelle
En vanskelig eller uvanlig inngangsverdi (som null eller like tall) som ofte avslører feil i en algoritme.

Pedagogikken bak

På 8. trinn løftes algoritme-arbeidet fra mellomtrinnets fokus på å FORSTÅ og SPORE algoritmer, til å TESTE, FEILSØKE og FORBEDRE dem – en overgang fra å lese kode til å tenke kritisk om kodens pålitelighet, som er sentralt i faktisk programmeringsarbeid.

Alternative metoder

Læres dette annerledes i landet du selv gikk på skole i? Se «Alternativ forklaring/metode» på: Teste og forbedre en algoritme, Programmere en enkel matematisk algoritme, Feilsøke i kode.

Vanlige feil å være oppmerksom på

Se «Vanlige feil» over for en oversikt over misforståelser å se etter, og hva som er riktig i stedet.