Emnevalg i 4. semester

I fjerde semester skal dere velge minst ett av følgende emner IN20140, IN2080 eller IN2100. Her er litt informasjon om emnene.

Dersom du er usikker på valget anbefaler vi å velge IN2140. Se forkunnskaper og anbefalte emenr på det enkelte emne.

I IN2080 lærer du om algoritmer, beregninger og kompleksitet. Hvorfor skal du ta IN2080? Du vil få svar på spørsmål som: Hva er egentlig en algoritme? Hvordan kan vi måle kompleksiteten til en algoritme? Hva er grensene for hva en datamaskin kan – og ikke kan – gjøre? For å svare på disse spørsmålene vil du lære om kompleksitetsteori. Noen problemer (for eksempel å sortere lister) kan løses svært effektivt, mens andre problemer (for eksempel å avgjøre om to grafer er like) er mer komplekse og tar mye mer tid. I dette kurset lærer du om hvordan problemer kan analyseres og klassifiseres i såkalte kompleksitetsklasser (som L, NL, P, NP og PSPACE).

For å studere algoritmer og beregninger er det også nødvendig å ha gode modeller for hva algoritmer og beregninger egentlig er, og i dette kurset lærer du flere. Du lærer for eksempel om endelige automater, turingmaskiner og formelle grammatikker. Dersom du likte IN1150 – Logiske metoder, vil IN2080 være en naturlig fortsettelse og fordypelse. Du vil få bruke alt det du har lært om mengder, logikk, bevis, induksjon, automater og formelle språk, og du vil lære mer om det teoretiske grunnlaget for programmering og informatikk.

 

 

I  IN2100 lærer du høy-nivå design, modellering og automatisert analyse av systemer, alt i samme høy-nivå modelleringsspråk, Maude.

Siden Maude-kode er eksekverbar og støtter modell sjekking, er også modellene eksekverbare og man kan dessuten sjekke automatisk  om spesifiserte egenskaper er oppfyllt.  Maude er basert på avansert mønster-gjenkjenning (pattern matching) og regel-basert programmering.  Dette utgjør et generelt og fleksibelt  rammeverk som dekker funksjonell programmering, såvel som programmering av distribuerte systemer, asynkron og synkron kommunikasjon, objekt-orienterte systemer, samt  nettverksprotokoller, databaseprotokoller og sikkerhetsprotokoller.

Semantikken til Maude bygger på likhetslogikk og  omskrivingslogikk, og det kan være en fordel å ha tatt noe logikk, som begynnerkurset i logikk og gjerne begynnerkurset i funksjonell programmering.

Det er ikke nødvendig å ha disse kursene, men noe interesse for diskret matematikk eller logikk vil være en fordel.

Kurset IN2100 er sterkt anbefalt om man ønsker å ta masteroppgave  ved PSY (Pålitelige Systemer) og ASR (Analytiske systemer og resonnering <http://www.mn.uio.no/ifi?vrtx=unit-view&areacode=150537> ).

 

 

I IN2140 lærer du om en del grunnleggende programvare som finnes på alle datamaskiner og som alle som arbeider med datamaskiner og programmering bør vite noe om. Alle datamaskiner inneholder et operativsystem i bunn, og dette emnet gir en innføring i hva oppgavene til et operativsystem er, og hvordan det brukes både fra en brukers og en programmerers side. Emnet forklarer også litt om hvordan et operativsystem er bygget opp. Alle datamaskiner kommuniserer med omverdenen, og emnet forklarer hvordan datakommunikasjon foregår og hvordan man kan lage programmer som benytter slik kommunikasjon. Programmeringsspråket i emnet er C, og en grunnleggende introduksjon til C vil bli gitt.

 

 

Publisert 19. des. 2018 14:44 - Sist endret 19. des. 2018 14:45