Beskjeder
Lagt ut på INF 3820 siden eksempler på spørsmål knyttet til PAIP-delen av kurset.
Pensumliste er lagt ut. Se lenke til venstre.
Ingen hjelpemidler tillatt til eksamen.
Dokument med eksempelspørsmål som kunne vært brukt på eksamen er lagt ut under lenke til venstre. Disse er hentet fra siste halvpart av kurset. Mer følger senere.
Angående kode med lenker fra forelesningsplanen: Alt som har med forståelse av dette å gjøre er eksamensrelevant.
Angående oblig2: Jeg har lagt ut litt kode som dere kan begynne å jobbe med. Se lenke nederst på siden som beskriver oppgaven.
Inntil to studenter kan levere felles løsning av Oblig 2. Frist for levering er utsatt til 16/11.
Oblig 2 er nå lagt ut. Se til venstre. Frist er 13. november klokken 24.00. Sendes elektronisk til Andre og Tore.
Jeg har lagt ut liste over godkjente oblig1 på wwws.ifi.uio.no . Si i fra om ditt navn mangler. Om besvarelsene - alle hadde akseptabel lisp-kode. Noen kodet inn litt vel trege algoritmer. Bruk også mer plass i koden for å få mer oversiktlig kode. Spesielt kunne det være fint å skille mellom de ulike delene av koden ved f eks
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;; DEL 1 ;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
OBLIG 1 - INF 4820/3820 - SUDOKU-LØSEREN
Oppgaven skal leveres pr email til André og meg innen onsdag 17.10 kl 24.00.
Dere kan løse det i en gruppe på 1-3 personer. På besvarelsen skal det klart angis hvem som har vært med i gruppen og hvilke deler den enkelte er ansvarlig for.
Oppgaven skal ende opp med kjørbar kode i Common Lisp.
Programmet skal løse standard Sudoku oppgaver (på 9x9 brett). Om Sudoku kan du f eks se
http://www.menneske.no/sudoku/
til slutt skal du både angi kode og gi 5 kjøringseksempler av varierende vanskelighetsgrad og måle hvor lang tid kjøringen tar. Noe bakgrunnskode finnes i Norvig kap 17. Du kan ellers bruke kode fra boka
http://norvig.com/paip/
Nedenfor er et forslag til punkter i en besvarelse. Disse kan du følge om du vil:
1. Bestem input/output representasjon
2. For algoritmen kan det være nyttig å holde orden på for hver av de 9 horisontale radene, de 9 vertikale radene...
FUI arrangerer workshop for NM i programmering!
Fagutvalget for informatikk arrangerer workshop i forkant av NM i programmering i (NMiP NMiP)
Workshoppen avholdes avholdes fredag 21. september klokken 16.15 til 18.00 i Lille Auditorium pklokken på Ifi (NMiP arrangeres 6. oktober)
Her vil vi bruke tid på å løse NMiP-aktige oppgaver, pluss at vi lærer noen programmeringstriks!
Forelesning fredag 1415: Møt opp ved seminarrom 3A (Ifi)
Korreksjon til forelesning 05.09:
Se på kode2. Vi har lagt ut grammatikken som en assosiasjonsliste.
Funksjon for å plukke ut fra en assosiasjonsliste
(assoc nøkkel aliste)
I en grammatikk kan vi skille mellom terminalsymboler og kategorisymboler. Kategorisymboler er de som forekommer på venstre side av en regel.
Da kan vi skrive koden slik
(defun behandle (frase) (cond ((consp frase) (behandle-setning frase)) ((kategorisymp frase) (behandle-ord frase)) ((terminalp frase) (list frase))))
(defun behandle-setning (setning) (gå-gjennom-sett-sammen #’behandle setning))
(defun behandle-ord (ord) (let ((regel (assoc ord grammar))) (cdr regel)))
--- og så videre
Her har jeg tenkt meg egen test for om noe er terminal eller kategorisymbol. I koden i boka er dette bakt inn. Funksjonen gå-gjennom-sett-sammen er den map-funksjonen som Norvig har kalt mappend .
Informasjon om INF4820
Med unntak av eksamensinformasjon vil all informasjon om emnet bli lagt på siden til INF3820