INF 3232/4232 Forelesning 1: Introduksjon; signaturer; grunntermer
|
|
- Ingar Edvardsen
- 6 år siden
- Visninger:
Transkript
1 INF 3232/4232 Forelesning 1: Introduksjon; signaturer; grunntermer Peter Ölveczky Universitetet i Oslo 16. januar 2017 Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
2 Dagens Tema 1 Praktiske ting 2 Om kurset Motivasjon Modellering 3 Signaturer 4 Grunntermer Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
3 Innhold 1 Praktiske ting 2 Om kurset Motivasjon Modellering 3 Signaturer 4 Grunntermer Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
4 Lærere Foreleser/kursansvarlig: Peter Ölveczky Professor, Ifi Kontor Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
5 Lærere Foreleser/kursansvarlig: Peter Ölveczky Professor, Ifi Kontor Gruppelærer: Antonio Gonzalez Burgueño Doktorstipendiat, Ifi Kontorlandskap 9. etg Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
6 Pensum Pensum: bok, forelesninger, oppgaver, løsningsforslag, obliger,... Pensumbok: Formal Modeling and Analysis of Distributed Systems: An Introduction Based on Executable Modeling in Maude på kursets hjemmeside skal utgis på Springer ASAP feedback ønskes! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
7 Kursplan etc. Må følge med på kursets hjemmeside index.html og Schedule foiler, oppgaver, obligatoriske oppgaver, etc! 3 obligatoriske oppgaver den første har frist 7. februar! Ha med skrevne/trykte hjelpemidler til eksamen! Samme emne som INF3230/4231 Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
8 INF 4232 INF 4232: Samme forelesninger, oppgaver, obligatoriske oppgaver som INF 3232 I tillegg: temporallogikk for definisjon av kravspesifikasjoner ekstra forelesning(er) på slutten av kurset Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
9 Forhåndskunnskaper Rekursiv programmering, a la INF 1010 Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
10 Forhåndskunnskaper Ingen matematiske kunnskaper strengt nødvendig, men fordel med noe basal kjennskap til relasjoner, funksjoner, etc. Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
11 Forhåndskunnskaper Ingen forhåndskunnskaper om nettverk, operativsystem, Java, datamaskinarkitektur, sikkerhetsprotokoller, databaser, etc Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
12 Innhold 1 Praktiske ting 2 Om kurset Motivasjon Modellering 3 Signaturer 4 Grunntermer Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
13 Emnenavn Logikk for modellering og analyse av distribuerte systemer mer dekkende emnenavn Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
14 Distribuerte systemer De fleste datasystemer er distribuerte systemer hvor flere datamaskiner kommuniserer for å oppnå noe web services nettbank flybillettkjøp databasesystemer fly biler moderne krigføring Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
15 Motivasjon Samfunnet totalt avhengig av avanserte datasystemer Store komplekse men kritiske systemer... som er meget vanskelig å forstå Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
16 Motivasjon Samfunnet totalt avhengig av avanserte datasystemer Store komplekse men kritiske systemer... som er meget vanskelig å forstå Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
17 Motivasjon Samfunnet totalt avhengig av avanserte datasystemer Store komplekse men kritiske systemer... som er meget vanskelig å forstå Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
18 Motivasjon Samfunnet totalt avhengig av avanserte datasystemer Store komplekse men kritiske systemer... som er meget vanskelig å forstå Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
19 Motivasjon Samfunnet totalt avhengig av avanserte datasystemer Store komplekse men kritiske systemer... som er meget vanskelig å forstå Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
20 Motivasjon Samfunnet totalt avhengig av avanserte datasystemer ( 80 ECUs in cars (Wikipedia)) Store komplekse men kritiske systemer... som er meget vanskelig å forstå Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
21 Eksempel Åpent nettverk: enkelt å avlytte kommunikasjon og sende falske meldinger Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
22 Eksempel Åpent nettverk: enkelt å avlytte kommunikasjon og sende falske meldinger Hvordan kan nettbanken vite at den snakker med Skrue og ikke med B-gjengen? Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
23 Eksempel (II) NSPK : Protokoll for gjensidig autentisering i nettverk: Message 1. A B : {N a.a} PK(B) Message 2. B A : {N a.n b } PK(A) Message 3. A B : {N b } PK(B) klassisk protokoll fra 1978 knekt 1995 ved bruk av INF 3232-metoder Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
24 Motivasjon (forts.) Størrelse + kompleksitet + kostnad/betydelse: Forstå problemet meget godt før implementering kan ikke teste et software i en Airbus A380, eller en electronic commerce protocol på Internet Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
25 Motivasjon (forts.) Størrelse + kompleksitet + kostnad/betydelse: Forstå problemet meget godt før implementering kan ikke teste et software i en Airbus A380, eller en electronic commerce protocol på Internet også nyttig å analysere ikke-kritiske systemer før implementering Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
26 Motivasjon (forts.) Størrelse + kompleksitet + kostnad/betydelse: Forstå problemet meget godt før implementering kan ikke teste et software i en Airbus A380, eller en electronic commerce protocol på Internet også nyttig å analysere ikke-kritiske systemer før implementering billigere å rette opp feil jo tidligere de oppdages! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
27 Modellering Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
28 Modellering Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
29 Modellering Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
30 Modellering Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
31 Modellering (forts.) Lag modeller av bygninger før bygging! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
32 Modellering (forts.) Lag modeller av bygninger før bygging! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
33 Modellering (forts.) Lag modeller av bygninger før bygging! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
34 Modellering (forts.) Lag modeller av bygninger før bygging! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
35 Modellering (forts.) Lag modeller av bygninger før bygging! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
36 Modellering (forts.) Lag modeller av bygninger før bygging! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
37 Modellering (forts.) Lag modeller av bygninger før bygging! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
38 Modellering (forts.) Lag modeller av bygninger før bygging! (i vindtunnel) Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
39 Modellering (forts.) Lag modeller av bygninger før bygging! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
40 Modellering (forts.) Lag modeller av bygninger før bygging! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
41 Modellering (forts.) Lag modeller av bygninger før bygging! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
42 Modellering (forts.) Lag modeller av bygninger før bygging! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
43 Modellering (forts.) Lag modeller av bygninger før bygging! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
44 Modellering (forts.) Lag modeller av bygninger før bygging! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
45 Modellering (forts.) Lag modeller av bygninger før bygging! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
46 Modellering (forts.) Lag modeller av bygninger før bygging! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
47 Modellering av bygninger: Fordeler Kjapt og enkelt å lage modell Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
48 Modellering av bygninger: Fordeler Kjapt og enkelt å lage modell Kan enkelt eksperimentere med ulike design Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
49 Modellering av bygninger: Fordeler Kjapt og enkelt å lage modell Kan enkelt eksperimentere med ulike design Analysere designen estetisk verdi planløsning funksjonalitet: stabil?, vind, jordskjelv, strømmer,... Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
50 Modellering av bygninger: Fordeler (II) Enkelt å bygge bygning fra god modell/plantegninger Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
51 Modellering av bygninger: Fordeler (II) Enkelt a bygge bygning fra god modell/plantegninger Peter O lveczky (Universitetet i Oslo) Introduksjon januar / 50
52 Modellering av bygninger: Fordeler (II) Enkelt å bygge bygning fra god modell/plantegninger Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
53 Modellering av bygninger: Fordeler (II) Enkelt å bygge bygning fra god modell/plantegninger bare engineering Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
54 Modellering av bygninger: Fordeler (II) Enkelt å bygge bygning fra god modell/plantegninger bare engineering alle kjenner Gehry, Niemeyer, Calatrava, Ando, ingen aner hvem som bygde Guggenheim! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
55 Modellere datasystemer Ønsker modell av et datasystem! Kjapt og enkelt å lage modell: abstrahere fra detaljer som ikke har med design å gjøre: Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
56 Modellere datasystemer Ønsker modell av et datasystem! Kjapt og enkelt å lage modell: abstrahere fra detaljer som ikke har med design å gjøre: eksempel: hva gjør protokollen hvis en melding forsvinner? innholdet av meldingen irrelevant for protokollen implementasjon av hvordan en melding transporteres mellom to maskiner irrelevant for protokollen... modellen bør se bort fra slike detaljer Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
57 Modellere datasystemer Ønsker modell av et datasystem! Kjapt og enkelt å lage modell: abstrahere fra detaljer som ikke har med design å gjøre: eksempel: hva gjør protokollen hvis en melding forsvinner? innholdet av meldingen irrelevant for protokollen implementasjon av hvordan en melding transporteres mellom to maskiner irrelevant for protokollen... modellen bør se bort fra slike detaljer Analysere design! stirre på modellen (UML) datamaskin analyserer modellen! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
58 Fra modell til system? (forts.) Enkelt å implementere et system fra god spesifikasjon/design! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
59 Fra modell til system? (forts.) Enkelt å implementere et system fra god spesifikasjon/design! Eksempel: Voyager og Galileo spacecrafts 197 kritiske feil funnet TRE av disse var kodingsfeil... resten spesifikasjon/designfeil! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
60 Formell Modellering Formell modell definerer et matematisk objekt presis, éntydig kan analysere modellen matematisk for hånd med datamaskin Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
61 Tema for kurset Høynivå modellering av distribuerte systemer høynivå funksjonell programmering Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
62 Tema for kurset Høynivå modellering av distribuerte systemer høynivå funksjonell programmering Analyse av modellen ved ulike slags kjøringer Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
63 Tema for kurset Høynivå modellering av distribuerte systemer høynivå funksjonell programmering Analyse av modellen ved ulike slags kjøringer Forståelse av distribuerte systemer kommunikasjonsprotokoller distribuerte databaser distribuerte algoritmer (inspirert av cloud computing og mobile ad-hoc network systemer) sikkerhetsprotokoller Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
64 Tema for kurset Høynivå modellering av distribuerte systemer høynivå funksjonell programmering Analyse av modellen ved ulike slags kjøringer Forståelse av distribuerte systemer kommunikasjonsprotokoller distribuerte databaser distribuerte algoritmer (inspirert av cloud computing og mobile ad-hoc network systemer) sikkerhetsprotokoller Høynivå forståelse av ulike former for kommunikasjon: synkron ( handshake ) vs. asynkron unicast/multicast/broadcast ordnet vs uordnet meldingsutveksling tap/duplisering av meldinger... Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
65 Tema for kurset Høynivå modellering av distribuerte systemer høynivå funksjonell programmering Analyse av modellen ved ulike slags kjøringer Forståelse av distribuerte systemer kommunikasjonsprotokoller distribuerte databaser distribuerte algoritmer (inspirert av cloud computing og mobile ad-hoc network systemer) sikkerhetsprotokoller Høynivå forståelse av ulike former for kommunikasjon: synkron ( handshake ) vs. asynkron unicast/multicast/broadcast ordnet vs uordnet meldingsutveksling tap/duplisering av meldinger... Ikke implementasjon og lavnivå-fikling! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
66 Tema for kurset (forts.) Ulike måter å analysere et (distribuert) system på: datamaskinen gjør jobben Logisk/matematisk resonnering bevise at et program alltid vil terminere (bevise semantiske egenskaper ved bruk av likhetslogikk) Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
67 Logikker i kurset Likhetslogikk for data typer (funksjoner, etc.) Omskrivningslogikk definere/resonnere dynamisk oppførsel Temporallogikk (kun INF 4232) kravspesifikasjon Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
68 Maude Vi bruker et kraftfullt men intuitivt modellerings- og programmeringsspråk: Maude state-of-the-art funksjonelt språk Maude 2.6 på Ifi s linux-maskiner Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
69 Kurs-oppbygning Et distribuert system består av to deler : 1 Statisk del: datatyper som definerer tilstandsrommet og nyttige funksjoner stakker, trær, lister, multisett, etc. Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
70 Kurs-oppbygning Et distribuert system består av to deler : 1 Statisk del: datatyper som definerer tilstandsrommet og nyttige funksjoner stakker, trær, lister, multisett, etc. 2 Dynamisk del: hvordan systemet fremskrider Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
71 Del 1: innhold Lære å programmere i Maude Logisk/matematisk resonnering om programmer: bevise at et program aldri vil gå i evig løkke tankegang/teknikk kan brukes på vanlige programmer selv små programmer kan være vriene å forstå: formelle metoder hjelpe i analysen! ingen klarte å avgjøre hvorvidt kaffebønnespillet (4 linjer) terminerer, selv for en flaske whiskey! Likhetslogikk: holder reverse(reverse(t )) = T for alle binære trær T? Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
72 Del 2: innhold Analyse ved simulering og søk Enkle eksempler spill, Super Bowl, menneskets livsløp, separasjonsproblemet, etc. spisende filosofer Modellering av ulike kommunikasjonsformer Distribuerte algoritmer Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
73 Del 2: innhold (forts.) Større eksempler: alternating bit protocol for meldingsutveksling i upålitelige nettverk sliding window protokollen (mest brukte protokoll i komm. syst.?) klassiske distribuerte algoritmer to-fase commit i distribuerte/replikerte databaser distribuert mutual exclusion distribuert leader election consensus NSPK sikkerhetsprotokoll Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
74 Kursinnhold: tillegg for 4231 Definere mer komplekse kravspesifikasjoner vha temporallogikk Sjekke v/maude at en spec tilfredsstiller sin kravspec Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
75 Dette avslutter kursets introduksjon/oversikt Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
76 Innhold 1 Praktiske ting 2 Om kurset Motivasjon Modellering 3 Signaturer 4 Grunntermer Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
77 Signaturer Datatyper I: Fler-sortede signaturer bok Innhold: datatyper kjøre Maude sorter, funksjonssymboler grunntermer Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
78 Datatyper Datatyper: Int, lister, Bool, stack, binære trær,... En datatype har gjerne et domene/verdimengde/ elementer og en mengde funksjoner/operasjoner på disse. Datatypen Int har elementer heltall, og operasjoner +,, max,,... på domenet Datatypen Bool har verdiene true og false og operasjoner som not og and, etc Datatypen liste har operasjoner settinn bak, ta ut, fjern element, etc. Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
79 Deklarativ programmering Java : int, bool, char innebyggede typer Alle andre datatyper (lister, trær, mengder, grafer,... ) må defineres vha klasser; bruk av pekere etc. Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
80 Deklarativ programmering Java : int, bool, char innebyggede typer Alle andre datatyper (lister, trær, mengder, grafer,... ) må defineres vha klasser; bruk av pekere etc. Maude : flexibelt; alle datatyper defineres direkte for effektivitet og praktiske hensyn er basale datatyper som heltall og strenger innebygget Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
81 Deklarativ spes. i Maude Alle verdier / uttrykk bygges opp av funksjonssymboler! Funksjoner defineres rekursivt ved en mengde ligninger Variable er matematiske variable og refererer ikke til minnelokasjoner kan ikke tilordne en verdi til en variabel! Høynivå: ingen pekere ingen sideeffekter ingen aliasing ingen programkontroll Maude gjør slavearbeidet for deg! Enkelt å resonnere om korrekthet til hver ligning Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
82 Maude-eksempel 1 En funksjonell modul spesifiserer en likhets-spesifikasjon: fmod NAT-ADD is sort Nat. op 0 : -> Nat [ctor]. op s : Nat -> Nat [ctor]. op _+_ : Nat Nat -> Nat. vars M N : Nat. --- Dette er en kommentar eq 0 + M = M. eq s(m) + N = s(m + N). endfm En Maude spesifikasjon er en mengde, ikke liste, av deklarasjoner (dvs. rekkefølgen av deklarasjoner spiller ingen rolle)! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
83 Maude-eksempel II Definerer en type/sort Nat Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
84 Maude-eksempel II Definerer en type/sort Nat Konstruktør-funksjoner (her 0 og s) bygger opp verdimengden til Nat: 0 representerer tallet 0 s(0) representerer tallet 1 s(s(0)) representerer tallet 2, osv. Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
85 Maude-eksempel II Definerer en type/sort Nat Konstruktør-funksjoner (her 0 og s) bygger opp verdimengden til Nat: 0 representerer tallet 0 s(0) representerer tallet 1 s(s(0)) representerer tallet 2, osv. Andre funksjoner som + er vanlige funksjoner og defineres vha ligninger _+_ betyr mix-fix notasjon Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
86 Maude-eksempel II Definerer en type/sort Nat Konstruktør-funksjoner (her 0 og s) bygger opp verdimengden til Nat: 0 representerer tallet 0 s(0) representerer tallet 1 s(s(0)) representerer tallet 2, osv. Andre funksjoner som + er vanlige funksjoner og defineres vha ligninger _+_ betyr mix-fix notasjon Beregne / forenkle et uttrykk ved å erstatte like med like ved bruk av ligninger fra venstre mot høyre: s(0) + s(0) s(0 + s(0)) s(s(0)) Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
87 Kjøring i Maude 1 Skriv Maude-modulen til en fil ved bruk av emacs eller lign. 2 Start Maude med kommandoen maude 3 Les inn fil i Maude: Maude> in nat-add.maude 4 Kjør Maude: Maude> red s(s(0)) + s(0). Resultat: result Nat: s(s(s(0))) 5 Kjør igjen, og igjen,... 6 Avslutt med q (eller quit) Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
88 Inklusjon Inkludere tidligere innleste moduler: including eller protecting: fmod NAT-MULT is protecting NAT-ADD. op _*_ : Nat Nat -> Nat. vars M N : Nat. eq 0 * M = 0. eq s(m) * N = N + (M * N). endfm Maude-verktøyet gjør ingen forskjell på including og protecting (selv om det er en matematisk forskjell) Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
89 Sorter/Typer En sort tilsvarer en type. Deklareres sort Nat. Flere sorter deklareres: sorts Nat Boolean List. Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
90 Matematikk: strenger Repetisjon: Dersom Σ er en mengde, så er Σ mengden av endelige strenger over Σ Den tomme strengen skrives ofte ɛ Sammensatte strenger skrives for eksempel a b c b Eksempel: {a, b} = {ɛ, a, b, a a, a b, b a, b b, a a a,...} Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
91 Funksjonssymboler Funksjon(symbol)(er) f, g, h deklareres op f : s1 s2 s3 s4 -> s. ops g h : s1 s2 -> s. der s1, s2,..., s er sorter Strengen s1 s2 kalles ariteten til g, og s kalles (verdi-) sorten til g En funksjon med tom aritet kalles en konstant (hvorfor?): op 0 : -> Nat. Prefiks notasjon hvis ikke _: s(s(0)), g(a,b) Mix-fix notasjon: op _+_ : Nat Nat -> Nat. Kan nå skrive termer som s(0) + 0 Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
92 Definisjoner Definisjoner kan se skumle ut, men er ofte greie: Definition (Signature) A many-sorted signature (S, Σ) consists of a set S, whose elements are called sorts, and an S S-sorted family Σ = {Σ w,s w S, s S} of function symbols. (Σ w,s is the set of function symbols with arity w and value sort s.) We often write f : w s Σ for f Σ w,s. Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
93 Definisjoner (forts.) En fler-sortet signatur (S, Σ): S en mengde av sorter Σ en mengde funksjoner (mer korrekt: funksjonsymbol-deklarasjoner) Σ s1...s n,s er mengden av funksjonssymboler med aritet s 1... s n og sort s Σ ɛ,s er mengden av konstanter av sort s Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
94 Definisjoner (forts.) En fler-sortet signatur (S, Σ): S en mengde av sorter Σ en mengde funksjoner (mer korrekt: funksjonsymbol-deklarasjoner) Σ s1...s n,s er mengden av funksjonssymboler med aritet s 1... s n og sort s Σ ɛ,s er mengden av konstanter av sort s En definisjon skal være til hjelp. Kan vi f. eks. ha følgende? sorts Nat Boolean. op _+_ : Nat Nat -> Nat. op _+_ : Boolean Boolean -> Boolean. Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
95 Innhold 1 Praktiske ting 2 Om kurset Motivasjon Modellering 3 Signaturer 4 Grunntermer Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
96 Grunntermer En grunnterm bygges opp av funksjonssymbolene på en sort-korrekt måte: 0, s(0), s(s(0)), s(0) + 0 og s(0) + (0 + 0) er grunntermer av sort Nat i NAT-ADD Definition (Ground terms) Given a many-sorted signature (S, Σ), we can define the S-sorted set T Σ = {T Σ,s s S} of ground terms inductively as follows: 1 Σ ɛ,s T Σ,s ; 2 If f Σ s1...s n,s, and t 1 T Σ,s1,..., t n T Σ,sn, and n 1, then f (t 1,..., t n ) T Σ,s. 3 In addition, each set T Σ,s is the smallest set satisfying the above conditions. Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
97 Grunntermer: eksempler Gitt signatur sorts s s. ops a b : -> s. op f : s -> s. op g : s s -> s. Hvilke av følgende a b f(a) f(a,b) f(f(a)) g(b,f(a)) g(a,b) f() XV(a) er grunntermer? grunntermer av sort s? grunntermer av sort s? Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
98 Husk! Dere kan/bør nå gjøre Oppgavesett 1 Forelesning også på torsdag Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50
INF 3230: Videregående kurs i formell modellering
INF 3230: Videregående kurs i formell modellering Peter Ølveczky Universitetet i Oslo 9. mai 2012 Eksekverbar Formell Modellering Modellering: lage en modell av systemdesign før implementasjon Formell:
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF 3230 Formell modellering og analyse av kommuniserende systemer Eksamensdag: 4. juni 2010 Tid for eksamen: 9.00 12.00 Oppgavesettet
DetaljerINF 3230/4230 Forelesning 9: Omskrivningslogikk
27.3.2006 INF 3230 9 1 INF 3230/4230 Forelesning 9: Omskrivningslogikk Peter Ølveczky/Ingrid Yu Kapittel 5 og 6 Omskrivningslogikk Parallelle steg Formatering 27.3.2006 INF 3230 9 2 Midterm eksamen Midterm
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF 3230 Formell modellering og analyse av kommuniserende systemer Eksamensdag: 4. april 2008 Tid for eksamen: 9.00 12.00 Oppgavesettet
DetaljerMulige Master-oppgaver hos Peter C. Ölveczky
11.1.2006 Masteroppgaver 1 Mulige Master-oppgaver hos Peter C. Ölveczky http://heim.ifi.uio.no/ peterol 11.1.2006 Masteroppgaver 2 Peter C. Ölveczky 1. amanuensis ved PMA-gruppen Email: peterol@ifi.uio.no
DetaljerINF3110 Programmeringsspråk. Dagens tema. Typer (Kapittel 3 frem til ) Innføring i ML (Kapittel & ML-kompendiet.) 1/19
Dagens tema Typer (Kapittel 3 frem til 3.3.1.) Innføring i ML (Kapittel 7.4.3 & ML-kompendiet.) 1/19 Forelesning 2 27.8.2003 Typer En (data-)type består av: en mengde verdier en mengde operasjoner man
DetaljerTyper. 1 Type: boolean. 2 Verdimengde: {true, false} 3 Operatorer: NOT, AND, OR... 1/19. Forelesning Forelesning
Dagens tema Typer (Kapittel 3 frem til 331) Innføring i ML (Kapittel 743 & ML-kompendiet) Typer En (data-)type består av: en mengde verdier en mengde operasjoner man kan anvende på disse verdiene Eksempel:
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF 3230/4230 Formell modellering og analyse av kommuniserende systemer Eksamensdag: 18. mars 2005 Tid for eksamen: 13.30 16.30
DetaljerVelkommen til MAT1030!
MAT1030 Diskret Matematikk Forelesning 1: Algoritmer, pseudokoder, kontrollstrukturer Roger Antonsen Institutt for informatikk, Universitetet i Oslo Velkommen til MAT1030! 13. januar 2009 (Sist oppdatert:
DetaljerMAT1030 Diskret Matematikk
MAT1030 Diskret Matematikk Forelesning 1: Algoritmer, pseudokoder, kontrollstrukturer Roger Antonsen Institutt for informatikk, Universitetet i Oslo 13. januar 2009 (Sist oppdatert: 2009-01-14 16:44) Velkommen
DetaljerAlgDat 12. Forelesning 2. Gunnar Misund
AlgDat 12 Forelesning 2 Forrige forelesning Følg med på hiof.no/algdat, ikke minst beskjedsida! Algdat: Fundamentalt, klassisk, morsomt,...krevende :) Pensum: Forelesningene, oppgavene (pluss deler av
DetaljerArk 1 av 18. programmeringsspråkenes. Velkommen til IN 211. verden. IN 211 Programmeringsspråk
Ark 1 av 18 IN 211 Programmeringsspråk Velkommen til programmeringsspråkenes verden IN 211 Forelesning 20.8.2001 Foreleser Ragnhild Kobro Runde E-post: ragnhilk@ifi.uio.no Kontor: 3345 Treffetid: torsdager
DetaljerUke 8 Eksamenseksempler + Ilan Villanger om studiestrategier. 11. okt Siri Moe Jensen Inst. for informatikk, UiO
Uke 8 Eksamenseksempler + Ilan Villanger om studiestrategier 11. okt. 2011 Siri Moe Jensen Inst. for informatikk, UiO 1 Innhold Eksamen INF1000 Høst 2011: Oppgave 4-7 Tekstmanipulering Metoder med og uten
DetaljerSemantisk Analyse del I
Semantisk Analyse del I Attributtgrammatikker Kapittel 6.1-6.2 26.02.2013 1 Statisk semantisk analyse kapittel 6: Innhold Generelt om statisk semantisk analyse Attributt-grammatikker (kapittel 6.1-6.2)
DetaljerIntroduksjon til objektorientert programmering
Introduksjon til objektorientert programmering Samt litt mer om strenger og variable INF1000, uke6 Ragnhild Kobro Runde Grunnkurs i objektorientert programmering Strategi: Splitt og hersk Metoder kan brukes
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF 3230/4230 Formell modellering og analyse av kommuniserende systemer Eksamensdag: 24. mars 2006 Tid for eksamen: 13.30 16.30
DetaljerTDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python
TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python Professor Guttorm Sindre Institutt for datateknikk og informasjonsvitenskap Læringsmål og pensum Mål Vite hva et
DetaljerINF 3230/4230 Forelesning 4: Assosiativitet og kommutativitet; operasjonell semantikk
13.2.2006 INF 3230 4 1 INF 3230/4230 Forelesning 4: Assosiativitet og kommutativitet; operasjonell semantikk Peter Ølveczky Forelest av Ingrid C. Yu Innhold: attributter i Maude (særlig assoc og comm)
DetaljerVelkommen til. INF våren 2016
Velkommen til INF1010 - våren 2016 Denne uken (onsdag og torsdag): Om INF1010 Java datastrukturer Klasser med parametre i Java Stein Gjessing Institutt for informatikk Universitetet i Oslo 1 1 INF1010
DetaljerUNIVERSITETET I OSLO
Eksamen i UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamensdag: 15. desember 2010 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 8 sider. Vedlegg: Tillatte hjelpemidler: INF2220
Detaljer2 Om statiske variable/konstanter og statiske metoder.
Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Innledning Dette notatet beskriver noe av det som foregår i primærlageret når et Javaprogram utføres.
DetaljerOversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program
Oversikt INF1000 Uke 1 time 2 Variable, enkle datatyper og tilordning Litt repetisjon Datamaskinen Programmeringsspråk Kompilering og kjøring av programmer Variabler, deklarasjoner og typer Tilordning
DetaljerOPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen?
OPPGAVESETT 4 PROSEDYRER Oppgavesett 4 i Programmering: prosedyrer. I dette oppgavesettet blir du introdusert til programmering av prosedyrer i Java. Prosedyrer er også kjent som funksjoner eller subrutiner.
DetaljerMAT-INF 1100: Obligatorisk oppgave 1
8. september, 2005 MAT-INF 1100: Obligatorisk oppgave 1 Innleveringsfrist: 23/9-2005, kl. 14:30 Informasjon Den skriftlige besvarelsen skal leveres på ekspedisjonskontoret i 7. etg. i Niels Henrik Abels
DetaljerVelkommen til plenumsregning for MAT1030. MAT1030 Diskret matematikk. Repetisjon: Algoritmer og pseudokode. Eksempel fra boka. Eksempel
Velkommen til plenumsregning for MAT1030 MAT1030 Diskret matematikk Plenumsregning 1: Kapittel 1 Roger Antonsen Matematisk Institutt, Universitetet i Oslo 17. januar 2008 Torsdager 10:15 12:00 Gjennomgang
DetaljerIntroduksjon til programmering og programmeringsspråk
Introduksjon til programmering og programmeringsspråk Henrik Lieng Høgskolen i Oslo og Akershus https://code.org/ Veldig høy-nivå programmering med Scratch End-user programming Overtone, Tidal, etc., bygger
DetaljerInnhold. INF1000 Høst Unified Modeling Language (UML) Unified Modeling Language (UML)
Innhold Unified Modelling Language UML INF1000 Høst 2015 Uke 8: Mer objektorientert programmering Siri Moe Jensen En ny type for-løkke Organisering av mengder av objekter HashMap Valg av representasjon
DetaljerMAT1030 Diskret Matematikk
MAT1030 Diskret Matematikk Plenumsregning 1: Kapittel 1 Mathias Barra Matematisk institutt, Universitetet i Oslo 16. januar 2009 (Sist oppdatert: 2009-02-02 14:21) Plenumsregning 1 MAT1030 Diskret Matematikk
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF5110 Eksamensdag : Tirsdag 5. juni 2007 Tid for eksamen : 14.30-17.30 Oppgavesettet er på : 6 sider (pluss vedlegg) Vedlegg
DetaljerHjemmeeksamen 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,
DetaljerPlenumsregning 1. Kapittel 1. Roger Antonsen januar Velkommen til plenumsregning for MAT1030. Repetisjon: Algoritmer og pseudokode
Plenumsregning 1 Kapittel 1 Roger Antonsen - 17. januar 2008 Velkommen til plenumsregning for MAT1030 Torsdager 10:15 12:00 Gjennomgang av ukeoppgaver Gjennomgang av eksempler fra boka Litt repetisjon
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Kandidatnr Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Onsdag 1. desember 2010 Tid for eksamen: 14.00 18.00
DetaljerAlgDat 10. Forelesning 2. Gunnar Misund
AlgDat 10 Forelesning 2 Oversikt Java repetisjon IDE eller teksteditor + kommandolinje? Java Collections and Generics Programvareutvikling En mengde mer eller mindre veldefinerte metoder (software engineering):
Detaljerpublic static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren
Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en
DetaljerAnbefalt litteratur: Pensum-bøker: Forelesere: Velkommen til INF Introduksjon til operativsystemer og datakommunikasjon
Forelesere: Velkommen til INF-1060 Introduksjon til operativsystemer og datakommunikasjon Pål Halvorsen (paalh@ifi.uio.no) Nettverk og Distribuerte systemer (ND) (ved Simula) Kjell Åge Bringsrud (kjellb@ifi.uio.no)
DetaljerMAT-INF 1100: Obligatorisk oppgave 1
3. september, 2004 MAT-INF 1100: Obligatorisk oppgave 1 Innleveringsfrist: 17/9-2004, kl. 14:30 Informasjon Den skriftlige besvarelsen skal leveres på ekspedisjonskontoret i 7. etg. i Niels Henrik Abels
DetaljerVelkommen til INF Introduksjon til operativsystemer og datakommunikasjon
Velkommen til INF-1060 Introduksjon til operativsystemer og datakommunikasjon 21.08.2007 INF1060 1 Forelesere: Pål Halvorsen (paalh@ifi.uio.no) Nettverk og Distribuerte systemer (ND) (ved Simula) Kjell
DetaljerInnhold uke 10. Objektorientert programmering i Python. Oblig 7 og 8. IN1000 Seminar! IN1000 Høst 2018 uke 10 Siri Moe Jensen
Innhold uke 10 Hva bruker vi klasser til? Objektorientert programmering i Python IN1000 Høst 2018 uke 10 Siri Moe Jensen Noen sentrale datastrukturer for programmering lenkede lister trær grafer Eksempler:
DetaljerFra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr
Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et eksempel Klasser
DetaljerMAT1030 Diskret Matematikk
MAT1030 Diskret Matematikk Forelesning 26: Trær Roger Antonsen Institutt for informatikk, Universitetet i Oslo 5. mai 2009 (Sist oppdatert: 2009-05-06 22:27) Forelesning 26 MAT1030 Diskret Matematikk 5.
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Eksamen i : Eksamensdag : Torsdag 2. desember 2004 Tid for eksamen : 09.00 12.00 Oppgavesettet er på : Vedlegg : Tillatte hjelpemidler
DetaljerVelkommen til. INF våren 2017
Velkommen til INF1010 - våren 2017 Idag: 1. time: Om INF1010 2.time: Om Objekter i Java 1 Stein Gjessing og Stein Michael Storleer Universitetet i Oslo 1 INF1010 Objektorientert programmering I INF1010
DetaljerVelkommen til INF Introduksjon til operativsystemer og datakommunikasjon
Velkommen til INF-1060 Introduksjon til operativsystemer og datakommunikasjon 22.08.12 INF1060 1 Forelesere: Pål Halvorsen (paalh@ifi.uio.no) Nettverk og Distribuerte systemer (ND) (ved Simula) Tor Skeie
DetaljerPlenumsregning 1. MAT1030 Diskret Matematikk. Repetisjon: Algoritmer og pseudokode. Velkommen til plenumsregning for MAT1030
MAT1030 Diskret Matematikk Plenumsregning 1: Kapittel 1 Mathias Barra Matematisk institutt, Universitetet i Oslo Plenumsregning 1 16. januar 2009 (Sist oppdatert: 2009-02-02 14:21) MAT1030 Diskret Matematikk
DetaljerIntroduksjon til programmering og programmeringsspråk. Henrik Lieng Høgskolen i Oslo og Akershus
Introduksjon til programmering og programmeringsspråk Henrik Lieng Høgskolen i Oslo og Akershus Kategorisering av programmeringsspråk? Deklarativ vs. imperativ Lav nivå vs. høy nivå Kompilert vs. tolket
DetaljerINF1800 LOGIKK OG BEREGNBARHET
INF1800 LOGIKK OG BEREGNBARHET FORELESNING 1: INTRODUKSJON Roger Antonsen Institutt for informatikk Universitetet i Oslo 19. august 2008 (Sist oppdatert: 2008-09-03 12:35) Velkommen til INF1800! Introduksjon
DetaljerINF3140 Modeller for parallellitet INF3140/4140: Programanalyse
INF3140/4140: Programanalyse Uke 4, side 1. Hvordan sjekke egenskaper ved programmer? Testing eller debugging øker tilliten til programmet ved prøving, men gir ingen garanti for korrekthet Operasjonell
DetaljerEmnebeskrivelser for emner tatt ved Universitetet i Oslo. Presentasjon laget av Joakim Hjertås
Emnebeskrivelser for emner tatt ved Universitetet i Oslo Presentasjon laget av Joakim Hjertås 10. mars 2005 Innhold INF4110 - Programmeringsspråk 2 INF4200 - Algoritmer og effektivitet 3 INF4330 - Problemløsning
DetaljerMAT-INF 1100: Obligatorisk oppgave 1
13. september, 2018 MAT-INF 1100: Obligatorisk oppgave 1 Innleveringsfrist: 27/9-2018, kl. 14:30 i Devilry Obligatoriske oppgaver («obliger») er en sentral del av MAT-INF1100 og er utmerket trening i å
DetaljerMAT1030 Diskret matematikk
MAT1030 Diskret matematikk Plenumsregning 1: Kapittel 1 Roger Antonsen Matematisk Institutt, Universitetet i Oslo 17. januar 2008 Velkommen til plenumsregning for MAT1030 Torsdager 10:15 12:00 Gjennomgang
DetaljerKort om meg. INF1000 Uke 2. Oversikt. Repetisjon - Introduksjon
Kort om meg INF1000 Uke 2 Variable, enkle datatyper og tilordning Fredrik Sørensen Kontor: Rom 4311-NR, Informatikkbygget Brukernavn/e-post: fredrso@ifi.uio.no Utdanning: Dataingeniør, 2000 Cand.Scient,
Detaljer2 Om statiske variable/konstanter og statiske metoder.
Gaustadbekkdalen, januar 22 Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Innledning Dette notatet beskriver noe av det som foregår i primærlageret når
DetaljerMAT1030 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
DetaljerInnledning. 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
DetaljerLæringsmål og pensum. https://www.youtube.com/watch? v=nkiu9yen5nc
1 TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python Professor Alf Inge Wang 2 https://www.youtube.com/watch? v=nkiu9yen5nc 3 Læringsmål og pensum Mål Lære om
DetaljerOversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays
Oversikt C programmering 1 C programmering Introduksjon Kildekode Kompilering Hello world Hello world med argumenter 2 Funksjoner 3 Datatyper 4 Pekere og arrays 5 Kontrollstrukturer Lars Vidar Magnusson
DetaljerINF1000: noen avsluttende ord
Pensum INF1000: noen avsluttende ord Arne og Ole Christian Det som er gjennomgått på forelesningene Stoff som er behandlet i oppgaver/obliger Notat om Informasjonsteknologi, vitenskap og samfunnsmessige
DetaljerOversikt. Informatikk. INF1000: Grunnkurs i objektorientert programmering. Utenom INF1000 Informasjon & hjelp
INF1000: Grunnkurs i objektorientert programmering Uke 0, høst 2014 Oversikt Informatikk - hva & hvorfor? Datasystemer, maskinvare, programmer Objektorientert programmering i INF1000 Programmeringsspråket
DetaljerNorsk informatikkolympiade runde
Norsk informatikkolympiade 2017 2018 1. runde Sponset av Uke 46, 2017 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.
DetaljerInnlevering 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.
DetaljerHvis Ole følger inf3170, så liker Ole logikk. Ole følger inf3170, og Ole følger ikke inf3170. Ole følger inf3170, eller Ole følger ikke inf3170.
Forelesning 4: Repetisjon og førsteordens logikk Christian Mahesh Hansen - 12. februar 2007 1 Repetisjon Motivasjon Er utsagnene sanne? Hvis Ole følger inf3170, så liker Ole logikk. Ole følger inf3170,
DetaljerIN1010 Objektorientert programmering Våren 2019
IN1010 Objektorientert programmering IN1010 Objektorientert programmering Våren 2019 Stein Gjessing Hva skjer de første to ukene? Forelesninger de to første ukene i dag 1. time: Info om IN1010 i dag 2.
DetaljerHjemmeeksamen 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
DetaljerINF1800 Forelesning 17
INF1800 Forelesning 17 Førsteordens logikk Roger Antonsen - 14. oktober 2008 (Sist oppdatert: 2008-10-14 16:29) Før vi begynner Repetisjon og kommentarer Vi skal nå kunne Utsagnslogikk: syntaks og semantikk
DetaljerFra krav til objektdesign
Fra krav til objektdesign Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer INF1050-ansvar-1 Dagens forelesning o Kort repetisjon av kravspesifikasjon med UML Hva skal systemet gjøre? UML: Bruksmønstermodeller
DetaljerIN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr
IN1010 Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et par eksempler
DetaljerVelkommen! I dag. Viktige beskjeder. Studieadministrasjonen. IN Høst Siri Moe Jensen Geir Kjetil Sandve Henrik Hillestad
IN1000 - Høst 2019 Siri Moe Jensen Geir Kjetil Sandve Henrik Hillestad Velkommen! I dag Første innføring i Python Hva fikk dere med dere og hvem er dere? (mentimeter)
DetaljerTDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang
2 TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python Professor Alf Inge Wang 3 https://www.youtube.com/watch? v=nkiu9yen5nc 4 Læringsmål og pensum Mål Lære om
DetaljerINF3110 Programmeringsspråk. Velkommen til kurset INF 3110/4110. Programmeringsspråk 1/24
Velkommen til kurset INF 3110/4110 Programmeringsspråk 1/24 Forelesning 1 20.8.2003 Først det praktiske Foreleser: Roger Antonsen E-post: rantonse@ifi.uio.no Kontor: rom 3403 Treffetid: etter avtale Undervisning
DetaljerINF 3110/4110. Velkommen til kurset. Programmeringsspråk. Først det praktiske
Velkommen til kurset INF 3110/4110 Programmeringsspråk 1/24 Først det praktiske Foreleser: Roger Antonsen E-post: rantonse@ifi.uio.no Kontor: rom 3403 Treffetid: etter avtale Undervisning Forelesninger:
Detaljerpublic static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren
Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en
DetaljerINF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2017 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 4: Prioritetskø og Heap Ingrid Chieh Yu (Ifi, UiO) INF2220 H2017, forelesning
DetaljerINF1010 våren januar. Objektorientering i Java
INF1010 våren 2017 25. januar Objektorientering i Java Om enhetstesting (Repetisjon av INF1000 og lær deg Java for INF1001 og INF1100) Stein Gjessing Hva er objektorientert programmering? F.eks: En sort
Detaljer23.09.2015. Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.
Grunnkurs i objektorientert programmering Introduksjon til objektorientert programmering INF1000 Høst 2015 Siri Moe Jensen INF1000 - Høst 2015 uke 5 1 Siri Moe Jensen INF1000 - Høst 2015 uke 5 2 Kristen
DetaljerSpesifikasjon av Lag emne. Kursregistrering bruksmønstermodell (ny versjon) Dagens forelesning. Fra krav til objektdesign
Dagens forelesning o Kort repetisjon av kravspesifikasjon med UML Fra krav til objektdesign Hva skal systemet gjøre? UML: Bruksmønstermodeller o Objektdesign Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer
DetaljerMAT1030 Plenumsregning 1
MAT1030 Plenumsregning 1 Kapittel 1 Mathias Barra - 16. januar 2009 (Sist oppdatert: 2009-02-02 14:21) Plenumsregning 1 Velkommen til plenumsregning for MAT1030 Fredager 12:15 14:00 Vi vil gjennomgå utvalgte
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 115 og IN 110 Algoritmer og datastrukturer Eksamensdag: 14. mai 1996 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 8 sider.
DetaljerINF1000 undervisningen INF 1000 høsten 2011 Uke september
INF1000 undervisningen INF 1000 høsten 2011 Uke 2 30. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Forelesningene: Første
DetaljerIN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr
IN1010 Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et par eksempler
DetaljerINF 1000 høsten 2011 Uke september
INF 1000 høsten 2011 Uke 2 30. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus 1 INF1000 undervisningen Forelesningene: Første
DetaljerObject interaction. Innhold. Abstraksjon 03.09.2007. Grunnleggende programmering i Java Monica Strand 3. september 2007.
Object interaction Grunnleggende programmering i Java Monica Strand 3. september 2007 1 Innhold Til nå: Hva objekter er og hvordan de implementeres I klassedefinisjonene: klassevariable (fields), konstruktører
DetaljerINF2810: 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
DetaljerEKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00
EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 9. mai 2016 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet består
DetaljerINF2810: 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
DetaljerINF1800 LOGIKK OG BEREGNBARHET
INF1800 LOGIKK OG BEREGNBARHET FORELESNING 17: FØRSTEORDENS LOGIKK Roger Antonsen Institutt for informatikk Universitetet i Oslo 14. oktober 2008 (Sist oppdatert: 2008-10-14 16:29) Før vi begynner Repetisjon
DetaljerDagens plan. INF3170 Logikk. Syntaks: Utsagnslogiske formler. Motivasjon
INF3170 Logikk Dagens plan Forelesning 4: og førsteordens logikk Christian Mahesh Hansen Institutt for informatikk, Universitetet i Oslo 1 2 12. februar 2007 3 Institutt for informatikk (UiO) INF3170 Logikk
DetaljerDatabaser fra et logikkperspektiv
Databaser fra et logikkperspektiv Evgenij Thorstensen IFI, UiO Høst 2013 Evgenij Thorstensen (IFI, UiO) Databaser fra et logikkperspektiv Høst 2013 1 / 31 Outline 1 Logikk som verktøy 2 Relasjonsdatabaser
DetaljerINF2810: Funksjonell Programmering. Dataabstraksjon og Trerekursjon
INF2810: Funksjonell Programmering Dataabstraksjon og Trerekursjon Stephan Oepen & Erik Velldal Universitetet i Oslo 15. februar, 2013 Tema 2 Forrige uke Høyere-ordens prosedyrer: Prosedyrer som argumenter
DetaljerEn Maude-modell for sikker asynkron kommunikasjon i π-kalkylen
En Maude-modell for sikker asynkron kommunikasjon i π-kalkylen Henrik Dæhli og Joakim Hjertås 23. juni 2005 Plan Problemstilling Bakgrunn Maude sikkerhet π-kalkylen og varianter av denne en Maude-modell
DetaljerMAT-INF 1100: Obligatorisk oppgave 1
22. september, 2016 MAT-INF 1100: Obligatorisk oppgave 1 Innleveringsfrist: 6/10-2016, kl. 14:30 i Devilry Obligatoriske oppgaver («obliger») er en sentral del av MAT-INF1100 og er utmerket trening i å
DetaljerVelkommen til. IN1010 Objektorientert programmering Våren 2018
Velkommen til IN1010 Objektorientert programmering Våren 2018 Idag: 1. time: Om IN1010 2. time (+ i morgen og neste uke): Om Java og objekter i Java 1 Stein Gjessing, Siri Jensen og Dag Langmyhr Universitetet
DetaljerINF2810: 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
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF2810 Eksamensdag: Fredag 5. juni 2015 Tid for eksamen: 14:30 (4 timer) Oppgavesettet er på 4 sider (ikke medregnet denne siden)
DetaljerINF2810: 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:
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF 3230 Formell modellering og analyse av kommuniserende systemer Eksamensdag: 8. juni 2012 Tid for eksamen: 9.00 13.00 Oppgavesettet
DetaljerDagens forelesning. Java 13. Rollefordeling (variant 1) Rollefordeling (variant 2) Design av større programmer : fordeling av roller.
Dagens forelesning Java 13 Design av større programmer : fordeling av roller INF 101-13. mars 2003 Flere eksempler på bruk av objekter MVC-prinsippet MVC-prinsippet Flere eksempler på programmer med objekter
DetaljerForelesning 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
DetaljerKap 6.4: Typesjekking Foiler ved Birger Møller-Pedersen Forelest av Stein Krogdahl 19. og 23. mars Dagens tema: Typer og typesjekking
Kap 6.4: Typesjekking Foiler ved Birger Møller-Pedersen Forelest av Stein Krogdahl 19. og 23. mars 2015 Dagens tema: Typer og typesjekking Hva er nå egentlig en «type» i et programmeringsspråk? Hvordan
DetaljerAlgoritmer og Datastrukturer
Eksamen i Algoritmer og Datastrukturer IAI 21899 Høgskolen i Østfold Avdeling for informatikk og automatisering Lørdag 15. desember 2001, kl. 09.00-14.00 Hjelpemidler: Alle trykte og skrevne hjelpemidler.
DetaljerReelle tall på datamaskin
Reelle tall på datamaskin Knut Mørken 5. september 2007 1 Innledning Tirsdag 4/9 var tema for forelesningen hvordan reelle tall representeres på datamaskin og noen konsekvenser av dette, særlig med tanke
Detaljer