Gruppe 25

Hei og velkommen til gruppe 25 i IN1000 :)

Her legges det ut diverse oppgaver samt slides og programmer som blir gjennomgått i timen i egne ukesmapper. 

Vi har digital lab på onsdager 12:15-14:00 og digitale gruppetimer på mandager 12:15-14:00. Zoom linker finnes i timeplanen. 

Stikk også innom mattermost kanelen vår hvor jeg kommer til å gi ut beskjeder. På Mattermost kan du spørre i gruppekanelen vår eller spørre meg direkte @sirisoll om obliger, innholde i kurset, inspill til gruppetimene, etc. - vi finner ut av det sammen! Du kan også kontakte meg på sirisoll@uio.no
 

Uke 1

Læringsmål:

  • Kunne logge på en linux-tjener ved Ifi fra egen maskin, skrive, endre og kjøre et Python-program
  • Programmering i Python:
    • Kunne skrive ut til og lese inn fra terminalen
    • Kunne ta vare på verdier med variabler
    • Kunne bruke beslutninger (if) for å avgjøre hvilke programlinjer som skal kjøres
    • Kunne lese en feilmelding
    • Kjenne til ulike verktøy for å skrive og kjøre Python-programmer

Uke2

Læringsmål:

  • Forstå hvordan én enkelt linje utføres: Datatyper, evaluering av uttrykk og funksjoner
  • Ha god forståelse av variabler
  • Forstå og kunne bruke enkle prosedyrer uten parametre
  • Forstå hvordan et helt program utføres - kodeflyt fra linje til linje, inkludert for beslutninger og prosedyrer

Uke 3

Læringsmål:

  • Vite om begrepet objekter, samt at objekter tilbyr tjenester
  • Kunne bruke samlinger for å holde på mange verdier
  • Kjenne til forskjellene mellom lister, mengder og ordbøker, samt være i stand til å benytte egnet type samling for et gitt formål

Uke 4

Læringsmål:

  • Kjenne til skrivemåte for while-løkker og for-løkker
  • Kunne bruke løkker for å løse problemer
  • Kunne bruke løkker sammen med samlinger
  • Ha kjennskap til parametre i prosedyrer og parameteroverføring
  • Kjenne til funksjoner og kunne bruke de for å få unngå redundans og få mer strukturerte programmer

Uke 5

Læringsmål:

  • Kjenne til innlesing fra og utskrift til fil, inkludert organisering av informasjon innad på linjer

  • Kunne bruke filer, løkker, samlinger og funksjoner for å løse mer sammensatte problemer

Uke 6

Dette er en repitisjonsuke - pass på at du føler at du har kontroll på temaene fra uke 1-5.

Er det et spesifikt tema du lurer på, så prøv deg på mengdetreningsoppgavene på Trix relatert til det temaet. 

Du kan også spørre meg om hjelp på Mattermost @sirisoll :) 

Uke 7

Læringsmål:

  • Kjenne til motivasjon og bakgrunn for objektorientert programmering

  • Kunne definere en klasse med instansvariabler, metoder og konstruktør

  • Kunne opprette objekter av egendefinert klasse og bruke deres tjenester gjennom metodekall

  • Forstå sentrale begreper som grensesnitt og innkapsling

  • Kjenne til utviklingsprosessen for en klasse gjennom design, implementasjon og testing

Uke 8

Læringsmål:

  • Forstå (mer av) hva som skjer bak kulissene når vi oppretter og bruker objekter

  • Kjenne til forskjellen på å endre en referansevariabel og å endre objektet den refererer til

  • Kunne skrive programmer med samlinger av (referanser til) objekter

  • Kunne sette seg inn i enkle programmer med flere klasser og objekter som refererer til andre objekter

Uke 9

Læringsmål:

  • Spesielle metoder for sammenligning og utskrift i egendefinerte klasser.

  • Samlinger av objekter i beholdere (containers) som liste og ordbok.

  • Strukturer med objekter av flere egendefinerte klasser.

  • Repetisjon og (enda) mer detaljer om grensesnitt, innkapsling, hva skjer med referanser og objekter under kjøring

Uke 10

Læringsmål:

  • Ha kjennskap til  klassiske strukturer som er nyttige i programmering: lenkede lister, trær og grafer (ikke stress med denne, det er først og fremst aggregering dere skal kjenne til)

  • Kunne praktisere aggregering

  • Det viktigste i denne og kommende uker er at dere trener på å skrive programmer med flere klasser, og bruker teorien som er gjennomgått for å forstå hvorfor og hvordan de virker som de gjør.