Beskjeder
Riktig svar til de autoretta oppgavene skal kunne sees i Inspera. For de øvrige oppgavene (unntatt ekstraoppgavene 25 og 26) ble det laget løsningsforslag som sensorene kunne bruke under sensuren. Disse kan være til god hjelp for dem som lurer på hvorfor de fikk det resultatet som de fikk: Gå igjennom svarene og gjør en selvevaluering. Her er en zip-fil med forslag til riktig løsning.
Alle .py-filene skal være kjørbare. For del 3 er det viktig at den vedlagte .txt-fila (med data om alle kommuner i Norge) ligger i samme mappe som pythonprogrammet før det kjøres. Merk at deler av programmene er lagt til for testing og kjøring og ikke var en del av det som skulle være i svarene på oppgaven under eksamen.
Språk på eksamen
Grunna omfattande oppgåvetekst vert det ikkje laga nynorsk oppgåvesett våren 2023, jfr unntak i § 3b i Forskrift om målform i eksamensoppgaver.
Eksamen vil være tilgjengelig på bokmål og engelsk. Oppgavene kan besvares på bokmål, nynorsk, svensk, dansk eller engelsk.
Om eksamen
- Eksamen består av tre hoveddeler.
- Den første delen består av små oppgaver, som rettes automatisk.
- Den andre delen består av oppgaver hvor du skal programmere og skrive.
- Den tredje delen er et noe større sammenhengende program.
- Alle svar skal skrives inn i Inspera og det er ingen mulighet for opplasting av håndskrevne svar.
- Info om eksamen fra emnesida.
Kommentarer og tips
- Det er lurt ...
Vi gjør oppmerksom på at årets eksamen kan komme til å inneholde noen oppgavetyper som er forskjellig fra prøveeksamen - dere finner eksempler og løsingsforslag til eksemplene her.
Prøven er tilgjengelig i Inspera fram til 30. mai. NB! Ikke lever prøveeksamen, da mister du tilgangen.
Løsningsforslag finner du i denne mappa. De er alle i form av kjørbare programmer. I oppgave 1 skrives rett svar ut hvis du kjører programmet. I de andre forslagene er det testkode med på slutten. Dette er det ikke alltid spurt etter i oppgaven. Har du spørsmål til løsningsforslaget, bruk mattermostkanalen vår. Det er ikke lurt å lese løsningsforslag til en oppgave før den er forsøkt løst.
Mange vil nok mene at den beste måten å øve til eksamen, er ved å løse tidligere eksamensoppgaver. Vent med å se på evt. løsningsforslag til du har forsøkt å løse oppgaven selv. På semestersida fra H 2022 finnes også en oppgave som var prøveeksamen da.
Løsningsforslag til prøveeksamen vil bli gjennomgått på repetisjonsgruppa mandag 22. mai. Prøveeksamen vil være tilgjengelig i Inspera fram til eksamensdagen. Vi anbefaler alle å bruke god tid på å trene på å skrive i Inspera, gjerne på maskiner (Windows) her på Ifi som har lignende tastatur som maskinene i Silurveien. Særlig kan Mac-brukere få utfordringer m.h.t. noen tegn som f.eks. ' " [ ] { }
Still gjerne spørsmål om oppgavene og løsningsforslag i Mattermost. Ikke send spørsmål til oss på e-post. Det ...
I dag vil vi se på en del eksempler fra oblig 8 i forelesningen, slik at dere som er ferdige med den kan lære mer av det dere har gjort, og dere som ikke er helt ferdige kan få litt inspirasjon i innspurten.
Python Tutor er et enkelt og greit alternativ for å forstå hva som skjer i maskinen og finne feil... når all koden ligger i samme fil. Men når den er spredt over flere forskjellige filer, som i oblig 7 og 8, hvordan kan vi gjøre det samme?
Svaret er at vi kan gjøre dette direkte i VS Code, som har en innebygd debugger:
Oppgaveteksten til oblig 8 er nå ute i ny versjon, og det anbefales å laste ned/skrive ut denne på nytt.
Vi fant ut at i den gamle versjonen ble det for komplisert å finne ut hva man skulle gjøre på oppgave 3 (i forhold til det dere har fått trent på tidligere). Vi har derfor delt denne oppgaven i tre deloppgaver, som gjør at det blir en god del lettere å få oversikt og retning i det man gjør.
Vi ferdigstilte de programmene (hus og personer, lenkelister) som vi har jobbet med de to siste tirsdagene. Programmene finner du i denne mappa. Bare vei.py er oppdatert etter forelesningen.
- eiendommer00–6 viser utviklingen av et program med en samling av hus (ordbok/liste/lenkeliste)
- lliste00–7 er et generelt lenkelisteprogram
- vei.py er laget på grunnlag av eiendommer06 og lliste07 ved å "slå dem sammen" til ett program.
Lek gjerne med dem og prøvekjør i PythonTutro (for vei.py, må kommentarer fjernes). Har du spørsmål/kommentarer til programmene, skriv et innlegg i mattermostkanalen vår.
Koden som ble (delvis) gjennomgått finner du i mappa uke10og11 som vanlig under lysark/kode fra forelesning (i venstre marg).
Til oblig 7 er det en oppgave om datastrukturtegning. I dokumentet datastrukturtegninger.pdf ser dere et eksempel på slike tegninger. Merk også at det er en slik tegning PythonTutor lager for oss.
Programfilene med navn eiendommer??.py er bør studeres i rekkefølge (fra 00 til 04). Som det framgår av kommentarer i programmene, er de ikke ferdige ennå, bortsett fra nr. 00.
Eksemplene viser forskjellige måter å modellere den samme informasjonen på med forskjellige datastrukturer (ordbok, liste, lenkeliste, ...).
I forelesningen 18. april vi vi jobbe videre med disse eksemplene. Programmene lliste01–06 viser utvikling av et program for lenkelister. Vi ...
(Hvis du bare leser forelesningsnotatene og ikke var på forelesning, trenger du ikke tenke på dette.)
TLDR: int-objekter oppfører seg ikke annerledes enn andre Python-objekter når det gjelder referanser
Det som er spesielt med int-objekter, er at de er såkalt immutable, det vil si at det ikke går an å endre verdien til et int-objekt på noen måte etter at det er laget. Vi har ingen metoder som tilsvarer .mal(farge) for int-objekter og endrer tilstanden til objektet.
"Men hva om du tar
a = 1
a += 1
vil du ikke gjøre det da?"
Nei, "a += 1" er bare forkortelse for "a = a + 1", og da returneres et nytt int-objekt. (Og dette har de forresten fått til ved å bruke en magisk metode __add__ som definerer hvordan operatoren + skal oppføre seg for denne typen objekter.) Det skjer ikke noe med det gamle objektet - det har fortsatt samme verdi for all framtid....
Hei, alle som tar IN1000 i vår!
Vi trenger tilbakemelding fra dere på hvordan det har vært å være IN1000-student så langt, og vil gjerne at dere fyller ut dette nettskjemaet. Det skal ta ca. 5-10 minutter avhengig av hvor mye dere har på hjertet. Skjemaet er helt anonymt.
Husk å velge retteform ved å legge inn en kommentar i Devilry hver gang du leverer. Dette gjør det lettere for oss å finne retter og du får raskere tilbakemelding. Har du ikke levert skjema med rettetider og ønsker samretting, bør du opplyse om dette i samme kommentar i Devilry når du leverer. Vær oppmerksom på at hvis du velger tradretting er det noen tillegsspørsmål du også må besvare i kommentaren.
I selve forelesningen 14. februar snek det seg inn en feil i live-kodingen om parametre. Funksjonen refererte til en variabel (navneliste) som tilhørte hovedprogrammet. Dette er ikke en god måte å gjøre det på, fordi det gjør det umulig å bruke funksjonen i et annet program senere - listen burde derfor vært en parameter til funksjonen i stedet. I versjonen av livekodingen som ligger i timeplanen er dette rettet opp.
Hvis du ikke var i forelesningen, er ikke dette noe du trenger å tenke på. Hvis du var i forelesningen, anbefaler jeg at du sletter filen vi live-kodet der og heller ser på parametere.py (eller løsningsforslaget) som ligger i timeplanen - da får du et eksempel på hvordan man heller bør gjøre det.
Vi har laget en oversikt over viktige ressurser i emnet, som vi oppdaterer når det dukker opp noe nytt dere trenger å finne fram til. Hvis det er noe du leter etter som du ikke finner link til her, gi oss beskjed om det på Mattermost (som du finner ved å følge linken ovenfor).
Svar: Nei. :)
For andre spørsmål knyttet til obliger fra tidligere semestre, spør studieadministrasjonen.
Minner om at alle undervisningsaktiviteter er åpne for alle. Det gjelder også gruppeundervisninga. Se timeplanen. Det arrangeres et digitalt møte (Zoom) for dem som ikke kan delta i de fysiske undervisningsaktivitetene onsdag 8. februar kl. 15.00. Her vil vi gi råd og tips om hvordan man kan følge emnet når man ikke kan være tilstede. Se vår kommunikasjonskanal Mattermost.
Hvis dere leser et sted at man skal bruke noe som kalles CodeGrade, skyldes dette at dere har gått inn på en oppgave som ikke er publisert for dette semesteret (3–8) ennå. Vi bruker Devilry.
VS Code er en text-editor utviklet av Microsoft, som støtter både Linux, Windows og macOS. Grunnen...
I dette kurset skal vi lære å programmere fra bunnen av. Her er noe informasjon om undervisningstilbudet.
Første obliglab blir onsdag 25. januar kl. 14.15–16 i seminarrom C. Vi skal snakke om innleveringsoppgavene, obliglaben og hvordan man jobber med innleveringsoppgaver, andre oppgaver og pythonprogrammering på egen maskin. Hjelp med å tilrettelegge egen maskin for IN1000. Ta med din bærbare.