Innlevering 2a i INF2810, vår 2017
|
|
|
- Bo Henriksen
- 9 år siden
- Visninger:
Transkript
1 Innlevering 2a i INF2810, vår 2017 Hovedtematikken denne gang er Huffman-koding, som ble dekket i 6. forelesning (23. februar) og i seksjon i SICP. Det er viktig å ha lest denne seksjonen før dere begynner på oppgaven. Oppgavene bygger videre på abstraksjonsbarrieren for Huffman-trær som er definert i SICP, der trær er implementert som lister. Koden for dette finner dere i fila huffman.scm på semestersiden: Ta kun med din egen kode ved levering, ikke prekoden (med mindre du har gjort endringer). Du kan laste inn prekoden med prosedyrekallet (load "huffman.scm") øverst i din egen.scm-fil. Da må huffman.scm ligge i samme mappe som koden din. Dette gir samme effekt som om hele prekoden sto øverst i din egen fil. Det er mulig å få 10 poeng tilsammen for denne innleveringen (2a), og man må ha minst 12 poeng tilsammen (av 20 mulige) for 2a pluss 2b. Besvarelsen leveres som én enkelt.scm-fil via Devilry innen fredag, 17. mars, kl. 15:00. Tekstsvar kan tas med som kommentarer (linjer som begynner mer ;;), husk å oppgi oppgavenumre. Hvis dere veldig gjerne vil kan dere heller levere tekstsvar i en egen tekstfil eller PDF ved siden av. Vi anbefaler at oppgavene fra nå av (og ut semesteret) løses i grupper på to eller tre studenter sammen (se nærmere instruksjoner under). Selv om vi oppfordrer til gruppearbeid er det likevel mulig å levere individuelt dersom du heller ønsker det. Ang. levering for dem som samarbeider i gruppe: La første linje i kodefilen være en kommentar som lister opp hvem som er med på gruppa. Gruppa må også registreres i Devilry. En på gruppa må invitere de andre gruppemedlemmene før besvarelsen leveres i Devilry, men kun én på gruppa trenger å levere. Les mer om hvordan dere gjør dette i dokumentasjonen her:: Merk at det ikke er anledning til å endre grupper mellom 2a og 2b, eller mellom 3a og 3b. I mellom 2 og 3 er det imidlertid mulig å gjøre endringer. Til slutt tar vi med en påminnelse om IFI-reglementet for innleveringer, som vi også lenker til fra emnesiden: 1 Diverse Før vi begynner med Huffman-koding tar vi med et par mindre oppgaver der vi skal bryne oss litt på høyereordens prosedyrer, og lambda og let. (a) I forelesningen den 9. februar så vi på en implementasjon av datatypen par ( cons-celler ) som en prosedyre. Her er nok en alternativ variant av par representert som prosedyre, gitt ved følgende konstruktor;
2 (define (p-cons x y) (lambda (proc) (proc x y))) Definer selektorene p-car og p-cdr for denne representasjonen. Vi bruker p-* i navnene så de ikke kolliderer med de innebygde versjonene (men dere skal ikke bruke dem her). Ellers vil vi at p-car og p-cdr skal gi samme resultat som car og cdr gjør for den innebygde versjonen av cons. Noen kalleksempler:? (p-cons "foo" "bar") #<procedure>? (p-car (p-cons "foo" "bar")) "foo"? (p-cdr (p-cons "foo" "bar")) "bar"? (p-car (p-cdr (p-cons "zoo" (p-cons "foo" "bar")))) "foo" (b) Vis hvordan de to let-uttrykkene under kan skrives om til applikasjon av lambda-uttrykk. (Forelesningsnotatene fra 9/2 er relevante her.) Oppgi også hvilken verdi uttrykkene evaluerer til.? (define foo 42)? (let ((foo 5) (x foo)) (if (= x foo) 'same 'different))? (let ((bar foo) (baz 'towel)) (let ((bar (list bar baz)) (foo baz)) (list foo bar))) (c) Her skal dere skrive en prosedyre infix-eval, som skal ta ett argument exp som forventes å være en liste av tre elementer: en operand, en operator og nok en operand. Returverdien til infix-eval skal være resultatet av å anvende operatoren på operandene. Kalleksempler:? (define foo (list ))? (define baz (list 21 list 21))? (define bar (list 84 / 2))? (infix-eval foo) 42? (infix-eval baz) (21 21)? (infix-eval bar) 42
3 (d) Gitt prosedyren din infix-eval fra oppgaven over, hva blir resultatet av følgende kall? Eksemplet likner tilsynelatende på det siste kallet over med bar som argument. Forklar kort hvorfor utfallet blir annerledes?? (define bah '(84 / 2))? (infix-eval bah)?? 2 Huffman-koding (a) Først skal vi skrive en enkel hjelpeprosedyre som vi kan få bruk for senere. Skriv et predikat member? som tar tre argumenter: et likhetspredikat, et element og en liste: Den skal returnere #t dersom elementet finnes i lista og #f ellers. Det finnes innebygde prosedyrer med liknende funksjonalitet, men her skal vi skrive en mer generell variant som lar oss spesifisere hvilket predikat som skal brukes for å teste for likhet, f.eks. =, string=?, eq?, equal?, osv. 1 Kalleksempler:? (member? eq? 'zoo '(bar foo zap)) #f? (member? eq? 'foo '(bar foo zap)) #t? (member? = 'foo '(bar foo zap)) error: expected number? (member? = 1 '( )) #t? (member? eq? '(1 bar) '((0 foo) (1 bar) (2 baz))) #f? (member? equal? '(1 bar) '((0 foo) (1 bar) (2 baz))) #t (b) Gjør deg kjent med koden i definisjonen til decode i vår fil huffman.scm. Skriv et par setninger om hva som er vitsen med den interne prosedyren decode-1 den kalles jo med de samme argumentene som hovedprosedyren så hvorfor ikke heller bare kalle denne? (c) Skriv en halerekursiv versjon av decode. (d) Fila huffman.scm inneholder et eksempel på et kodetre og en bitkode, henholdsvis bundet til variablene sample-tree og sample-code. Hva er resultatet av å kalle prosedyren decode fra oppgaven over med disse som argument?? (decode sample-code sample-tree)? (e) Skriv en prosedyre encode som transformerer en sekvens av symboler til en sekvens av bits. Input er en liste av symboler (meldingen) og et Huffman-tre (kodeboken). Output er en liste av 0 og 1. Du kan teste prosedyrene dine med å kalle decode på returverdien fra encode og sjekke at du får samme melding: 1 På slutten av forelesningen 23/2 snakket vi om forskjellen på de to sistnevnte. Grovt sagt kan vi si at equal? gir sant for ting som ser likt ut når det printes på REPL et og kan bla. brukes for å sammenlikne lister ved at det rekursivt tester for strukturell ekvivalens. Predikatet eq? er mer strikt og sjekker om argumentene peker til identiske adresser i minnet. Merk at eq? kan brukes for sammenlikne symboler siden disse er konstanter i Scheme.
4 ? (decode (encode '(ninjas fight ninjas) sample-tree) sample-tree) (ninjas fight ninjas) Litt bakgrunn for oppgave (f) under: Seksjonene Generating Huffman trees og Sets of weighted elements under i SICP beskriver en algoritme for å generere Huffman-trær. Det samme dekkes på foilene fra forelesningen den 1. mars. Algoritmen opererer på en mengde av noder der vi suksessivt slår sammen de to nodene som har lavest frekvens. Mengden av noder er implementert som en liste. Som diskutert på forelesningen så kan algoritmen utføres mest effektiv dersom vi sørger for å holde nodelista sortert etter frekvens. SICP-koden i huffman.scm inneholder funksjonalitet for å generere en sortert liste av løvnoder som kan brukes for å initialisere algoritmen; adjoin-set og make-leaf-set. For eksempel:? (make-leaf-set ((a 2) (b 5) (c 1) (d 3) (e 1) (f 3))) ((leaf e 1) (leaf c 1) (leaf a 2) (leaf f 3) (leaf d 3) (leaf b 5)) (f) Skriv en prosedyre grow-huffman-tree som tar en liste av symbol/frekvens-par og returnerer et Huffmantre. Eksempel på kall:? (define freqs '((a 2) (b 5) (c 1) (d 3) (e 1) (f 3)))? (define codebook (grow-huffman-tree freqs))? (decode (encode '(a b c) codebook) codebook) (a b c) (g) Vi er gitt følgende alfabet av symboler med frekvenser oppgitt i parentes: samurais (57), ninjas (20), fight (45), night (12), hide (3), in (2), ambush (2), defeat (1), the (5), sword (4), by (12), assassin (1), river (2), forest (1), wait (1), poison (1). Generer et Huffman-tre for alfabetet på bakgrunn av frekvensene, og svar så på de følgende spørsmålene med utgangspunkt i meldingen under. (Merk at denne skal forstås som en melding bestående av 17 symboler; linjeskiftene er ikke en del av meldingen.) Hvor mange bits bruker det på å kode meldingen? Hva er den gjennomsnittlige lengden på hvert kodeord som brukes? (Vi tenker at alle symbolene representeres i én og samme liste slik at linjeskift ignoreres.) Til slutt: hva er det minste antall bits man ville trengt for å kode meldingen med en kode med fast lengde (fixed-length code) over det samme alfabetet? Begrunn kort svaret ditt. ninjas fight ninjas fight ninjas ninjas fight samurais samurais fight samurais fight ninjas ninjas fight by night (h) Skriv en prosedyre huffman-leaves som tar et Huffman-tre som input og returnerer en liste med par av symboler og frekvenser, altså det samme som vi kan bruke som utgangspunkt for å generere treet. For eksempel, for sample-tree i huffman.scm:
5 ? (huffman-leaves sample-tree) ((ninjas 8) (fight 5) (night 1) (by 1)) (i) Den forventede gjennomsnittlige lengden på kodeordene som genereres av et Huffman-tre kan uttrykkes som n p(s i ) c i i=1 der p(s i ) er sannsynligheten for det i-ende symbolet i et alfabet med n symboler og c i står for lengden på kodeordet til s i. (Sagt med andre ord: c i er antall bits som Huffman-treet bruker på å kode symbolet s i.) Sannsynligheten for et symbol, p(s i ), er gitt ved dets relative frekvens, altså frekvensen for symbolet delt på total frekvens for alle symboler. Skriv en prosedyre expected-codeword-length som tar et Huffman-tre som input og beregner formelen over. Kalleksempel:? (expected-code-length sample-tree) Lykke til, og god koding!
Innlevering 2b i INF2810, vår 2017
Innlevering 2b i INF2810, vår 2017 Dette er del to av den andre obligatoriske oppgaven i INF2810. Man kan oppnå 10 poeng for oppgavene i 2b, og man må ha minst 12 poeng tilsammen for 2a + 2b for å få godkjent.
INF2810: Funksjonell Programmering. Huffman-koding
INF2810: Funksjonell Programmering Huffman-koding Stephan Oepen Universitetet i Oslo 1. mars 2016 Tema 2 Sist Trær som lister av lister Trerekursjon Mengder som trær I dag Hierarkisk og symbolsk data Eksempel:
INF2810: Funksjonell Programmering. Kommentarer til prøveeksamen
INF2810: Funksjonell programmering INF2810: Funksjonell Programmering Kommentarer til prøveeksamen Erik Velldal Universitetet i Oslo 1: Grunnleggende (6 poeng)? (define foo '(a b))? (define bar foo)? (set!
UNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF2810 Eksamensdag: 5. juni, 2014 Tid for eksamen: 14:30 (4 timer) Oppgavesettet er på 4 sider. Vedlegg: Ingen Tillatte hjelpemidler:
INF2810: Funksjonell Programmering. Huffman-koding
INF2810: Funksjonell Programmering Huffman-koding Stephan Oepen & Erik Velldal Universitetet i Oslo 22. februar, 2013 Tema 2 Forrige uke Data-abstraksjon Lister av lister Tre-rekursjon Prosedyrer som datastruktur
INF2810: Funksjonell Programmering. Huffman-koding
INF2810: Funksjonell Programmering Huffman-koding Stephan Oepen & Erik Velldal Universitetet i Oslo 22. februar, 2013 Tema 2 Forrige uke Data-abstraksjon Lister av lister Tre-rekursjon Prosedyrer som datastruktur
INF2810: Funksjonell Programmering
INF2810: Funksjonell Programmering Høyereordens prosedyrer, lambda og lokale variabler Erik Velldal Universitetet i Oslo 9. februar 2017 Tema 2 Forrige uke Lister og listerekursjon quote Høyereordens prosedyrer
INF2810: Funksjonell Programmering. Huffman-koding
INF2810: Funksjonell Programmering Huffman-koding Erik Velldal Universitetet i Oslo 23. februar 2017 Tema 2 Sist Trær som lister av lister Trerekursjon Mengder som trær Dataabstraksjon I dag Hierarkisk
INF2810: Funksjonell Programmering
INF2810: Funksjonell Programmering Høyereordens prosedyrer, lambda og lokale variabler Erik Velldal Universitetet i Oslo 9. februar 2017 Tema 2 Forrige uke Lister og listerekursjon quote Høyereordens prosedyrer
INF2810: Funksjonell Programmering. Lokale variabler. Og trær.
INF2810: Funksjonell Programmering Lokale variabler. Og trær. Erik Velldal Universitetet i Oslo 11. september 2019 Tema forrige uke 2 Lister som datastruktur quote Rekursjon på lister Høyereordens prosedyrer
INF2810: Funksjonell Programmering. Huffman-koding
INF2810: Funksjonell Programmering Huffman-koding Stephan Oepen Universitetet i Oslo 1. mars 2016 Tema 2 Sist Trær som lister av lister Trerekursjon Mengder som trær I dag Hierarkisk og symbolsk data Eksempel:
INF2810: Funksjonell Programmering. En Scheme-evaluator i Scheme
INF2810: Funksjonell Programmering En Scheme-evaluator i Scheme Erik Velldal Universitetet i Oslo 19. april 2016 Tema 2 Forrige uke Strømmer og utsatt evaluering Kort om makroer I dag Kap. 4 Metasirkulær
INF2810: Funksjonell Programmering. Trær og mengder
INF2810: Funksjonell programmering INF2810: Funksjonell Programmering Trær og mengder Erik Velldal Universitetet i Oslo 19. februar 2015 Tema Forrige uke Høyereordens prosedyrer lambda, let og lokale variabler
INF2810: Funksjonell Programmering. En metasirkulær evaluator
INF2810: Funksjonell Programmering En metasirkulær evaluator Stephan Oepen & Erik Velldal Universitetet i Oslo 26. april 2013 Tema 2 Forrige uke Strømmer og utsatt evaluering Memoisering Kort om makroer
INF2810: Funksjonell Programmering
INF2810: Funksjonell Programmering Høyereordens prosedyrer, lambda og lokale variabler Stephan Oepen Universitetet i Oslo 9. februar 2015 Tema 2 Forrige uke Lister og listerekursjon quote Høyereordens
INF2810: Funksjonell Programmering. En Scheme-evaluator i Scheme
INF2810: Funksjonell Programmering En Scheme-evaluator i Scheme Erik Velldal Universitetet i Oslo 27. april 2017 Tema 2 Forrige forelesning Strømmer og utsatt evaluering Kort om makroer I dag Kap. 4 Metasirkulær
INF2810: Funksjonell Programmering. Huffman-koding
INF2810: Funksjonell Programmering Huffman-koding Erik Velldal Universitetet i Oslo 23. februar 2017 Tema 2 Sist Trær som lister av lister Trerekursjon Mengder som trær Dataabstraksjon I dag Hierarkisk
INF2810: Funksjonell Programmering. En metasirkulær evaluator
INF2810: Funksjonell Programmering En metasirkulær evaluator Stephan Oepen & Erik Velldal Universitetet i Oslo 26. april 2013 Tema 2 Forrige uke Strømmer og utsatt evaluering Memoisering Kort om makroer
Rekursjon og lister. Stephan Oepen & Erik Velldal. 1. februar, Universitetet i Oslo
INF2810: Funksjonell programmering Rekursjon og lister Stephan Oepen & Erik Velldal Universitetet i Oslo 1. februar, 2013 Agenda 2 Forrige uke Scheme Substitusjonsmodellen Blokkstruktur Predikater Kondisjonale
Høyere-ordens prosedyrer
INF2810: Funksjonell programmering Høyere-ordens prosedyrer Stephan Oepen & Erik Velldal Universitetet i Oslo 8. februar, 2013 Tema 2 Forrige uke Lister og listerekursjon Høyere-ordens prosedyrer Prosedyrer
INF2810: Funksjonell Programmering. Lister og høyereordens prosedyrer
INF2810: Funksjonell Programmering Lister og høyereordens prosedyrer Erik Velldal Universitetet i Oslo 2. februar 2017 Agenda 2 Forrige uke Substitusjonsmodellen og evalueringsstrategier. Blokkstruktur
INF2810: Funksjonell Programmering. Eksamensforberedelser
INF2810: Funksjonell Programmering Eksamensforberedelser Stephan Oepen & Erik Velldal Universitetet i Oslo 24. mai 2013 I dag 2 Kort oppsummering Praktisk om eksamen Hvem vant konkurransen om flest oblig-poeng
INF2810: Funksjonell Programmering
INF2810: Funksjonell Programmering Omgivelsesmodeller og destruktive listeoperasjoner Stephan Oepen & Erik Velldal Universitetet i Oslo 15. mars 2013 Tema 2 Forrige uke Representasjon av mengder Sorterte
INF2810: Funksjonell Programmering. En metasirkulær evaluator, del 2
INF2810: Funksjonell Programmering En metasirkulær evaluator, del 2 Stephan Oepen & Erik Velldal Universitetet i Oslo 03. mai 2013 Tema 2 Forrige uke SICP 4.1. Structure and interpretation of computer
INF2810: Funksjonell Programmering. Lister og høyereordens prosedyrer
INF2810: Funksjonell programmering INF2810: Funksjonell Programmering Lister og høyereordens prosedyrer Erik Velldal Universitetet i Oslo 5. februar 2015 Agenda Forrige uke Substitusjonsmodellen og evalueringsstrategier.
INF2810: Funksjonell Programmering. En metasirkulær evaluator, del 2
INF2810: Funksjonell Programmering En metasirkulær evaluator, del 2 Stephan Oepen & Erik Velldal Universitetet i Oslo 03. mai 2013 Tema 2 Forrige uke SICP 4.1. Structure and interpretation of computer
INF2810: Funksjonell Programmering. En Scheme-evaluator i Scheme, del 2
INF2810: Funksjonell Programmering En Scheme-evaluator i Scheme, del 2 Erik Velldal Universitetet i Oslo 4. mai 2017 Tema 2 Forrige uke SICP 4.1. Structure and interpretation of computer programs Metacircular
INF2810: Funksjonell Programmering. En Scheme-evaluator i Scheme, del 2
INF2810: Funksjonell Programmering En Scheme-evaluator i Scheme, del 2 Erik Velldal Universitetet i Oslo 4. mai 2017 Tema 2 Forrige uke SICP 4.1. Structure and interpretation of computer programs Metacircular
INF2810: Funksjonell Programmering. En Scheme-evaluator i Scheme, del 2
INF2810: Funksjonell programmering INF2810: Funksjonell Programmering En Scheme-evaluator i Scheme, del 2 Erik Velldal Universitetet i Oslo 7. mai 2015 Tema Forrige uke SICP 4.1. Structure and interpretation
INF2810: Funksjonell programmering: Mer om Scheme. Rekursjon og iterasjon.
INF2810: Funksjonell programmering: Mer om Scheme. Rekursjon og iterasjon. Stephan Oepen & Erik Velldal Universitetet i Oslo 25. januar, 2013 På blokka 2 Forrige uke Introduksjon og oversikt Funksjonell
INF2810: Funksjonell Programmering. Mer om verditilordning. Tabeller. Og strømmer.
INF2810: Funksjonell programmering INF2810: Funksjonell Programmering Mer om verditilordning. Tabeller. Og strømmer. Erik Velldal Universitetet i Oslo 29. mars 2016 De siste ukene: destruktive operasjoner
INF2810: Funksjonell Programmering. Muterbare data
INF2810: Funksjonell Programmering Muterbare data Stephan Oepen Universitetet i Oslo 15. mars 2016 Agenda Forrige uke Prosedyrebasert objektorientering Lokale tilstandsvariabler Innkapsling + set! Eksempel:
INF2810: Funksjonell Programmering. Mer om verditilordning. Tabeller. Og strømmer.
INF2810: Funksjonell Programmering Mer om verditilordning. Tabeller. Og strømmer. Erik Velldal Universitetet i Oslo 29. mars 2016 De siste ukene: destruktive operasjoner 2 set! endrer verditilordningen
(define (naer-nok-kuberot? y x) (< (abs (- (kube y) x)) 0.001)) (define (naermere-kuberot y x) (/ (+ (* y 2) (/ x (kvadrat y))) 3))
Oppgave 1 For å komme nærmere kuberoten (tredjeroten) til et tall x fra en foreløpig tilnærming y, kan vi bruke formelen (2y + x/y 2 )/3. Skriv prosedyrene (nær-nok-kuberot? y x), (nærmere-kuberot y x)
Vi skal se på lambda-uttrykk. Følgende er definerte og vil bli brukt gjennom oppgaven
SLI 230 - side 2 av 8 EKSAMENSOPPGAVE - SLI 230 - VÅR 2000 Nedenfor følger eksamensoppgaver i SLI 230. Først om oppgavene Bakerst følger to sider med hjelp slik det er avtalt - liste over primitiver fra
UNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF2810, Funksjonell Programmering Eksamensdag: Fredag 10. juni 2016 Tid for eksamen: 14.30 Oppgavesettet er på 5 sider (ekskl.
INF2810: Funksjonell Programmering. Strømmer og utsatt evaluering
INF2810: Funksjonell Programmering Strømmer og utsatt evaluering Stephan Oepen Universitetet i Oslo 30. mars 2017 Forrige forelesning 2 Mer om (prosedyre)navn, bindinger, og verditilordning Nok en ny abstrakt
INF2810: Funksjonell Programmering. Oppsummering og eksamensforberedelser
INF2810: Funksjonell programmering INF2810: Funksjonell Programmering Oppsummering og eksamensforberedelser Erik Velldal Universitetet i Oslo 28. mai 2015 I dag Kort oppsummering Praktisk om eksamen Hvem
INF2810: Funksjonell programmering: Introduksjon
INF2810: Funksjonell programmering: Introduksjon Stephan Oepen & Erik Velldal Universitetet i Oslo 18. januar, 2013 Tema for i dag 2 Introduksjon Praktiske detaljer Pensum Obliger Lærebok Hva skal vi lære?
INF2810: Funksjonell Programmering. Oppsummering og eksamensforberedelser
INF2810: Funksjonell Programmering Oppsummering og eksamensforberedelser Erik Velldal & Stephan Oepen Universitetet i Oslo 18. mai 2017 I dag 2 Kort oppsummering Praktisk om eksamen Hvem vant konkurransen
INF2810: Funksjonell Programmering. Oppsummering og eksamensforberedelser
INF2810: Funksjonell programmering INF2810: Funksjonell Programmering Oppsummering og eksamensforberedelser Erik Velldal & Stephan Oepen Universitetet i Oslo 31. mai 2016 I dag Kort oppsummering Praktisk
INF2810: Funksjonell Programmering. Oppsummering og eksamensforberedelser
INF2810: Funksjonell Programmering Oppsummering og eksamensforberedelser Erik Velldal & Stephan Oepen Universitetet i Oslo 31. mai 2016 I dag 2 Kort oppsummering Praktisk om eksamen Hvem vant konkurransen
INF 1040 Løsningsforslag til kapittel
INF 040 Løsningsforslag til kapittel 8 Oppgave : Huffmankoding med kjente sannsynligheter Gitt en sekvens av symboler som er tilstrekkelig lang, og som inneholder de 6 symbolene A, B, C, D, E, F. Symbolene
INF2810: Funksjonell Programmering. Køer, tabeller, og (litt om) parallelitet
INF2810: Funksjonell Programmering Køer, tabeller, og (litt om) parallelitet Stephan Oepen & Erik Velldal Universitetet i Oslo 5. april 2013 Tema 2 Siste gang Kort om underveisevaluering Destruktive listeoperasjoner
Hjemmeeksamen 2 i INF3110/4110
Hjemmeeksamen 2 i INF3110/4110 Innleveringsfrist: onsdag 19. november kl. 1400 Innlevering Besvarelsen av oppgave 2,3,4 og 5 skal leveres skriftlig på papir i IFI-ekspedisjonen. Merk denne med navn, kurskode,
Hjemmeeksamen 1 i INF3110/4110
Hjemmeeksamen i INF30/40 Innleveringsfrist: fredag 24. oktober kl. 500 Innlevering Hele besvarelsen skal leveres skriftlig på papir i IFI-ekspedisjonen innen fredag 24. oktober kl. 500. Merk besvarelsen
INF2810: Funksjonell Programmering. Eksamensforberedelser
INF2810: Funksjonell Programmering Eksamensforberedelser Stephan Oepen & Erik Velldal Universitetet i Oslo 24. mai 2013 I dag 2 Kort oppsummering Praktisk om eksamen Hvem vant konkurransen om flest oblig-poeng
INF2810: Funksjonell programmering: Introduksjon
NF2810: Funksjonell programmering: ntroduksjon Stephan Oepen & Erik Velldal Universitetet i Oslo 18. januar, 2013 Tema for i dag 2 ntroduksjon Praktiske detaljer Pensum Obliger Lærebok Hva skal vi lære?
INF2810: Funksjonell Programmering. Lister og høyereordens prosedyrer
INF2810: Funksjonell Programmering Lister og høyereordens prosedyrer Stephan Oepen Universitetet i Oslo 2. februar 2016 Agenda 2 Forrige uke Substitusjonsmodellen og evalueringsstrategier Blokkstruktur
Oppgave 1 Minimum edit distance
INF-2810 V 2012 Oppgavesett 10, kalenderuke 12. Oppgave 1 Minimum edit distance Vi vil finne det minste antall redigeringsoperasjoner som kreves for å komme fra strengen A til strengen B. Strengene oppgis
PG 4200 Algoritmer og datastrukturer Innlevering 2
PG 4200 Algoritmer og datastrukturer Innlevering 2 Frist: Mandag 21.april 2014 kl 23.55 Utdelt materiale: Se zip-filen innlevering2.zip. Innlevering: Lever en zip-fil som inneholder følgende: PG4200_innlevering_2.pdf:
Symbolske data SICP 2.3
Symbolske data SICP 2.3 Vi har så langt alt vesentlig sett på tall enkeltstående tall, talluttrykk, og lister og trær med tall. Et av målene for John McCarthy (opphavsmannen til Lisp) var å lage et språk
INF2810: Funksjonell Programmering. Mer om Scheme. Rekursjon og iterasjon.
INF2810: Funksjonell Programmering Mer om Scheme. Rekursjon og iterasjon. Stephan Oepen Universitetet i Oslo 26. januar 2017 På blokka Forrige uke Introduksjon og oversikt Praktiske detaljer Funksjonell
INF Algoritmer og datastrukturer. Hva er INF2220? Algoritmer og datastrukturer
Praktiske opplysninger INF2220 - Algoritmer og datastrukturer HØSTEN 2007 Institutt for informatikk, Universitetet i Oslo Tid og sted: Mandag kl. 12:15-14:00 Store auditorium, Informatikkbygningen Kursansvarlige
INF2810: Funksjonell Programmering. Mer om Scheme. Rekursjon og iterasjon.
INF2810: Funksjonell Programmering Mer om Scheme. Rekursjon og iterasjon. Stephan Oepen Universitetet i Oslo 26. januar 2017 På blokka 2 Forrige uke Introduksjon og oversikt Praktiske detaljer Funksjonell
UNIVERSITETET I OSLO
Eksamen i UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamensdag: 13. desember 2011 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 7 sider. Vedlegg: INF2220 lgoritmer og datastrukturer
INF2810: Funksjonell Programmering. Mer om Scheme. Rekursjon og iterasjon.
INF2810: Funksjonell Programmering Mer om Scheme. Rekursjon og iterasjon. Stephan Oepen Universitetet i Oslo 26. januar 2016 På blokka Forrige uke Introduksjon og oversikt Praktiske detaljer Funksjonell
Forelesning 33. Repetisjon. Dag Normann mai Innledning. Kapittel 11
Forelesning 33 Repetisjon Dag Normann - 26. mai 2008 Innledning Onsdag 21/5 gjorde vi oss ferdige med det meste av den systematiske repetisjonen av MAT1030. Det som gjensto var kapitlene 11 om trær og
MAT1030 Diskret matematikk
MAT1030 Diskret matematikk Forelesning 33: Repetisjon Dag Normann Matematisk Institutt, Universitetet i Oslo 26. mai 2008 Innledning Onsdag 21/5 gjorde vi oss ferdige med det meste av den systematiske
Innledning. MAT1030 Diskret matematikk. Kapittel 11. Kapittel 11. Forelesning 33: Repetisjon
Innledning MAT1030 Diskret matematikk Forelesning 33: Repetisjon Dag Normann Matematisk Institutt, Universitetet i Oslo 26. mai 2008 Onsdag 21/5 gjorde vi oss ferdige med det meste av den systematiske
Obligatorisk oppgave 1 i INF 4130, høsten 2009
Obligatorisk oppgave 1 i INF 4130, høsten 2009 Leveringsfrist fredag 2. oktober Institutt for informatikk Krav til innleverte oppgaver ved Institutt for informatikk (Ifi) Ved alle pålagte innleveringer
IN Algoritmer og datastrukturer
IN2010 - Algoritmer og datastrukturer HØSTEN 2018 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 3: Prioritetskø og Heap Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning
Obligatorisk oppgave 1 INF1020 h2005
Obligatorisk oppgave 1 INF1020 h2005 Frist: fredag 7. oktober Oppgaven skal løses individuelt, og må være godkjent for å kunne gå opp til eksamen. Før innlevering må retningslinjene Krav til innleverte
Binære trær: Noen algoritmer og anvendelser
Binære trær: Noen algoritmer og anvendelser Algoritmer / anvendelser: Søking i usortert binært tre Telling av antall noder og nivåer i treet Traversering av binære trær Binære uttrykkstrær Kunstig intelligens(?):
Obligatorisk Innlevering 2
Obligatorisk Innlevering 2 INF5110 - Kompilatorteknikk Våren 2017 Frist 07.05.2017 23:59 Dette er den andre av to oppgaver våren 2017. Den bygger videre på det som er gjort i den første innleveringen.
