Komplett pensumoversikt for introduksjon til objektorientert programmering ved UiO — med forklaringer, sentrale begreper, eksamenstips og vanlige fallgruver. Eksamensoptimalisert basert på tidligere eksamener.
IN1000 Introduksjon til objektorientert programmering er det første programmeringskurset ved Institutt for informatikk, UiO. Kurset undervises i Python og dekker alt fra variabler og kontrollstrukturer til klasser, objekter og filhåndtering. Eksamen er en 4-timers skriftlig prove der alle trykte og skrevne hjelpemidler er tillatt, men ingen elektroniske.
Eksamen følger et fast mønster med fem deler: Del 1 (ca. 10 poeng) er kodelesingoppgaver der du skal finne ut hva korte kodesnutter skriver ut. Del 2 (ca. 10 poeng) tester klasser og objekter gjennom flervalgsoppgaver om instansvariabler, self og referanser. Del 3 (ca. 20-25 poeng) krever at du skriver egne funksjoner med lister, ordbøker og logikk. Del 4 (ca. 50 poeng) er en stor sammenhengende OOP-oppgave der du bygger et komplett system med flere klasser, filinnlesing og metoder. Del 5 (ca. 10 poeng) er algoritmiske utfordringer med nestede lister eller ordbøker.
Tidsfordeling: Bruk ca. 30 minutter på del 1-2, 45 minutter på del 3, 90 minutter på del 4, og 30 minutter på del 5. Del 4 gir halvparten av poengene og bør prioriteres. Les hele oppgavesettet for du begynner, og gjør egne forutsetninger dersom noe er uklart.
Grunnleggende Python-typer (int, float, str, bool), variabeltilordning, typekonvertering med int(), str(), float(), og forskjellen mellom streng-konkatenering og aritmetikk. Testes alltid i del 1.
Python er et dynamisk typet språk, noe som betyr at du ikke deklarerer typen til en variabel -- den bestemmes av verdien du tilordner. De viktigste datatypene i IN1000 er int (heltall), float (desimaltall), str (tekst), og bool (True/False).
En variabel i Python er en referanse til et objekt i minnet. Når du skriver a = 5, opprettes et heltallsobjekt med verdi 5, og variabelen a peker på dette objektet. Når du deretter skriver a = a + 3, opprettes et nytt objekt med verdi 8, og a peker nå på dette nye objektet.
Typekonvertering er en gjenganger på eksamen. Vær oppmerksom på forskjellen mellom strengoperasjoner og talloperasjoner. Når to strenger legges sammen med +, blir de konkatenert (satt sammen), ikke addert. For eksempel gir '1' + '2' strengen '12', mens int('1') + int('2') gir heltallet 3.
Funksjonen int() konverterer en streng til heltall, str() konverterer et tall til streng, og float() konverterer til desimaltall. Husk at int('12') gir 12, mens int('1' + '2') først konkatenerer strengene til '12' og deretter konverterer til 12.
Boolske uttrykk evalueres med and, or og not. Et vanlig eksamenstriks er å tilordne et boolsk uttrykk til en variabel: b = a > 2 lagrer True eller False i b. Denne variabelen kan deretter brukes i en if-setning.
En typisk del 1-felle blander parenteser rundt konkatenering med konvertering. Tenk deg a = '4', b = '5', c = '6', tall = int(a + b) + int(c). Her konkateneres først '4' og '5' til '45', som konverteres til 45, og deretter legges 6 til, sa svaret er 51 -- ikke 15 slik mange tror.
# Streng-konkatenering vs. addisjon
a = '4'
b = '5'
c = '6'
tall = int(a + b) + int(c)
print(tall) # Skriver ut 51
# Forklaring: a + b = '45', int('45') = 45, 45 + 6 = 51
# Variabeltilordning og oppdatering
tall = 7
tall = tall + 3 # tall er na 10
print(tall * 2) # Skriver ut 20# Boolske uttrykk lagret i variabler
a = 5
b = a > 2 # b = True
if a == 3 or b: # False or True = True
a += 10
print(a) # Skriver ut 15
# Sammenligning og typesjekk
x = '42'
y = 42
print(type(x)) #
print(type(y)) #
# x + y gir TypeError! Bruk int(x) + y eller x + str(y) Nøkkelformler
Vanlige feil
Eksamenstips
Laster...