Komplett pensumoversikt for innføring i beregningsmodeller ved UiO — med forklaringer, sentrale begreper, eksamenstips og vanlige fallgruver. Eksamensoptimalisert basert på tidligere eksamener.
BIOS1100 Innføring i beregningsmodeller for biovitenskap gir deg verktøyene til å bygge matematiske modeller av biologiske systemer og implementere dem i Python. Kurset kobler biologi og programmering: du lærer å beskrive populasjonsvekst, smittespredning, genetisk drift og aldersstrukturerte populasjoner med matematiske modeller, og deretter simulere og analysere dem med kode.
Eksamen tester tre ting: (1) matematisk forståelse av modellene (kan du sette opp og tolke likningene?), (2) programmeringsferdigheter (kan du skrive og lese Python-kode?), og (3) biologisk tolkning (hva betyr resultatene i en biologisk kontekst?). Du må beherske alle tre for å gjøre det godt.
Denne studieguiden dekker de åtte hovedtemaene i kurset med detaljerte forklaringer, eksempler, vanlige feil og eksamenstips. Bruk den sammen med forelesningsnotater og obligatoriske oppgaver.
Grunnleggende Python-syntaks, variabler, løkker, funksjoner, lister og NumPy/Matplotlib — verktøyene du trenger for å implementere biologiske modeller.
Python er det dominerende programmeringsspråket i moderne biovitenskap. I BIOS1100 bruker du Python til å simulere biologiske modeller, visualisere data og utforske «hva skjer hvis»-scenarier som er umulige å løse analytisk.
I Python lagrer du verdier i variabler. De viktigste datatypene i kurset er:
N = 1000r = 0.03populasjon = [100, 130, 169]True eller FalseVariabeltilordning i Python:
x = 5 betyr «lagre verdien 5 i variabelen x». Det er ikke en matematisk likning — x = x + 1 er gyldig Python og øker x med 1.
For-løkker er det viktigste verktøyet for å simulere biologiske systemer over tid. Du itererer gjennom tidssteg og oppdaterer tilstanden i hvert steg:
En bakteriepopulasjon starter med og dobler seg hvert tidssteg.
N = 100
populasjon = [N]
for t in range(10):
N = N * 2
populasjon.append(N)
print(populasjon) # [100, 200, 400, 800, ...]Forklaring: range(10) gir tidssteg 0–9. I hvert steg multipliserer vi N med 2 og legger til i listen. Etter 10 steg har vi .
Funksjoner lar deg organisere koden og gjenbruke beregninger. I BIOS1100 bruker du funksjoner til å definere modeller:
def logistisk_vekst(N, r, K):
"""Beregn neste populasjonsstørrelse med logistisk modell."""
return N + r * N * (1 - N/K)Denne funksjonen tar inn nåværende populasjon , vekstrate og bæreevne , og returnerer .
NumPy gir deg arrays (effektive lister for beregning) og matematiske funksjoner. Matplotlib brukes til plotting.
Vanlige NumPy/Matplotlib-kommandoer:
import numpy as np — importer NumPy
np.array([1, 2, 3]) — lag array
np.zeros(100) — array med 100 nuller
np.random.random() — tilfeldig tall mellom 0 og 1
import matplotlib.pyplot as plt
plt.plot(x, y) — linjeplott
plt.xlabel('Tid'), plt.ylabel('N') — akselabeler
plt.show() — vis plottet
Mange studenter prøver å tilordne verdier til en liste som ikke eksisterer ennå. Du må opprette listen før løkken:
# FEIL:
for t in range(10):
populasjon[t] = N # IndexError!
# RIKTIG:
populasjon = []
for t in range(10):
populasjon.append(N)På eksamen får du ofte oppgaver der du skal lese kode og forklare hva den gjør, eller finne feilen. Øv på å «trace» gjennom kode steg for steg — skriv opp variabelverdiene etter hvert steg i en tabell.
Nøkkelformler
for t in range(n): — løkke over n tidsstegliste.append(verdi) — legg til element i listedef funksjon(param): — definer funksjonnp.array(), np.zeros(), np.random.random()Vanlige feil
Eksamenstips
Laster...