Bachelor i programvareutvikling - BPU

Innledning

I dagens samfunn er bruk av datateknologi en naturlig og nødvendig del av folks hverdag både privat og i jobb/skole-sammenheng. De aller fleste er vanlige brukere av ulike programvareløsninger, og nøyer seg med å anvende de nye spennende teknologiene.  Bachelorstudiet i Programvareutvikling er derimot for dem som ønsker en yrkeskarriere der man jobber med å forme og utvikle morgendagens IT-løsninger.  I næringsliv og offentlig sektor er det stor og vedvarende etterspørsel etter programvareutviklere. 

Med bakgrunn i utviklingen innen datafagfeltet de siste ti år (dokumentert gjennom IEEE/ACMs Computing Curricula), har vi sett behovet for et studium på bachelornivå med spesialisering innen nettopp programvareutvikling og kan som eneste høgskole/universitet i landet tilby dette.  Etter endt studium sitter kandidatene med etterspurt kompetanse og vil oppleve faglig utfordrende oppgaver i jobbsammenheng.

Studiets varighet, omfang og nivå

Studiet er en 3-årig utdanning (180 studiepoeng) på lavere grad (Syklus 1) der kandidatene tildeles graden Bachelor i programvareutvikling (engelsk: Bachelor in Software Engineering). Studiet går over seks semestre, og hvert semester består av tre eller fire emner som undervises parallelt.  Første studieår har så mye felles med de øvrige informatikkrettede bachelorstudiene ved Høgskolen, at det er gode muligheter for overgang mellom studiene. 

Etter endt studium er man kvalifisert til å jobbe med utvikling og vedlikehold av ulike typer programvare, alt fra mobil-apper til tyngre forretningsapplikasjoner. Studiet kvalifiserer til opptak ved en rekke IT-relaterte masterstudier i Norge, deriblant både master i Applied Computer Science, Informasjonssikkerhet og Interaksjonsdesign ved Høgskolen i Gjøvik. Siden hele studiet er bygd opp med utgangspunkt i internasjonale standarder for tre-årige laveregrads datautdanninger, er det også meget godt tilpasset mastergradsstudier utenlands.

Forventet læringsutbytte

Kandidaten opparbeider i studiet kunnskaper om og ferdigheter innen hvordan man i profesjonell sammenheng jobber seg fra en idé via ulike utviklingsstadier frem til velfungerende programvare.  De to områdene kandidaten oppnår stor faglige fordypning innen er systemutvikling og programmering. 

Kunnskaper:  

Systemutvikling: Kandidaten kan gjøre rede for profesjonell arbeidsmetodikk for utvikling av datasystemer.  Kandidaten har inngående kunnskap om alternative systemutviklingsprosesser og hvordan man analysere problemområdet og dokumenterer krav til en programvare.  Man har innsikt hvordan designe programvare på basis av forståelse for programvarearkitektur, internetteknologi, databaser og utforming av gode brukergrensesnitt.  Videre har kandidaten innblikk i mulighetene som ligger i både å utvikle og anvende åpen kildekode, og kjenner nødvendigheten av å sikre forretningsmessig forankring av IT-prosjekter.

Programmering: Kandidaten har evne til å skrive effektiv programkode og kan både strukturert og objektorientert programmering i ulike programmeringsspråk.  Videre har man kunnskap til å undersøke og videreutvikle eksisterende kildekode og kan anvende integrerte utviklingsmiljøer (IDE).  Kandidaten har også innblikk i programvareutvikling for mobile plattformer. 

Som grunnlag for å drive systemutvikling og programmering er kandidaten kjent med hovedtrekk innen informatikkrelatert matematikk, datakommunikasjon, operativsystemer og informasjonssikkerhet, og har innblikk i den historiske utviklingen og nye trender innen programvareutvikling. Kandidatene kjenner vurderinger som gjøres rundt bruk av standardprogramvare kontra egenutvikling og nødvendigheten av avklaringer rundt lisensiering ved bruk og videreutvikling av programvare.

Ferdigheter:

Kandidaten kan utforme IT-løsninger som tilfredsstiller krav fra brukerne gjennom opparbeidede ferdigheter innen systematisering av kravene, analyse av alternative teknologianvendelser og design av programvare.  Kandidaten kan skrive effektiv kildekoden for løsningen, og er i stand til å se utviklingsoppdraget i forhold til økonomiske og tidsmessige rammer.  

I store prosjekter kan kandidaten bidra i alle ledd i prosessen og være en kjerneressurs innen programmering av løsningen, mens man i mindre prosjekter har ferdigheter til å lede deler av utviklingsarbeidet og ha ansvaret for programmeringen. Kandidaten kan å etablere et teknologisk utviklingsmiljø, sikre god kvalitet med bruk av konfigurasjonsstyringssystemer og behersker verktøy til støtte for utvikling av datasystemer.

Kandidaten kan argumentere skriftlig og muntlig rundt valg mellom alternative programvareløsninger på bakgrunn av systematiske søk i relevante faglige kilder og innblikk i et spekter av alternative tilnærminger.

Generell kompetanse

Kandidaten er kompetent til å fylle en rolle som brobygger mellom datateknologien, brukerne og beslutningstakerne i virksomheter. Erfaringer fra prosjekter i studiet har gitt kandidaten grunnleggende ferdigheter innen styring av prosjekter og håndtering risikoer i mindre utviklingsoppdrag.

Kandidaten er bevisst på nødvendigheten av stadig å sette seg inn i nye teknologier og er i stand til å utvide egen kunnskap, og er bevisst på økonomiske, etiske og miljømessige vurderinger som må gjøres i forbindelse med utøvelse av sitt fremtidige yrke.

Internasjonalisering

Studentene kan velge å ta 3. eller 4. semester ved en av HiGs samarbeidsinstitusjoner i utlandet.  Øvrige studiesteder vurderes etter søknad.  Forutsetningen er at man finner et studiested som dekker de emnene som inngår i studieplanen det aktuelle semesteret.

5. semester er tilrettelagt for tilreisende internasjonale studenter innen informatikk.  Studenter vil ha et utvalg av informatikkemner som undervises på engelsk.  Hvilke emner tilbys i er presisert i emnebeskrivelsene.

Målgruppe

Studiet passer for alle som har interesse av å lære seg programvareutvikling. Det stilles ikke krav om spesielle forhåndskunnskaper innen data. Det er derimot viktige at man er motivert for ivareta en fremtidig rolle som brobygger mellom datateknologi og brukerorganisasjon.

Studiet passer både elever som kommer rett fra videregående skole og søkere som etter noen år i yrkeslivet har fattet interesse for utvikling av datasystemer.

Opptakskrav og rangering

Opptakskrav til studiet er generell studiekompetanse med fordypning i Matematikk R1 (2MX, 2MY eller 3MZ) eller Matematikk (S1 + S2) (se Forskrift om opptak til høyere utdanning § 4-3).

Søkere som mangler fordypningen i matematikk kan søke opptak under forutsetning av at man gjennomfører høgskolens R1-kurs i matematikk som starter noen uker før ordinær studiestart.

Studiets innhold, oppbygging og sammensetning

Enkelte emner er felles grunnlagsemner innen informatikk, mens øvrige emner er studiespesifikke og gir studentene som uteksamineres en klar faglig profil. Programvareutvikling dreier seg om å lage dataprogrammer som er stabile, effektive og brukervennlige levert til rett tid og kostnad. En programvareutvikler må kunne analysere en bedrifts IT-behov og designe en arkitektur for løsningen som skal leveres. Utviklingen av et ferdig produkt består som oftest av programmering, bruk av programvarebiblioteker og integrering mot eksisterende løsninger.

Studiet har derfor hovedfokus på programmering og systemutvikling, men dekker hele spekteret fra tekniske til anvendelsesorienterte datafag. Datatekniske emner som Datakommunikasjon og Operativsystemer skal gi forståelse for den underliggende teknologiske plattformen de ulike systemene kjøres på.  Parallelt med denne teknologiske tilnærmingen utvikles kandidatenes ferdigheter til også å se IT fra et anvendelsesorientert ståsted. Emner som IT-ledelse, Innføring i informasjonssikkerhet, Datamodellering og databasesystemer gir forståelse for IT fra brukernes og oppdragsgivernes ståsted.

Programmeringsferdighetene bygges steg for steg opp gjennom hele studiet i emner som Grunnleggende programmering, Objektorientert programmering, Algoritmiske metoder, Programmering mot Mobile Plattformer og Programutvikling. Studentene utfordres til å sette seg inn i ulike programmeringsspråk og det legges vekt på at studentene programmerer mye.

Systemutviklingskompetansen får studentene utviklet gjennom studiet med emnene  Systemutvikling, Ergonomi i digitale medier, WWW-teknologi, Objektorientert systemutvikling og ikke minst Bacheloroppgaven.  Fokus er rettet mot utvikling av helhetlig og profesjonelt anvendbar programvare og favner hele syklusen fra kravspesifisering og løsningsdesign til utvikling av reelle applikasjoner med bruk av moderne utviklingsrammeverk.  Sammenhengen mellom enkeltemnene som inngår i studiet kan betraktes slik :

Emnebeskrivelse  
For hvert av emnene i tabellen under er det utarbeidet en detaljert emnebeskrivelse. Denne gir en beskriver av læringsutbytte og innhold i emnet. Av denne fremgår også om emnet bygger på bestemte forkunnskaper.

Bachelor i programvareutvikling har felles første semester med Bachelor i informasjonssikkerhet og Bachelor i drift av nettverk og datasystemer, og stor likhet med Bachelor i spillprogrammering.  Overgang mellom disse studiene er godt tilrettelagt, forutsatt ledig kapasitet ved de studiene.

Arbeids- og undervisningsformer:  
I studiet er det lagt vekt på at studentene skal erfare et mangfold av arbeids- og undervisningsformer. Gjennom studiet vil de oppleve varierte læringsformer basert på kvalitetsreformen for høyere utdanning.
 

Undervisningsformer som anvendes er:

  •  Forelesninger
  •  Mindre prosjektarbeid og øvingsoppgaver integrert i ordinære emner
  •  Store utviklingsorienterte prosjektarbeider
  •  Mappearbeid

I tilknytning til dette vil studentene også erfare ulike vurderingsformer som dagseksamener, prosjektkarakterer og mappevurdering. 

Tekniske forutsetninger

Det forutsettes at studentene disponerer egen bærbar datamaskin.

Emnetabeller

1. studieår Bachelor i programvareutvikling 2014/2015

Emnekode Emnets navn O/V *) Studiepoeng pr. semester
  S1(H) S2(V) S3(H) S4(V) S5(H) S6(V)
IMT1031 Grunnleggende programmering O 10          
REA1101 Matematikk for informatikkfag O 10          
IMT1121 Innføring i informasjonssikkerhet O 10          
IMT1082 Objekt-orientert programmering O   10        
IMT2243 Systemutvikling O   10        
IMT2431 Datakommunikasjon og nettverkssikkerhet O   10        
Sum: 30 30 0 0 0 0
*) O - Obligatorisk emne, V - Valgbare emne

2. studieår Bachelor i programvareutvikling 2015/2016

Emnekode Emnets navn O/V *) Studiepoeng pr. semester
  S1(H) S2(V) S3(H) S4(V) S5(H) S6(V)
IMT2021 Algoritmiske metoder O     10      
IMT2571 Datamodellering og databasesystemer O     10      
IMT2072 Ergonomi i digitale medier O     10      
IMT2291 WWW-Teknologi O       10    
IMT2282 Operativsystemer O       10    
IMT3681 IT-ledelse O       5    
Valgemne, 5 st.p. V       5    
Sum: 0 0 30 30 0 0
*) O - Obligatorisk emne, V - Valgbare emne

3. studieår Bachelor i programvareutvikling 2016/2017

Emnekode Emnets navn O/V *) Studiepoeng pr. semester
  S1(H) S2(V) S3(H) S4(V) S5(H) S6(V)
IMT3281 Applikasjonsutvikling O         10  
IMT3102 Objektorientert systemutvikling O         10  
IMT3662 Mobile Development Theory O         5  
Valgemne, 5 ECTS V         5  
Valgemne, 10 st.p. V           10
IMT3912 Bacheloroppgave O           20
Sum: 0 0 0 0 30 30
*) O - Obligatorisk emne, V - Valgbare emne

Anbefalte valgemner

Emnekode Emnets navn O/V *) Studiepoeng pr. semester
  S1(H) S2(V) S3(H) S4(V) S5(H) S6(V)
IMT3441 Database- og applikasjonsdrift V       10    
REA1081 Statistikk V       5    
IMT2661 Design av mobile medier V       5    
SMF1071 Organisasjon og ledelse V       5    
IMT3612 GPU-programmering V       5    
IMT3501 Programvaresikkerhet V         10  
IMT3672 Mobile Development Project V         5  
IMT3602 Professional Programming V           5
IMT3541 Veiledet praksis i medie- og informatikkfag V           10
IMT3591 Kunstig intelligens V           10
Sum: 0 0 0 0 0 0
*) O - Obligatorisk emne, V - Valgbare emne