5.6 Programmering og dataanalyse
Lær grunnleggende programmering, hvordan datamaskiner behandler informasjon, bruk av programmering i naturfag, og hvordan data samles inn, analyseres og presenteres.
Programmering og dataanalyse
Programmering er ikke bare for profesjonelle utviklere – det er et verktøy som kan brukes i alle fag, inkludert naturfag. Forskere bruker programmer til å simulere vær, analysere DNA, og beregne baner til romfartøy. I dette kapittelet lærer du grunnleggende programmering, hvordan du kan bruke det til å utforske naturfaglige problemstillinger, og hvordan data samles inn, analyseres og presenteres.
Et program (eller kode) er en rekke presise instruksjoner som datamaskinen følger steg for steg.
Et programmeringsspråk er et formelt språk for å skrive instruksjoner. Vanlige språk:
- Python – mye brukt i vitenskap og opplæring (det vi bruker her)
- Scratch – visuelt blokkbasert språk
- JavaScript – brukes på nettsider
Viktige begreper:
- Variabel – en navngitt «boks» som lagrer en verdi (f.eks. temperatur = 20)
- Løkke (loop) – gjentar instruksjoner flere ganger
- Betingelse (if/else) – datamaskinen gjør ulike ting avhengig av en betingelse
- Funksjon – en gjenbrukbar blokk med kode
Hva er en variabel i programmering?
Grunnleggende Python-kode
Her er noen eksempler på enkle Python-programmer:
Variabler og utskrift
navn = "Sara"
alder = 14
print("Hei, jeg heter", navn, "og er", alder, "år.")
# Utskrift: Hei, jeg heter Sara og er 14 år.Regneoperasjoner
lengde = 5.0 # meter
bredde = 3.0 # meter
areal = lengde * bredde
print("Arealet er", areal, "kvadratmeter")
# Utskrift: Arealet er 15.0 kvadratmeterBetingelser (if/else)
temperatur = 35
if temperatur > 37.5:
print("Du har feber!")
elif temperatur > 36.0:
print("Normal temperatur.")
else:
print("Litt lav temperatur.")Løkker (for-løkke)
for i in range(5):
print("Måling nummer", i + 1)
# Skriver ut: Måling nummer 1, Måling nummer 2, ... Måling nummer 5En elev har målt temperaturen i klasserommet fem ganger i løpet av en dag: 20.5, 21.3, 22.1, 21.8 og 20.9 grader. Skriv et Python-program som beregner gjennomsnittstemperaturen.
# Liste med temperaturmålinger
temperaturer = [20.5, 21.3, 22.1, 21.8, 20.9]
# Beregn gjennomsnitt
gjennomsnitt = sum(temperaturer) / len(temperaturer)
print("Antall målinger:", len(temperaturer))
print("Sum:", sum(temperaturer))
print("Gjennomsnitt:", round(gjennomsnitt, 1), "grader")Utskrift:
Antall målinger: 5
Sum: 106.6
Gjennomsnitt: 21.3 graderForklaring:
- temperaturer er en liste som inneholder alle målingene
- sum() legger sammen alle verdiene i listen
- len() teller antall verdier
- round() runder av til 1 desimal
- Gjennomsnitt = sum / antall = 106.6 / 5 = 21.32 ≈ 21.3 °C
Hva vil følgende Python-program skrive ut?
tall = [2, 4, 6, 8, 10]
resultat = 0
for t in tall:
resultat = resultat + t
print("Summen er:", resultat)
print("Gjennomsnittet er:", resultat / len(tall))Datainnsamling og datatyper
I naturfag samler vi inn data gjennom observasjoner, målinger og eksperimenter.
Typer data
- Kvantitative data – tallverdier som kan måles og regnes med
- Eksempler: temperatur (21.3 °C), lengde (15 cm), masse (250 g), tid (3.5 s)
- Kvalitative data – beskrivelser som ikke er tall
- Eksempler: farge (rød), form (rund), lukt (sur)
Datasett
Et datasett er en samling av data, ofte organisert i en tabell:
| Tid (min) | Temperatur (°C) |
|---|---|
| 0 | 20.0 |
| 5 | 35.2 |
| 10 | 52.8 |
| 15 | 68.1 |
| 20 | 80.5 |
| 25 | 91.3 |
| 30 | 99.8 |
Dette datasettet viser temperaturen i vann som varmes opp over tid.
Når vi analyserer data, bruker vi statistiske mål:
Gjennomsnitt (middelverdien):
Summen av alle verdier delt på antall verdier.
Gjennomsnitt = (sum av verdier) / (antall verdier)
Median (midtverdien):
Den midterste verdien når dataene er sortert fra minst til størst.
- Odde antall: den midterste verdien
- Partall: gjennomsnittet av de to midterste
Variasjonsbredde (spredning):
Forskjellen mellom største og minste verdi.
Variasjonsbredde = største verdi – minste verdi
Eksempel: Datasett: 3, 5, 7, 8, 12
- Gjennomsnitt: (3 + 5 + 7 + 8 + 12) / 5 = 35 / 5 = 7
- Median: 7 (midterste verdi i sortert rekke)
- Variasjonsbredde: 12 – 3 = 9
En elev måler pH i seks vannprøver: 6.5, 7.0, 6.8, 7.2, 6.5, 7.0. Hva er variasjonsbredden?
Presentasjon av data – diagrammer
Data presenteres visuelt for å gjøre mønstre tydelige:
Søylediagram (stolpediagram)
- Brukes for å sammenligne kategorier
- Eksempel: Antall fugler av ulike arter observert i en hage
- Søylene står ved siden av hverandre
Linjediagram
- Brukes for å vise endring over tid eller sammenhengen mellom to variabler
- Eksempel: Temperatur i vann som varmes opp over tid
- Punktene forbindes med linjer
Sektordiagram (kakediagram)
- Brukes for å vise andeler av en helhet
- Eksempel: Fordeling av energikilder i Norge
- Hele sirkelen = 100 %
Spredningsdiagram (punktdiagram)
- Brukes for å se om det er sammenheng mellom to variabler
- Eksempel: Sammenheng mellom studietid og karakter
- Hvert punkt representerer en måling
Viktig ved alle diagrammer:
- Tittel som beskriver hva diagrammet viser
- Aksetitler med enhet (f.eks. «Tid (min)», «Temperatur (°C)»)
- Riktig skala på aksene
En klasse har målt høyden til 10 planter etter to uker med ulik mengde lys:
Gruppe A (mye lys): 15, 18, 17, 16, 19 cm
Gruppe B (lite lys): 8, 10, 9, 11, 7 cm
Skriv et Python-program som beregner gjennomsnitt for begge gruppene og konkluderer.
gruppe_a = [15, 18, 17, 16, 19] # Mye lys
gruppe_b = [8, 10, 9, 11, 7] # Lite lys
snitt_a = sum(gruppe_a) / len(gruppe_a)
snitt_b = sum(gruppe_b) / len(gruppe_b)
print("Gruppe A (mye lys):")
print(" Høyder:", gruppe_a)
print(" Gjennomsnitt:", snitt_a, "cm")
print("Gruppe B (lite lys):")
print(" Høyder:", gruppe_b)
print(" Gjennomsnitt:", snitt_b, "cm")
print("Forskjell:", snitt_a - snitt_b, "cm")
if snitt_a > snitt_b:
print("Plantene med mye lys vokste mest.")
else:
print("Plantene med lite lys vokste mest.")Utskrift:
Gruppe A (mye lys):
Høyder: [15, 18, 17, 16, 19]
Gjennomsnitt: 17.0 cm
Gruppe B (lite lys):
Høyder: [8, 10, 9, 11, 7]
Gjennomsnitt: 9.0 cm
Forskjell: 8.0 cm
Plantene med mye lys vokste mest.Konklusjon: Plantene som fikk mye lys vokste i gjennomsnitt 8 cm mer. Dette støtter hypotesen om at lys er viktig for plantevekst (fotosyntese).
En elev måler temperaturen utendørs kl. 08, 10, 12, 14 og 16 i fem dager og får disse gjennomsnittsverdiene:
Mandag: 8°C, Tirsdag: 10°C, Onsdag: 12°C, Torsdag: 9°C, Fredag: 11°C
a) Beregn gjennomsnittstemperaturen for hele uken.
b) Finn medianen.
c) Beregn variasjonsbredden.
d) Hvilken type diagram ville vært best egnet til å vise temperaturutviklingen gjennom uken? Begrunn svaret.
Hva er forskjellen mellom kvantitative og kvalitative data?
Se på følgende Python-kode:
temperatur = 38.2
if temperatur > 37.5:
print("Feber")
elif temperatur > 36.0:
print("Normal")
else:
print("Lav")Hva vil programmet skrive ut? Forklar hvorfor.
Skriv (på papir eller i Python) et program som:
1. Har en liste med pH-verdier: [6.2, 7.0, 5.8, 7.5, 6.0, 8.1]
2. Går gjennom listen og skriver ut om hver verdi er «sur» (under 7), «nøytral» (lik 7) eller «basisk» (over 7).
En forsker har samlet inn data om CO₂-konsentrasjonen i atmosfæren over 6 år:
| År | CO₂ (ppm) |
|---|---|
| 2018 | 408 |
| 2019 | 411 |
| 2020 | 414 |
| 2021 | 416 |
| 2022 | 419 |
| 2023 | 422 |
a) Beregn den gjennomsnittlige årlige økningen i CO₂.
b) Hvis trenden fortsetter, hva blir CO₂-konsentrasjonen i 2030?
c) Skriv et Python-program (eller pseudokode) som beregner dette.
En elev har gjennomført et forsøk der hun måler hvor lang tid det tar for en brustablett å løse seg opp i vann med ulik temperatur:
| Temperatur (°C) | Tid (sekunder) |
|---|---|
| 10 | 180 |
| 20 | 120 |
| 30 | 75 |
| 40 | 50 |
| 50 | 35 |
| 60 | 22 |
a) Hvilken type diagram er best egnet til å presentere disse dataene? Begrunn.
b) Beskriv sammenhengen mellom temperatur og oppløsningstid.
c) Forklar resultatet med utgangspunkt i partikkelteori.
d) Skriv pseudokode (eller Python-kode) som finner den raskeste og tregeste oppløsningstiden og forskjellen mellom dem.
Oppsummering
I dette kapittelet har du lært:
- Programmering: å skrive instruksjoner (kode) en datamaskin kan utføre.
- Python-grunnlag: variabler, regneoperasjoner, if/else og loekker.
- Datatyper: tall, tekst og sannhetsverdier.
- Statistiske mål: gjennomsnitt, median og variasjonsbredde.
- Presentasjon av data: søyle-, linje-, sektor- og spredningsdiagram.
Noekkelbegreper
| Begrep | Forklaring |
|---|---|
| Programmering | Å skrive kode en datamaskin kan utføre |
| Variabel | Navngitt lagringssted for en verdi |
| Løkke | Kode som gjentas flere ganger |
| Median | Midterste verdi i et sortert datasett |
Dette kapitlet er skrevet av Anthropics toppmodeller (Claude Opus og Claude Fable) og er foreløpig ikke manuelt gjennomgått — kvalitetskontrollen gjøres av uavhengige KI-agenter, og innmeldte feil rettes fortløpende. Funnet en feil? Meld fra, så retter vi den. Les mer om hvordan innholdet lages.