God oversikt over pensum med forklaringer, formler, vanlige feil og eksamenstips.
IN1000 Introduksjon til objektorientert programmering er det forste programmeringskurset ved Institutt for informatikk, UiO. Kurset undervises i Python og dekker alt fra variabler og kontrollstrukturer til klasser, objekter og filhandtering. Eksamen er en 4-timers skriftlig prove der alle trykte og skrevne hjelpemidler er tillatt, men ingen elektroniske.
Eksamen folger et fast monster 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 pa del 1-2, 45 minutter pa del 3, 90 minutter pa del 4, og 30 minutter pa del 5. Del 4 gir halvparten av poengene og bor prioriteres. Les hele oppgavesettet for du begynner, og gjor 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 sprak, 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. Nar du skriver a = 5, opprettes et heltallsobjekt med verdi 5, og variabelen a peker pa dette objektet. Nar du deretter skriver a = a + 3, opprettes et nytt objekt med verdi 8, og a peker na pa dette nye objektet.
Typekonvertering er en gjenganger pa eksamen. Vær oppmerksom pa forskjellen mellom strengoperasjoner og talloperasjoner. Nar 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') forst konkatenerer strengene til '12' og deretter konverterer til 12.
Boolske uttrykk evalueres med and, or og not. Et vanlig eksamenstriks er a 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.
Eksamen fra H2024 (oppgave 1b) viser en typisk felle: tekst1 = '1', tekst2 = '2', tekst3 = '3', tall = int(tekst1 + tekst2) + int(tekst3). Her konkateneres forst '1' og '2' til '12', som konverteres til 12, og deretter legges 3 til, sa svaret er 15.
# Streng-konkatenering vs. addisjon
tekst1 = '1'
tekst2 = '2'
tekst3 = '3'
tall = int(tekst1 + tekst2) + int(tekst3)
print(tall) # Skriver ut 15
# Forklaring: tekst1 + tekst2 = '12', int('12') = 12, 12 + 3 = 15
# Variabeltilordning og oppdatering
tall = 10
tall = tall + 2 # tall er na 12
print(tall * 2) # Skriver ut 24# 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...