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 med høynivå-språk 4 INF4170 - Logikk og analysemetoder 5 INF4230 - Formell modellering og analyse av kommuniserende systemer 6 INF4140 - Modeller for parallellitet 7 INF5130 - Utvalgte emner i omskrivningslogikk 8 UNIK4220 - Innføring i kryptografi 9 UNIK4250 - Sikkerhet i distribuerte systemer 10 1
INF4110 - Programmeringsspråk Undervises: Hvert høstsemester Eksamen: Hvert høstsemester Innhold: Metoder for språkbeskrivelse og semantikk, inklusive statiske og dynamiske aspekter, typing, implementasjon og kjøresystemer. Ulike typer programmeringsspråk, inklusive funksjonelle språk og PROLOG. Hva lærer du? Studentene skal bli fortrolige med ulike programmerings-mekanismer og -paradigmer. De skal få en dypere innsikt i programmeringsspråk, hvordan de bygges opp, defineres og implementeres. Undervisningsform: 2 timer forelesninger og 2 timer gruppeøvelser per uke. Det kreves gjennomføring av obligatoriske oppgaver for å kunne gå opp til eksamen. Vurderingsform: 3 timers skriftlig eksamen ved semesterets slutt. Bokstavkarakter (A-F). Anbefalte forkunnskaper: Emnet bygger på INF1020 - Algoritmer og datastrukturer/inf 110. 2
INF4200 - Algoritmer og effektivitet Undervises: Hvert høstsemester Eksamen: Hvert høstsemester Innhold: Algoritmeteori som en modell av praktisk beregning. Turingmaskiner, formelle språk, beregnbarhet, kompleksitet, algoritmedesigparadigmer, kryptering, ekspressivitet av programmeringsspråk, logikk og kompleksitet. Hva lærer du? Å gi et grunnlag for en systematisert (akademisk) forståelse av praktisk beregning. Å gi et systematisert oversikt over sentrale spørsmål i arbeidet med algoritmer. Å formidle hovedelementene av algoritmeteori. Å formidle de viktigste teoretiske verktøy og teknikker. Undervisningsform: 2 timer forelesning og 2 timer gruppearbeid per uke. Det kreves innlevering av en obligatorisk oppgave som må være bestått for å kunne gå opp til eksamen. Vurderingsform: 3 timers avsluttende, skriftlig eksamen. Bokstavkarakter (A- F). Anbefalte forkunnskaper: Emnet bygger på INF1020 - Algoritmer og datastrukturer/inf 110. 3
INF4330 - Problemløsning med høynivå-språk Undervises: Hvert høstsemester Eksamen: Hvert høstsemester Undervisningsspråk: Norsk Innhold: Det gis en innføring i grunnleggende elementer ved script-språkene Perl og Python, bl.a. datastrukturer (list, hash), regulære uttrykk, klasser, objektorientert programmering, interaksjon med operativsystemet, plattformuavhengig kode, grafiske brukergrensesnitt, interaktive websider, effektivitet, kombinering av script-språk med C/C++ eller Fortran, moduler og programpakker. Spesiell vekt legges på praktisk problemløsning. Hva lærer du? Script-språk som Perl og Python muliggjør programmering på et langt mer kompakt og høyere nivå enn f.eks. Fortran, C, C++ og Java. Kurset gir en innføring i Perl og Python og hva slags problemer disse språkene er spesielt Egnet til. Kurset demonstrerer typiske anvendelser av scripting, f.eks. tolke og manipulere tekst, "lime" sammen eksisterende programmer, forsyne fil- eller kommandolinje-orienterte programmer med grafiske grensesnitt (også via Internett), søke etter og manipulere filer, generere rapporter (f.eks. i form av websider), styre og arkivere numeriske eksperimenter. Gjennom oppgavene i emnet får studentene betydelig trening i å tilnærme seg et problem, finne egnet dokumentasjon, implementere og teste kode samt vurdere alternative løsninger. Undervisningsform: Emnet går på høsten med 2 timer forelesninger og 2 timer øvelser per uke. Det kreves gjennomføring av obligatoriske aktiviteter. Vurderingsform: Det arrangeres deleksamen i form av individuelle hjemmeoppgaver hver uke. Studentene får sine besvarelser vurdert på gruppeøvingene. For å bestå kurset kan man enten ha bestått deleksamen i 10 uker eller i 5 uker hvis man har en bestått prosjektoppgave i tillegg. De ulike gjennomføringsformene i kurset er beskrevet detaljert på http://www.ifi.uio.no/ inf3330/eksamen.shtml. En muntlig deleksamen avholdes medio oktober mens avsluttende muntlig eksamen arrangeres i desember. Til hver muntlig eksamen vil kun en andel av studentene bli hørt. Det kan eksamineres både i oppgaver til deleksamener og teori i kurset ved muntlig eksamen. Karakter: Bestått/ikke bestått. Anbefalte forkunnskaper: Minst 60 studiepoeng informatikkemner. 4
INF4170 - Logikk og analysemetoder Undervises: Hvert vårsemester Eksamen: Hvert vårsemester Innhold: Formelle språk for utsagnslogikk og predikatlogikk. Sekventkalkyler for klassisk og intuisjonistisk logikk, analysetrær og tablåer. Modeller for klassisk logikk. Sunnhet og kompletthet av bevissystemene, Skolem- og Herbrandteoremer. 1. ordens teorier: konsistens, kompletthet og ufullstendighet. Generell introduksjon til bevisteori og automatisk bevisføring. Hva lærer du? Kurset skal gi studenter innsikt i logikk som en basis for studier i teoretisk databehandling. Emnet kan også være et utgangspunkt for videre studier i logikk eller automatisk bevisføring for anvendelse i databehandling. Undervisningsform: 2 timer forelesning og 2 timer gruppeøvelser per uke. Det kreves gjennomføring av obligatoriske oppgaver for å kunne gå opp til eksamen. Vurderingsform: Skriftlig (3 timer) eller muntlig eksamen. Inntil 75% av karakteren kan fastsettes på bakgrunn av underveisevalueringer. Bokstavkarakter (A - F). Anbefalte forkunnskaper: Emnet bygger på HUMIT1750 - Logikk og beregninger/sli110/inf 120. 5
INF4230 - Formell modellering og analyse av kommuniserende systemer Undervises: Hvert vårsemester Eksamen: Hvert vårsemester Innhold: Bruk av formelle metoder for modellering av og resonnering om kommuniserende distribuerte systemer. Det legges vekt på høynivå objekt-orientert design og programmering samt verktøysbasert simulering/eksekvering og analyse. Ulike former for synkronisering behandles med vekt på asynkron kommunikasjon ved meldingsutveksling. Emnet vil ta for seg konkrete ikke-trivielle eksempler som nettverksprotokoller, distribuerte databaser, sikkerhetsprotokoller og/eller Internettprogrammering. Formalismen som benyttes bygger på termomskrivningsteknikker. Emnet gir en innføring i operasjonell semantikk for abstrakte datatyper, modellering og maskinell testing/modellsjekking av kommuniserende systemer ved bruk av språket og eksekveringsverktøyet Maude, samt formell resonnering om egenskaper som terminering og invarians. Hva lærer du? Det overordnede målet er å vise hvordan formelle metoder kan benyttes til å modellere kompliserte distribuerte systemer på et høyt abstraksjonsnivå, slik at man kan prototype, modellsjekke og resonnere om slike systemer i en tidlig fase i systemutviklingsprosessen. Emnet vil gi en praktisk innføring i utforming, programmering, kjøring/testing og modellsjekking av distribuerte systemer, samtidig som det vil gi en teoretisk innsikt i formell resonnering om egenskaper til programmer. Undervisningsform: 3 timer forelesninger og 2 timer gruppeøvelser per uke. Det kreves gjennomføring av obligatoriske oppgaver for å kunne gå opp til eksamen. Vurderingsform: Midtermineksamen (ca 37%). Skriftlig (3 timer) avsluttende eksamen (ca 63%). Bokstavkarakter (A - F). Anbefalte forkunnskaper: Emnet bygger på INF1020 - Algoritmer og datastrukturer/inf 110. 6
INF4140 - Modeller for parallellitet Undervises: Hvert høstsemester Eksamen: Hvert høstsemester Innhold: Kurset gir et innblikk i noen grunnleggende begreper og teknikker for spesifikasjon og resonnering om parallelle prosesser, med henblikk på tett samarbeidende tråder så vel som distribuerte og objektorienterte systemer. Hva lærer du? Kurset gir innsikt i hvordan en skal spesifisere, utforme og analysere et parallelt system slik at det oppfyller ønskede egenskaper. Undervisningsform: 2 timer forelesninger og 2 timer gruppeøvelser per uke. Det kreves gjennomføring av obligatoriske oppgaver for å kunne gå opp til eksamen. Vurderingsform: 3 timers skriftlig eksamen ved semesterets slutt. Bokstavkarakter (A - F). Anbefalte forkunnskaper: Emnet bygger på INF1020 - Algoritmer og datastrukturer/inf 110. 7
INF5130 - Utvalgte emner i omskrivningslogikk Undervises: Emnet går første gang høsten 2004, deretter hvert høstsemester. Eksamen: Emnet går første gang høsten 2004, deretter hvert høstsemester. Innhold: Kurset er en fortsettelse av INF3230 - Formell modellering og analyse av kommuniserende systemer/inf4230 - Formell modellering og analyse av kommuniserende systemer og tar for seg grunnleggende teori rundt omskrivningslogikk som Knuth-Bendix-komplettering, refleksjon og metaprogrammering, samt eksempler på avanserte anvendelser av omskrivningslogikk til modellering og analyse av systemer i verktøyet Maude. Aktuelle systemer å modellere kan være sikkerhets- og nettverksprotokoller, sanntidssystemer, mobile systemer og biokjemiske prosesser. Hva lærer du? Gi en teoretisk forståelse av omskrivingssystemer. Gi innsikt i hvordan man kan spesifisere og analysere (og i noen tilfeller også implementere) ulike slags datasystemer på et høyt abstraksjonsnivå. Undervisningsform: To til tre timer undervisning per uke (forelesning eller gruppeøvelse). Vurderingsform: Sluttkarakteren bestemmes av 1/3 studentinnleveringer, 1/3 presentasjon og 1/3 eksamen. Muntlig eksamen (mulighet for skriftlig eksamen ved stor studentmasse). Bokstavkarakter (A - F). Anbefalte forkunnskaper: Emnet bygger på INF3230 - Formell modellering og analyse av kommuniserende systemer/inf 220. 8
UNIK4220 - Innføring i kryptografi Undervises: Hvert høstsemester Eksamen: Hvert høstsemester Undervisningsspråk: Norsk Tilbys ved: UniK - Universitetsstudiene på Kjeller Innhold: Klassiske systemer, informasjonsteori, matematisk bakgrunnsmateriale, symmetriske kryptosystemer, blokk chiffer og flyt chiffer, DES, Advanced Encryption Standard (AES), hash funksjoner og meldingsautentisering (MAC), asymmetriske kryptosystemer, RSA og El Gamal, digitale signaturer, elliptiske kurver, bevisbar sikkerhet. Hva lærer du? Emnet skal gi en grunnleggende innføring i sentrale emner inne symmetrisk og asymmetrisk krytpografi. Videre skal emnet gi kunnskap og forståelse om hvordan kryptografiske teknikker benyttes til å bygge sikkerhet inn i moderne informasjons- og kommunikasjonssystemer. Undervisningsform: 2 timer forelesning og 1 time regneøving pr. uke. Oppgavegjennomgang. Vurderingsform: Muntlig eksamen med bokstavkarakter, men ved stort antall kandidater kan det bli holdt skriftlig eksamen. Anbefalte forkunnskaper: Emnet bygger på kunnskaper tilsvarende de gitt av MAT1030 - Diskret matematikk (MAT 008), (MA-IN 118). Annen nyttig bakgrunn vil være MAT1120 - Lineær algebra (MA 131), (MA 215) og INF3210 - Informasjonsdesign (IN 210). 9
UNIK4250 - Sikkerhet i distribuerte systemer Undervises: Hvert vårsemester Eksamen: Hvert vårsemester Undervisningsspråk: Norsk Tilbys ved: UniK - Universitetsstudiene på Kjeller Innhold: Emnet tar for seg sikkerhetsbegrepet, og gir en kort innføring i kryptografi. Truslene mot distribuerte datamaskinsystemer nevnes, samt de grunnleggende mekanismer som brukes for å sikre datamaskinsystemene, og de mer sammensatte mekanismer. Det nevnes også litt om sikring av databaser, ettersom disse er utsatt for noen trusler som kommer i tillegg til de sedvanlige. Hva lærer du? Emnet presenterer trusler mot distribuerte datasystemer, med hovedvekt på trusler som kan motvirkes med programvare- og maskinvareløsninger. Emnet tar sikte på å formidle en forståelse av sikkerhetsproblematikken i distribuerte systemer ut fra prinsipper for sikring av datamaskinsystemer. Undervisningsform: 2 timer forelesning og 1 time øving/lab pr. uke. Vurderingsform: Muntlig eksamen med bokstavkarakter, men ved stort antall kandidater kan det bli holdt skriftlig eksamen. Anbefalte forkunnskaper: Grunnleggende programmering, datakommunikasjon, matematikk. 10