Bachelor IT - Programmering 2016-2017



Like dokumenter
Bachelor IT - Intelligente systemer

Programmeringsstudiet bygger på NITHs Bachelor i Informasjonsteknologi. Studiet er 3 årig, og gir tittelen bachelor i IT.

Bachelor IT - Spillprogrammering

Bachelor IT: E-Business

Navn. Bachelor IT Mobil apputvikling

KONTINUASJONSEKSAMENER - "KONT" - SOMMEREN 2015

Programbeskrivelse Bachelor i informasjonsteknologi - programmering

AlgDat 12. Forelesning 2. Gunnar Misund

Gruppe 43. Hoved-Prosjekt Forprosjekt

NTNU KOMPiS Studieplan for MATEMATIKK 2 ( trinn) med hovedvekt på trinn Studieåret 2015/2016

Bachelor IT - Interaktivt Design

Digital markedsføring. Studieplan Avdeling for kommunikasjon

AlgDat 10. Forelesning 2. Gunnar Misund

Studieplan 2015/2016

Kapittel 13 Advanced Hypertext Implementation. Martin Lie Ole Kristian Heggøy

Læreplan i informasjonsteknologi - programfag i studiespesialiserende utdanningsprogram

Navn. Bachelor IT Spillprogrammering

Stikkord: Java EE, EJB, JSF, JPA, SWT, klient/tjener, Glassfish server, Application Client.

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

Dokument 1 - Sammendrag

UNIVERSITETET I STAVANGER Det humanistiske fakultet Institutt for allmennlærerutdanning og spesialpedagogikk

Studieplan 2012/2013

Forprosjektrapport. Presentasjon. Studentgruppen. Bekk Consulting AS. Android app for aktivering av jakt- og fiskekort

Søknadsfrist

Studieplan 2006/2007

Dagens. Faglærers bakgrunn IMT 1321 IT-LEDELSE. Faglærer : Tom Røise 11.Jan IMT1321 IT-Ledelse 1

Studieinformasjon Bachelor i IT - Programmering Avdeling for teknologi

S y s t e m d o k u m e n t a s j o n

HiOA TDK. Ingeniørfag data. DATS1600 Programutvikling. Eva Hadler Vihovde. Prosjektoppgaven Prosessdokumentasjon - Alternativ 1

Studieplan 2019/2020

Oppnådd grad Bachelor i ledelse, innovasjon og marked. Omfang 180 studiepoeng

TDT4105 Informasjonsteknologi, grunnkurs

Studieinformasjon Bachelor i IT - Programmering Avdeling for teknologi

Studieplan 2016/2017

MindIT sin visjon er å være en anerkjent og innovativ leverandør av teknologi og tjenester i den globale opplæringsbransjen

1 Inledning. 1.1 Presentasjon. Tittel Informasjonsplattform for NorgesGruppen. Oppgave Utvikle en informasjonsplattform for butikkene i NorgesGruppen

Studieplan 2018/2019

Studieplan 2017/2018

Oppsummering. Thomas Lohne Aanes Thomas Amble

Forprosjektrapport. Bachelorprosjekt i informasjonsteknologi ved Høgskolen i Oslo og Akershus, våren Pillbox Punchline

UNIVERSITETET I STAVANGER Det humanistiske fakultet Institutt for allmennlærerutdanning og spesialpedagogikk

Programbeskrivelse Bachelor i informasjonsteknologi - Frontend- og mobilutvikling

UNIVERSITETET I STAVANGER Det humanistiske fakultet Institutt for allmennlærerutdanning og spesialpedagogikk

TDT4102 Prosedyreog objektorientert programmering Vår 2016

Studieinformasjon Bachelor i manus - programprofil Avdeling for film, tv og spill

Studieplan 2014/2015

Dagens IMT 1321 IT-LEDELSE. Faglærer : Tom Røise. IMT1321 IT-Ledelse 1. Faglærers bakgrunn

Studieplan 2015/2016

GJENNOMGANG UKESOPPGAVER 9 TESTING

Studieplan for ENGELSK 1 ( trinn) med vekt på trinn

Forprosjekt Hovedprosjekt ved Høgskolen i Oslo Våren 2008

Fagplan i norsk for 9. trinn 2014/2015

Bachelor IT - Mobil Programmering

Programmeringsrammeverk som kan installeres på Windows Mobiloperativsystem

Studentdrevet innovasjon

Oppsummering : IMT2243 Systemutvikling. Hensikt med kurset. Innfallsvinkel : Tom Røise IMT2243 : Systemutvikling 1

Hovedprosjekt i Informasjonsteknologi 2016 Høgskolen i Oslo og Akershus. Forprosjektrapport. Bravo Booking App

Studieplan 2014/2015

Bachelorprosjekt 2015

Hovedprosjekt 2014, Høgskolen i Oslo og Akershus

Videreutdanning i skriving av vitenskapelig artikkel

Norsk - Forkurs for ingeniørutdanning

Spesifikasjon av Lag emne

2.5 BACHELORGRADSPROGRAM I INFORMATIKK

3D- grafikk Studieplan

Programvareutvikling (store systemer)

Forprosjekt. Accenture Rune Waage,

<kode> Grunnleggende matematikk for ingeniører Side 1 av 5

Velkommen! I dag. Viktige beskjeder. Studieadministrasjonen. IN Høst Siri Moe Jensen Geir Kjetil Sandve Henrik Hillestad

Introduksjon til programmering og programmeringsspråk. Henrik Lieng Høgskolen i Oslo og Akershus

Jon Hammeren Nilsson, Anders Emil Rønning, Lars Grini og Erling Fjelstad

Studieplan 2016/2017

Studieplan 2010/2011

Programbeskrivelse Bachelor i informasjonsteknologi - Intelligente systemer

Bachelorgradsprogram i religionsvitenskap Studieplan INSTITUTT FOR HISTORIE OG RELIGIONSVITENSKAP

Studieinformasjon

Norges Informasjonsteknologiske Høgskole

STUDIEPLAN. Andrespråkspedagogikk - Videreutdanningskurs. 30 studiepoeng

Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer

System Dokumentasjon. Team2. Høgskolen i Sørøst-Norge Fakultet for teknologi, naturvitenskap og maritime fag Institutt for elektro, IT og kybernetikk

Kurset består av to relativt uavhengige deler. Foreleser: Hårek Haugerud, rom PS431

InfoRed Publisering. - produktbeskrivelse. TalkPool WebServices Postboks Åneby

Innhold Forord...3 Begreper og akronymer...4 Systembeskrivelse...5 Generelt...5 Funksjonelle krav...7 Ikke-Funksjonelle krav...9 Prioritering...

Introduksjon til dataanlegget ved Institutt for informatikk. Marc Bezem Institutt for informatikk Universitetet i Bergen

Kravspesifikasjon. Android app for aktivering av jakt- og fiskekort. Bacheloroppgave vår Høgskolen i Oslo og Akershus. Charlotte Sjøthun s180495

Studieplan - KOMPiS Programmering

Studieinformasjon Bachelor i IT Intelligente systemer Avdeling for teknologi

Studieinformasjon Bachelor i 3D-grafikk Avdeling for film, tv og spill

Studieplan 2017/2018. Verdiskapende prosjektledelse (vår 2018) Studiepoeng: 15. Målgruppe. Opptakskrav og rangering. Arbeids- og undervisningsformer

Studieplan. Master i ledelse, innovasjon og marked. Gjelder fra og med høsten 2012

DRI2001 Offentlige nettsteder. Litt om systemutvikling Torsdag 24 aug Arild Jansen, AFIN, UiO

Søknadsfrist

Studieplaner m/eksamensdatoer 2011/2012

Studieplan Bachelor i IT Programmering. Institutt for teknologi

Bachelorprosjekt i informasjonsteknologi, vår 2017

Det er 3 hovedtemaer i studiet med oppgaver knyttet til hver av disse.

Eventhandler Teknologi, kunst og design Høgskolen i Oslo og Akershus, våren Testrapport

1 Forord. Kravspesifikasjon

Introduksjon til programmering og programmeringsspråk

Transkript:

Bachelor IT - Programmering 2016-2017 Innhold Programmering er en betegnelse på utvikling av programvare. I denne prosessen bruker man et programmeringsspråk som forteller maskinen hvordan den skal utføre operasjoner og instruksjoner som skal iverksettes etter at handlinger er utført. God programvare er avhengig av et vellykket samarbeid mellom menneske og maskin. Dyktige programmerere og systemutviklere har derfor jobben med å utvikle innovativ, effektiv og funksjonell programvare. I takt med at programmeringsspråk og teknikker endrer seg kommer det frem i lyset nye dialekter / generasjoner programmeringsspråk. Arkitekturer blir hele tiden utfordret på å kunne implementere nye begreper (Web 2.0, 3.gen skriptspråk, SOA, sosial web). Programmering og arkitektur benyttes som fundament for de aller fleste tjenester i offentlig og privat sektor. Det er et behov for dyktige programmerere som har kunnskaper om alt fra lokale applikasjoner og opp til distribuerte SOA løsninger med mobile klienter. Det er også et sterkt behov for at man ikke bare kan bygge etter oppskrift, men også evner å se muligheter / løsninger ved design av arkitekturen. Paradigmeskifter i programmering må holdes øye med og veies i forhold til eksisterende teknologi. Med fordypning i programmering kan det være du som lager den neste trendsettende applikasjonen. Det er stor etterspørsel etter programmerere og systemutviklere med riktig kompetanse. programmering på NITH er helt i front innen teknologi, og passer godt for deg som er logisk anlagt og glad i å utvikle. Det er stor rift om disse studentene i markedet. Programmatrise + introduksjon Ved NITH lærer du å bygge avanserte teknologiske løsninger for datamaskiner, så vel som mobiltelefoner. Gjennom studiet utdannes du til å konstruere arkitekturer fra bunnen, designe systemer og utvikle attraktive applikasjoner - alt gjennom en dyp opplæring i programmeringsspråket Java. IT-hverdagen er i dag langt mer kompleks enn for bare noen år siden. Det er nå viktig å kunne se hvordan applikasjoner kan samarbeide på tvers av maskingrenser, mellom websider og på mobiltelefoner. Programmering gir deg verktøyene og kunnskapen du trenger for dette, samtidig som du får grundig innføring i støttende teknologier som XML, scriptspråk og lagringsmedier. Dette vil forberede deg på å ta fremtidens digitale hverdag et steg videre. Studiefordypningen programmering skal utdanne studentene til å bli dyktige programmerere gjennom alle nivåer av arkitekturen av Java stacken. Studentene får en innføring i arkitektur og skal kunne stille seg kritisk til sin egen informasjonsarkitektur og argumentere for styrker / svakheter / alternativer i den. Programmeringsstudiet bygger på NITHs Bachelor i Informasjonsteknologi. Studiet er 3-årig, og gir tittelen bachelor i IT. Det første året er felles for alle linjer, og gir en solid grunnkompetanse i programmering, prosjektarbeid, systemutvikling, datateknikk og databaser. På det andre året er kjernen videreføringen av Java løpet fra første år. År to gir videre en innføring i operativsystemer, en inngående introduksjon til mobil programmering (Android), web programmering i Ruby og datastrukturer ved XML. Til sist men ikke minst vil man også gjennom føre faget Prosjekt software engineering som over begge semestrene samler kunnskapen man har tilegnet seg og lar dette bli anvendt i et større gruppebasert prosjektarbeid. I tredje år er fokuset rettet mot totalforståelsen av distribuerte systemer og arkitektur. Dette gjøres ved dypt fokus og grundig trening i distribuert Java representert ved Java Enterprise Edition. Ved siden av dette har algoritmer en sentral plassering og i tillegg utfylles tredje året med felles fag som forretningsforståelse, valgfag og forskningsmetoder. Studiet avsluttes

med et hovedprosjekt ute i bedrift hvor studentene løser et reelt case gitt av en oppdragsgiver. Studiet har i tillegg noen fellesemner som står sentralt i bachelor IT utdanningen. Disse emnene er Teknologi og Organisasjonen, Undersøkelsesmetoder og E-business. Mål med studiet Etter endt studium skal studenten kunne designe arkitekturen for, og implementere et distribuert informasjonssystem. Sentrale emner Bachelorstudium i Programmering har følgende sentrale tema og forskningsforankring: - Programmering i Java fra Standard Edition (SE) til Enterprise Edition(EE) - Emnet er forskningsforankret i paradigme objektorientert programmering Jobbmuligheter Læringsutbyttet i programmet er definerte i kompetansemålene for hvert emne i studiet og beskrivelse av områder/arbeidsoppgaver hvor denne kompetansen kan benyttes. Generelt vil studiet gi kompetanse til å gå inn i følgende roller: - Konsulent i norske eller internasjonale konsulentselskaper - Systemutvikler / arkitekt i en IT avdeling i privat eller offentlig sektor Utveksling Det et mulig å ta deler av studiet ved andre høgskoler og universiteter i tråd med ERASMUS utvekslings program. Videre utdanning Etter fullført bachelor studium i er det mulig å fortsette på en masterutdanning. Følgende retninger vil passe for studenter som har tatt bachelor studium i Programmering: - Fordypning i distribuerte (mobile) systemer - Fordypning i SOA og arkitektur - Fordypning i prosjektledelse og forretningsforståelse Forkunnskaper Studiet krever forkunnskaper i matematikk tilsvarende R1 eller S1+S2 i tilleg til, eller inkludert i generell studiekompetanse Undervisningsmåte Studiet kjennetegnes ved bruk av forelesninger, øvinger og problembasert læring. Med problembasert læring menes at studentene stilles overfor praktiske og faglige utfordringer. Studentene må selv på eget initiativ skaffe seg nødvendig informasjon, og diskutere dette sammen med medstudenter og veiledere. Bruk av forelesninger og øvinger skal være med på å gi studentene individuell faglig kompetanse i alle emner. Prosjektorganisert undervisning innebærer at man alle semestre har tverrfaglige prosjekter. Gjennom prosjektarbeidene får studentene i tillegg til mer individuell faglig kompetanse erfaring i samarbeid, prosjektstyring og prosjektorganisering.

Programmering Emnekode Emnets navn S.poeng O/V *) Studiepoeng pr. semester S1(H) S2(V) S3(H) S4(V) S5(H) S6(V) PJ1100 Kreativt webprosjekt 7,50 O 7,5 TK1100 Digital teknologi 7,50 O 7,5 DB1100 Databaser 1 7,50 O 7,5 PGR100 Objektorientert programmering 1 7,50 O 7,5 TK2100 Informasjonssikkerhet 7,50 O 7,5 PGR101 Objektorientert programmering 2 7,50 O 7,5 PJ2100 Iterativt webprosjekt 7,50 O 7,5 PG4200 Algoritmer og datastrukturer 7,50 O 7,5 PJ3100 Prosjekt Software Engineering 15,00 O 7,5 7,5 PG3300 Programvarearkitektur 7,50 O 7,5 PG3100 Avansert Javaprogrammering 1 7,50 O 7,5 PG4600 Mobil utvikling 7,50 O 7,5 PG4100 Avansert Javaprogrammering 2 7,50 O 7,5 PG4300 Ruby on Rails 7,50 O 7,5 PG5100 Enterpriseprogrammering 1 7,50 O 7,5 BU5100 Entreprenørskap 7,50 O 7,5 PG3400 Programmering i C for Linux 7,50 O 7,5 PJ6100 Undersøkelsesmetoder 7,50 O 7,5 PJ6000 Bachelorprosjekt 15,00 O 15 PG6100 Enterprise programmering 2 7,50 O 7,5 Sum: 30 22,5 30 30 22,5 30 *) O - Obligatorisk emne, V - Valgbare emne Valgemner, 1.klasse Emnekode Emnets navn S.poeng O/V *) Studiepoeng pr. semester S1(H) S2(V) S3(H) S4(V) S5(H) S6(V) DS2100 Animasjon 7,50 V 7,5 DS2200 Digital kultur 7,50 V 7,5 PG2201 Unity Utvikling 7,50 V 7,5 Sum: 0 7,5 0 0 0 0 *) O - Obligatorisk emne, V - Valgbare emne Valgemner høsten, 3.klasse Programmering Emnekode Emnets navn S.poeng O/V *) Studiepoeng pr. semester S1(H) S2(V) S3(H) S4(V) S5(H) S6(V) DS3800 Grensesnittdesign 7,50 V 7,5 PG5500 Embedded systems 7,50 V 7,5 PG5600 ios programmering 7,50 V 7,5 Sum: 0 0 0 0 7,5 0 *) O - Obligatorisk emne, V - Valgbare emne

BU5100 Entreprenørskap Emnenivå Bachelor Emnekode BU5100 Emnenavn Entreprenørskap Studiepoeng 7,50 Emneansvarlig Eivind Brevik Tilsynssensor Magne Johannessen Godkjenningsdato 03.05.2013 Hensikt Hensikten med emnet er å gi forståelse for hva innovasjon og entreprenørskap er og kunne utvikle ferdigheter for å fremme ideer og realisere disse. Kurset er orientert mot praktisk anvendelse av teknikk og metoder, med utarbeidelse av forretningsplan som bærende element. Etter fullført emne skal studenten ha tilstrekkelig innsikt og kompetanse til å kunne delta i og drive en slik prosess med utvikling av forretningsplan for å etablere et nytt firma eller forretningsområde. Forutsetninger Ingen Læringsutbytte Kunnskaper Etter å ha fullført emnet skal studenten: Kunne definere innovasjon og entreprenørskap Kjenne til betydningen av innovasjon og entreprenørskap for individ, organisasjoner og samfunn Kjenne til de markedsmessige og organisatoriske konsekvenser for innovasjon og entreprenørskap Ha forståelse for immaterielle rettigheter Ferdigheter Etter å ha fullført emnet skal studenten: Kunne utvikle planer for innovasjon og entreprenørskap, fra idé til implementering og drift Kunne evaluere, velge og selge inn egne prosjekter for egnet målgruppe Generell kompetanse Etter å ha fullført emnet skal studenten: Kunne reflektere over innovasjon og entreprenørskap i et videre perspektiv Ha kunnskap om og forståelse for hvordan ideer aksepteres og spres i et sosialt system

Gjennomføring Forelesninger og øvinger Anbefalt tidsbruk Aktivitet Tidsbruk Deltakelse i undervisning 25 Selvstudium 80 Forberedelse til presentasjon/diskusjon i klassen 5 Øving 20 Vurdering 70 Anbefalt tidsbruk totalt 200 Karakterskala Letter grades A-E for passed and F for failure Vitnemålstekst Emnet har gitt studenten forståelse for hva innovasjon og entreprenørskap er, og ferdigheter med å fremme ideer og realisere disse. Kurset er orientert mot praktisk anvendelse av teknikk og metoder, med utarbeidelse av forretningsplan som bærende element. Vurderingstype Mappevurdering Litteraturliste: Tittel Forfatter Forlag Utgit t år ISBN Utgav e Kommenta r Typ e Litteratu r Business Model Generation: A Handbook for Visionaries, Game Changers, and Challengers The Lean Startup: How Today's Entrepreneur s Use Continuous Innovation to Create Radically Successful Businesses Osterwalder, A., Peigner, Y. Ries, Eric Wiley 2010 9780470876411 1 Bok Pensum Crown Business 2011 9780670921607 1 Bok Pensum

DB1100 Databaser 1 Emnenivå Bachelor Emnekode DB1100 Emnenavn Databaser 1 Studiepoeng 7,50 Emneansvarlig Per Lauvås Tilsynssensor Bjørn Kristoffersen Godkjenningsdato 18.04.2013 Hensikt Etter fullført Databaser 1 skal man kunne forklare hva en relasjonsdatabase er, hva den kan brukes til og hvordan den skiller seg fra andre former for persistent lagring. Man skal kunne modellere og strukturere data for et domene. Man skal kunne opprette tabeller, legge inn ulike typer data i disse, kople dem sammen og hente ut rapporter ved hjelp av SQL spørringer. Man skal kunne forklare og anvende prinsippene for god design (normalisering, nøkkelbruk). Forutsetninger Generell studiekompetanse Læringsutbytte Etter å ha fullført emnet skal studenten kunne: Kunnskap: definere og forklare forskjellen på data, struktur og presentasjon forklare komponentene som inngår i et RDBMS definere hva ACID-egenskapene er og hvorfor disse bør oppfylles beskrive hva relasjonsalgebra er, og forklare mulighetene den gir ved å benytte begrepene kartesisk produkt, union, snitt og mengde definere begrepene primær-, fremmed-, kandidat- og super-nøkkel, og anvende disse i relasjonsdatabaser definere begrepene funksjonell avhengighet og normalisering forklare hvilke administrative mekanismer som finnes i et DBMS og hvordan disse brukes til å opprette databaser kunne forklare roller og rettigheter Ferdigheter: beskrive og utføre trinnene i utvikling av en EAR-modell fra kravspesifikasjonen til ferdig database, tegne en EAR-modell med korrekt notasjon og kardinalitet bruke SQL for å utføre CRUD-operasjoner på databasen bruke SELECT-spørringer med opsjoner til å hente rapport fra en enkelt tabell kombinere og hente rapporter fra flere tabeller ved bruk av JOIN-klausuler benytte de vanligste normaliseringsformene (UNF, 1NF, 2NF, 3NF, BCNF) bruke VIEW

utføre enkel brukeradministrasjon modellere, opprette, legge inn data og hente ut rapporter fra en database med en viss kompleksitet (f.eks. 10-15 tabeller og 5-10 relasjoner ) Generell kompetanse: forklare og eksemplifisere fordelene med å benytte en database og vurdere om disse er til stede i konkrete tilfeller skissere livsløpet til en typisk database: modellering, opprettelse, bruk, revisjon, og eventuell migrasjon. forklare hvilke lover og regler som gjelder for lagring og bruk av personoppplysninger i Norge. Gjennomføring Forelesninger, øvinger og selvstudium. Anbefalt tidsbruk Aktivitet Tidsbruk Deltakelse i undervisning 40 Selvstudium 100 Forberedelse til presentasjon/diskusjon i klassen 14 Øving 40 Vurdering 6 Anbefalt tidsbruk totalt 200 Verktøy MySQL Database Karakterskala Letter grades A-E for passed and F for failure Vitnemålstekst Etter å ha fullført emnet skal man kunne forklare hva en relasjonsdatabase er, hva den kan brukes til og hvordan den skiller seg fra andre former for persistent lagring. Man skal kunne modellere og strukturere data for et domene. Man skal kunne opprette tabeller, legge inn ulike typer data i disse, kople dem sammen og hente ut rapporter ved hjelp av SQL spørringer. Man skal kunne forklare og anvende prinsippene for god design (normalisering, nøkkelbruk), og utføre grunnleggende administrative oppgaver. Vurderingstype Skriftlig Vurdering Flervalgseksamen (25%) Skriftlig eksamen (75%) Litteraturliste: Tittel Forfatter Forlag Utgitt år ISBN Utgave Kommentar Type Litteratur Database Systems. A Practical Approach to Design, Implementation, and Management Thomas Connolly & Begg, Carolyn Addison Wesley 2014 ISBN-10: 0132943263 ISBN-13: 978-0132943260 6. Bok Pensum

DS2100 Animasjon Emnenivå Bachelor Emnekode DS2100 Emnenavn Animasjon Studiepoeng 7,50 Emneansvarlig Hrafnhildur Jonasdottir Tilsynssensor Bård R.Gunnerud Godkjenningsdato 30.05.2012 Hensikt I dagens samfunn er det stadig en utvikling i teknologi, applikasjoner og teknikker. Animasjon knytter tradisjonelle teknikker som historiefortelling, tegning og konstruksjon sammen med ny teknologi innenfor kanaler som reklame, spill, film, mobiltelefoni, kunst, internett osv. Animasjon hjelper oss å kommunisere og visualisere våre budskap gjennom disse kanalene og spiller en stor rolle i utdanning, underholdning, industri og kunst. I løpet av emnet vil studenten ha tilegnet seg kunnskap og ferdigheter til å lage en kort animasjonsfilm med lyd, samt vise forståelse innenfor dramaturgi og filmkunnskap til å kommunisere et gitt budskap gjennom visuelle grep. Studenten skal kunne vise til kreativog kritisk tenkning knyttet til animasjon. Læringsutbytte Kunnskaper Etter fullført emne skal studenten kunne: o forklare virkemåten til, og produksjonsmåten for, ulike animasjons-teknikker og uttrykk o beskrive rollen til manus, storyboard, lyd og etterarbeid i produksjon av (egen) animasjonsfilm o gjengi og benytte regler og teori innenfor filmkunnskap og dramaturgi til å analysere animasjonsfilm o beskrive de spesifikke visuelle virkemidlene som benyttes i animasjonskultur Ferdigheter Etter fullført emne skal studenten kunne: o demonstrere ferdigheter innenfor tegning, fotografering, lyd og filmredigering gjennom å kunne skape en enkel animasjonsfilm fra ide til ferdig produkt o demonstrere ulike teknikker for å lage en animasjonsfilm o utvikle et eget animasjonsuttrykk o benytte ulike digitale verktøy og filformater til å produsere, publisere og distribuere animasjoner. Generell kompetanse Etter fullført emne skal studenten kunne: o demonstrere kreativ og kritisk tenkning og kommunikasjonsevner gjennom animasjonsteknikker

Gjennomføring Gjennomføringen av emnet er basert på kombinasjon av forelesning, prosjektarbeid, og individuell skriftlig prøve Anbefalt tidsbruk Aktivitet Tidsbruk Deltakelse i undervisning 48 Selvstudium 60 Forberedelse til presentasjon/diskusjon i klassen 12 Øving 40 Vurdering 40 Anbefalt tidsbruk totalt 200 Karakterskala Letter grades A-E for passed and F for failure Vitnemålstekst Studenten skal ha tilegnet seg tilstrekkelig kunnskap og ferdigheter til å lage en kort animasjonsfilm med lyd, samt vise forståelse innenfor dramaturgi og filmkunnskap til å kommunisere et gitt budskap gjennom visuelle grep. Studenten skal kunne vise til kreativ og kritisk tenkning knyttet til animasjon. Pensum publiseres på emnesiden i It's Learning Vurderingstype Innlevering Vurdering Mappevurdering (se emnesiden) Litteraturliste: Tittel Forfatter Forlag Utgitt år ISBN Utgave Kommentar Type Litteratur Ideas for the Animated Short: Finding and Building Stories Karen Sullivan, Kate Alexander og Gary Schumer Elsevier 2013 9780240818726 2. utg Bok Pensum

DS2200 Digital kultur Emnenivå Bachelor Emnekode DS2200 Emnenavn Digital kultur Studiepoeng 7,50 Emneansvarlig Faltin Karlsen Tilsynssensor Anders Fagerjord, UiO Godkjenningsdato 08.05.2013 Hensikt Internett har stor innflytelse på hvordan vi kommuniserer og våre liv, både privat og i kommersielle sammenhenger. Innen mange bransjer har Internett bidratt til å bryte ned skillet mellom produsent og tjenesteyter på den ene siden, og brukere og konsumenter på den andre. I dag påvirker brukerne ofte direkte hvordan nye produkter, tekster og tjenester utformes. Samtidig gir Internett helt nye muligheter for å overvåke brukernes adferd og å styre tilgang til informasjon, i tillegg til at skillet mellom privat og offentlig blir mye mer uklart og det blir enklere for flere å delta som aktive brukere. Emnet Digital kultur behandler disse temaene fra hovedsakelige humanistiske og medievitenskapelige kulturteoretiske tilnærminger gjennom fokus på generell kultur- og medieforståelse knyttet opp mot digitale kulturfenomener. Klassiske og moderne kulturteorier og tradisjoner benyttes i analyser og drøftinger av produsenter, innhold/tekster, forbrukere og kommunikasjonskanaler. Studentene lærer hvordan digitale kulturfenomener ligner på og skiller seg fra andre kulturfenomener, samt hvordan kulturteori kan anvendes for å kontekstualisere, belyse, diskutere og problematisere disse fenomenene. Forutsetninger Generell studiekompetanse Læringsutbytte Kunnskaper Studentene skal kjenne til sentrale kulturteoretiske perspektiver og tradisjoner, og vite hvordan disse kan belyse forskjellige aspekter og problemstillinger rundt digitalekulturfenomener. Sentrale perspektiver og tradisjoner inkluderer semiotikk, retorikk,hermeneutikk, ideologikritikk og postmodernisme. Sentrale fenomener inkluderer sosialemedier, produsage, transmediering, franchising, kollektiv intelligens og spillkultur. Studentene skal kjenne til akademisk tenkning og skriving som genre, med fokus på analyse, drøfting, kildekritikk og referanseteknikk. Ferdigheter

Studentene skal kunne kritisk reflektere over og bruke fagstoff i analyser og drøftinger samt skrive akademiske tekster og holde faglige presentasjoner. Studentene skal kunne utvikle en strategi for bruk av sosiale medier i forretningssammenheng Generell kompetanse Studentene skal kjenne til sentrale klassiske og moderne kulturteorier og kritisk anvende disse i forståelse og analyser av kulturfenomener Studentene skal kunne problematisere ulike tilnærminger rundt bruk av digitale medier i offentlig, kommersiell, og privat sammenheng. Studentene skal kunne kritisk anvende fagstoff i egne akademiske tekster og presentasjoner som følger god akademisk skikk med hensyn til problemstilling, struktur, innhold,argumentasjon og referanseteknikk. Gjennomføring Emnet gjennomføres som fellesforelesninger og som samlinger i mindre grupper. Studentene skal i løpet av emnet gjennomføre minst en presentasjon av et tema de har jobbet med i grupper. Anbefalt tidsbruk Aktivitet Tidsbruk Deltakelse i undervisning 24 Selvstudium 104 Forberedelse til presentasjon/diskusjon i klassen 24 Øving 24 Vurdering 24 Anbefalt tidsbruk totalt 200 Verktøy Studentene vil benytte enkle og gratis tilgjengelig publiseringsverktøy og sosiale medier som flickr, posterous, facebook og twitter. Disse tjenestene vil brukes aktivt i undervisningen. Karakterskala Letter grades A-E for passed and F for failure Vitnemålstekst Studenten skal vite hvordan digitale kulturfenomener ligner på og skiller seg fra andre kulturfenomener, samt hvordan kulturteori kan anvendes til å kontekstualisere, belyse og problematisere disse fenomenene. Studenten skal kunne skrive akademiske tekster og holde faglige presentasjoner. Pensum Gripsrud, Jostein: Mediekultur, mediesamfunn Universitets-forlaget 2011 (4. utg) ISBN 9788215017921 Detaljert oversikt over hvilke kapitler som skal være med vil oppgis før oppstart. Vurderingstype Innlevering Vurdering I semesteret må det leveres to kvalifikasjonsoppgaver. I forbindelse med siste innlevering må man også delta på en muntlig eksamen.

Litteraturliste: Tittel Forfatt er Forlag Utgit t år ISBN Utgav e Komment ar Typ e Litterat ur Cultural Theory and Popular Culture: An Introduction Mediekultur, mediesamfun n Storey, John Gripsrud, Jostein Routledge Universitetsforlag et 2015 978-1138811034 2015 978821502587 2 7. utg Bok Pensum 5. utg Bok Pensum

DS3800 Grensesnittdesign Emnenivå Bachelor Emnekode DS3800 Emnenavn Grensesnittdesign Studiepoeng 7,50 Emneansvarlig Tor-Morten Grønli Godkjenningsdato Hensikt Hensikten med dette emnet er å gi studenten kunnskap om interaksjonsdesign og utviklingsprosesser på en mobil plattform, herunder kunnskaper om teknologier for å bygge applikasjoner, teknikker for evaluering og innsikt i fordeler og ulemper ved valgt løsning. Studenten får ferdigheter i å bygge mobile web baserte applikasjoner gjennom bruk av HTML5, JQuery Mobile og CSS. Studenten skal etter endt emne kunne evaluere et mobilt design ved brukerundersøkelser og være i stand til å reflektere over kritiske suksessfaktorer. Forutsetninger Ingen Læringsutbytte Kunnskap: ha kunnskap om interaksjonsdesign og utviklingsprosesser for mobil webutvikling ha kunnskap om testing av mobile løsninger, herunder teknisk testing og brukertesting ha kunnskap om HTML5, JQuery Mobile og CSS 3 ha kunnskap om fordeler og ulemper ved HTML5 web-applikasjoner ha kjennskap til User Centred Design ha kunnskap om responsivt design Ferdigheter: kunne bruke HTML5, JQuery Mobile og CSS til å bygge en web applikasjon/side kunne implementere responsivt design kunne evaluere en web basert mobil løsning med brukere kunne utføre teknisk testing av en web basert mobile løsning Generell kompetanse: Kunne evaluere et mobilt design ved brukerundersøkelser/observasjon og reflektere over dets kritiske suksessfaktorer Ha forståelse for ulike interaksjonsdesignprinsipper for mobile plattformer Gjennomføring Emnet gjennomføres med en kombinasjon av forelesninger og øvinger. Anbefalt tidsbruk

Aktivitet Tidsbruk Deltakelse i undervisning 24 Selvstudium 78 Forberedelse til presentasjon/diskusjon i klassen 24 Øving 24 Vurdering 50 Anbefalt tidsbruk totalt Karakterskala Letter grades A-E for passed and F for failure Vurderingstype Innlevering Litteraturliste: Tittel Forfatter Forlag Utgitt år ISBN Utgave Kommentar Type Litteratur Observing the User Experience Sketching User Experiences: Getting the Bill Design Right Buxton and the Right Design The Mobile Book Elizabeth Goodman, Mike Morgan Kuniavsky Kaufmann 2012 978-2 0123848697 Bok Pensum, Andrea Moed Smashing Magazine Morgan Kaufmann 2007 978-0123740373 Smashing Media GmbH 2013 1 1 1 Bok Pensum Kindle bok Bok Pensum

PG2201 Unity Utvikling Emnenivå Bachelor Emnekode PG2201 Emnenavn Unity Utvikling Studiepoeng 7,50 Emneansvarlig Tomas Sandnes Tilsynssensor Michael McCoy Jr. Godkjenningsdato Hensikt Emnet omhandler programmering og utvikling med spillutviklingsplattformen Unity. Studentene blir kjent med utviklingsmiljøets muligheter og effektiv bruk av dette. Studentene lærer å importere, bruke og scripte forskjellige spillobjekter ("assets") i en "scene" for dermed å opprette "levels" med grunnleggende spillfunksjonalitet. Forutsetninger PGR100 eller tilsvarende. Læringsutbytte Kunnskap Lære grunnleggende C# syntaks, samt vite på hvilke måter språket skiller seg fra Java. Lære hvordan C# programmering kan brukes i Unity. Forstå hensikten med en "game loop" og hvordan denne er nødvendig for spill. Kjenne til Unitys event functions og bruksområdene for disse. Forstå hensikten med local og world koordinater. Kjenne til hvordan rotasjon, translasjon og skalering benyttes til å manipulere objekter. Kjenne til hvordan kollisjoner implementeres i Unity. Kjenne til hvordan mus, tastatur og gamepad kan benyttes for input. Ferdigheter Kunne benytte programmeringspråket C#. Beherske Unity utviklingsmiljøet, kunne opprette prosjekter og publisere de til forskjellige plattformer. Legge til spillmekanikk ved hjelp av programmering. Importere og anvende 3D-modeller, animasjoner, teksturer, lyder, "prefabs" og andre assets i Unity. Generell Kompetanse Planlegge, utvikle og publisere enkle spill.

Gjennomføring 12 forelesninger med øvinger. Anbefalt tidsbruk Aktivitet Tidsbruk Deltakelse i undervisning 24 Selvstudium 92 Forberedelse til presentasjon/diskusjon i klassen 0 Øving 24 Vurdering 60 Anbefalt tidsbruk totalt 200 Verktøy Unity Visual Studio Karakterskala Letter grades A-E for passed and F for failure Vitnemålstekst Emnet omhandler programmering og utvikling med utviklingsplattformen Unity. Pensum Lærebok. Ressurser publisert på emnesidene. Vurderingstype Innlevering Vurdering 1 innlevering. 1 hjemmeeksamen. Litteraturliste: Tittel Forfatter Forlag Utgitt år ISBN Utgave Kommentar Type Litteratur Unity Game Mike Development Geig in 24 Hours Sams Publishing 2013 978-0672336966 1. utg Kjøp bare EN av bøkene! Denne utgaven er lett tilgjengelig, men tar for seg forrige versjon av Unity. (Undervisningen Bok tar høyde for at enkelte studenter har denne utgaven av boka.) Pensum

Unity Game Mike Development Geig in 24 Hours Sams Publishing 2015 978-0672337512 2. utg Kjøp bare EN av bøkene! Denne utgaven kommer rundt årsskiftet 2015/2016, og får man tak i den til studiestart er det den beste løsningen. (Den er allerede tilgjengelig som ebok/pdf.) Bok Pensum

PG3100 Avansert Javaprogrammering 1 Emnenivå Bachelor Emnekode PG3100 Emnenavn Avansert Javaprogrammering 1 Studiepoeng 7,50 Emneansvarlig Per Lauvås Tilsynssensor Morten Andersen-Gott Godkjenningsdato 25.03.2012 Hensikt Under utvikling av programvare er det nødvendig å kunne noen teknikker og konsepter som støtter opp under utviklingen. Emnet skal gi en grunnleggende innføring i feilsøking, automatisert testing og arkitekturprinsipper. Videre gis det en innføring i unntakshåndtering som et fundament for mer avansert programutvikling. Emnet skal også gjøre studenten i stand til å kommunisere med en database for å hente ut og manipulere data, samt skrive enkle servlets for å lage websider med dynamisk innhold. Forutsetninger Emnet bygger på grunnleggende ferdigheter i objektorientert programmering (Java) og relasjonsdatabaser. Programmering krever en høy grad av nøyaktighet, tålmodighet, utholdenhet og evne til logisk tenkning. Læringsutbytte Kunnskaper Etter å ha fullført emnet skal studenten vite hva automatisert testing er, og hvilke fordeler dette kan gi beskrive vanlig arbeidsflyt i testdrevet utvikling kjenne til begrepene "mock" og "stub" forklare begrepene "separation of concerns" og lagdeling kjenne til MVC-patternet og dets anvendelse på klientside og web forklare begrepet "SQL injection" og hvordan man kan unngå dette forklare begrepet "Cross-site scripting" (XSS) og hvordan man unngår dette vite hva JDBC (Java Database Connectivity) og ORM (Object-Relational Mapping) er og hvordan vi kan benytte disse for å kommunisere med en database Ferdigheter Etter å ha fullført emnet skal studenten kunne utvikle robuste programmer som gjør bruk av feilhåndtering anvende debuggeren i et IDE for å feilsøke programmer, herunder stegvis utføring av kode og breakpoints teste deler av applikasjonen ved hjelp av enhetstester og integrasjonstester

utvikle programmer som kommuniserer med en database og utfører CRUD (create, read, update, delete) operasjoner utvikle en enkel webapplikasjon ved hjelp av servlets, herunder: o gjengi livsløpet til en servlet o hente ut POST/GET parametere o produsere dynamisk innhold o lage en WAR-fil og deployere denne på en server o skrive og hente ut data fra en HTTP session o skrive views med en hensiktsmessig teknologi Generell kompetanse Etter å ha fullført emnet skal studenten kunne begrunne og presentere sin egen kode reflektere rundt: o verdien av automatiserte tester o valg av kommunikasjonsmetode mot database o grunnleggende websikkerhet (SQL injection/xss) Gjennomføring Forelesninger, øvinger med veileder, mappevurdering og skriftlig vurdering. Anbefalt tidsbruk Aktivitet Tidsbruk Deltakelse i undervisning 24 Øving 24 Selvstudium 70 Vurdering 82 Anbefalt tidsbruk totalt 200 Verktøy Java 1.8 Eclipse Karakterskala Letter grades A-E for passed and F for failure Vitnemålstekst Emnet har gitt en introduksjon til feilsøking, automatisert testing, arkitekturprinsipper, databaseprogrammering og servlets. Studenten kjenner til prinsipper for automatisert testing og konsepter som lagdeling og separation of concerns. Studenten kan gjøre bruk av unntaktshåndtering, oppkobling og manipulering av data i en database, samt skrive enkle servlets og deployere til en server. Pensum Utvalgte kapitler fra læreboken. Utvalgte artikler. Vurderingstype Mappevurdering Vurdering Mappe og skriftlig. Litteraturliste:

Tittel Forfatter Forlag Utgitt år ISBN Utgave Kommentar Type Litteratur Introduction to Java Programming, Comprehensive Version Y. Daniel Liang Prentice 2014 Hall ISBN-10: 0133761312, ISBN-13: 978-0133761313 10 Bok Pensum

PG3300 Programvarearkitektur Emnenivå Bachelor Emnekode PG3300 Emnenavn Programvarearkitektur Studiepoeng 7,50 Emneansvarlig Tomas Sandnes Tilsynssensor Alf Inge Wang Godkjenningsdato Hensikt Kurset skal gjøre studentene i stand til å designe og videreutvikle større programvaresystemer i tråd med kjente teknikker for modellering, testing og implementasjon. Forutsetninger Erfaring med grunnleggende objektorietert programmering. Læringsutbytte Etter å ha fullført emnet skal studenten kunne: Kunnskap: Vite bakgrunn og innhold for UML standarden. Kjenne til konsepter for versjonskontroll. Vite hva Unit Testing er. Forklare prinsippene for test-driven development (TDD). Vite hva design patterns er. Kjenne til og kunne identifisere en del viktige design patterns når de ser de i kode. Vite hva refactoring er. Vite hva multi-threading er. Forstå hvordan locking/lås kan brukes for å kode trådsikkert Forklare prinsippene for event handling. Ferdigheter: Ha oversikt over og kunne benytte den grunnleggende syntaksen i programmeringspråket C# og vite på hvilke måter denne skiller seg fra Java. Beherske UML-diagrammene: use case, klassediagram og sekvensdiagram. Bruke UML til å designe programarkitektur. Implementere følgende patterns: MVC & MVP, singleton, factory, builder, flyweight, composition, decorator. Kunne anvende design guidelines, som layers og GRASP prinsippene (med fokus på følgende for sistnevnte: controller, information expert, low coupling, high cohesion). Kunne gjennomføre refactoring på eksisterende kode. Kunne implementere applikasjoner som benytter flere tråder. Beherske et integrert utviklingsverktøy (IDE).

Skrive og redigere kildekode med dette verktøyet. Generell Kompetanse: Reflektere over multi-threading og dets bruksområder. Samarbeide med andre programmerere på en effektiv måte for å utvikle gode programmer. Vurdere kvalitet på eksisterende programmer og vurdere strukturelle forbedringer. Gjennomføring Forelesninger, øvinger og egenstudier. Anbefalt tidsbruk Aktivitet Tidsbruk Deltakelse i undervisning 24 Selvstudium 128 Øving 24 Vurdering 24 Anbefalt tidsbruk totalt 200. Verktøy IDE: Visual Studio Karakterskala Letter grades A-E for passed and F for failure Vitnemålstekst Kurset skal gjøre studentene i stand til å designe og videreutvikle større programvaresystemer i tråd med kjente teknikker for modellering, testing og implementasjon. Pensum Lærebok merket "Pensum" (se "Litteraturliste", under) samt forelesningsmaterialet og nødvendige hjelpemidler for å gjennomføre øvingsopplegget. Vurderingstype Innlevering Vurdering 1 innlevering og 1 muntlig prøve (se "Vurdering / Assessment", under). Litteraturliste: Tittel Forfatter Forlag Utgitt år ISBN Utgave Kommentar Type Litteratur Applying UML and Patterns The Art of Readable Code Craig Larman Dustin Boswell Prentice 2004 Hall O'Reilly Media 2011 978-0131489066 978-0596802295 3rd ed. Bok Pensum 1st ed. Bok Støttelitteratur

PG3400 Programmering i C for Linux Emnenivå Bachelor Emnekode PG3400 Emnenavn Programmering i C for Linux Studiepoeng 7,50 Emneansvarlig Kjetil Raaen Godkjenningsdato Hensikt Emnet gir innføring i programmeringspråket C og hvordan dette kan brukes til å interaktere direkte med operativstytemet. Det skal også gi forståelse av operativsystemet Linux og kunnskap om hvordan dette virker. Forutsetninger Grunnleggende programmeringskunnskap (PG2100 Programmering 2 eller tilsvarende) samt grunnleggende digital teknologi (TK1100 Digital teknologi eller tilsvarende). Læringsutbytte Kunnskaper Etter å ha fullført emnet skal studenten: Kjenne til operativsystemene Unix og Linux: o bakgrunn og historie o overordnet arkitektur og oppbygning Kjenne til utviklingen av og bruksområdet for programmerinspråket «C» Forstå hva «viritualisering» er Kjenne til byggeprosessen i C inkludert: o compile o link Forklare konseptet «everything is a file» og kjenne til eksempler inkludert: o devices o procfs Forstå hva et «filsystem» er og hva det brukes til Forstå konseptene bak brukere og permissions i Linux Kjenne til forskjellen på userspace og kernelspace og hvordan bruke systemkall og signaler Kjenne til minneområdene «stack» og «heap» og forklare forskjellen Kjenne til konseptet "buffer owerflow" og hvorfor det er farlig. Ferdigheter Etter å ha fullført emnet skal studenten: Bruke grunnleggende konstuksjoner i programmeringspråket «C» inkludert: o main, basic types, printf, scanf, strings, #include, enum, typedef, struct, union, command line parameters, macros, varargs o Statisk minnehåndtering

Utvikle programmer under paradigmet «strukturert programmering» Anvende dynamisk minnehåndtering inkludert: o malloc, free, pointers, memcpy, sprintf, arrays, sizeof Lese og skrive enkeltbits og grupper av bits in en større datastruktur. Generere kjørbare filer fra C-kode o makefile o static libraries Implementere lesing og skriving til fil o r/w modes o seek o buffer size Operere kommandolinjen i linux for å utføre viktige operasjoner inkludert: o ls, cd, mkdir, rm, cp, chmod, chown, pwd, ps, kill, man, wget o pipes, redirection o starte programmer o mounting av filsystemer Lage programmer som unngår buffer overflow. Generell kompetanse Etter å ha fullført emnet skal studenten kunne: Vurdere hvilke situasjoner det er fornuftig å bruke programmeringspråket «C» Anvende «C» for å løse systemprogrammeringsoppgaver Forholde seg til manuell minnehåndtering Forholde seg til linux som operativsysem Gjennomføring Kurset gjennomføres med 12 forelesninger a ca 2 timer og 12 lærerstyrte øvinger a ca 2 timer. Øvingene er ikke obligatoriske, men for å oppnå kompetansemålene forventes det at studentene fullfører øvingsoppgavene på egenhånd der øvingstimene ikke strekker til. Anbefalt tidsbruk Aktivitet Tidsbruk Deltakelse i undervisning/forelesning 24 Selvstudium 110 Forberedelse til presentasjon/diskusjon 0 Øving/prosjektarbeid/workshop 24 Vurdering 42 Anbefalt tidsbruk totalt 200 Verktøy Linux og gcc Karakterskala Letter grades A-E for passed and F for failure Vitnemålstekst Etter å ha gjennomført emnet skal studentene kunne bruke operativsystemet Linux. De skal også være i stand til å programmere i programmeringspråket «C». Pensum Pensum skal være egnet til å sikre kandidatenes kompetanse i relasjon til læringsutbyttene for emnet. Vurderingstype Mappevurdering

Litteraturliste: Tittel Forfatter Forlag Utgitt år ISBN Utgave Kommentar Type Litteratur Kochan, Programming Stephen in C G Sams publishing 2004 9780672326660 3. utg Bok Pensum

PG4100 Avansert Javaprogrammering 2 Emnenivå Bachelor Emnekode PG4100 Emnenavn Avansert Javaprogrammering 2 Studiepoeng 7,50 Emneansvarlig Per Lauvås Tilsynssensor Morten Andersen-Gott Godkjenningsdato 25.03.2012 Hensikt Innenfor programmering vil man ofte ha et behov for å kunne ta i bruk kode som andre har skrevet. Emnet gir en innføring i hvordan man kan legge til tredjepartsbiblioteker i et Javaprosjekt, hvordan man kan benytte et byggverktøy for å forenkle denne prosessen, samt hvordan man kan ta i bruk Open-Source biblioteker. I produksjon og forvaltning er det nødvendig med logging og dokumentasjon, og emnet gir derfor en innføring i Log4j og javadoc. Videre vil tyngre programmer ha et behov for å parallellisere oppgaver og emnet gir derfor en introduksjon til trådprogrammering. Sockets tas i bruk for å lage programmer som kan kommunisere med hverandre over nettverket. Emnet gir også en smakebit på funksjonell programmering som et alternativt programmerings-paradigme til objekt-orientert programmering. I den anledning vil det være naturlig å se hvordan også Java SE, fra versjon 8, inneholder funksjonelle elementer. Forutsetninger Emnet krever videregående programmeringskunnskaper tilsvarende PG3100, samt grunnleggende kjennskap til versjonskontroll. Programmering krever en høy grad av nøyaktighet, tålmodighet, utholdenhet og evne til logisk tenkning. Læringsutbytte Kunnskaper Etter å ha fullført emnet skal studenten vite hvilke fordeler trådprogrammering kan gi og når det lønner seg å benytte dette kjenne til forskjeller i objekt-orientert og funksjonell programmering kjenne til minst ett open-source prosjekt i Java og ha lest deler av kildekoden til dette kjenne til hvordan applikasjoner kan utveksle data med hverandre gjennom sockets og web-services kjenne til begrepet "REST" vite når det kan være fornuftig å benytte Lambda Expressions i Java kjenne til streams-apiet, og når det er hensiktsmessig å benytte dette Ferdigheter Etter å ha fullført emnet skal studenten kunne lage JAR/WAR

legge til tredjepartsbiblioteker manuelt i Eclipse bruke Maven for å spesifisere avhengigheter og bygge et Javaprosjekt anvende open-source biblioteker: o sjekke de ut fra versjonskontroll o bygge et open-source prosjekt som baserer seg på Maven o gjøre en endring i biblioteket o kjøre testene til biblioteket konfigurere Log4j og skrive programmer som benytter seg av slik type logging anvende Javadoc for å skrive dokumentasjon av kode utvikle trådbaserte applikasjoner utvikle klient/tjener applikasjoner ved hjelp av Sockets gjøre HTTP kall mot en RESTful web-service produsere applikasjoner som kan tolke XML og JSON lese og skrive Java-kode som benytter Lambda expressions med relevante interface fra java.util.function-pakken som Predicate, Supplier, Consumer og Function benytte funksjonelle operasjoner på en strøm av elementer, deriblant map-reduce. Generell kompetanse Etter å ha fullført emnet skal studenten kunne reflektere rundt fordeler og ulemper med tredjepartsbiblioteker reflektere rundt fordeler og ulemper med funksjonell programmering begrunne og presentere sin egen kode vurdere og gi tilbakemelding på kode andre har skrevet Gjennomføring Kurset gjennomføres med 12 sesjoner på 4 timer som inkluderer forelesning, øving og egenarbeid. Anbefalt tidsbruk Aktivitet Tidsbruk Deltakelse i undervisning 24 Øving 24 Selvstudium 70 Vurdering 82 Anbefalt tidsbruk totalt 200 Verktøy Java 1.8 Eclipse Maven Git Karakterskala Letter grades A-E for passed and F for failure Vitnemålstekst Emnet har gitt en introduksjon til bruk av tredjepartsbiblioteker i Java og bruk av Maven. Videre har emnet gitt en innføring i trådprogrammering, sockets, logging, 2d-grafikk i Swing og enkel integrasjon mot REST-baserte webtjenester som returnerer XML/JSON. Emnet ga også en smakebit på funksjonell programmering som et alternativt programmeringsparadigme til objekt-orientert programmering. Pensum Utvalgte kapitler fra læreboka. Utvalgte artikler.

Vurderingstype Mappevurdering Vurdering Mappe og skriftlig Litteraturliste: Tittel Forfatter Forlag Utgitt år ISBN Utgave Kommentar Type Litteratur Introduction to Java Programming, Comprehensive Version Y. Daniel Liang Prentice 2014 Hall ISBN-10: 0133761312, 10. ISBN-13: utgave 978-0133761313 Bok Pensum

PG4200 Algoritmer og datastrukturer Emnenivå Bachelor Emnekode PG4200 Emnenavn Algoritmer og datastrukturer Studiepoeng 7,50 Emneansvarlig Lars Sydnes Tilsynssensor Magnus Lie Hetland, NTNU Godkjenningsdato 24.04.2014 Hensikt Emnet skal gi innsikt i algoritmer og datastrukturer som er sentrale i arbeidet med implementasjon og design av effektive datasystemer. Det legges vekt på en asymptotisk analyse av worst-case ressursrbruk, samt sentrale algoritmer og datastrukturer knyttet til søk og sortering. Emnet tar også for seg enkelte graf-algoritmer. Forutsetninger PG1100 og PG2100 eller tilsvarende grunnleggende programmeringskunnskap. Læringsutbytte Kunnskapsmål Studentene skal kjenne til følgende: Sentrale abstrakte datatyper: o Lister, køer, stakker, o Mengder (sets, collections), Avbildninger (maps) o Trær og grafer. Egenskapene til sentrale datastrukturer: o Tabeller (arrays). o Lenkede lister. o Binære trær, søketrær, balanserte søketrær, B-trær, AVL-trær, Red-Blacktrær. o Hash-tabeller og Hash-avbildninger. o Grafer implementert ved naboskapslister og -matriser. Sentrale søkealgoritmer: o Linært søk, Binært søk. o Søk i binære søketrær. o Søk i Hash-tabeller. Sorteringsalgoritmer: o Insertion sort, Selection sort, Bubble sort, o Quicksort, Merge sort, Heap sort, o Radix sort. Enkelte graf-algoritmer, inkludert o traversering av grafer, o Dijkstras algoritme, A*-algoritmen, o Prims algoritme.

Oppbygning, virkemåte og bruk av rekursive funksjoner, inkludert o rekursiv traversering av trær og grafer, o rekursiv søk og sortering, o backtracking. Grunnleggende begreper innen teorien for beregningskompleksitet, inkludert o O-notasjon, o NP-kompletthet og reduksjon, o den handelsreisendes problem (Travelling salesman problem), o ryggsekkproblemet (Knapsack problem). Ferdighetsmål Studenten skal kunne: Bruke eksisternde bilblioteker for algoritmer og datastrukturer, Implementere kjente datastrukturer, inkludert o tabell-lister, lenkede lister, o binære søketrær og heaps, o hash-tabeller, o grafer. Implementere kjente algoritmer, inkludert o Insertion sort, selection sort, o Merge sort, Heap sort. Drøfte worst-case ressursbruk for konkrete elementer i dataprogrammer ved hjelp av O-notasjon. Bruke grunnleggende generisk programmering i java. Generelle kompetansemål Studenten skal beherske klassisk asymptotisk analyse av dataprogrammer, kunne bruke eksisterende bibliotek og egenutviklede algoritmer og datastrukturer til å løse praktiske problemer, beherske et språk og begrepsapparat som egner seg for å drøfte ressursbruken til dataprogrammer, ha den kunnskapen om algoritmer og datastrukturer som kreves i videre informatikkstudier. Gjennomføring Forelesninger (ca. 50%) og øvinger (ca. 50%) Anbefalt tidsbruk Aktivitet Tidsbruk Deltakelse i undervisning 24 Selvstudium 128 Forberedelse til presentasjon/diskusjon i klassen Øving 24 Vurdering 24 Anbefalt tidsbruk totalt 200 Verktøy Java Development Kit 1.8 Karakterskala Letter grades A-E for passed and F for failure Vitnemålstekst Emnet skal gi innsikt i algoritmer og datastrukturer som er sentrale i arbeidet med implementasjon og design av effektive datasystemer.

Vurderingstype Innlevering Vurdering To innleveringer underveis i semesteret og skriftlig avsluttende eksamen. Litteraturliste: Tittel Forfatter Forlag Utgitt år ISBN Utgave Kommentar Type Litteratur Robert Sedgewick, Addison- Algorithms 2011 Kevin Wesley Wayne 978-0- 321-57351- 3 4 Bok Pensum

PG4300 Ruby on Rails Emnenivå Bachelor Emnekode PG4300 Emnenavn Ruby on Rails Studiepoeng 7,50 Emneansvarlig Per Lauvås Tilsynssensor Mads Mobæk Godkjenningsdato 01.11.2013 Hensikt Emnet skal gi studentene grunnleggene kjennskap til programmeringsspråket Ruby og rammeverket Rails. Hensikten er å introdusere et rammeverk som gjør det enklere å utvikle, rulle ut og vedlikeholde webapplikasjoner. Etter fullført emne vil studentene være i stand til å lage enkle webapplikasjoner som kommuniserer med en database. Videre skal studenten ha grunnleggende kunnskap til testing, sikring av en webapplikasjon, og være i stand til å rulle den ut på en ekstern server. Forutsetninger - Grunnleggende kjennskap til (X)HTML - Grunnleggende ferdigheter i objektorientert programmering med utgangspunkt i programmeringsspråket Java - Grunnleggende kjennskap til relasjonsdatabaser Læringsutbytte Kunnskaper Etter å ha fullført emnet skal studenten: kjenne til forskjellen mellom kompilerte og interpreterte språk kjenne til begrepene TDD og BDD kjenne til MVC-patternet sin anvendelse for webapplikasjoner og Rails kjenne til hvordan man lager en Rails-basert webapplikasjon Ferdigheter Du skal kunne grunnleggende Ruby, herunder: o datatypene Numbers, String, Ranges, Hash og Array o kontrollstrukturer o blokker o symboler o bruk av objektorientering o navngivningskonvensjoner o bruk av Interactive Ruby Shell (irb) Du skal kunne benytte rammeverk i Ruby for å skrive enkle tester Du skal kunne opprette et Rails prosjekt og kjenne til mappestrukturen og konvensjoner i Rails

Du skal kunne konfigurere og benytte en database mot Rails. Du skal også kunne skrive og kjøre database migrations. Du skal ha grunnleggende kjennskap til Ruby gems, kunne installere/oppdatere disse, og spesifisere avhengigheter i et Rails prosjekt Du skal ha kunnskap om (M) ActiveRecord. Dette inkluderer innebygde funksjoner, validatorer og hvordan du definerer og benytter relasjoner mellom modeller Du skal ha kunnskap om (V) ActionView. Du skal kunne benytte templates og view helpers. Du skal ha kunnskap om (C) ActionController og hvordan ruter settes opp og konfigureres Du skal kjenne til deployeringsalternativene for en Rails applikasjon og kunne deployere på Heroku-plattformen. Generell kompetanse Etter å ha fullført emnet skal studenten kunne: foreslå og begrunne designvalg i en web applikasjon baser på Ruby on Rails foreslå og begrunne valgt arkitektur Gjennomføring Kurset gjennomføres med 12 sesjoner på 4 timer som inkluderer forelesning, øving og egenarbeid. Anbefalt tidsbruk Aktivitet Tidsbruk Deltakelse i undervisning 24 Selvstudium 132 Forberedelse til presentasjon/diskusjon i klassen Øving 24 Vurdering 20 Anbefalt tidsbruk totalt 200 Karakterskala Letter grades A-E for passed and F for failure Vitnemålstekst Dette innebefatter kjennskap til utvikling av webapplikasjoner som kommuniserer med databaser etter MVC-mønsteret. Emnet inneholdt bl.a. validering av modeller, relasjoner, view templates, view helpers, routing og kjennskap til konvensjonene i Rails og moderne webrammeverk. Studenten har lært å utvikle enkle webapplikasjoner, det er blitt gitt en grunnleggende innføring i websikkerhet, og studenten lært litt om å skrive enhetstester. Det har blitt gitt innføring i utplassering av Rails-applikasjoner til plattformen Heroku. Vurderingstype Innlevering Litteraturliste: Tittel Forfatter Forlag Utgitt år ISBN Utgave Kommentar Type Litteratur

Agile Web Development with Rails 4 Sam Ruby, Dave Thomas og David Heinemeier Hansson Pragmatic Bookshelf 2013 978-1937785567 Bok Pensum

PG4600 Mobil utvikling Emnenivå Bachelor Emnekode PG4600 Emnenavn Mobil utvikling Studiepoeng 7,50 Emneansvarlig Tor Morten Grønli Tilsynssensor Jarle Hansen Godkjenningsdato Hensikt Emnet har til hensikt i å gi en innføring i programmering av mobile klienter. Emnet skal også gi en introduksjon til mobile programmering og kunnskap om muligheter og begresninger ved mobile enheter og operativsystemer. Emnet vil gi praktisk erfaring i å utvikle programvare for Android plattformen.etter fullført emne vil studentene være i stand til å lage activities, services og content providers i tillegg til å utnytte apier for multimedia, lokasjon og kommunikasjon. Forutsetninger Emnet krever videregående programmeringskunnskaper tilsvarende PG3100 Læringsutbytte Kunnskaper Etter å ha fullført emnet skal studenten: ha kunnskap om arkitekturen til Android OS ha kunnskap om muligheter og begresninger ved programmering av mobile klienter ha kjenskap til livsløpet til en Android applikasjon kunne beskrive livsløpet til en activity med tekst og tegning kjenne til prosessen for publisering av applikasjoner i Google Play ha kunskap om testing på Android OS Ferdigheter Etter å ha fullført emnet skal student kunne: programmere activities programmere services programmere fragments gjøre rede for activities, services, broadcasts og fragments bruke Android APIet aktivt under programmering av applikasjoner programmere mot filer i intern og ekstern minne på den mobile enheten anvende de vanligste GUI komponentene til å produsere brukergrensesnitt programmere mot en lokal SQL database gjøre rede for forskjellen ved å programmere for et nettbrett og en telefon konfigurere en Android applikasjon

konfigurere nettbrett og telefon emulatorer debugge og deploye en applikasjon mot emulator og enhet kunne programmere mot internettbaserte tjenester kunne gjøre bruk av lokasjonsbaserte tjenester i egne applikasjoner gjøre rede for og implementere asynkron arkitektur Generell kompetanse Etter å ha fullført emnet skal studenten kunne: foreslå og begrunne designvalg i en Android applikasjon foreslå og begrunne valgt arkitektur argumentere og reflektere over native applikasjoner i forhold til hybride applikasjoner reflektere over valgt og implementert løsning i forhold til et kunde case / oppgave case Gjennomføring Kurset gjennomføres med 12 forelesninger på ca 2 timer og 12 lærerstyrte øvinger på ca 2 timer. Anbefalt tidsbruk Aktivitet Tidsbruk Deltakelse i undervisning 24 Selvstudium 110 Forberedelse til presentasjon/diskusjon i klassen 0 Øving 24 Vurdering 42 Anbefalt tidsbruk totalt 200 Verktøy Android API/SDK Eclipse / IntelliJ / Netbeans Karakterskala Letter grades A-E for passed and F for failure Vurderingstype Innlevering Litteraturliste: Tittel Forfatter Forlag Utgitt år ISBN Utgave Kommentar Type Litteratur Android Programming: Phillips, The Big Nerd B. et al. Ranch Guide The Big Nerd Ranch 2015 978-0134171456 2 Bok Pensum