Læringsmål

Oversikt over læringsmål dekket i IN1000 Introduksjon til objektorientert programmering

Kilde: Læringsmålene er utformet av Skolesaga på grunnlag av emnets eksamensoppgaver, sensorveiledninger og emnebeskrivelse. De er ikke institusjonens offisielle læringsutbyttebeskrivelser.

144 kompetansemål37 av 37 kapitler har kompetansemål

Alle kompetansemål

kunne gjøre rede for hvordan eksamen i emnet er bygget opp, og hvor poengene ligger
kunne sette opp et realistisk tidsbudsjett for de fire timene
kunne prioritere lesingen etter hvilke temaer som faktisk går igjen
kunne bruke reglene om delvis uttelling til å svare på flest mulig deloppgaver
kunne si hvilken type en verdi har, og hvorfor tekst og tall oppfører seg ulikt
kunne regne ut et sammensatt uttrykk med de sju regneoperatorene i riktig rekkefølge
kunne gjøre om mellom tekst og tall, og vite når det må gjøres
kunne angi nøyaktig hva et lite program skriver ut, med riktig type og riktige mellomrom
kunne regne ut verdien av en sammenligning og av et sammensatt boolsk uttrykk
kunne avgjøre hvilken gren i en forgrening som kjøres, og hvorfor de andre ikke gjør det
kunne skille en kjede med elif fra flere selvstendige if-setninger
kunne skrive en betingelse som treffer riktig på grenseverdien
kunne si nøyaktig hvilke verdier en tallrekke gir, og hvor mange runder løkka kjører
kunne bruke teller- og akkumulatormønsteret til å samle opp et resultat
kunne spore en while-løkke som endrer flere variabler per runde
kunne regne ut hva en nøstet løkke skriver ut, også når den indre grensen avhenger av den ytre
kunne avgjøre hvilken gren i en forgrening som kjøres
kunne føre en sporingstavle gjennom en løkke som oppdaterer flere variabler
kunne kjenne igjen de fire fellene som koster flest poeng i Oppgave 1
kunne definere en funksjon med parametere og returnere et resultat fra den
kunne bruke flagg med tidlig retur til å svare ja eller nei om en hel samling
kunne forklare hvorfor en funksjon gir None, og rette det
kunne la to funksjoner samarbeide, og ta imot flere returverdier
kunne avgjøre om et navn inne i en funksjon er lokalt eller globalt
kunne forklare hvorfor en tilordning inne i en funksjon ikke endrer utsiden
kunne skrive om en funksjon som leser globale variabler, til én som tar dem inn som parametere
kunne kjenne igjen de to feilmeldingene scope-feil gir, og rette dem
kunne angi nøyaktig hva et program med funksjonskall skriver ut
kunne skrive en liten funksjon med flagg og tidlig retur i sensors grunnform
kunne avgjøre om en tilordning inne i en funksjon er lokal eller ikke
kunne kjenne igjen de feilene som koster flest poeng på Oppgave 3
kunne hente ut et bestemt element fra en liste, også talt bakfra
kunne velge riktig løkkeform etter om du trenger verdien eller plassen
kunne bygge en ny liste med et utvalg eller en omforming av en gammel
kunne sikre at en funksjon over en liste også tåler at lista er tom
kunne slå opp, sette inn og oppdatere verdier i en ordbok uten å stoppe programmet
kunne telle forekomster med en ordbok, skrevet med vanlig løkke og betingelse
kunne gruppere elementer slik at hver nøkkel peker på en liste
kunne finne nøkkelen med størst verdi, og svare ærlig når samlingen er tom
kunne hente ut og telle enkelttegn i en tekst
kunne bygge en ny tekst tegn for tegn, i riktig retning
kunne dele en linje i felt og rense den for usynlige tegn først
kunne se når en verdi er tekst og når den er tall, og veksle bevisst mellom dem
kunne lese en oppgavetekst og peke ut hvilket kodemønster den ber om
kunne skrive skjelettet med startverdi, løkke og retur før detaljene
kunne håndtere tom samling og manglende treff bevisst i hver funksjon
kunne gi et konkret moteksempel når en funksjon svarer galt
kunne skrive en liten funksjon over en liste i sensors grunnform
kunne bygge en telling og en gruppering med ordbok, uten ferdige hjelpemidler
kunne dele opp en innlest linje og konvertere feltene riktig
kunne løse fire deloppgaver uavhengig av hverandre innenfor eksamensfart
kunne føre en sporingstavle gjennom en løkke som endrer flere variabler
kunne telle nøyaktig hvor mange runder en løkke kjører
kunne skille tekst fra tall og heltall fra desimaltall i en utskrift
kunne skrive utskriften eksakt slik terminalen viser den, uten pynt
kunne skille en feil som stopper programmet fra en som bare gir galt svar
kunne prøve en funksjon systematisk på de inndataene den ikke tåler
kunne foreslå den minste rettelsen som fjerner feilen
kunne føre sporingstavle gjennom en løkke som endrer flere variabler
kunne angi utskriften med riktig type og riktig form, uten pynt
kunne spore en ordbok som endrer seg selv, runde for runde
kunne skrive en klasse med konstruktør slik at alle verdier objektet skal huske, overlever kallet
kunne forklare hva den første parameteren i en metode peker på, og hvorfor den aldri skrives i kallet
kunne se om to objekter av samme klasse deler verdier eller ikke
kunne kjenne igjen den vanligste konstruktørfeilen i en gitt kodesnutt, og rette den
kunne skrive lese- og endringsmetoder for verdiene i en klasse, i den formen faget bruker
kunne avgjøre hvilke verdier som bør kunne endres utenfra og hvilke som bør låses
kunne skrive opp grensesnittet til en gitt klasse, og si hva som ikke hører hjemme der
kunne legge en regel inn i en endringsmetode slik at klassen selv passer på den
kunne gi en klasse en metode som gjør objektet lesbart når det skrives ut
kunne se når et tall må gjøres om til tekst før det skjøtes sammen med annen tekst
kunne skille en metode som leverer en tekst fra en som bare viser den
kunne la en klasse som holder mange objekter, be hvert av dem om å vise seg selv
kunne avgjøre om to navn peker på det samme objektet eller på hvert sitt
kunne skille en endring av objektet fra en ny tilordning som bare flytter et navn
kunne telle hvor mange objekter et program faktisk lager
kunne forklare hvorfor en funksjon kan endre et objekt den får inn, men ikke bytte det ut for den som kalte
kunne lese en konstruktør og se hvilke verdier som faktisk havner i objektet
kunne tegne objekter og navn, og oppdatere tegningen linje for linje
kunne avgjøre om en linje endrer et objekt eller bare flytter et navn
kunne svare på begrepsspørsmål om grensesnitt og instansvariabler uten å spore koden
kunne skrive en klasse med konstruktør, lesemetoder og endringsmetoder uten hjelpemidler
kunne avgjøre hva som peker på hva etter en serie tilordninger
kunne svare på alle fire deloppgavene i en typisk objekt-flervalgsoppgave
kunne lese en beskrivelse og avgjøre hvilke klasser den trenger
kunne skille en egenskap ved en ting fra en ting med egne egenskaper
kunne avgjøre om en forbindelse gjelder ett objekt eller en samling av dem
kunne sette opp et skjelett med signaturer før du fyller inn en eneste metodekropp
kunne opprette og fylle en samling av objekter inne i en klasse
kunne skrive en oppslagsmetode som ikke stopper programmet når den ikke finner noe
kunne la en klasse be underobjektene sine om å skrive seg selv, telle eller regne
kunne la et objekt peke på et objekt av en annen klasse, og spørre seg videre gjennom modellen
kunne skrive en metode som finner det beste elementet i en samling objekter
kunne bygge et regnskap over en samling og lese det i en egen løkke etterpå
kunne svare ja eller nei på en påstand om hele samlingen, med riktig plassert retur
kunne tenke gjennom hva metoden svarer på en tom samling og på to like verdier
kunne be brukeren om en verdi og gjøre den om til riktig type
kunne gjenta et spørsmål til svaret er gyldig, med riktig plasserte kall
kunne skrive gyldighetstesten for en samling, et indeksområde og et tallområde
kunne legge spørsmålet inn i en metode som returnerer objektet brukeren valgte
kunne gå fra en beskrivelse til en ferdig modell i en fast rekkefølge av steg
kunne sette sammen konstruktør, samling, filinnlesing, algoritmemetode og utskrift i én besvarelse
kunne finne de stumme feilene i en modell ved å lese den, ikke ved å kjøre den
kunne disponere tiden slik at hver deloppgave leveres, også når én av dem ikke blir ferdig
kunne gå fra en beskrivelse til klasser, samlinger og metodesignaturer uten hjelpemidler
kunne bygge to eller tre samarbeidende klasser med oppslag og delegering
kunne skrive en algoritmemetode og en spørremetode i samme modell
kunne levere alle deloppgavene i en full Oppgave 4 på tiden
kunne skrive innlesingsløkka som går gjennom en fil til den er slutt
kunne dele en linje i felt i riktig rekkefølge, og se hvilket felt et glemt rensesteg rammer
kunne avgjøre hvilke felt som må gjøres om til tall, og hvilke som skal forbli tekst
kunne lese en fil og bygge opp en liste eller ordbok av objekter fra den
kunne lese et dataformat av en eksempellinje og planlegge innlesingen før du koder
kunne skrive innlesingen både som en frittstående funksjon og som en metode i en klasse
kunne velge mellom liste og ordbok ut fra hva oppgaven skal kunne slå opp senere
kunne kjenne igjen og rette de fem feilene som oftest ødelegger fil-deloppgaven
kunne skrive innlesingsløkka riktig uten hjelpemidler
kunne bygge en liste eller ordbok av objekter fra en fil, med riktig skilletegn og konvertering
kunne la et objekt lese sin egen fil og fylle sin egen samling
kunne kombinere filinnlesing med oppslag, delegering og en algoritmemetode
kunne lese og skrive verdier på to nivåer uten å blande dem
kunne bygge opp en nøstet ordbok med de sjekkene som trengs
kunne løpe gjennom begge nivåene og plassere akkumulatoren riktig
kunne telle antall runder i en løkke inne i en løkke
kunne avgjøre hvilket av fire mønstre en oppgavetekst ber om
kunne plassere akkumulatoren på det nivået oppgaven faktisk krever
kunne bygge en ny nøstet struktur av en gammel, med de sjekkene som trengs
kunne tenke gjennom hva funksjonen svarer på tomme og ulike store strukturer
kunne spore en løkke inne i en løkke og telle rundene riktig
kunne plassere akkumulatoren på det nivået oppgaven krever
kunne bygge og snu en nøstet ordbok med de sjekkene som trengs
kunne skrive to samarbeidende funksjoner over en nøstet struktur på tiden
kunne fordele tiden slik at alle fem oppgavene besvares
kunne kjenne igjen hvilken sjanger hver oppgave tilhører, og hente fram riktig mal
kunne kontrollere egen kode ved å lese den, siden den aldri kjøres før den rettes
kunne bygge en modell med to samlinger, filinnlesing og en spørremetode
kunne spore referanser gjennom en modell der ett objekt ligger flere steder
kunne fordele tiden etter poengene i stedet for etter rekkefølgen
kunne gjennomføre et sett på nivå med de nyeste settene i arkivet
kunne bygge en modell med to nivåer av samlinger og filinnlesing per objekt
kunne gi et konkret moteksempel når en funksjon er logisk feil
kunne svare på et grensesnitt-spørsmål uten å spore kode

Kapitler med kompetansemål

0Eksamenskart

0.1Eksamenskartet — slik testes IN1000
  • kunne gjøre rede for hvordan eksamen i emnet er bygget opp, og hvor poengene ligger
  • kunne sette opp et realistisk tidsbudsjett for de fire timene
  • kunne prioritere lesingen etter hvilke temaer som faktisk går igjen
  • kunne bruke reglene om delvis uttelling til å svare på flest mulig deloppgaver

1Python-grunnlaget: variabler, betingelser og løkker

1.1Variabler, datatyper og uttrykk
  • kunne si hvilken type en verdi har, og hvorfor tekst og tall oppfører seg ulikt
  • kunne regne ut et sammensatt uttrykk med de sju regneoperatorene i riktig rekkefølge
  • kunne gjøre om mellom tekst og tall, og vite når det må gjøres
  • kunne angi nøyaktig hva et lite program skriver ut, med riktig type og riktige mellomrom
1.2Betingelser og boolske uttrykk
  • kunne regne ut verdien av en sammenligning og av et sammensatt boolsk uttrykk
  • kunne avgjøre hvilken gren i en forgrening som kjøres, og hvorfor de andre ikke gjør det
  • kunne skille en kjede med elif fra flere selvstendige if-setninger
  • kunne skrive en betingelse som treffer riktig på grenseverdien
1.3Løkker: for, while og range
  • kunne si nøyaktig hvilke verdier en tallrekke gir, og hvor mange runder løkka kjører
  • kunne bruke teller- og akkumulatormønsteret til å samle opp et resultat
  • kunne spore en while-løkke som endrer flere variabler per runde
  • kunne regne ut hva en nøstet løkke skriver ut, også når den indre grensen avhenger av den ytre
1.PPrøver til del 1: Python-grunnlaget: variabler, betingelser og løkker
  • kunne angi nøyaktig hva et lite program skriver ut, med riktig type og riktige mellomrom
  • kunne avgjøre hvilken gren i en forgrening som kjøres
  • kunne føre en sporingstavle gjennom en løkke som oppdaterer flere variabler
  • kunne kjenne igjen de fire fellene som koster flest poeng i Oppgave 1

2Funksjoner

2.1Funksjoner: def, parametere og return
  • kunne definere en funksjon med parametere og returnere et resultat fra den
  • kunne bruke flagg med tidlig retur til å svare ja eller nei om en hel samling
  • kunne forklare hvorfor en funksjon gir None, og rette det
  • kunne la to funksjoner samarbeide, og ta imot flere returverdier
2.2Funksjonssamarbeid og scope
  • kunne avgjøre om et navn inne i en funksjon er lokalt eller globalt
  • kunne forklare hvorfor en tilordning inne i en funksjon ikke endrer utsiden
  • kunne skrive om en funksjon som leser globale variabler, til én som tar dem inn som parametere
  • kunne kjenne igjen de to feilmeldingene scope-feil gir, og rette dem
2.PPrøver til del 2: Funksjoner
  • kunne angi nøyaktig hva et program med funksjonskall skriver ut
  • kunne skrive en liten funksjon med flagg og tidlig retur i sensors grunnform
  • kunne avgjøre om en tilordning inne i en funksjon er lokal eller ikke
  • kunne kjenne igjen de feilene som koster flest poeng på Oppgave 3

3Lister, ordbøker og strenger

3.1Lister
  • kunne hente ut et bestemt element fra en liste, også talt bakfra
  • kunne velge riktig løkkeform etter om du trenger verdien eller plassen
  • kunne bygge en ny liste med et utvalg eller en omforming av en gammel
  • kunne sikre at en funksjon over en liste også tåler at lista er tom
3.2Ordbøker
  • kunne slå opp, sette inn og oppdatere verdier i en ordbok uten å stoppe programmet
  • kunne telle forekomster med en ordbok, skrevet med vanlig løkke og betingelse
  • kunne gruppere elementer slik at hver nøkkel peker på en liste
  • kunne finne nøkkelen med størst verdi, og svare ærlig når samlingen er tom
3.3Strenger
  • kunne hente ut og telle enkelttegn i en tekst
  • kunne bygge en ny tekst tegn for tegn, i riktig retning
  • kunne dele en linje i felt og rense den for usynlige tegn først
  • kunne se når en verdi er tekst og når den er tall, og veksle bevisst mellom dem
3.4DRILL — Skriv en funksjon over liste, ordbok eller streng
  • kunne lese en oppgavetekst og peke ut hvilket kodemønster den ber om
  • kunne skrive skjelettet med startverdi, løkke og retur før detaljene
  • kunne håndtere tom samling og manglende treff bevisst i hver funksjon
  • kunne gi et konkret moteksempel når en funksjon svarer galt
3.PPrøver til del 3: Lister, ordbøker og strenger
  • kunne skrive en liten funksjon over en liste i sensors grunnform
  • kunne bygge en telling og en gruppering med ordbok, uten ferdige hjelpemidler
  • kunne dele opp en innlest linje og konvertere feltene riktig
  • kunne løse fire deloppgaver uavhengig av hverandre innenfor eksamensfart

4Kodesporing og kodeanalyse

4.1DRILL — Kodesporing: «hva skrives ut?»
  • kunne føre en sporingstavle gjennom en løkke som endrer flere variabler
  • kunne telle nøyaktig hvor mange runder en løkke kjører
  • kunne skille tekst fra tall og heltall fra desimaltall i en utskrift
  • kunne skrive utskriften eksakt slik terminalen viser den, uten pynt
4.2«Finn feilen» og konkret moteksempel
  • kunne skille en feil som stopper programmet fra en som bare gir galt svar
  • kunne prøve en funksjon systematisk på de inndataene den ikke tåler
  • kunne levere et moteksempel som faktisk avslører feilen
  • kunne foreslå den minste rettelsen som fjerner feilen
4.PPrøver til del 4: Kodesporing og kodeanalyse
  • kunne føre sporingstavle gjennom en løkke som endrer flere variabler
  • kunne angi utskriften med riktig type og riktig form, uten pynt
  • kunne spore en ordbok som endrer seg selv, runde for runde
  • kunne levere et moteksempel som faktisk avslører feilen

5Klasser, objekter og referanser

5.1Klasser og objekter: `class`, `__init__` og `self`
  • kunne skrive en klasse med konstruktør slik at alle verdier objektet skal huske, overlever kallet
  • kunne forklare hva den første parameteren i en metode peker på, og hvorfor den aldri skrives i kallet
  • kunne se om to objekter av samme klasse deler verdier eller ikke
  • kunne kjenne igjen den vanligste konstruktørfeilen i en gitt kodesnutt, og rette den
5.2Innkapsling: underscore, aksessor og mutator
  • kunne skrive lese- og endringsmetoder for verdiene i en klasse, i den formen faget bruker
  • kunne avgjøre hvilke verdier som bør kunne endres utenfra og hvilke som bør låses
  • kunne skrive opp grensesnittet til en gitt klasse, og si hva som ikke hører hjemme der
  • kunne legge en regel inn i en endringsmetode slik at klassen selv passer på den
5.3`__str__` og pen objektutskrift
  • kunne gi en klasse en metode som gjør objektet lesbart når det skrives ut
  • kunne se når et tall må gjøres om til tekst før det skjøtes sammen med annen tekst
  • kunne skille en metode som leverer en tekst fra en som bare viser den
  • kunne la en klasse som holder mange objekter, be hvert av dem om å vise seg selv
5.4Referansesemantikk
  • kunne avgjøre om to navn peker på det samme objektet eller på hvert sitt
  • kunne skille en endring av objektet fra en ny tilordning som bare flytter et navn
  • kunne telle hvor mange objekter et program faktisk lager
  • kunne forklare hvorfor en funksjon kan endre et objekt den får inn, men ikke bytte det ut for den som kalte
5.5DRILL — Objekt-flervalg: referanser, `self`, scope og grensesnitt
  • kunne lese en konstruktør og se hvilke verdier som faktisk havner i objektet
  • kunne tegne objekter og navn, og oppdatere tegningen linje for linje
  • kunne avgjøre om en linje endrer et objekt eller bare flytter et navn
  • kunne svare på begrepsspørsmål om grensesnitt og instansvariabler uten å spore koden
5.PPrøver til del 5: Klasser, objekter og referanser
  • kunne skrive en klasse med konstruktør, lesemetoder og endringsmetoder uten hjelpemidler
  • kunne la en klasse som holder mange objekter, be hvert av dem om å vise seg selv
  • kunne avgjøre hva som peker på hva etter en serie tilordninger
  • kunne svare på alle fire deloppgavene i en typisk objekt-flervalgsoppgave

6Stor klassemodellering

6.1Fra spesifikasjon til klasser — modelleringsmetoden
  • kunne lese en beskrivelse og avgjøre hvilke klasser den trenger
  • kunne skille en egenskap ved en ting fra en ting med egne egenskaper
  • kunne avgjøre om en forbindelse gjelder ett objekt eller en samling av dem
  • kunne sette opp et skjelett med signaturer før du fyller inn en eneste metodekropp
6.2Flere samarbeidende klasser og «en-til-mange»
  • kunne opprette og fylle en samling av objekter inne i en klasse
  • kunne skrive en oppslagsmetode som ikke stopper programmet når den ikke finner noe
  • kunne la en klasse be underobjektene sine om å skrive seg selv, telle eller regne
  • kunne la et objekt peke på et objekt av en annen klasse, og spørre seg videre gjennom modellen
6.3Algoritme-metoder i klasser
  • kunne skrive en metode som finner det beste elementet i en samling objekter
  • kunne bygge et regnskap over en samling og lese det i en egen løkke etterpå
  • kunne svare ja eller nei på en påstand om hele samlingen, med riktig plassert retur
  • kunne tenke gjennom hva metoden svarer på en tom samling og på to like verdier
6.4Terminal-interaksjon i klasser
  • kunne be brukeren om en verdi og gjøre den om til riktig type
  • kunne gjenta et spørsmål til svaret er gyldig, med riktig plasserte kall
  • kunne skrive gyldighetstesten for en samling, et indeksområde og et tallområde
  • kunne legge spørsmålet inn i en metode som returnerer objektet brukeren valgte
6.5DRILL — Full klassemodellering fra spesifikasjon
  • kunne gå fra en beskrivelse til en ferdig modell i en fast rekkefølge av steg
  • kunne sette sammen konstruktør, samling, filinnlesing, algoritmemetode og utskrift i én besvarelse
  • kunne finne de stumme feilene i en modell ved å lese den, ikke ved å kjøre den
  • kunne disponere tiden slik at hver deloppgave leveres, også når én av dem ikke blir ferdig
6.PPrøver til del 6: Stor klassemodellering
  • kunne gå fra en beskrivelse til klasser, samlinger og metodesignaturer uten hjelpemidler
  • kunne bygge to eller tre samarbeidende klasser med oppslag og delegering
  • kunne skrive en algoritmemetode og en spørremetode i samme modell
  • kunne levere alle deloppgavene i en full Oppgave 4 på tiden

7Filbehandling

7.1Filinnlesing linje for linje
  • kunne skrive innlesingsløkka som går gjennom en fil til den er slutt
  • kunne dele en linje i felt i riktig rekkefølge, og se hvilket felt et glemt rensesteg rammer
  • kunne avgjøre hvilke felt som må gjøres om til tall, og hvilke som skal forbli tekst
  • kunne lese en fil og bygge opp en liste eller ordbok av objekter fra den
7.2DRILL — Filinnlesing i klassemodellering
  • kunne lese et dataformat av en eksempellinje og planlegge innlesingen før du koder
  • kunne skrive innlesingen både som en frittstående funksjon og som en metode i en klasse
  • kunne velge mellom liste og ordbok ut fra hva oppgaven skal kunne slå opp senere
  • kunne kjenne igjen og rette de fem feilene som oftest ødelegger fil-deloppgaven
7.PPrøver til del 7: Filbehandling
  • kunne skrive innlesingsløkka riktig uten hjelpemidler
  • kunne bygge en liste eller ordbok av objekter fra en fil, med riktig skilletegn og konvertering
  • kunne la et objekt lese sin egen fil og fylle sin egen samling
  • kunne kombinere filinnlesing med oppslag, delegering og en algoritmemetode

8Nøstede strukturer

8.1Nøstede lister og ordbøker
  • kunne lese og skrive verdier på to nivåer uten å blande dem
  • kunne bygge opp en nøstet ordbok med de sjekkene som trengs
  • kunne løpe gjennom begge nivåene og plassere akkumulatoren riktig
  • kunne telle antall runder i en løkke inne i en løkke
8.2DRILL — Funksjoner over nøstede strukturer
  • kunne avgjøre hvilket av fire mønstre en oppgavetekst ber om
  • kunne plassere akkumulatoren på det nivået oppgaven faktisk krever
  • kunne bygge en ny nøstet struktur av en gammel, med de sjekkene som trengs
  • kunne tenke gjennom hva funksjonen svarer på tomme og ulike store strukturer
8.PPrøver til del 8: Nøstede strukturer
  • kunne spore en løkke inne i en løkke og telle rundene riktig
  • kunne plassere akkumulatoren på det nivået oppgaven krever
  • kunne bygge og snu en nøstet ordbok med de sjekkene som trengs
  • kunne skrive to samarbeidende funksjoner over en nøstet struktur på tiden

9Eksamenstrening

9.1Avsluttende øvingseksamen 1 — bibliotek-innpakning
  • kunne gjennomføre et helt sett på fire timer uten hjelpemidler
  • kunne fordele tiden slik at alle fem oppgavene besvares
  • kunne kjenne igjen hvilken sjanger hver oppgave tilhører, og hente fram riktig mal
  • kunne kontrollere egen kode ved å lese den, siden den aldri kjøres før den rettes
9.2Avsluttende øvingseksamen 2 — treningssenter-innpakning
  • kunne gjennomføre et helt sett på fire timer uten hjelpemidler
  • kunne bygge en modell med to samlinger, filinnlesing og en spørremetode
  • kunne spore referanser gjennom en modell der ett objekt ligger flere steder
  • kunne fordele tiden etter poengene i stedet for etter rekkefølgen
9.3Avsluttende øvingseksamen 3 — strømmetjeneste-innpakning (tyngre)
  • kunne gjennomføre et sett på nivå med de nyeste settene i arkivet
  • kunne bygge en modell med to nivåer av samlinger og filinnlesing per objekt
  • kunne gi et konkret moteksempel når en funksjon er logisk feil
  • kunne svare på et grensesnitt-spørsmål uten å spore kode