Stockholms universitet
Go to this page on our english site

Kandidatprogram i datavetenskap

En dator kan göra massor men gör absolut ingenting som den inte har blivit instruerad att göra av en människa. Kandidatprogrammet i datavetenskap gör dig till en utmärkt mjukvaruutvecklare. Du får lära dig hur en dator fungerar och hur man skapar program med olika verktyg, språk och problemlösningsmodeller.

Vi lever i en värld där datorer hanterar allt från samtal, bilder, musik och film till handel och pengar. Men oavsett om det handlar om en mobiltelefon, en GPS eller en modern tvättmaskin, så kan dessa inte fungera utan mjukvaran – programvaran – som låter oss chatta, ringa, e-posta, komprimera musik, navigera eller tvätta. Sökmotorer på internet och operativsystem är andra exempel på mjukvara som förekommer i miljoner människors vardag. Det stora flertalet program har inget "gränssnitt" och syns inte alls utan verkar bakom kulisserna och får samhället att fungera genom att växla rätt på tunnelbanan eller styra en pacemaker.

Programmet förutsätter inte att du har teknisk kunskap om datorer och programmering innan du börjar. Upplägget är både teoretiskt och praktiskt med många programmeringsuppgifter som du löser både själv och tillsammans med andra i en modern datormiljö. Om du är en kreativ person som gillar utmaningar och har förmågan att lösa problem, är detta program någonting för dig.

Jämfört med kandidatprogrammet i data- och systemvetenskap ger det datavetenskapliga programmet dig djupare kunskaper i mjukvaruutveckling - hur man konstruerar program, verifierar en design och skriver program som körs över många maskiner samtidigt över Internet. Efter att ha gått kandidatprogrammet i datavetenskap har du kompetens att jobba med programutveckling, oavsett om det gäller stora system, internetlösningar eller att utforma användargränssnitt.

Med kompetens från kandidatprogrammet i datavetenskap väntar en framtid med stora möjligheter eftersom din kompetens kommer efterfrågas inom många olika sorters verksamheter.

Programmering är inte bundet till något fysiskt

Det finns inga begränsningar, varken i tid eller rum, för vad som går att hitta på med programmering.

Beatrice Åkerblom Foto: Carina Bergholm
Beatrice Åkerblom, programansvarig för Kandidatprogrammet i datavetenskap på DSV. Foto: Carina Bergholm

När du ska tillverka något är det oftast så att ett visst material innebär olika begränsningar som du har att förhålla dig till. Men det är inte fallet när det gäller programmering.

– Det mest fascinerande är att jag inte är bunden till något fysiskt, säger tycker Beatrice Åkerblom, doktorand, lärare och programansvarig för Kandidatprogrammet i datavetenskap på DSV. Ett program byggs av något immateriellt. Jag behöver till exempel inte tänka på att det jag skapar kanske välter.

Det var gummistövlarna som avgjorde!

Beatrice Åkerbloms första kontakt med programmering var i gymnasiet.

– Vi skulle välja inriktning mellan miljöteknik och datavetenskap. Eftersom jag ville ha mina Dr Martenskängor på mig som inte funkade i skogen så valde jag data. Det var gummistövlarna som avgjorde!

– Vi fick programmera i Basic, Pascal och C. Jag tyckte att det var ganska roligt, precis som med matte, men jag tänkte inte då att det skulle bli min framtid. Efter gymnasiet jobbade jag och läste konstvetenskap och arkeologi. Det var när jag skrev min uppsats i arkeologi som jag köpte min första dator. Då blev jag intresserad igen och installerade en Pascal-kompilator och kom fram till att det är nog detta jag ska göra. Jag kom in på det då fyraåriga programmet i data- och systemvetenskap här på DSV. Nu skriver jag på slutet av min doktorsavhandling ”On Typability in Programming Languages” som handlar om hur vi med hjälp av statiska typer kan fånga in dynamiskt beteende i program.

Vad är skillnaden mellan data- och systemvetenskap och datavetenskap?
– Data- och systemvetenskap utläses datavetenskap och systemvetenskap. De som läser Data- och systemvetenskapliga kandidatprogrammet läser också en del systemvetenskap. Datavetenskap innebär mer programmering med mindre fokus på organisationer och organisationsanalyser. Systemvetenskap handlar mycket om att modellera och förstå sig på hur informationsflöden sker inom en organisation. Datavetenskap fokuserar mer på programmering och dess matematiska grund. Vi kan till exempel titta på två versioner av ett program och räkna på vilken av de två som är bäst och som kommer att gå snabbast att köra.

Som student får du lära dig olika programmeringsspråk på Kandidatprogrammet i datavetenskap.

– På flera av de första kurserna använder vi Java för att alla ska få tid att fokusera på att lära sig programmera. På senare kurser som till exempel Programspråk och paradigmer kan vi då istället fokusera på att förstå skillnaderna mellan olika språk och använder fyra olika språk i samma kurs Java, Javascript, Clojure och Prolog för att illustrera detta. Upplägget ger förståelse för hur olika språk kan fungera och gör att det blir lättare att ta till sig nya. Vi vill att studenterna ska bli orädda att ta till sig nya språk. En bra liknelse är lingvistik, som gör att du blir bättre på att förstå hur ett nytt språk är uppbyggt och får då också lättare att lära dig fler.

Vi vill att studenterna ska bli orädda att ta till sig nya språk

– Programmet innehåller fler kurser som använder andra språk än Java, till exempel kursen i C och C++. På logikkursen används logikspråk som Prolog och på kursen Parallella och distribuerade system används både Java och Erlang.

Vad är ditt favoritspråk?
– Det växlar. Men jag använder oftast Python. Det ligger alltid närmast när jag vill få nåt gjort, räkna ut något lite snabbt eller lösa ett problem, som till exempel att administrera inlämningar från studenterna. Ofta skriver jag ett Pythonprogram som sedan startar andra program skrivna i språk. När jag ska rätta inlämningsuppgifter kan till exempel själva testprogrammet vara skrivet i Java men jag låter ett Pythonprogram sätta igång och köra testprogrammet på inlämningsuppgifterna.

Programmering kan också användas till att förenkla mycket i vardagen.

– Så fort jag behöver räkna ut nåt, döpa om eller sortera filer i datorn. Eller vill slippa att klicka, markera och dra dem. Då skriver jag ett program som fixar allt!

The Advent of Code

– En kul men onyttig grej med programmering, som jag gör varje år, är The Advent of Code. Det är en adventskalender där det varje dag publiceras ett programmeringsproblem som ska lösas så snabbt som möjligt. Du får använda vilket språk du vill och den som är snabbast får flest poäng den dagen. Några tidigare studenter listar hur alla ligger till och så tävlar vi mot varandra, avslutar Beatrice Åkerblom.