Bachelor i Programmering [Spill | Applikasjoner] - BPROG

Innledning

I dagens samfunn er bruk av programvare en naturlig og nødvendig del av folks hverdag både privat og i jobb-/skolesammenheng. De aller fleste nøyer seg med å anvende de nye spennende teknologiene.  Bachelor i Programmering er utdanningen for deg som ønsker å programmere og utvikle morgendagens programvare. Gjennom studiet opparbeider du ferdigheter i å skrive god, effektiv og feilfri programkode i ulike programmeringsspråk og du får erfaring med de profesjonelle utviklingsverktøy som benyttes i IT-bransjen.  Studentene velger halvveis ut i studiet enten studieretning Spill som gir kompetanse innen utforming og programmering av dataspill, eller studieretning Applikasjoner der man fordyper seg i utvikling av webapplikasjoner og forretningsorienterte programvarelløsninger.  

Studentene blir med sin praktisk rettede programmeringskompetanse godt kvalifisert til faglig utfordrende oppgaver som programmerer og systemutvikler innen spill/mobil/web/forretningsapplikasjoner/skyløsninger.  Både virksomheter og privatpersoner krever stadig ny og bedre programvare og bare i Norge brukes det årlig mange titalls-milliarder kroner til programvareutvikling.  Det er dermed et vedvarende behov for nyutdannede kandidater med gode ferdigheter i programmering blant bedrifter og IT-konsulentforetak.  Her vil du møte spennende utfordringer som brobygger mellom en informasjonsteknologi i rivende utvikling og brukere med varierte og høye krav. 

Studiets varighet, omfang og nivå

Studiet er en 3-årig utdanning (180 studiepoeng) på lavere grad (Syklus 1) der kandidatene tildeles graden Bachelor i programmering [Spill | Applikasjoner]. Studiet går over seks semestre, og hvert semester består av tre emner som undervises parallelt. 

Forventet læringsutbytte

Kjernen i studiet Bachelor i programmering er at kandidatene etter endt utdanning har opparbeidet seg bred kunnskap om og gode ferdigheter i å utøve programmering i profesjonell sammenheng. Kandidatene vil ha forståelse for og erfaring i bruk av de utviklingsverktøy som benyttes i bransjen. Man har ferdigheter til å nyutvikle, integrere og vedlikeholde et bredt spekter av programvarer. 

Kunnskap - Kandidaten :
• kjenner historiske trekk innen programmering og karakteristika ved ulike programmeringsspråk
• har kunnskap om profesjonell arbeidsmetodikk for utvikling av programvare 
• har kunnskap om dataalgoritmer, databaser, operativsystemer og programvaresikkerhet spesielt rettet mot å programmere robuste og pålitelige løsninger
• kjenner og kan anvende matematiske metoder med særlig relevans innen programmering
• har forståelse for juridiske, sosiale og etiske konsekvenser av dataprogrammer og dataspill

Ferdigheter – Kandidaten:
• har ferdigheter til å skrive god, effektiv og feilfri kildekode og kan teste programvare
• kan utvikle ulike typer programvarer som kan kjøres på forskjellige plattformer og teknologier som web-applikasjoner, mobilløsninger, skybaserte tjenester og dataspill 
• kan programmere mindre løsninger fra bunnen av og har ferdigheter i å integrere eksisterende tjenester og moduler inn en helhetlig applikasjon med anvendelse av integrerte utviklingsmiljøer
• kan løse praktiske problemer innen dataprogrammering og spillutvikling og ivareta versjonshåndtering, informasjonssikkerhet og brukeropplevelse i utviklingsprosjekter
• kan undersøke, forstå og videreutvikle eksisterende kildekode i ulike programmeringsspråk 
• kan programmere gode løsninger på basis av forståelse for brukerkrav og designprinsipper

• Kandidater fra studieretning Spill har kunnskaper om spillteori og grafikk- og spillprogrammering og har ferdigheter til å utvikle dataspill
• Kandidatene fra studieretning Applikasjoner kjenner grunnprinsipper innen programvarearkitektur og –design og har ferdigheter til å utvikle og integrere applikasjoner med sammensatt funksjonalitet 

Generell kompetanse – Kandidaten:
• kan samarbeide i team for å utvikle og presentere løsninger på problemer muntlig og skriftlig 
• evner å finne og bruke relevante trykte og internettbaserte kilder for å løse algoritmiske, designmessige og tekniske problemer
• har innsikt i akademiske kommunikasjonsformer og evne til å argumentere for valg mellom alternative løsningsformer
• har forståelse av entrepenørskap og evne til å utvikle innovative løsninger med fokus på prototyping
• har evne til å oppdatere egen kunnskap og fortsette livslang læring

Internasjonalisering

Engelsk er «bransjespråket» innen programmering og større virksomheter har i økende grad en policy på å benytte engelsk i både intern og ekstern kommunikasjon. Gjennom hele Bachelor i programmeringsstudiet på Gjøvik legges det derfor stor vekt på å forberede studentene på å gå ut i et internasjonalt arbeidsmarked. Dette betyr at all pensumlitteratur og rundt halvparten av veiledning og forelesninger foregår på engelsk.  I en del emner holdes også eksamen på engelsk. Dette gjør mange av emnene tilgjengelig for internasjonale utvekslingsstudenter og man opplever et mangfoldig studiemiljø.

Det er lagt til rette for internasjonal utveksling i tredje semester forutsatt at man finner et studiested som dekker minst to av de tre emnene som er obligatoriske dette semesteret. Man finner mer informasjon og flere alternative studiesteder på hjemmesidene for internasjonalisering.

Målgruppe

Studiet passer for alle som er interessert i en yrkeskarriere eller et videre studieløp innen informatikk generelt og programmering spesielt.  Interesse for datafag er et godt utgangspunkt for å begynne på dette studiet, men det presiseres at man ikke trenger å ha hverken datakunnskaper eller programmeringserfaring fra tidligere.  Dette vil man opparbeide seg gjennom studiet.  Det sentrale er at man har en motivasjon til å jobbe med utvikling av applikasjoner og/eller spill i omgivelser preget av høy utviklingstakt, innovasjonsfokus og strenge krav om kvalitet i programkode. Studiet passer både elever som kommer rett fra videregående skole og for søkere som etter noen år i yrkeslivet har fattet interesse for programmering.

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 på Årsstudiet i Informatikk under forutsetning av at man gjennomfører høgskolens R1-kurs i matematikk som starter noen uker før ordinær studiestart.  Fra dette studiet vil man ha mulighet for senere å søke om overgang til Bachelor i Programmering, men dette vil da forutsette at det er ledige plasser.

Studiets innhold, oppbygging og sammensetning

Studiet gir en grunnleggende informatikkutdannelse, men med større vekt på programmering og applikasjonsutvikling enn det som er vanlig i slike studier. 

Første halvdel av studiet har mange felles emner (matematikk, programmering, algoritmer, databaser, systemutvikling, operativsystemer) med de andre informatikkbaserte bachelorstudiene ved NTNU i Gjøvik.  Dette gir generell teknologiforståelse og grunnleggende forståelse av datasystemer som danner fundamentet for senere spesialisering.  I de fleste av disse emnene står programmering sentralt.  Gjennom tett knytning til informasjonssikkerhetsmiljøet på Gjøvik legges det særlig vekt på gi studentene kompetanse innen informasjonssikkerhet og systematisk tilnærming til programvaretesting.

I hvert semester er det minimum ett studiespesifikt emne for å styrke studieidentitet, studiemotivasjon og faglig fordypning.  I fjerde semester velger studenten en av de to studieretningene der man virkelig kan fordype seg innen sitt interesseomeråde:

Studieretning Spill:  Her får man gjennom emner innen grafikkprogrammering, spillprogrammering og kunstig intelligens kunnskaper i å utvikle løsninger for visualisering, simulering og e-læring.  Spillgeneren har bredt om seg fra å være underholdningsfokusert til også å favne opplæring, assistanse, simulering og et vidt spekter av interaktive løsninger som baserer seg på spillteori. 

Studieretning Applikasjoner:Her settes utvikling av web-, forretnings-, mobil- og skyapplikasjoner i fokus.  Målet er å gi kandidatene kunnskaper om og ferdigheter i hvordan man i profesjonell sammenheng jobber seg fra en idé frem til velfungerende programvare som virksomheter tar i bruk.

Studiet avsluttes med en 20-studiepoeng bacheloroppgave der kandidatene i grupper utfører et programvareutviklingsoppdrag innen valgte studieretning.  Det legges vekt på evne til å implementere en programvare kombinert med gode faglige diskusjoner rundt løsningsvalg. 

Gjennom alle emner baseres studentenes arbeid på anvendelse av de samme støtteverktøy som man finner i bruk i profesjonelle virksomheter.  Dette gjelder alt fra prosjektadministrasjon og kvalitetssikring til samskriving av kode og testaktivitet.  

Fagmiljø
Det vil være fagmiljøene innen Medieteknologi og Informasjonssikkerhet ved NTNU i Gjøvik som underviser og har ansvaret for alle emnene i studiet med støtte fra realfagsmiljøet i de to matematikkemnene. I tillegg til faglærerne i emnene er det også mange forskningsaktive professorer og førsteamanuenser tett knyttet opp til studiet. Dette fagmiljøet har et svært internasjonalt preg og tilbyr master og doktorgradsutdanninger innen informatikk.

Mangfold av arbeids- og undervisningsformer
I studiet er det lagt vekt på at studentene skal erfare et mangfold av arbeids og undervisnings-former. Med bakgrunn i målsettingen om å gi studentene gode holdninger til videre læring etter endt studium, er det en fordel at studentene eksponeres for ulike undervisnings- og arbeidsformer. Gjennom studiet
vil de derfor erfare læringsformer basert på kvalitetsreformen for høyere utdanning som:

  • Forelesninger
  • Øvelser på datalab med veiledning av faglærer og/eller studentassistenter
  • Ukeoppgaver og obligatoriske øvingsoppgaver
  • Mindre prosjektarbeid integrert i ordinære kurs
  • Store utviklingsorienterte prosjektarbeider
  • Selvstudium

Prosjekt som arbeidsform tiltar utover i studiet og avsluttes i form av et bacheloroppgaveprosjekt i siste semester. Dette utføres med en ekstern virksomhet eller en intern forskningsgruppe som oppdragsgiver. Her skal studentene samarbeide om å programmere et spill eller en programvare hvor de får demonstrert tilegnede kunnskaper og ferdigheter. Det legges opp til at studentene skal kunne følge et og samme «utviklingsscenario» gjennom flere av studiets emner (Experience Design – Systemutvikling – Skyteknologier – Mobilutvikling) og dermed opplever en rød tråd i studiet på tvers av emner og semestre.

Vuderingsformer

I studiet vil studentene erfare ulike vurderingsformer og sensurordninger som tradisjonelle dagseksamen, prosjektoppgave, muntlig eksaminasjon, mappevurdering og kombinasjoner av disse.

Videre studier

Siden studiet gir en grunnleggende informatikkbakgrunn og er bygd opp med inspirasjon fra internasjonale standarder (ACM / IEEE) for læreplaner for tre-årige laveregrads datautdanninger, kvalifiserer det godt for mastergradsstudier innen informatikk utenlands. Studiet kvalifiserer også til opptak ved en rekke IT-relaterte masterstudier i Norge, deriblant både master i Applied Computer Science, Informasjonssikkerhet og Interaksjonsdesign ved NTNU. 

Tekniske forutsetninger

Det forutsettes at studentene disponerer egen bærbar datamaskin.

Emnetabeller

1. studieår Bachelor i programmering [Spill | Applikasjoner]

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          
IMT1362 Opplevelsesdesign O 10          
IMT1082 Objekt-orientert programmering O   10        
IMT2243 Systemutvikling O   10        
REA1121 Matematikk for programmering O   10        
Sum: 30 30 0 0 0 0
*) O - Obligatorisk emne, V - Valgbare emne

2. studieår Bachelor i programmering [Spill | Applikasjoner] - studieretning Applikasjoner

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      
IMT2681 Cloud Technologies O     10      
IMT2282 Operativsystemer O       10    
IMT2291 WWW-Teknologi O       10    
IMT3673 Mobile/Wearable Programming O       10    
Sum: 0 0 30 30 0 0
*) O - Obligatorisk emne, V - Valgbare emne

2. studieår Bachelor i programmering [Spill | Applikasjoner] - studieretning Spill

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      
IMT2681 Cloud Technologies O     10      
IMT2282 Operativsystemer O       10    
IMT2531 Grafikkprogrammering O       10    
IMT3673 Mobile/Wearable Programming O       10    
Sum: 0 0 30 30 0 0
*) O - Obligatorisk emne, V - Valgbare emne

3. studieår Bachelor i programmering [Spill | Applikasjoner] - studieretning Applikasjoner

Emnekode Emnets navn O/V *) Studiepoeng pr. semester
  S1(H) S2(V) S3(H) S4(V) S5(H) S6(V)
IMT3501 Programvaresikkerhet O         10  
IMT3281 Applikasjonsutvikling O         10  
IMT3110 Programvaremønstre O         10  
IMT2581 Rask prototyping og innovasjon O         2,5 2,5
IMT3602 Professional Programming O           5
IMT3912 Bacheloroppgave O           20
Sum: 0 0 0 0 30 30
*) O - Obligatorisk emne, V - Valgbare emne

3. studieår Bachelor i programmering [Spill | Applikasjoner] - studieretning Spill

Emnekode Emnets navn O/V *) Studiepoeng pr. semester
  S1(H) S2(V) S3(H) S4(V) S5(H) S6(V)
IMT3601 Spillprogrammering O         10  
IMT3281 Applikasjonsutvikling V         10  
IMT3591 Kunstig intelligens V         10  
IMT3501 Programvaresikkerhet O         10  
IMT2581 Rask prototyping og innovasjon O         2,5 2,5
IMT3602 Professional Programming O           5
IMT3912 Bacheloroppgave O           20
Sum: 0 0 0 0 30 30
*) O - Obligatorisk emne, V - Valgbare emne

Sammensetning av emner i studieretningene

Studieretning Applikasjoner: Her velger studentene emnepakken bestående av WWW-teknologi + Applikasjonsutvikling + Software Patterns
Studietretning Spill: Her velger studentene emnepakken bestående av Grafikkprogrammering + Spillprogrammering + (Applikasjonsutvikling eller Kunstig intelligens)