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 ikkje berre for profesjonelle utviklarar – det er eit verktøy som kan brukast i alle fag, inkludert naturfag. Forskarar bruker program til å simulere vêr, analysere DNA, og rekne ut baner til romfartøy. I dette kapittelet lærer du grunnleggjande programmering, korleis du kan bruke det til å utforske naturfaglege problemstillingar, og korleis data blir samla inn, analysert og presentert.
Eit program (eller kode) er ei rekkje presise instruksjonar som datamaskinen følgjer steg for steg.
Eit programmeringsspråk er eit formelt språk for å skrive instruksjonar. Vanlege språk:
- Python – mykje brukt i vitskap og opplæring (det vi bruker her)
- Scratch – visuelt blokkbasert språk
- JavaScript – blir brukt på nettsider
Viktige omgrep:
- Variabel – ein namngjeven «boks» som lagrar ein verdi (t.d. temperatur = 20)
- Løkke (loop) – gjentek instruksjonar fleire gonger
- Vilkår (if/else) – datamaskinen gjer ulike ting avhengig av eit vilkår
- Funksjon – ein gjenbrukbar blokk med kode
Kva er ein variabel i programmering?
Grunnleggjande Python-kode
Her er nokre døme på enkle Python-program:
Variablar og utskrift
navn = "Sara"
alder = 14
print("Hei, jeg heter", navn, "og er", alder, "år.")
# Utskrift: Hei, jeg heter Sara og er 14 år.Rekneoperasjonar
lengde = 5.0 # meter
bredde = 3.0 # meter
areal = lengde * bredde
print("Arealet er", areal, "kvadratmeter")
# Utskrift: Arealet er 15.0 kvadratmeterVilkår (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 5Ein elev har målt temperaturen i klasserommet fem gonger i løpet av ein dag: 20.5, 21.3, 22.1, 21.8 og 20.9 grader. Skriv eit Python-program som reknar ut 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 ei liste som inneheld alle målingane
- sum() legg saman alle verdiane i lista
- len() tel talet på verdiar
- round() rundar av til 1 desimal
- Gjennomsnitt = sum / tal = 106.6 / 5 = 21.32 ≈ 21.3 °C
Kva vil følgjande 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 datatypar
I naturfag samlar vi inn data gjennom observasjonar, målingar og eksperiment.
Typar data
- Kvantitative data – talverdiar som kan målast og reknast med
- Døme: temperatur (21.3 °C), lengd (15 cm), masse (250 g), tid (3.5 s)
- Kvalitative data – skildringar som ikkje er tal
- Døme: farge (raud), form (rund), lukt (sur)
Datasett
Eit datasett er ei samling av data, ofte organisert i ein 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 vatn som blir varma opp over tid.
Når vi analyserer data, bruker vi statistiske mål:
Gjennomsnitt (middelverdien):
Summen av alle verdiar delt på talet på verdiar.
Gjennomsnitt = (sum av verdiar) / (tal på verdiar)
Median (midtverdien):
Den midtarste verdien når dataa er sorterte frå minst til størst.
- Oddetal: den midtarste verdien
- Partal: gjennomsnittet av dei to midtarste
Variasjonsbreidd (spreiing):
Skilnaden mellom største og minste verdi.
Variasjonsbreidd = største verdi – minste verdi
Døme: Datasett: 3, 5, 7, 8, 12
- Gjennomsnitt: (3 + 5 + 7 + 8 + 12) / 5 = 35 / 5 = 7
- Median: 7 (midtarste verdi i sortert rekkje)
- Variasjonsbreidd: 12 – 3 = 9
Ein elev måler pH i seks vassprøver: 6.5, 7.0, 6.8, 7.2, 6.5, 7.0. Kva er variasjonsbreidda?
Presentasjon av data – diagram
Data blir presentert visuelt for å gjere mønster tydelege:
Søylediagram (stolpediagram)
- Blir brukt for å samanlikne kategoriar
- Døme: Talet på fuglar av ulike artar observert i ein hage
- Søylene står ved sida av kvarandre
Linjediagram
- Blir brukt for å vise endring over tid eller samanhengen mellom to variablar
- Døme: Temperatur i vatn som blir varma opp over tid
- Punkta blir bundne saman med linjer
Sektordiagram (kakediagram)
- Blir brukt for å vise delar av ein heilskap
- Døme: Fordeling av energikjelder i Noreg
- Heile sirkelen = 100 %
Spreiingsdiagram (punktdiagram)
- Blir brukt for å sjå om det er samanheng mellom to variablar
- Døme: Samanheng mellom studietid og karakter
- Kvart punkt representerer ei måling
Viktig ved alle diagram:
- Tittel som skildrar kva diagrammet viser
- Aksetitlar med eining (t.d. «Tid (min)», «Temperatur (°C)»)
- Riktig skala på aksane
Ein klasse har målt høgda til 10 planter etter to veker med ulik mengd lys:
Gruppe A (mykje lys): 15, 18, 17, 16, 19 cm
Gruppe B (lite lys): 8, 10, 9, 11, 7 cm
Skriv eit Python-program som reknar ut 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 fekk mykje lys voks i gjennomsnitt 8 cm meir. Dette støttar hypotesen om at lys er viktig for plantevekst (fotosyntese).
Ein elev måler temperaturen utandørs kl. 08, 10, 12, 14 og 16 i fem dagar og får desse gjennomsnittsverdiane:
Måndag: 8°C, Tysdag: 10°C, Onsdag: 12°C, Torsdag: 9°C, Fredag: 11°C
a) Rekn ut gjennomsnittstemperaturen for heile veka.
b) Finn medianen.
c) Rekn ut variasjonsbreidda.
d) Kva type diagram ville vore best eigna til å vise temperaturutviklinga gjennom veka? Grunngi svaret.
Kva er skilnaden mellom kvantitative og kvalitative data?
Sjå på følgjande Python-kode:
temperatur = 38.2
if temperatur > 37.5:
print("Feber")
elif temperatur > 36.0:
print("Normal")
else:
print("Lav")Kva vil programmet skrive ut? Forklar kvifor.
Skriv (på papir eller i Python) eit program som:
1. Har ei liste med pH-verdiar: [6.2, 7.0, 5.8, 7.5, 6.0, 8.1]
2. Går gjennom lista og skriv ut om kvar verdi er «sur» (under 7), «nøytral» (lik 7) eller «basisk» (over 7).
Ein forskar har samla 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) Rekn ut den gjennomsnittlege årlege auken i CO₂.
b) Dersom trenden held fram, kva blir CO₂-konsentrasjonen i 2030?
c) Skriv eit Python-program (eller pseudokode) som reknar ut dette.
Ein elev har gjennomført eit forsøk der ho måler kor lang tid det tek for ei brustablett å løyse seg opp i vatn med ulik temperatur:
| Temperatur (°C) | Tid (sekund) |
|---|---|
| 10 | 180 |
| 20 | 120 |
| 30 | 75 |
| 40 | 50 |
| 50 | 35 |
| 60 | 22 |
a) Kva type diagram er best eigna til å presentere desse dataa? Grunngi.
b) Skildre samanhengen mellom temperatur og oppløysingstid.
c) Forklar resultatet med utgangspunkt i partikkelteori.
d) Skriv pseudokode (eller Python-kode) som finn den raskaste og tregaste oppløysingstida og skilnaden mellom dei.
Oppsummering
I dette kapittelet har du lært:
- Programmering: å skrive instruksjonar (kode) ei datamaskin kan utføre.
- Python-grunnlag: variablar, rekneoperasjonar, if/else og løkker.
- Datatypar: tal, tekst og sanningsverdiar.
- Statistiske mål: gjennomsnitt, median og variasjonsbreidd.
- Presentasjon av data: søyle-, linje-, sektor- og spreiingsdiagram.
Nøkkelomgrep
| Omgrep | Forklaring |
|---|---|
| Programmering | Å skrive kode ei datamaskin kan utføre |
| Variabel | Namngjeven lagringsstad for ein verdi |
| Løkke | Kode som blir gjenteken fleire gonger |
| Median | Midtarste verdi i eit 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.