Kategoriarkiv: Informatikk/IKT

Artikler og kommentarer fra min tid som Instituttleder ved Institutt for informatikk

Ingen kur mot kaos

Screen Shot 2013-03-20 at 5.00.09 PMOle Hanseth ved Institutt for informatikk, Universitetet i Oslo og Bendik Bygstad fra NITH hadde 19. mars en kronikk i Dagends næringsliv om IT-utfordringene i helsevesenet, se faksimile. Jeg har i dag gleden av å ha Hanseth og Bygstad som gjester her på bloggen med  hele artikkelen. (Versjonen i Dagens næringsliv er noe forkortet.)

IT-problemene i helsesektoren og Støre’s 10 bud: Ingen kur mot kaos av Ole Hanseth (UiO) og Bendik Bygstad (NITH)

Jonas Gahr Støre presenterte 30.1. sine «10 bud» for et bedre helsevesen. Et nasjonalt løft på IT-siden er en viktig forutsetning for dette. Strategien for å oppnå dette beskrives i en Stortingsmelding som ble lagt fram i desember. Helse- og omsorgskomiteen avga sin innstilling 5.3. Den skal diskuteres i Stortinget på tirsdag (19.3.).

I meldingen beskrives situasjonen på IT-siden som kaotisk: For mange ulike systemer, mange uavhengige aktører og mangel på bruk av definerte standarder hindrer ønsket samhandling. Dette er et velkjent bilde. Departementets strategi for å rydde opp i dette har vi hørt før: tettere integrasjon mellom de ulike systemene gjennom sterkere nasjonal styring og strengere krav om at standarder må implementeres.  Men ett nytt mål presenteres: etablering av en løsning som inneholder all informasjon om en pasient og som benyttes av alt helsepersonell.

Komiteen slutter seg samlet til «utfordringsbildet som trekkes opp» og til hovedgrepene som skisseres. Men opposisjonen sier at de hadde forventet en mer offensiv holdning, at meldingen mangler tidshorisonter og anbefaling av strategier og drøfting av dilemmaer og avklaring av kritiske spørsmål som personvern og finansiering. På det siste punktet er vi enig med opposisjonen.

Vi er enige i at mer og bedre integrerte IT-løsninger er nødvendig for en bedre fungerende helsesektor. Men utvikling av bedre løsninger for helsesektoren innebærer noen viktige avveininger, og for å lykkes er det avgjørende å håndtere disse. På dette punktet svikter meldingen. Dermed gir den oss heller ingen grunn til optimisme om den vil bidra til at situasjonen på IT-området blir bedre. Meldingen ramser opp en del fordeler med sentraliserte løsninger, bl.a. bedre tilgang til informasjon, lettere å gjennomføre endringer og økt sikkerhet. Og ingen negative sider nevnes. Men så enkelt er det ikke!

Sentralisering kan bli kostbart

Hvis all informasjon er tilgjengelig for alle skulle informasjons-tilgjengeligheten være optimal. Men slik er det selvsagt ikke. «Information overflow» skulle være et kjent fenomen – dvs. at en enkelt bruker har tilgang til så mye informasjon at vedkommende ikke er i stand til å finne det som er relevant.  Det produseres i dag enorme mengder med informasjon om mange pasienter. Og med nye instrumenter og økt bruk av sensor-teknologi vil informasjonsvolumet øke dramatisk i årene framover.  Det betyr at «information overflow» problemet kan bli uoverkommelig for mange – ikke minst innen primærhelse. Dette er dyrt.

I meldingen sies det at det er enklere å endre sentraliserte systemer fordi en endring kan gjøres kun et sted. Det er riktig hvis man skal gjøre endringer som ikke berører brukerne. Men dersom man skal gjøre endringer som berører brukerne er det motsatt. «Omstilling er regelen – ikke unntaket» sier Støre. Denne omstillingen er et bl.a. et resultat av nye behandlingsprosedyrer basert på nye medisinske instrumenter som kirurgi-roboter og sensorer i kroppen, og av den generelle utvikling på IT-siden, som utviklingen av lesebrett og smart-telefoner, som åpner også nye muligheter for helsepersonale.  Meldingen sier, helt riktig, at innføring av IKT handler like mye om endring av organisering og arbeidsprosesser som teknologi. Mange endringer, slik som nye spesialiserte behandlingsprosedyrer, vil berøre kun en liten del av helsesektoren. Men dersom et sentralt journalsystem må endres, vil dette potensielt berøre alt helsepersonale og dermed bli veldig utfordrende.   Det betyr at en sentralisert løsning vil gjøre innføring av nye instrumenter og behandlings-prosedyrer mye vanskeligere. Og dyrere.

Meldingen sier at sikkerheten blir bedre med et sentralisert system fordi man da oppnår bedre tilgangskontroll. Igjen, det er kun den ene siden av saken. Med et sentralisert system er det totale antall brukere som får tilgang til systemet bli stort.  Perfekte sikkerhets-systemer finnes ikke. Derfor øker antall brukere som har tilgang til systemet faren for at informasjon skal komme på avveie. Sikkerhet på dette nivået er meget kostbart.

Et sentralisert system øker også faren for at det skal feile. Jo flere løsninger eller moduler som integreres, jo større sjanse for at en av de skal feile. Og når en modul feiler, kan det føre til at hele systemet gjøre det. Jo mer man integrerer inn i et felles sentralt system, jo større er sjansene for at det skal feile og desto mer alvorlige blir konsekvensene. Dette har vi sett mange eksempler på i det siste, som ustabilitet i journalsystemene ved St. Olav og AHUS, Telenor mobilnett, Altinn og  kontantautomater.

Å forstå og håndtere disse avveiningene er avgjørende for å lykkes. Integrerte løsninger, sentral styring og standardisering vil være viktige elementer i dette.  Men det er like viktig å vite hva man ikke skal integrere, sentralisere eller standardisere. Kort sagt kan man sentralisere, integrere og standardisere det som man vet vil være stabilt – helst mange tiår framover. Det som vil endre seg bør man ikke standardisere eller integrere. Et sentralt og altomfattende pasientjournal-system vil med stor sannsynlighet være uoverkommelig å lage og vil bidra til mer kaos og problemer heller å bedre disse forholdene.

 

IT-camp for jenter

Screen Shot 2013-01-31 at 7.54.44 PMI min lille serie om formidling og synliggjøring av utdanningsmulighetene innen naturvitenskap, teknologi og matematikk vil jeg nå rette oppmerksomheten mot UiOs IT-camp for jenter som arrangeres av Institutt for informatikk den 6. og 7. mars 2013. IT-campen finner sted i informatikkens storstue, Ole-Johan Dahls hus, i Gaustadbekkdalen. Tilbudet er gratis for deltagerne og åpent for alle jenter i videregående skole som planlegger å fullføre med generell studiekompetanse.

Selv om det har vært en viss økning de siste årene er det relativt få jenter som studerer IT ved UiO (mellom 20 og 25% av studentene er jenter). Etterspørselen etter arbeidskraft med IT-kompetanse er stor, og det er særlig stor etterspørsel etter jenter. Grunnen til dette er blant annet at arbeid med utvikling og bruk av IT-systemer i stadig større omfang er lagarbeide (teamwork). Næringslivet og enheter i offentlig forvaltning er derfor særlig opptatt av å rekruttere flere jenter for å oppnå en bedre balanse mellom kjønnene når de skal utforme fremtidens IT-systemer.  Dette betyr ikke at guttene ikke er populære, men at jentene er særlig populære nettopp fordi de er i mindretall.

IT-systemer former samfunnet og samfunnet former IT-systemer.  Alle bruker IT-systemer og siden verden består av omtrent like mange jenter/kvinner som gutter/menn er det viktig at balansen mellom kjønnene blir bedre også blant de som utvikler IT-systemer. IT-systemer må formes best mulig for alle og Norge trenger flere jenter med IT-kompetanse. Er du jente og elev i videregående skole og opptatt av å skape fremtiden, en fremtid som vil være full av nye IT-systemer, kan du melde deg på IT-camp for jenter her.

Formålet med IT-campen er å vise frem mangfoldet og mulighetene innenfor IT-faget, og deltagere på campen får blant annet møte tidligere IT-studenter (jenter) som arbeider med IT i næringslivet eller i offentlig sektor. I tillegg blir det «workshops» der jentene får en innføring i tema som hvordan lage sin egen blogg og hva er det egentlig som finnes inne i en mobiltelefon. Institutt for informatikk vil selvfølgelig også fortelle om instituttets studieprogrammer og det blomstrende studentlivet på Blindern.

Tidligere denne uka hadde jeg en artikkel om en dag på Observatoriet for 7.-klassinger og et mattetilbud på Matematisk institutt for elever i videregående skole.

Internett – en robust infrastruktur?

steing (2)

Stein Gjessing

Denne artikkelen, skrevet sammen med professor Stein Gjessing på Institutt for informatikk, sto på trykk i Dagens næringsliv den 21. desember 2012.

Internett – en robust infrastruktur?

Stopper trafikken i Internett lammes viktige samfunnsfunksjoner, forretningslivet går i stå og vår private hverdag flyttes mange ti-år tilbake i tid. Er dette systemet robust nok for fremtiden? Svaret er dessverre NEI, med mindre vi finner nye fleksible og sikre løsninger for håndtering av den stadig økende trafikken over Internett.

Samfunnets avhengighet av Internett er tilnærmet total. Internett må takle uhell, f.eks. at kabler graves over eller at ledninger faller ned. Internett må tåle at det oppstår feil i systemene som styrer trafikken i dette globale nettverket, og Internett må bygges slik at vi kan avverge forskjellige former for cyber-kriminalitet (sabotasje).

Det er mange oppgaver som må løses før Internett er robust og sikkert nok. Her skal vi konsentrer oss om ett viktig aspekt:  Hva skjer når en kommunikasjonslinje, for eksempel en kabel, blir brutt? Datatrafikken som går over denne kabelen må da finne en annen vei gjennom nettet. I teorien kan Internettprotokollen (IP) finne en ny vei i løpet av 2 til 10 sekunder, mye avhengig av hvor lang vei det er rundt bruddstedet. I mellomtiden vil data gå tapt, men ofte kan tapte data automatisk bli sendt på nytt litt senere. Slik re-sending sørger en annen protokoll for. Denne kalles TCP, som står for ”Transmission Control Protocol”. Denne protokollen bruker IP til å sende datapakker fra et sted til et annet, men kommer en pakke ikke fram, vil TCP sørge for at den blir sendt på nytt.

I tillegg er det utviklet, bl.a. i Norge, spesielle mekanismer som gjør at IP kan finne en ny vei forbi et kabelbrudd mye raskere enn 2 sekunder, dvs. i løpet av bare en brøkdel av et sekund. Det er så raskt at en samtale over Internett ikke vil merke bruddet i det hele tatt. Slike mekanismer har imidlertid frem til i dag vært lite etterspurt.  Derfor må vi regne med at datatrafikk vil være brutt i opptil 10 sekunder når en kabel feiler, under forutsetning av at  IP klarer å finne en alternativ vei forbi bruddstedet.

Det er imidlertid to forhold som gjør at resultatet av et kabelbruddet kan være katastrofalt for datatrafikken.  Det ene er at det kan være forskjellige eiere av kablene, og det kan være komplekse samtrafikkregler mellom disse eierne. Selv om det finnes en alternativ vei, er det ikke sikkert at den leverandøren som sendte trafikk over den brutte kabelen, har tilgang til den eller de alternative veiene som finnes forbi bruddstedet.  Hvis IP ikke har oversikt over disse alternative veiene (f.eks. fordi de eies av en annen leverandør) kan protokollen ikke automatisk flytte trafikken dit i løpet av de nevnte 10 sekunder. Den finner rett og slett ingen alternativ vei, og  protokollen gir opp. Da vil de brukerne som hadde trafikk over den kabelen som røk, miste forbindelsen helt.  Løsningen blir å vente på en manuell operasjon, og dette kan ta svært lang tid.

Det andre forholdet som lager problemer etter et kabelbrudd, er at når trafikk flyttes til en annen kabel, kan det lett bli trafikkork på denne kabelen.  I Internett er det mange vente-køer, og når det blir kork, fylles disse opp, all trafikk går tregt, og den trafikken som ikke får plass i køene kastes. Resultatet blir at de fleste internettforbindelsene oppfører seg tregt, og mange forbindelser oppfører seg så tregt at det synes som om de ikke virker i det hele tatt.  Dette vil også gå ut over de forbindelsene som  ikke gikk over kabelen som ble brutt.

For å få et mer stabilt Internett som alle kan stole på, må disse problemene løses.  De løses delvis ved at det lages protokoller som reagerer raskere ved feil, delvis ved at det lages enklere samtrafikkregler slik at alle alternative veier er synlige for IP, og delvis ved at det blir færre spesialtilfeller som må behandles manuelt.  I tillegg er det viktig at leverandørene ikke tror de automatisk er beskyttet fordi de har mange alternative forbindelser. Det kan vise seg at disse alternative kablene er trukket i samme rør, og at alle ryker samtidig f.eks. i en brann eller når en gravemaskin er på ville veier. Dette har skjedd!

Vi tar det som en selvfølge at Internett virker, selv om denne livsviktige og svært ”trafikkerte” infrastrukturen øker i kompleksitet og sårbarhet. Skal vi kunne stole på Internett, også når noe uventet skjer,  må samfunnet utvikle kompetanse og innsikt på området, samtidig som vi utvikler nye mekanismer for sikker håndtering av den økende trafikken.

 

 

TAKK for åtte fantastiske år

Jeg har ryddet kontoret og er inne i mine siste (romjuls)dager som instituttleder ved Institutt for informatikk (IFI). Jobben som instituttleder startet i januar 2005, og når 2012 ebber ut har jeg vært instituttleder på IFI i åtte år.

For meg har dette vært åtte begivenhetsrike og spennende år i samhandling med alle instituttets ansatte, nåværende og tidligere studenter, samt en lang rekke personer utenfor instituttet. Jeg har lært utrolig mye på disse åtte årene, både faglig og som leder. Dette er erfaringer jeg med stolthet tar med meg videre i livet og til nye oppgaver ved Universitetet i Oslo.

Jeg vil derfor, i mitt siste blogginnlegg i 2012, benytte anledningen til  å rette en STOR TAKK til alle ansatte på Institutt for informatikk, alle nåværende og tidligere studenter jeg har hatt med å gjøre i årenes løp, samt viktige samarbeidspartnere utenfor instituttet. Det er DERE som er årsaken til at jeg har hatt åtte fantastiske år som instituttleder på IFI.

GODT NYTT ÅR!

Instituttleders priser for 2012

Instituttleders ærespris ble innstiftet for mange år siden og det er min oppgave å følge opp en lang tradisjon på instituttet. I tillegg deler jeg ut, for åttende og siste gang som instituttleder, to spesialpriser til henholdsvis Årets initiativtager(e) og Årets lagspiller(e). Til slutt i denne artikkelen finner dere prisvinnerne for de åtte siste årene, som er sammenfallende med min periode som instituttleder på Institutt for informatikk.

Instituttleders ærespris for 2012

I år blir det delt ut 2 Ærespriser og den første ble delt ut til Narve Trædal da han gikk av som kontorsjef 1. mai 2012 etter nærmere 20 års innstas for instituttet. En takk til Narve Trædal fra meg finner dere her.

Årets årlige Ærespris, og som ble avslørt og delt ut i dag, går til en person som over flere år har arbeidet hardt og målbevist mot etableringen av en ny og samfunnsviktig forskningsaktivitet ved Institutt for informatikk. I dette arbeidet har han samarbeidet både med store industriaktører og enheter i offentlig forvaltning. I 2012 lykkes han, sammen med sine medarbeidere, å få tilsagn på et historsisk stort EU-prosjekt innen «Big Data» (Optique). Instituttleders ærespris går til professor Arild Waaler.

Årets lagspiller 2012

Årest lagspiller har vært i organisasjonen lenge. Hun har i løpet av de siste årene tatt på seg et stadig større ansvar og er nå leder av studieadministrasjonen ved Institutt for informatikk. Årets lagspiller er blid, imøtekommende og inkluderende i sin arbeidsform, men hun er også en tydelig og klar leder som vet hva hun vil. Årets lagspiller er Sigrun Vedø Lien.

Årets Initiativtager 2012

Årets initiativtager har fortjent denne prisen lenge. Han tar stadig nye initiativer, både faglig og sosialt. Initiativene skaper mye aktivitet og han leder en aktivitet som etter hvert har blitt veldig synlig ved instituttet. Han har i alle år vært aktiv med nye tanker og idéer opp mot ledelsen, hvorav ikke alle har fått gjennomslag. Det er imidlertid viktig å markere at instituttet er avhengig av personer som tar initiativer, selv om ikke alle kan realiseres. Prisen for årets initiativtager går til professor Jim Tørresen.

Tidligere prisvinnere

Følgende har fått æresprisen i min tid som instituttleder:

  • 2005: Nils Damm Christophersen,
  • 2006: Anne Cathrine Modal
  • 2007: Einar Broch Johnsen
  • 2008: Ragnar Normann
  • 2009: Line Altern Halvorsen Valbø og Dag Langmyhr
  • 2010: Terje Knudsen
  • 2011: Studentene ved Institutt for informatikk v/ Cybernetisk selskab, Navet, Dagen@ifi, Micro, P:ISK, Ping, Robotica og FUI (fagutvalget)
  • 2012 Narve Trædal (mai 2012) og Arild Waaler

Følgende har fått lagspillerprisen:

  • 2005: Dag Langmyhr,
  • 2006: Stein Gjessing
  • 2007: Line Altern Halvorsen Valbø
  • 2008: Lena Korsnes
  • 2009: Cybernetisk Selskap
  • 2010: Olav Stanly Kyrvestad
  • 2011: Lena Korsnes og Fritz Albregtsen
  • 2012: Sigrun Vedø Lien

Følgende har fått initiativtagerprisen:

  • 2005: dagen@ifi
  • 2006: Arild Waaler og Einar Broch Johnsen
  • 2007: Mats Høvin og Omid Mirmotahari
  • 2008: Knut Mørken
  • 2009: Hans Petter Langtangen
  • 2010: Espen Angell Kristiansen, Bendik Opstad, Fredrik Valdmanis, Margunn Aanestad og Irene Olaussen
  • 2011: Jubileumssekretariatet (UiO200) og Lars Groth.
  • 2012: Jim Tørresen

Fjorårets blogginnlegg her på Dærnt´s corner om instituttleders priser finner dere her.

Digitalisering i industriell produksjon

I neste uke, tirsdag 11. desember avholder Teknologirådet et seminar om automatisering og robotisering i industriell produksjon. Seminaret er åpent for alle og du kan melde deg på her.

Jeg skal selv holde et innlegg med den smått ambisiøse tittelen: «Hvordan digitalisering endrer industriell produksjon?». Dette er et stort tema, men vi kan i dag slå fast at tilnærmet all industriell produksjon involverer datasystemer eller digitalisering i en eller annen form!

Filmkomedien Modern Times av Charlie Chaplin fra 1936 handlet om vilkårene for arbeiderklassen i USA i de økonomiske nedgangstidene på 1930-tallet. En av de mest fascinerende scenene fra denne filmen er da hovedpersonen (spilt av Charlie Chaplin) arbeider på et samlebånd der den eneste jobben er å skru inn en skrue, og hvordan denne monotone jobben påvirker adferden til denne personen. Filmen gav også en slags illustrasjon på behovet for å automatisere industriell produksjon.

Automatiseringen av industriell produksjon startet med at vi utviklet maskiner/teknologi som kunne erstatte muskelkraft og etter hvert ulike former for rutinearbeid, dvs. den type jobber hovedpersonen i Modern Times måtte utføre. De første maskinene var i sin helhet basert på mekaniske prinsipper. I dag styres og kontrolleres de fleste industrielle verktøy og prosesser av datasystemer og gjennom hensiktsmessige digitale grensesnitt, men datasystemer i industriell produksjon er imidlertid mye mer styring og kontroll. Her er noen eksempler:

  • Ulike former for simulering på datamaskin bidrar til utvikling av nye og mer effektive produksjonsprosesser.
  • Utviklingen av stadig mindre datamaskiner (miniatyrisering) skaper nye muligheter i form av sensorer og aktuatorer.
  • Automatisert overføring av digitale modeller av gjenstander og prosesser til produksjonutstyr. 3D skrivere er en innretning som former materialer basert på en passende digital representasjon av gjenstander. Det benyttes ulike former for plastmaterialer, men det finnes også 3D-skrivere som skriver ut metallstrukturer.
  • Roboter som utfører stadig mer komplekse oppgaver, herunder roboter som kan ressonere og utføre oppgaver basert på egne observasjon av hva som skjer.

Verden har på mange områder kommet svært langt i utnyttelsen av datasystemer i industriell produksjon. Utviklingen frem til i dag har vært stor, men sannsynligvis relativt beskjeden i forhold til hva som kommer til å skje innen bruk av datasystemer i industriell produksjon i fremtiden.  I mitt foredrag på Teknologirådets seminar skal jeg trekke frem et eksempel fra «reverse engineering», samt si litt om hva 3D-skriveren kan komme til å bety i fremtiden.

 

Slaget i Dubai

I disse dager avholder ITU (International Telecommunication Union), som er FNs organ for IKT og særlig for utvikling og regulering av kommunikasjon over kloden og mellom nasjoner, kongressen «The World Congress on International Telecommunication» (WCIT 12) i Dubai. Konferansen handler om å videreutvikle internasjonale avtaler knyttet til global (digital) kommunikasjon der et åpent og inkluderende Internett spiller en stadig viktigere rolle.

Slik jeg tolker signalene fra Dubai vil noen nasjoner ha mer kontroll over innholdet på Internett. I sin mest banale form kan dette bety;

  • kontroll av hva disse nasjonenes borgere kan publisere på Internett,
  • hva disse nasjonenes borgere får tilgang til gjennom Internett fra andre deler av verden, og
  • hva andre deler av verden får tilgang til over Internett fra organisasjoner og enkeltpersoner innenfor disse nasjonene.

Dette strider mot Internetts grunnleggende idé, og skulle disse nasjonene få gjennomslag for mer kontroll av innholdet som produseres er dette definitivt et slag mot den ytringsfriheten.

Internett skal være en åpen kanal for kunnskapsutveksling for alle mennesker uansett hvor de befinner seg på kloden.  Norge står på den riktige siden, og jeg satser på at den norske delegasjonen i Dubai har tilstrekkelig mange nasjoner med seg for fortsatt utvikling av Internett som et åpen og inkluderende kommunikasjonsnettverk for hele verdens befolkning.

Programmering og mitt liv med for-løkker

Dette innlegger er skrevet på invitasjon fra Torbjørn Marø til hans julekalender på Programmeringsbloggen. Mitt innlegg ble publisert søndag 2. desember 2012. Takk til Torbjørn, og for alle som venter på jul og er bare litt interessert i hva som rører seg i programmeringens verden, følg med på Programmeringsbloggen frem mot jul.

Programmering og mitt liv med for-løkker
Årets julekalender her på programmeringsbloggen til Torbjørn er dedikert til gjester, som i all hovedsak er programvareutviklere. Det er mange år siden jeg programmerte, så det er med en viss ydmykhet jeg har tatt på meg oppgaven å komme med et bidrag.

Som leder av Institutt for informatikk ved Universitetet i Oslo er jeg selvfølgelig opptatt av programmering, og kanskje først og fremst utdanning av gode programvareutviklere. Institutt for informatikk driver også forskning på området, f.eks. hvordan skal fremtidens programmeringsomgivelse være, hva vil fremtidens programmeringsspråk inneholde, hvordan sikre høy programvarekvalitet i distribuert systemer, parallell programmering for store beregninger og flerkjerne prosessorer, og metoder for program- og systemutvikling.

Programmering – kjernen i informatikk
Informatikk er lærer om hvordan datasystemer konstrueres og brukes. Datasystemer  består av en eller flere datamaskiner (maskinvare), nettverk bestående av kommunikasjonslinjer mellom datamaskiner, ulike former programvare som utfører definerte oppgaver, forskjellige målesystemer (sensorer) som fanger data, innretninger som utfører oppgaver (aktuatorer), grensesnitt og/eller relasjonen til den eller de som bruker systemet, samt ulike former for medier der data kan oppbevares. Datasystemer formes i all hovedsak av programvare utviklet i et passende programmeringsspråk. Programvare betraktes derfor som kjernen i et datasystem, og utvikling av programmeringskompetanse står sentralt i enhver informatikkutdanning.

Hvordan lærer studentene programmering?
Grunnfilosofien i utdanningen av programmerere/utviklere ved Institutt for informatikk er ”learning by doing”. Studentene starter med å bygge enkle små programmer for deretter å utvide programmene med ny funksjonalitet for å løse større og større oppgaver. Brorparten av studentene får denne innføringen gjennom programmeringsspråket Java. For de som velger en mer matematisk eller naturvitenskapelig retning bruker vi Pyhton. Deretter går studentene over i en fase der de lærer ulike aspekter ved systemutvikling, som naturlig inkluderer en mer overordnet tilnærming til det å løse et gitt problem. Innenfor denne helheten tilbys ulike kurs der studentene får innføring i spesielle teknikker og metoder knyttet til de ulike studieprogrammene på instituttet. Programmeringsspråkene som brukes, i tillegg til Java og Pyhton, er C, SQL, Intel x86 (Assember), PROLOG og ML. Etter tre år er studentene klare for et arbeidsmarked der etterspørselen etter utviklere har vært og er meget stor. Mange (de fleste) velger imidlertid å gå videre med en masteroppgave innenfor forskningsfeltene til en av instituttets 13 forskningsgrupper.

Mitt liv med for-løkker
Jeg startet min karriere som programmerer gjennom å lære Simula og objekt-orientert programmering. (Min aller første blogg-artikkelDærnt´s Corner handlet om oppfinnelsen av objekt-orientert programmering og Simula på 1960-tallet.) Som numeriker og interessert i beregninger måtte jeg imidlertid ganske tidlig forholde meg til FORTRAN, men det ble raskt programmering i C og litt i C++ før min utviklerkarriere fordampet midt på 1990-tallet.

Min forkjærlighet for løkker, og særlig for-løkker handlet selvfølgelig om at jeg drev med beregninger der jeg bl.a. arbeidet med å finne strukturer i, på den tiden, relativt store mengder ustrukturerte data.

La oss anta at de ustrukturerte data var punktmålinger som beskriver en eller annen flate i rommet, se figuren som viser en spesiell terrengmodell på kanten av et gammelt krater fylt med vann. Disse flatene kunne være alt fra terrengmodeller og geologiske strukturer til overflater på indre organer i kroppen. Spørsmålet var hvor mange punkter trengte jeg og hvor måtte disse punktene ligge for at jeg ved hjelp av en passende matematisk representasjon skulle kunne beskrive denne flaten med en gitt nøyaktighet i forhold til målingene.

Her er det selvfølgelig minst én løkke for å løpe gjennom alle datapunktene, men det er på langt nær nok. Et spørsmål var å finne ut hvor mange ganger måtte jeg gå gjennom alle punktene for å finne de signifikante punktene og for hver gang bestemme meg for hva var kjennetegnet til et signifikant punkt og til syvende og sist å velge disse punktene.  Det finnes mange måter å gjøre dette på, noen mer sofistikerte enn andre og mange av disse er det tilnærmet umulig å forklare i prosa (krever matematisk notasjon), så jeg velger her å forklare en litt forenklet tilnærming:

  1. Vi starter med en gjennomgang av punktene der jeg mer eller mindre tilfeldig velger en liten delmengde av punktene.
  2. Jeg lager så en flate ved hjelp av de valgte punktene og en passende matematisk funksjon som beskriver en flate.
  3. Jeg måler feilen mellom flaten og punktene.
  4. Jeg plukker så ut nye punkter der feilen er stor (og i noen tilfeller forkaster jeg også punkter som er valgt tidligere da disse ikke viser seg å være signifikante)
  5. Dersom feilen er liten nok (og i noen tilfeller også oppfyller andre kriterier, for eksempel et passende kriterium for glatthet) er jobben gjort og jeg er ferdig, hvis ikke starter jeg på nytt med punkt 2.

Her er valgmulighetene mange, både i forhold til valg av punkter, hvilke matematisk funksjon jeg vil bruke for å representere flaten og hvordan denne funksjonen plasseres i rommet. (Det som brukes mest er varianter av minste kvadraters metode.) Jeg skal ikke gå videre inn på dette, men jeg håper leseren kan leve seg inn i at disse metodene krever mye tenkning i forhold til hvordan løkker skal konstrueres slik at beregningene blir mest mulig effektiv.

Bildene viser de originale terrengdata (venstre), en tilnærming som bruker ca. 4% av datapunktene (midten), og en tilnærming til originalen som bruker ca. 0.7% av de opprinnelige datapunktene (høyre). Bildene er generert på 1990-tallet.

 

GOD JUL!

Jakten på hitfaktoren

Sverre Holm

Dette innlegget sto på trykk i Dagens næringsliv lørdag 1. desember 2012, og er skrevet sammen med professor Sverre Holm her på Institutt for informatikk. Sverre er også en aktiv blogger med egen side og en serie med innlegg på kollokvium.no.

I sommer hadde NRK et intervju med Oddvar Ruud fra popduoen Franklin, som nå er oppløst. Vi husker denne duoen fra sommerhiten ”Bombadilla Life” fra 1989. Den lå på VG-lista i 16 uker og klarte førsteplassen flere ganger. Da Ruud forsøkte å forklare hvorfor akkurat denne låta ble så populær, svarte han bare X-faktoren. Betegnelsen X brukes i forskning om det ukjente, eller det man skal finne ut. Er det mulig å bruke matematikk for å finne X-en til Ruud?

Det er kjent at for en hitlåt så øker energien forsiktig utover i låten. Dessuten ligger ofte rytmen på rundt 120 bpm (taktslag pr minutt). Det finnes også websider som kan fortelle deg om akkurat din låt har et potensial, se bla. http://uplaya.com/ og  http://scoreahit.com/. Den siste analyserer 23 forskjellige egenskaper ved låten, men likevel har den bare en treffsikkerhet på omkring 60%.

I et samarbeid mellom musikkvitenskap og informatikk tok Risto Holopainen, vinner av Spellemannprisen 2008 som årets samtidskomponist, doktorgrad nå i sommer. Hans tema var autonome instrumenter og de mest spennende instrumentene var de som var styrt av kaosteori. Det er interessant i seg selv, men hans arbeid viser at det er langt fram til en datamaskin som kan skape noe som nærmer seg den X-faktoren som en komponist har følelse for når han skaper musikk.

Kaosteori er imidlertid beslektet med teorien bak fraktaler, som er strukturer som kopierer seg selv i ulik størrelse. Et eksempel er kystlinjen av Norge. Kystlinjen på et kart over et stort område er til forveksling lik kystlinjen på et kart over et mindre område. Det finnes mål på hvor kaotisk disse linjene er. Mens en pen sirkel har fraktal dimensjon lik 1 har den irregulære kysten av Norge fraktal dimensjon 1.52, mens kysten av Storbritannia bare har fraktal dimensjon 1.25 (Fra boka ”Fractals” av Jens Feder, 1988). Jo større fraktal dimensjon jo mer tilfeldig eller kaotisk fremstår strukturen.

Selv om det er langt fra at kaos- og fraktalteori kan skape god musikk så kan kanskje matematikken bak bidra til å forstå noe mer av hva som kan skape god musikk. Hitfaktoren X har trolig noe å gjøre med at det er en passe blanding av forutsigbarhet og overraskelse i musikken. I dette bildet vil musikk med høy fraktal dimensjon overraske mer enn musikk med lavere fraktal dimensjon. Er det noe her som gjør at vi kan øke treffsikkerheten i forhold til å bestemme hva som skal til for å finne X-n til Oddvar Ruud?

Hva i musikken er det som er fraktalt? Det har vært kjent siden 1970-tallet at både lydstyrken og tonehøyden varierer fraktalt. Begge to varierer som regel ganske langsomt, langsommere enn noen få ganger i sekundet. En fraktal variasjon i tonehøyde viser seg ved at det er flere sprang på èn halvtone enn på to (heltone), enda færre på tre (ters) osv. Klassiske komponister som Bach og Mozart følger ganske like fraktale fordelinger, mens musikken til en samtidskomponist som Stockhausen viste seg ikke å følge noen fraktal fordeling i det hele tatt. Det er tydeligvis dette som kjennetegner atonal musikk. Dette er interessant nok, men det er nok litt for grove kategorier til å kunne gi brukbare svar.

Tidligere i år ble det imidlertid publisert en studie som også viser at rytmemønsteret varierer på en fraktal måte (Levitin, Chordia, Menon: ”Musical rhythm spectra from Bach to Joplin obey a 1/f power law”). De fjernet all variasjon i lydstyrke og tonehøyde så de bare satt igjen med en puls for hver rytmeenhet. Så ble intervallene mellom rytmeslagene analysert. Symfonier viste seg å være ganske forutsigbare i rytmen, mer som kysten av Storbritannia. På den andre enden av skalaen var Joplins ragtime-musikk som var mer som norskekysten. Overraskende var det også at komponister i samme sjanger og innenfor samme tidsperiode er forskjellig. Beethovens rytme er mer forutsigbar enn den til Mozart, mens Haydn faller et sted midt i mellom.

Egentlig er det ikke så overraskende at noe av hitfaktoren X ligger i rytmen. Det nye er imidlertid at man har fått en måte å måle det på. Dermed er denne analysen et lite bidrag på veien til å forstå enda bedre, ved hjelp av matematiske og fysiske begreper, hva det er som appeller i musikk. Om denne kunnskapen til syvende og sist gjør at vi finner X-faktoren i musikk er usikkert. Det vil uansett være vanskelig å måle menneskets kreative evne, men du verden hvor interessant det vil være å kunne gjøre det!

Jul med Programmeringsbloggen

Torbjørn Marø er mannen bak Programmeringsbloggen. Bloggen handler selvfølgelig om ulike aspekter ved programmering – en krevende og viktig aktivitet som utføres av utallige mennesker over hele verden og i en verden som blir stadig mer avhengig av datasystemer som drives av dataprogrammer. Marø skriver følgende om formålet bloggen: «Målet med bloggen er å stimulere meg selv og alle andre til kontinuerlig eksperimentering og læring.» Programmeringsbloggen er en leseverdig blogg med opptil flere friske diskusjoner om hva som er riktig og viktig innen programmeringsfaget.

Nå er det snart jul og for tredje året på rad skal Torbjørn Marø åpne luke for luke i sin julekalender på Programmeringsbloggen. For to år siden (2010) handlet Marø´s julekalender om 24 personer med stor betydning for utviklingen av datamaskinen og programmeringsfaget. I fjor tok Marø for seg 24 forskjellige programmeringsspråk, og fra 1. til 24. desember 2011 presenterte han sine vurdering av; Lua, Autolt, Euphoria, Boo, Cobra, F#, Haskell, Unlambda, Nemerle, Fantom, GNU Octave, Oz, CoffeeScript, Smalltalk, Rebol, Betterave, Cobol, Forth, Factor, Befunge, programmeringsspråket D, Prolog, Regex, og på selveste julaften falt valget på en Euler DSL. Marø´s egen oppsummering av julekalender for 2011 er også interessant lesing der han også begrunner hvorfor valget falt på akkurat disse 24 programmeringsspråkene.

I år har Marø «outsourcet» julekalenderen til 24 inviterte gjester, og jeg er altså en av disse som skal skrive om programmering i «Programmerernes Julekalender 2012″ på Programmeringsbloggen. Litt skremmende for en som i beste fall var en habil programmerer for 20 år siden. Mitt bidrag er levert og jeg venter i spenning på åpningen av de 24 lukene i årets mest nerdete julekalender. Følg med på programmeringsbloggen – det er kun to dager til det braker løs!

PS: Det finnes også andre julekalendere med et visst nerdete preg!