0.1 Eksamenskartet — slik testes IN1900
Eksamensformen (midtveis + avsluttende), temafrekvensene, sjangerkatalogen og lesestrategien som styrer hele boka.
IN1900 er et emne der eksamen er påfallende forutsigbar. Den samme håndfullen oppgaver har kommet igjen år etter år i mer enn et tiår, bare med ny innpakning: ett år handler det om en epidemi, neste år om en planetbane, året etter om en nervecelle. Under innpakningen er øvelsen den samme.
Dette kapitlet er kartet. Det forteller deg hvordan du blir vurdert, hvilke temaer som faktisk kommer, hva den som retter besvarelsen din ser etter — og hvordan du bør bruke tiden din. Les det først, og kom tilbake til det når du skal planlegge de siste ukene.
Boka er skrevet for deg som aldri har programmert før. Alt forklares fra grunnen, i den rekkefølgen du trenger det.
Boka bruker tre små koder for å holde orden på stoffet. Du trenger ikke pugge dem — de skrives ut i klartekst hver gang de dukker opp i et kapittel.
1. Karakteren. Emnet vurderes med bokstavkarakter fra A til F, der A er best, E er laveste ståkarakter og F er stryk. To eksamener utgjør karakteren: en midtveiseksamen i oktober som teller 25 %, og en avsluttende eksamen i desember som teller 75 %. Begge er digitale og uten hjelpemidler.
2. Sjangerkodene A–O. Eksamensoppgavene faller i femten faste typer, og boka har gitt hver av dem en bokstav, slik at oppgavene i boka kan si hvilken eksamenstype de trener. Kort fortalt:
- A hva et program skriver ut · B indeksering og utsnitt i lister · C hvilken feil et program utløser · D stopper løkka eller ikke · E hvilken linje mangler
- F skriv en rekke/sum med test · G skriv en klasse · H differenslikninger · I og J og K de tre ODE-typene · L lese en datafil inn i en oppslagsstruktur
- M lister mot NumPy-tabeller · N numeriske metoder · O finn feilen i et program
Hele oversikten, med oppskrift og vekt per sjanger, står i sjangerkortet lenger nede. Hver bokstav forklares dessuten i klartekst første gang den brukes i et kapittel.
3. Feilkodene #1 til #24. Boka har et samlet register over de feilene som faktisk koster poeng — for eksempel «#1 — av-én-feilen», at et intervall delt i N biter krever N + 1 punkter. Registeret står nederst i dette kapitlet, og hvert kapittel forklarer i klartekst de feilkodene det bruker.
Om koden: hver Python-konstruksjon forklares der den brukes første gang, og hvert kapittel avsluttes med en API- og konstruksjonsliste — et oppslagsverk over nøyaktig hva hver konstruksjon gjør. All kode i boka er kjørt, og utskriften er limt inn slik den faktisk ble.
1. Kap. 1.7 — kodesporingsdrillen (90 min). Den gir billigst poeng per minutt og dekker alle flervalgsoppgavene.
2. Kap. 5.1 og 5.2 — klasser med spesialmetoder (~110 min). Den tyngste enkeltoppgaven på eksamen.
3. Kap. 7.2 og 7.3 — bruk av det utleverte ODE-apparatet (~115 min). Alltid en stor oppgave.
4. Kap. 3.2 — rekker med testfunksjon (~55 min).
5. Kap. 8.1 — fillesing til nøstet ordbok (~55 min).
6. Kap. 9.2 — én komplett øvingseksamen, på tid.
Punkt 1 til 5 er rundt sju timers lesing, og de fem temaene har til sammen forekommet i hvert eneste av de åtte nyere settene. Øvingseksamenen i punkt 6 tar fire timer i tillegg.
Ukeplan for hele boka. Kapitlene med teori og drill er på 1 775 minutter ≈ 30 timer lesetid. I tillegg kommer prøvene til de åtte delene (~17 timer) og de tre øvingseksamenene (10 timer) — det er arbeidstid, ikke lesing. Til sammen rundt 57 timer. Tidsanslagene i kapitteloverskriftene er lesetid — regn med rundt halvannen gang så lang tid på teorikapitlene hvis du skriver koden selv underveis, og det bør du gjøre. Da lander hele løpet på rundt 70 timer.
Deltidsrute over 10–12 uker (~8 timer i uka): ca. 3 timer lesing og 5 timer egen koding og oppgaveløsing per uke.
| Uke | Innhold |
|---|---|
| 1–2 | Del 1: Python-grunnlaget og kodesporing, med prøvene til del 1 |
| 3 | Del 2 (feilhåndtering) og Del 3 (funksjoner, testing og rekker) |
| 4 | Del 3 ferdig + Del 4 (NumPy og plotting) |
| 5 | Midtveis-simuleringen, kap. 9.1 — én kveld på tid, før midtveiseksamen |
| 6–7 | Del 5: klasser med spesialmetoder |
| 8 | Del 6: numeriske metoder og differenslikninger |
| 9–10 | Del 7: ODE-løsere og ODESolver-hierarkiet |
| 11 | Del 8: fillesing og datastrukturer |
| 12 | Øvingseksamen 1, kap. 9.2 — én kveld, og øvingseksamen 2, kap. 9.3 — en annen kveld |
De tre øvingseksamenene er med vilje fordelt på tre forskjellige kvelder, én i uke 5 og to i uke 12. Å stable dem til slutt gir deg ingen tid til å rette opp det de avdekker.
Den vanligste tabben i et programmeringsemne er å lese kode som ser forståelig ut, og konkludere med at man kan den. Å forstå en løsning og å produsere den fra bunnen er to helt forskjellige ferdigheter, og eksamen måler den andre.
For dette emnet kommer en advarsel til, som trekker motsatt vei av all vanlig programmeringstrening: eksamen er hjelpemiddelfri, og du kan ikke kjøre koden din. Du har ingen editor som retter deg, ingen feilmelding å lese, ingen mulighet til å prøve seg fram. Alt du skriver, må være riktig første gang — eller i det minste riktig nok til at strukturen er tydelig.
Derfor: skriv kode for hånd eller i et tomt tekstfelt, uten å kjøre den, minst én gang i uka. Og ta minst én av de tre øvingseksamenene helt uten maskin. Det er ubehagelig første gang, og det er nøyaktig den ferdigheten som skiller en E fra en B.
Slik ser eksamen ut (~8 min)
Emnet vurderes med to digitale eksamener i Inspera, UiOs eksamenssystem. Begge er uten hjelpemidler bortsett fra systemets egen kalkulator, og all kode er Python 3.
| Eksamen | Vekt | Varighet | Form | Poeng |
|---|---|---|---|---|
| Midtveiseksamen (oktober) | 25 % | ca. 2 timer effektiv tid | 100 % flervalg, 20 spørsmål | maks 25 |
| Avsluttende eksamen (desember) | 75 % | 4 timer | 13–16 oppgaver: flervalg først, deretter kodeskriving | maks 75 |
De to summerer til 100 poeng, og det er summen som gir bokstavkarakteren.
Tre mekaniske detaljer det lønner seg å vite på forhånd:
1. Den siste «oppgaven» på den avsluttende eksamenen skal ikke besvares. Den heter gjerne oppgave 15, 16 eller 17, og er bare et felt der sensor legger inn poengene dine fra midtveis. Bruk ikke tid på den.
2. Blankt og feil gir det samme på flervalg: null poeng. Fra 2024/2025 er den gamle ordningen med minuspoeng fjernet. Det er derfor aldri en kostnad ved å gjette, og du skal alltid krysse av.
3. Midtveiseksamen deles med parallellemnene IN-KJM1900 og IN-GEO1900. Samme sett brukes i alle tre emnene, og det holder seg derfor til kjernen av fellespensumet — grunnleggende Python, ikke spesialiteter.
Hvor mye er flervalg, og hvor mye er kodeskriving?
Dette er det viktigste formtrekket, fordi de to krever helt ulik trening.
På den avsluttende eksamenen er de 4–7 første oppgavene et flervalgsskall: du leser kode og velger et svar. Det utgjør omtrent 15–25 % av de 75 poengene. Resten — 75–85 % — er fritekst der du skriver kode selv, 3 til 12 poeng per oppgave.
Midtveiseksamen er 100 % flervalg. Av de 20 spørsmålene er 4–5 såkalte matche-tabeller (du parer flere uttrykk med hver sin verdi, 0,5 poeng per rad), resten er «velg ett svar» til 1 poeng.
Regner du de to eksamenene sammen med vektene 25 og 75, blir bildet omtrent 40 % flervalg og 60 % kodeskriving. En god forberedelse trener begge: presis kodesporing for flervalget, og selvstendig koding i den korte stilen den som retter forventer.
UiOs digitale eksamenssystem. Du skriver svarene i nettleseren, og koden skrives i et vanlig tekstfelt uten hjelp fra en editor: ingen fargelegging, ingen autofullføring, ingen mulighet til å kjøre programmet.
Praktisk konsekvens for lesingen din: innrykk må sitte i fingrene, og du må kunne stave range, append og linspace uten å slå opp.
Den første av de to eksamenene, i oktober. Den teller 25 % av karakteren, varer rundt to timer effektivt, og består av 20 flervalgsspørsmål til maks 25 poeng.
Innholdet er nesten utelukkende kodesporing — «hva skriver dette programmet ut?» — sammen med indeksering, boolske uttrykk, løkketerminering og feilhåndtering. Hele Del 1 er skrevet for denne eksamenen.
Den andre eksamenen, i desember. Den teller 75 %, varer fire timer og har 13–16 oppgaver til maks 75 poeng.
Formen er fast: et flervalgsskall på de første oppgavene, deretter kodeskriving med økende vekt — en rekke med testfunksjon, en klasse, en differenslikning, et ODE-system og en fillesingsoppgave. Den siste nummererte «oppgaven» skal ikke besvares; den er feltet for midtveispoengene.
Et spørsmål med fire–fem alternativer der du krysser av for ett. Verdt 1 poeng på midtveis, 2–3,5 poeng på den avsluttende.
Blankt og feil gir likt, altså null. Kryss derfor alltid av, også når du bare kan utelukke to av alternativene — da er sjansen 50 %, og den er gratis.
En tabell med flere rader — typisk fire til sju uttrykk — der hver rad skal pares med ett av en felles liste med svaralternativer. 0,5 poeng per rad, opptil 3,5 poeng.
Radene rettes hver for seg, så en usikker rad er aldri grunn til å la hele tabellen stå tom. De tre vanligste variantene er indeksering og utsnitt (sjanger B), hvilken feil et kall utløser (sjanger C), og om en løkke stopper (sjanger D).
En oppgave der du skriver koden selv i et tomt tekstfelt. Dette er hovedtyngden av den avsluttende eksamenen, med 3 til 12 poeng per oppgave.
Oppgaveteksten oppgir som regel den nøyaktige signaturen — «skriv funksjonen forward_euler(f, T, N, u0)» — og den skal du skrive av ordrett. Flere deloppgaver kan løses uavhengig av hverandre.
Ingen bok, ingen notater, ingen internett og ingen mulighet til å kjøre koden. Bare systemets egen kalkulator.
Ett unntak er verdt å merke seg: enkelte oppgaver leverer et vedlegg — typisk ODE-modulen du skal bruke, eller dokumentasjonen for en funksjon fra et bibliotek. Det vedlegget skal du lese nøye, for det kan variere fra år til år.
A er best, E er laveste ståkarakter, F er stryk. Karakteren settes ut fra summen av de to eksamenene, med vektene 25 og 75.
C er en god og vanlig karakter. Den betyr at du behersker de faste mønstrene og leverer kode som virker, med noen småfeil i detaljene. Det er et fullt ut respektabelt resultat i et emne mange tar i sitt første semester, og det er nøyaktig det denne boka er bygget for å gi deg — med god margin oppover for den som også drillet sporingen.
For hver eksamen publiseres et løsningsforslag med kode og kommentarer. Det fungerer i praksis som en sensorveiledning: det sier hvilke løsninger som gir full uttelling, og hvilke avvik som godtas.
Løsningsforslagene er kilden til alt som står i denne boka om hva som belønnes. De sier gjentatte ganger at fasitens kode bare er ett eksempel på en enkel og kompakt besvarelse som ville fått full score — flere løsninger er like gode.
Poengene på en kodeoppgave fordeles på delene av løsningen, ikke etter «riktig eller galt».
Løsningsforslagene er eksplisitte på tre punkter: riktig overordnet struktur belønnes selv med små indeksfeil; å få alle indekser hundre prosent riktig er nesten umulig under tidspress; og deloppgaver kan løses uavhengig, slik at du kan skrive testfunksjonen selv om du ikke fikk til funksjonen den skal teste.
Praktisk konsekvens: skriv alltid ned det du har. Et halvferdig, riktig strukturert program gir langt mer enn et blankt felt.
Bokas eget system: femten bokstaver for de femten oppgavetypene som går igjen på eksamen. De er ikke offisielle — de er et arbeidsverktøy, slik at hver oppgave i boka kan si hvilken eksamenstype den trener.
Alle femten står i sjangerkortet i dette kapitlet, med oppskrift, typisk vekt og vanligste feil. Hver bokstav skrives dessuten ut i klartekst første gang den brukes i et kapittel, slik at du aldri møter en kald kode.
Bokas register over de feilene som faktisk koster poeng, nummerert fra 1 til 24 og samlet nederst i dette kapitlet.
De tjue første er belagt i eksamensarkivet: de er utledet av kommentarene i de offisielle løsningsforslagene og av hvilke gale svar som brukes som alternativer på flervalg. De fire siste er allmenne Python-feller boka har lagt til; om dem påstås ingenting om hvor ofte de kommer på eksamen. Hvert kapittel forklarer i klartekst de kodene det bruker.
Hvert kapittel er merket med ett av tre nivåer, ut fra hvor ofte temaet kommer og hvor mye det er verdt:
- Må sitte — temaet har vært i så godt som hvert eneste sett, og bærer mesteparten av poengene. Dette skal du kunne uten å tenke.
- Må kunne — temaet kommer i de fleste sett. Du skal kunne mønsteret, men trenger ikke ha det i fingrene.
- Bør kjenne til — temaet kommer sjeldnere, og skiller de aller beste besvarelsene. Prioriter det sist.
Merkingen er en prioritering av lesetiden din, ikke et krav om plettfri kode. Ingen leverer en feilfri besvarelse på fire timer, og det er ikke det som kreves for en god karakter.
Prioriteringskartet: hva kommer faktisk? (~8 min)
Tabellen under er telt i de åtte avsluttende settene fra 2018 til 2025. «8 av 8» betyr at temaet har vært en egen oppgave eller en tydelig deloppgave i hvert eneste av dem.
| Tema | Forekomst | Nivå |
|---|---|---|
| Kodesporing — «hva skrives ut?» | 8 av 8 = 100 % | må sitte |
| Klasser med spesialmetoder | 8 av 8 = 100 % | må sitte |
| ODE-løsere og ODESolver-hierarkiet | 8 av 8 = 100 % | må sitte |
| Fillesing til ordbok eller lister | 8 av 8 = 100 % | må sitte |
| Rekke- og sumimplementering | 8 av 8 = 100 % | må sitte |
| Testfunksjon | 7 av 8 = 88 % | må kunne |
| Plotting med matplotlib | 7 av 8 = 88 % | må kunne |
| Lister mot NumPy-tabeller | 6 av 8 = 75 % | må kunne |
| Feilhåndtering (exceptions) | 6 av 8 = 75 % (nær 100 % på midtveis) | må kunne |
| Differenslikninger | 6 av 8 = 75 % (4 av 4 siste) | må kunne |
| Stykkvis eller diskontinuerlig funksjon | 5 av 8 = 63 % | må kunne |
| Numerisk derivasjon | 4 av 8 = 50 % | bør kjenne til |
| Streng- og listealgoritmer | 4 av 8 = 50 % (mest på flervalg) | bør kjenne til |
| Nullpunkt og likningsløsing | 3 av 8 = 38 %, økende | bør kjenne til |
| Todimensjonale NumPy-tabeller | 2 av 8 = 25 % | bør kjenne til |
| Numerisk integrasjon | 1 av 8 = 13 % | bør kjenne til |
Det viktigste funnet: fem temaer har vært i hvert eneste nyere sett. De er ryggraden i emnet, og de utgjør omtrent 70 % av poengene. Treffer du dem, er du trygt over.
Leseplanen som følger av tabellen
Må sitte — les grundig, gjør alle oppgavene, ta prøvene:
- Del 1 Python-grunnlaget og kodesporing — bærer hele midtveiseksamen.
- Del 3 funksjoner, testing og rekker.
- Del 5 klasser med spesialmetoder — de tyngste enkeltoppgavene, 8–12 poeng.
- Del 7 ODE-løsere — alltid en stor oppgave på 9–10 poeng.
- Del 8 fillesing og datastrukturer, 8–12 poeng.
Må kunne — les, gjør et utvalg oppgaver:
- Del 2 feilhåndtering (særlig viktig for midtveis).
- Del 4 NumPy, vektorisering og plotting.
- Del 6 numeriske metoder og differenslikninger.
Bør kjenne til — les raskt, og bare når du har tid til overs: todimensjonale NumPy-tabeller i kap. 4.1, fast-bredde-lesing av filer i kap. 8.2, nullpunktsmetoder i kap. 6.1, og den mest avanserte ODE-varianten i kap. 7.4.
Hva den som retter, ser etter (~7 min)
De offisielle løsningsforslagene gjentar de samme fem metareglene hvert år. De er verdt å kunne, fordi de forteller deg hvor du ikke skal bruke tid.
1. Kort, idiomatisk kode. Løsningene i fasit er korte, og det står eksplisitt at de fleste oppgavene fører til kode med lite behov for kommentarer. Et ekstra hovedprogram, ekstra utskrift eller lange forklarende kommentarer gir ingen uttelling.
2. Rimelige antakelser er lov — men skriv dem ned. Er oppgaven underspesifisert, kan du velge en tolkning. Dokumenter valget i én kommentarlinje. Det er den ene bruken av kommentarer som lønner seg.
3. Ta med de nødvendige import-linjene når oppgaven ber om kjørbar kode.
4. Kryss alltid av på flervalg. Blankt og feil gir likt.
5. Rekursjon — at en funksjon kaller seg selv — er utenfor pensum, og markeres eksplisitt som uønsket i fasit. Alt løses med løkke, også de rekkene der neste ledd er regnet ut fra det forrige.
Og den viktigste av dem alle, som er verdt et eget avsnitt:
Løsningsforslagene sier det rett ut. Om en oppgave der posisjonene i en fil skulle telles nøyaktig, står det at å få alle posisjoner hundre prosent riktig er nesten umulig på eksamen, og at full score gis til løsninger som viser rimelig riktig tenkning. Om en annen oppgave står det at god uttelling gis til alle løsninger som får den overordnede løkkestrukturen riktig, selv med små feil i indeksene.
Tre konsekvenser for hvordan du bør jobbe:
- Skriv strukturen først. Riktig løkke, riktig klasseoppsett, riktig ODE-oppsett er der poengene ligger. Detaljene i indeksene er det siste du skal bruke tid på.
- Hopp videre, ikke stopp. Deloppgaver rettes uavhengig. Du kan skrive testfunksjonen selv om du ikke fikk til funksjonen den skal teste — du vet jo hva den skulle gjøre.
- Skrivefeil i oppgaveteksten straffer ikke deg. Det har hendt flere ganger at oppgaveteksten selv hadde feil, og da godtas alle konsistente tolkninger.
Derfor er «en perfekt besvarelse» en dårlig målsetting i dette emnet. En besvarelse der alle mønstrene er tydelig på plass, er en veldig god besvarelse — også med noen indeksfeil.
Prognose for neste eksamen (~5 min)
Ut fra hvordan settene har sett ut de siste årene, er dette et rimelig anslag. Det er en prognose, ikke et løfte — et nytt sett kan alltid endre bildet.
Midtveis (20 spørsmål, 25 poeng): omtrent 10–12 rene kodesporingsspørsmål med løkker, indeksering, zip, utskriftsdetaljer og variabel-scope; 3–4 matche-tabeller (indeksering i nøstede lister, boolske uttrykk, løkketerminering, «hvilke alternativer er riktige»); 1–2 spørsmål om feilhåndtering; 1–2 om fillesing til ordbok; og ett av typen «hvilken linje mangler».
Avsluttende (13–16 oppgaver, 75 poeng): først et flervalgsskall på 4–7 oppgaver — kodesporing, minst én tabell om feilhåndtering og minst én om indeksering. Deretter kodeskrivingen, i denne rekkefølgen eller nær den:
1. én rekke eller sum, med tilhørende testfunksjon;
2. minst én klasse med spesialmetoder — gjerne en vektor- eller funksjonsklasse;
3. én differenslikning, med plott;
4. ett ODE-system løst med det utleverte apparatet, og plottet;
5. én fillesing til nøstet ordbok, med filtrering.
Til slutt kommer gjerne den vanskeligste oppgaven, som skiller toppkarakterene: en egen ODE-subklasse, eventuelt kombinert med en likningsløser.
Den vitenskapelige innpakningen roterer — epidemi, populasjonsdynamikk, planetbane, nervecelle, vær — men programmeringsøvelsen bak er den samme hvert år. Det er derfor boka øver på mønsteret og varierer innpakningen.
(Innstegsoppgave — refleksjon om eksamensformen.) Svar kort på hvert punkt.
a) Hvor mange poeng er den avsluttende eksamenen verdt, og hvor mange er midtveiseksamen verdt?
b) Du står fast på et flervalgsspørsmål og har ett minutt igjen. Skal du la det stå blankt eller gjette? Begrunn.
c) Hva er den siste nummererte «oppgaven» på den avsluttende eksamenen, og hva skal du gjøre med den?
(Refleksjon — sett opp et tidsbudsjett.) Den avsluttende eksamenen varer fire timer og gir 75 poeng. Flervalgsskallet er de 4–7 første oppgavene og utgjør omtrent 20 poeng; kodeskrivingen utgjør de resterende 55.
a) Sett opp et tidsbudsjett i minutter for de to delene, ut fra hvor mange poeng de er verdt.
b) Juster budsjettet ut fra at kodesporing går fort når du har drillet den, mens en klasseoppgave på 10 poeng tar tid. Hva blir din endelige plan?
c) Hvor mye tid setter du av til slutt, og til hva?
(Refleksjon — planlegg lesingen.) Du har seks uker igjen til den avsluttende eksamenen og kan bruke omtrent åtte timer i uka.
a) Hvilke fem temaer prioriterer du høyest, og hvorfor?
b) Hvor i de seks ukene legger du de to avsluttende øvingseksamenene, og hvorfor ikke begge til slutt?
c) Hvor mye av de åtte timene bør være lesing, og hvor mye bør være egen koding?
Hva som IKKE er pensum (~3 min)
Like nyttig som å vite hva som kommer, er å vite hva du trygt kan la ligge. Følgende er utenfor pensum i dette emnet, og boka bruker det ikke:
- Rekursjon — at en funksjon kaller seg selv. Det er utenfor pensum og markeres eksplisitt som uønsket i fasit. Alt løses med løkke.
- Objektorientert design utover de fem spesialmetodene og enkel arv: ingen designmønstre, ingen egenskaper med @property.
- Generatorer, dekoratorer og egendefinerte kontekstmanagere.
- map, filter og reduce — bruk vanlige løkker.
- Testrammeverk som pytest eller unittest. Boka bruker enkle testfunksjoner med assert, slik fasit gjør.
- Filformater utover ren tekst — ingen CSV-modul, ingen JSON.
- Biblioteker utenfor det korte pensumet. Du trenger math, numpy, matplotlib.pyplot, sys, og i de tyngste oppgavene én enkelt funksjon fra scipy.
Én ting til, som mange har lært i andre sammenhenger: linja if __name__ == '__main__': gir ingen uttelling i dette emnet og skal ikke skrives. Sensor forventer korte løsninger uten hovedprogram.
Frekvenstallene i denne boka er telt i UiO-arkivet for IN1900 og forgjengeren INF1100 fra 2007 til 2025: 38 eksamenssett — 19 avsluttende og 19 midtveis — med tilhørende offisielle løsningsforslag, til sammen 76 dokumenter.
De åtte avsluttende settene fra 2018 til 2025 og løsningsforslagene til dem er gjennomgått grundig; settene fra 2007 til 2017 er skummet for form og for hvilke temaer som forekommer. Prosentene i boka gjelder derfor de åtte nyere settene. Emnet skiftet navn fra INF1100 til IN1900 rundt 2017, og eksamenen høsten 2020 var en hjemmeeksamen med spørsmålspool — begge forhold er hensyntatt i tellingen. Et nytt sett kan endre bildet.
Faget har offisielle løsningsforslag som i praksis fungerer som sensorveiledning. Det finnes ikke separat publiserte sensorveiledninger i dette arkivet, og boka påstår heller ikke at det gjør det.
Alle oppgaver, kodeeksempler, datafiler, tall og innpakninger i boka er nyskrevne. Kodemønstrene er standard Python-idiomer, men ingen oppgavetekst og ingen fasitkode fra et reelt sett er gjengitt. Modellbesvarelsene i boka er skrevet av Skolesaga — de er ikke ekte studentbesvarelser og ikke hentet fra fasit.
Denne boka er laget av Skolesaga og er ikke utgitt av, tilknyttet eller godkjent av Universitetet i Oslo. Den lover ingen bestemt karakter.
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.
Skolesaga er en uavhengig læringsressurs og er ikke tilknyttet eller godkjent av Universitetet i Oslo. Dette er ikke offisielt studiemateriell. Les mer.