Algoritmer og programmering
1T
En algoritme er en oppskrift: en presis rekke steg som løser en type problem hver gang, ikke bare denne ene gangen. Du har brukt algoritmer hele tiden – oppstilt divisjon og abc-formelen er begge algoritmer. Her setter vi ord på hva som gjør en oppskrift til en algoritme, ser hvordan den kan skrives som et program, og – viktigst – hvordan du finner feilen når svaret ikke stemmer.
Bygger på: Andregradslikninger (1T), Funksjoner (1T)
Start: Algoritmisk tenkning i problemløsing →- 1Algoritmisk tenkning i problemløsingUndertema
- 2Programmering som matematisk verktøyUndertema
- 3Vurdere og feilsøke en algoritmeUndertema
- 4Ord og uttrykkOrdliste
- 5Sjekk din forståelseQuiz
- 6EksamensoppgaverEksamensoppgaver
Vanlige feil
| Vanlig feil | Gjør heller dette |
|---|---|
Blander = (tilordning) og == (sammenligning) i kode. | x = 5 setter til ; x 5 spør om er . Bruk i alle if-tester. |
| Lar løkken gå én runde for kort eller for langt. | Kontroller svaret mot en formel du kan uavhengig, for eksempel . Er avviket akkurat det siste leddet, er det grensen som er feil. |
Glemmer å oppdatere variabelen i betingelsen til en while-løkke. | Sjekk at noe inne i løkken faktisk endrer verdien betingelsen tester på, ellers stopper den aldri. |
| Tester bare «pene» verdier og hopper over grensetilfellene. | Test alltid , tomt datasett og negative tall. Det er der algoritmer ryker, ikke i midten. |
Til foreldre / leksehjelper
Kompetansemål fra læreplanen (Udir)
- formulere og løse problemer ved hjelp av algoritmisk tenkning, ulike problemløsingsstrategier, digitale verktøy og programmering (se hos Udir)
Eleven skal formulere OG løse problemer ved hjelp av algoritmisk tenkning, problemløsingsstrategier, digitale verktøy og programmering (KM403). Merk at målet ikke er å bli programmerer: koden er et verktøy for å tenke presist om framgangsmåter. En elev som skriver en tydelig punktliste med steg og kan begrunne hvert av dem, er innenfor kompetansemålet selv om koden ikke kjører feilfritt.
Slik kan du hjelpe
- Be eleven forklare HØYT hva hvert steg i algoritmen gjør, uten å se på koden. Klarer de ikke det, er det tenkningen som mangler – ikke syntaksen.
- Spør «hva skjer hvis tallet er , eller negativt?» Grensetilfellene er der algoritmer ryker, og spørsmålet trener nettopp den vurderingen kompetansemålet ber om.
- Når svaret er feil: ikke let etter feilen sammen med det samme. Be eleven først si hva de FORVENTET at verdien skulle bli etter hvert steg. Feilen dukker som regel opp av seg selv.
Nye begreper
- Algoritme
- En presis oppskrift med steg som må følges i rekkefølge.
- Løkke
- En instruks om å gjenta de samme stegene flere ganger.
Pedagogikken bak
Programmering i matematikkfaget er nytt for de fleste foreldre, og det kan virke som et fremmedelement. Poenget er ikke koden i seg selv, men at eleven må gjøre framgangsmåten HELT presis – en maskin fyller ikke inn det som er underforstått, slik en lærer gjør når hun leser et håndskrevet svar. Møter eleven veggen, ikke sett dere ned i koden: be dem heller løse ett konkret tilfelle for hånd og skrive ned nøyaktig hva de gjorde, steg for steg. Å bytte tallene med variabler etterpå er den enkle delen; det er den presise beskrivelsen som er selve kompetansen.
🧩 Trenger du å forklare dette uten skjerm? Prøv dette
Skriv en algoritme for noe helt hverdagslig – å smøre en brødskive – på lapper, ett steg per lapp. Utfør den så helt bokstavelig, uten å tolke noe: står det «legg pålegg på brødskiva» før «ta brødskiva ut av posen», gjør du nettopp det, og resultatet blir absurd. Å oppleve at maskinen ikke fyller inn det «alle skjønner», er den raskeste veien til å forstå hvorfor hvert steg må være entydig og i riktig rekkefølge.
Alternative metoder
Læres dette annerledes i landet du selv gikk på skole i? Se «Alternativ forklaring/metode» på: Algoritmisk tenkning i problemløsing, Programmering som matematisk verktøy, Vurdere og feilsøke en algoritme.
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.