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



Like dokumenter
Bachelor IT - Programmering

Navn. Bachelor IT Mobil apputvikling

Bachelor IT - Intelligente systemer

Navn. Bachelor IT Spillprogrammering

KONTINUASJONSEKSAMENER - "KONT" - SOMMEREN 2015

Læreplan i informasjonsteknologi - programfag i studiespesialiserende utdanningsprogram

AlgDat 12. Forelesning 2. Gunnar Misund

Programbeskrivelse Bachelor i informasjonsteknologi - programmering

Bachelor IT - Spillprogrammering

AlgDat 10. Forelesning 2. Gunnar Misund

Gruppe 43. Hoved-Prosjekt Forprosjekt

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

Studieplan 2006/2007

Bachelor IT: E-Business

Digital markedsføring. Studieplan Avdeling for kommunikasjon

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

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

Studieplan 2019/2020

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

Studentdrevet innovasjon

Studieinformasjon Bachelor i IT - Programmering Avdeling for teknologi

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

1 Forord. Kravspesifikasjon

Studieplan 2018/2019

Oppsummering. Thomas Lohne Aanes Thomas Amble

Studieplan 2017/2018

TDT4105 Informasjonsteknologi, grunnkurs

Studieinformasjon Bachelor i IT - Programmering Avdeling for teknologi

Søknadsfrist

Programbeskrivelse Bachelor i informasjonsteknologi - Frontend- og mobilutvikling

Hovedprosjekt 2014, Høgskolen i Oslo og Akershus

Læreplan i Programmering og modellering - programfag i studiespesialiserende utdanningsprogram

CORBA Component Model (CCM)

InfoRed Publisering. - produktbeskrivelse. TalkPool WebServices Postboks Åneby

Forslag til ny læreplan for informatikk studieretningsfag

IN1010 Objektorientert programmering Våren 2019

Pensum: fra boken (H-03)+ forelesninger

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

Velkommen til. IN1010 Objektorientert programmering Våren 2018

GJENNOMGANG UKESOPPGAVER 9 TESTING

Studieplan - KOMPiS Programmering

Pensum: fra boken (H-03)+ forelesninger

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

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

Studieinformasjon Bachelor i IT Intelligente systemer Avdeling for teknologi

Requirements & Design Document

Web fundamentals. Web design. Frontend vs. Backend Webdesign 17. januar Monica Strand

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

Programmeringsrammeverk som kan installeres på Windows Mobiloperativsystem

Studieinformasjon

Database Systems. A Practical Approach to Design, Implementation, and Management

Læringsutbyttebeskrivelse, Fredrikstad FagAkademi

Generelt om operativsystemer

Utveksling Det et mulig å ta deler av studiet ved andre høgskoler og universiteter i tråd med ERASMUS utvekslings

Programbeskrivelse Bachelor i informasjonsteknologi - Intelligente systemer

Studieplan Bachelor i IT Programmering. Institutt for teknologi

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

Oversikt. Informatikk. INF1000: Grunnkurs i objektorientert programmering. Utenom INF1000 Informasjon & hjelp

Team2 Requirements & Design Document Værsystem

Studieplaner m/eksamensdatoer 2011/2012

Studieplan - KOMPiS Programmering

LocalBank Prosjektbeskrivelse

Studieinformasjon Bachelor i IT Frontend- og mobilutvikling Avdeling for teknologi

Hovedprosjekt i data ved Høgskolen i Oslo våren 2007

EVU KURS PROSJEKTERINGSLEDELSE 2014/15

NIVÅBESKRIVELSER 1 til 7 (strukturert etter nivåer)

2.5 BACHELORGRADSPROGRAM I INFORMATIKK

Forsøkslæreplan i valgfag programmering

Dokument 1 - Sammendrag

Innhold. Forord Det første programmet Variabler, tilordninger og uttrykk Innlesing og utskrift...49

Forprosjekt. Accenture Rune Waage,

Velkommen til. INF våren 2017

Studieplan Bachelor i IT Intelligente Systemer. Institutt for teknologi

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

Studieplan Bachelor i IT Spillprogrammering. Institutt for teknologi

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

DRI 2001 Systemutviklingsarbeidet et overblikk Forelesning

Introduksjon til kurset og dets innhold

Forside. Eksamen i IN1030 for Våren Ingen hjelpemidler tillatt.

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

Forprosjekt gruppe 13

Studieplan 2015/2016

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

2. Beskrivelse av mulige prosjektoppgaver

Programvareutvikling (store systemer)

Kompetanse for kvalitet: Programmering for trinn

IKT og læring 1. Studieplan. Beskrivelse av studiet. Studiets oppbygging. Side 1 av 11

Kravspesifikasjon MetaView

Studieplan for Norsk 2 (8-13) Norsk i mediesamfunnet

Fagplan-/Studieplan Studieår Data. Oppstart H2010, 1. kl.

Veiledning og vurdering av Bacheloroppgave for Informasjonsbehandling

Vedtatt av Styret ved NTNU , med endringer vedtatt av Fakultet for samfunnsvitenskap og teknologiledelse senest

Distributed object architecture

Programbeskrivelse Bachelor i informasjonsteknologi - spillprogrammering

Studieinformasjon Bachelor i IT Intelligente systemer Avdeling for teknologi

Forelesning inf Java 1

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

Presentasjon Sammendrag Dagens situasjon Mål og rammebetingelser Moduler Løsning og alternativer...

Introduksjon til programmering og programmeringsspråk

Transkript:

IT Programmering 2014 2015 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. Navn IT Programmering 2014 2015 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 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 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 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 i Informasjonsteknologi. Studiet er 3 ig, og gir tittelen bachelor i IT. Det første et er felles for alle linjer, og gir en solid grunnkompetanse i programmering, prosjektarbeid, systemutvikling, datateknikk og databaser. På det andre et er kjernen videreføringen av Java løpet fra første. Å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 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 et 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 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 studium 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 http://nith.studiehandbok.no/layout/set/print/content/view/complete/7610/language/nor NO 1/43

t 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 studentene i tillegg til mer individuell faglig kompetanse erfaring i samarbeid, prosjektstyring og prosjektorganisering. Programmering 2014 2015 Emnets navn S.poengO/V *) pr. semester S1(H) S2(V) S3(H) S4(V) S5(H) S6(V) DB1100 Databaser 1 O 7,5 PG1100 Programmering 1 O 7,5 PJ1100 Kreativt webprosjekt O 7,5 TK1100 Digital teknologi O 7,5 PJ2100 Iterativt webprosjekt O 7,5 TK2100 Informasjonssikkerhet O 7,5 PG2100 Programmering 2 O 7,5 PG3100 Avansert Javaprogrammering 1 O 7,5 PG3300 Programvarearkitektur O 7,5 PG4200 Algoritmer og datastrukturer O 7,5 PJ3100 Prosjekt Software Engineering 15,00 O 7,5 7,5 PG4300 Ruby on Rails O 7,5 PG4100 Avansert Javaprogrammering 2 O 7,5 PG3200 Android programmering O 7,5 PG5100 Enterpriseprogrammering 1 O 7,5 PG3400 Programmering i C for Linux O 7,5 BU5100 Entreprenørskap O 7,5 PG6100 Enterprise programmering 2 O 7,5 PJ6000 Hovedprosjekt 15,00 O 15 PJ6100 Undersøkelsesmetoder O 7,5 Sum: 30 22,5 30 30 22,5 30 *) O Obligatorisk emne, V Valgbare emne Valgemner, 1.klasse Emnets navn S.poengO/V *) pr. semester S1(H) S2(V) S3(H) S4(V) S5(H) S6(V) DS2100 Animasjon V 7,5 DS2200 Digital kultur V 7,5 PG2201 Unity Utvikling O 7,5 Sum: 0 7,5 0 0 0 0 http://nith.studiehandbok.no/layout/set/print/content/view/complete/7610/language/nor NO 2/43

*) O Obligatorisk emne, V Valgbare emne Valgemner høsten 2014, 3.klasse Programmering Emnets navn S.poengO/V *) pr. semester S1(H) S2(V) S3(H) S4(V) S5(H) S6(V) DS3800 Grensesnittdesign V 7,5 PG5500 Embedded systems V 7,5 PG5600 ios programmering V 7,5 Sum: 0 0 0 0 7,5 0 *) O Obligatorisk emne, V Valgbare emne BU5100 Entreprenørskap BU5100 Entreprenørskap Eivind Brevik Tilsynssensor Magne Johannessen 03.05.2013 en 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. Ingen 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 Forelesninger og øvinger Deltakelse i undervisning 25 Selvstudium 80 Forberedelse til presentasjon/diskusjon i klassen 5 http://nith.studiehandbok.no/layout/set/print/content/view/complete/7610/language/nor NO 3/43

Øving 20 Vurdering 70 totalt 200 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. Mappevurdering Tittel Forfatter Forlag Utgitt Business Model Generation: A Handbook for Osterwalder, Visionaries, Game Changers, and Challengers A., Peigner, Y. Wiley 2010 9780470876411 1 Bok Pensum The Lean Startup: How Today's Entrepreneurs Use Continuous Ries, Eric Innovation to Create Radically Successful Businesses Crown Business 2011 9780670921607 1 Bok Pensum DB1100 Databaser 1 DB1100 Databaser 1 Per Lauvås Tilsynssensor Bjørn Kristoffersen 18.04.2013 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 http://nith.studiehandbok.no/layout/set/print/content/view/complete/7610/language/nor NO 4/43

prinsippene for god design (normalisering, nøkkelbruk). Generell studiekompetanse Kunnskap: definere og forklare forskjellen på data, struktur og presentasjon forklare komponentene som inng 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. Forelesninger, øvinger og selvstudium. Deltakelse i undervisning 40 Selvstudium 100 Forberedelse til presentasjon/diskusjon i klassen 14 Øving 40 Vurdering 6 totalt 200 Verktøy MySQL Database 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. Skriftlig Vurdering Flervalgseksamen (25%) Skriftlig eksamen (75%) http://nith.studiehandbok.no/layout/set/print/content/view/complete/7610/language/nor NO 5/43

Tittel Forfatter Forlag Utgitt 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 DS2100 Animasjon Hrafnhildur Jonasdottir Tilsynssensor Bd R.Gunnerud 30.05.2012 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 ve 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 kreativ og kritisk tenkning knyttet til animasjon. 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: http://nith.studiehandbok.no/layout/set/print/content/view/complete/7610/language/nor NO 6/43

o demonstrere kreativ og kritisk tenkning og kommunikasjonsevner gjennom animasjonsteknikker en av emnet er basert på kombinasjon av forelesning, prosjektarbeid, og individuell skriftlig prøve Deltakelse i undervisning 48 Selvstudium 60 Forberedelse til presentasjon/diskusjon i klassen 12 Øving 40 Vurdering 40 totalt 200 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 Innlevering Vurdering Mappevurdering (se emnesiden) Tittel Forfatter Forlag Utgitt Ideas for the Karen Animated Sullivan, Short: Kate Elsevier 2013 Finding Alexander 9780240818726 2. utg Bok Pensum and Building og Gary Schumer Stories DS2200 Digital kultur DS2200 Digital kultur Faltin Karlsen Tilsynssensor Anders Fagerjord, UiO 08.05.2013 http://nith.studiehandbok.no/layout/set/print/content/view/complete/7610/language/nor NO 7/43

Internett har stor innflytelse på hvordan vi kommuniserer og ve 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. Generell studiekompetanse Kunnskaper Ferdigheter 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. 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. 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. Deltakelse i undervisning 24 Selvstudium 104 Forberedelse til presentasjon/diskusjon i klassen 24 Øving 24 Vurdering 24 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. 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. http://nith.studiehandbok.no/layout/set/print/content/view/complete/7610/language/nor NO 8/43

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. Innlevering Vurdering I semesteret må det leveres to kvalifikasjonsoppgaver. I forbindelse med siste innlevering må man også delta på en muntlig eksamen. Tittel Forfatter Forlag Utgitt Mediekultur, mediesamfunn Gripsrud, Jostein Universitetsforlaget 2011 9788215017921 4. utg Bok Pensum DS3800 Grensesnittdesign DS3800 Grensesnittdesign Tor Morten Grønli en 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 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. Ingen Kunnskap: Ferdigheter: 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 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 http://nith.studiehandbok.no/layout/set/print/content/view/complete/7610/language/nor NO 9/43

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 Emnet gjennomføres med en kombinasjon av forelesninger og øvinger. Deltakelse i undervisning 24 Selvstudium 78 Forberedelse til presentasjon/diskusjon i klassen 24 Øving 24 Vurdering 50 totalt Innlevering Tittel Forfatter Forlag Utgitt Observing the User Experience Sketching User Experiences: Getting the Bill Design Right Buxton and the Right Design Elizabeth Goodman, Mike Morgan Kuniavsky Kaufmann 2012 978 0123848697, Andrea Moed Morgan Kaufmann 2007 978 0123740373 2 Bok Pensum 1 Bok Pensum The Mobile Book Smashing Magazine Smashing Media GmbH 2013 1 1 Kindle bok Bok Pensum PG1100 Programmering 1 PG1100 Programmering 1 Stein Marthinsen Tilsynssensor http://nith.studiehandbok.no/layout/set/print/content/view/complete/7610/language/nor NO 10/43

Morten Andersen Gott 16.10.2011 I utviklingen av applikasjoner er programmering en meget sentral disiplin, siden det er dette som benyttes til å realisere /lage kjørbare systemer på en datamaskin. Denne disiplinen trekkes direkte eller indirekte inn i en rekke andre fag ved IT utdanningen. Emnet skal gi en første innføring i programmering og utvikling av algoritmer for å løse ulike problemer. Emnet krever ingen konkrete faglige forutsetninger utover generell studiekompetanse og god kjennskap til bruk av en PC. Programmering krever en høy grad av nøyaktighet, tålmodighet, utholdenhet og evne til logisk tenking. Kunnskaper Etter å ha fullført emnet skal studenten Ferdigheter vite hva et programmeringsspråk er, og hvordan slike skiller seg fra naturlige språk vite forskjellen på interpreterte og kompilerte språk kjenne til forskjellene på hendelsesdrevne og rent sekvensielle programmer Etter å ha fullført emnet skal studenten kunne o variabler o tilordning bruke et API lage enkle programmer som bl.a. gjør bruk av o ulike datatyper o aritmetiske og logiske uttrykk o valg o løkke lage enkle programmer som anvender kontrollstrukturene lage enkle programmer med fokus på utvikling av algoritmer lage enkle programmer som skriver til og leser fra tekstfiler deklarere og bruke statiske tabeller (arrays) beherske et enkelt integrert utviklingsverktøy (IDE) kunne skrive og redigere kildekode med dette verktøyet kunne kjøre programmer med dette verktøyet kunne bruke de grunnleggende elementene i et programmeringsspråk til å lage programmer kunne tolke og forholde seg til feilmeldinger og rette kildekode ut fra disse Generell kompetanse Etter å ha fullført emnet skal studenten kunne vurdere passende strategi for løsing av et problem diskutere problemløsningsmetoder med medstudenter gjøre rede for tankegang for egne løsninger Forelesninger, øvinger med veileder, innleveringer og skriftlig vurdering. Deltakelse i undervisning 24 Selvstudium 110 Forberedelse til presentasjon/diskusjon i klassen Øving 36 Vurdering 30 totalt 200 http://nith.studiehandbok.no/layout/set/print/content/view/complete/7610/language/nor NO 11/43

Verktøy Java 1.6 JCreator/DrJava Emnet har gitt en introduksjon i programmering med vekt på utvikling av algoritmer for å løse enkle problemer. Studenten kan deklarere og anvende ulike datatyper og gjøre bruk av kontrollstrukturene valg og løkke. Studenten kan også gjøre bruk av tabeller (arrays) etter behov. Mappevurdering Vurdering Mappe bestående av innleveringer og avsluttende skriftlig vurdering. Tittel Forfatter Forlag Utgitt Building Stuart Java Addison Reges/Marty Programs Wesley Stepp 2013 978 0133360905 3. utg Bok Pensum PG2100 Programmering 2 PG2100 Programmering 2 Stein Marthinsen Tilsynssensor Morten Andersen Gott 16.10.2011 Emnet skal gi en første innføring i objektorientert programmering. Flere sentrale mekanismer i objektorientert programmering vil bli gjennomgått, samt eksempler på samspill mellom objekter av noen få klasser. Modellering i UML av små systemer (klassediagrammer og sekvensdiagrammer) blir også brukt. Emnet skal gi en enkel innføring i programmering av grafiske grensesnitt (GUI) med hendelseshåndtering. Emnet gir en introduksjon av en standard Collection klasse (ArrayList). PG1100 Kunnskaper Etter å ha fullført emnet skal studenten: vite hva arv er vite hva polymorfi er http://nith.studiehandbok.no/layout/set/print/content/view/complete/7610/language/nor NO 12/43

Ferdigheter vite om likheter/forskjeller mellom abstrakte klasser og interfacees vite hvordan mekanismen for hendelseshåndtering fungerer definere klasser, og kunne beherske bruk av objekter beherske ulike UML diagramtyper slik som enkle klassediagrammer og sekvensdiagrammer beherske bruk av objekter og få objekter til å samarbeide kunne definere spesialiseringer av klasser gjennom arv beherske bruk av abstrakte klasser og interface ( kontrakter ) anvende arv og interfaces gjennom kode med polymorfisk oppbygning programmere enkle grafiske grensesnitt bruke ArrayList klassen til å opprette og bruke en dynamisk datastruktur Generell kompetanse beherske et enkelt integrert utviklingsverktøy (IDE) skrive og redigere kildekode med dette verktøyet kjøre programmer med dette verktøyet bruke de grunnleggende elementene i dette språket til å lage programmer bruke en debugger for å finne feil Forelesninger, øvinger, innleveringer og skriftlig vurdering. Deltakelse i undervisning 24 Selvstudium 128 Forberedelse til presentasjon/diskusjon i klassen Øving 24 Vurdering 24 totalt 200 Verktøy Java JDK 1.6 eller nyere IDE Emnet har gitt en innføring i objektorientert programmering. Studenten kan definere og anvende spesialiseringer av klasser gjennom arv/interface/polymorfi og mestrer programmering av enkle grafiske brukergrensesnitt (GUI) med tilhørende enkel hendelseshåndtering. I tillegg har studenten lært å bruke en standard Collection klasse til å implementere en dynamisk datastruktur. Mappevurdering Vurdering Mappe bestående av innleveringer og skriftlig prøve. Tittel Forfatter Forlag Utgitt Building Java Programs Stuart Reges/Marty Stepp 2013 978 0133360905 3. utg Bok Pensum PG2201 Unity Utvikling http://nith.studiehandbok.no/layout/set/print/content/view/complete/7610/language/nor NO 13/43

PG2201 Unity Utvikling Tomas Sandnes Tilsynssensor Michael McCoy Jr. Emnet omhandler programmering og utvikling med Unity spillutviklingsplattformen. 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. PG1100 Kunnskap Ferdigheter Lære grunnleggende C# syntaks, samt vite på hvilke måter språket skiller seg fra Java. Forstå hvordan prinsippene bak objektorientert programmering kan brukes i C# med Unity3d. 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 benyttes for input. Kunne benytte programmeringspråket C#. Debugge, lokalisere og rette feil i programmer. Beherske Unity utviklingsmiljøet, kunne opprette prosjekter og publisere de til forskjellige plattformer. Importere og anvende 3D modeller, animasjoner, teksturer, lyder, "prefabs" og andre assets. Legge til spillmekanikk ved hjelp av programmering. Generell Kompetanse Planlegge, utvikle og publisere enkle spill. Implementere og utvide 3D spillomgivelser. 12 forelesninger med øvinger. Deltakelse i undervisning 24 Selvstudium 92 Forberedelse til presentasjon/diskusjon i klassen 0 Øving 24 Vurdering 60 totalt 200 Verktøy Unity MonoDevelop Visual Studio http://nith.studiehandbok.no/layout/set/print/content/view/complete/7610/language/nor NO 14/43

Emnet omhandler programmering og utvikling med Unity spillutviklingsplattformen. Pensum Lærebok. Ressurser publisert på emnesidene. Innlevering Vurdering Hjemmeeksamen Tittel Forfatter Forlag Utgitt Unity Game Mike Development Geig in 24 Hours Sams Publishing December 6, 2013 978 0672336966 1st edition Bok Pensum PG3100 Avansert Javaprogrammering 1 PG3100 Avansert Javaprogrammering 1 Per Lauvås Tilsynssensor Morten Andersen Gott 25.03.2012 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. 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. 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 dette http://nith.studiehandbok.no/layout/set/print/content/view/complete/7610/language/nor NO 15/43

Ferdigheter vite hva JDBC (Java Database Connectivity) og ORM (Object Relational Mapping) er og hvordan vi kan benytte disse for å kommunisere med en database 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: gjengi livsløpet til en servlet hente ut POST/GET parametere produsere dynamisk innhold lage en WAR fil og deployere denne på en server skrive og hente ut data fra en HTTP session skrive views i Java Server Pages (JSP) Generell kompetanse Etter å ha fullført emnet skal studenten kunne begrunne og presentere sin egen kode reflektere rundt: verdien av automatiserte tester valg av kommunikasjonsmetode mot database grunnleggende websikkerhet (SQL injection/xss) Forelesninger, øvinger med veileder, mappevurdering og skriftlig vurdering. Deltakelse i undervisning 24 Øving 24 Selvstudium 70 Vurdering 82 totalt 200 Verktøy Java 1.8 Eclipse 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. Mappevurdering Vurdering Mappe og skriftlig. Tittel Forfatter Forlag Utgitt Introduction to ISBN 10: 0133761312, http://nith.studiehandbok.no/layout/set/print/content/view/complete/7610/language/nor NO 16/43

Java Y. Daniel Programming, Liang Comprehensive Version Prentice Hall 2014 ISBN 13: 978 0133761313 10 Bok Pensum PG3200 Android programmering PG3200 Android programmering Tor Morten Grønli Tilsynssensor Jarle Hansen, Evry AS 20.08.2012 Emnet har til hensikt i å gi en innføring i programmering av mobile klienter. Emnet gir en introduksjon til mobil programmering, og kunnskap om muligheter og begresninger ved mobile enheter og operativsystemer. Emnet gir 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. Grunnleggende programmeringskunnskap (PG1100 og PG2100 eller tilsvarende innføring i objektorientert programmering) Kunnskaper Etter å ha fullført emnet skal studenten: Ferdigheter 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 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 http://nith.studiehandbok.no/layout/set/print/content/view/complete/7610/language/nor NO 17/43

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 Kurset gjennomføres med 12 forelesninger på ca 2 timer og 12 lærerstyrte øvinger på ca 2 timer. Øvingene er ikke obligatoriske, men for å oppnå kompetansemålene forventes det at studentene fullfører øvingsoppgavene og også på egenhånd legger inn ekstra innsats der øvingstimene ikke strekker til. Deltakelse i 24 undervisning/forelesning Selvstudium 110 Forberedelse til 0 presentasjon/diskusjon Øving 24 Vurdering 42 Totalt 200 Emnet har gitt studenten ferdigheter i å programmere mobile applikasjoner på Android plattformen, med vekt på elementer som applikasjonstyper, grensesnittbygging, IO tjenester, lokasjonstjenester og kommunikasjon med internett baserte tjenester. Studenten har kunnskap om programmering mot både nettbrett og telefoner, og kan reflektere over valg av implementasjonsteknikk (native / hybrid). Innlevering Tittel Forfatter Forlag Utgitt Beginning Android Development: Create Your Own Android Apps Today PawPrints Learning Technologies CreateSpace Independent 2014 Publishing Platform 978 1502395221 Bok Pensum PG3300 Programvarearkitektur PG3300 Programvarearkitektur Per Lauvås Tilsynssensor Alf Inge Wang http://nith.studiehandbok.no/layout/set/print/content/view/complete/7610/language/nor NO 18/43

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. Erfaring med grunnleggende objektorietert programmering. 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 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 hvordan action listeners kan brukes 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, komponent diagram 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 foreslå strukturelle forbedringer. Forelesninger, øvinger og egenstudier. Deltakelse i undervisning 24 Selvstudium 128 Øving 24 Vurdering 24 totalt 200. Verktøy IDE: Visual Studio Ultimate 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 (se "Litteraturliste", under) samt forelesningsmaterialet og nødvendige hjelpemidler for å gjennomføre øvingsopplegget. Innlevering Vurdering 2 innleveringer og 1 muntlig prøve (se "Vurdering / Assessment", under). http://nith.studiehandbok.no/layout/set/print/content/view/complete/7610/language/nor NO 19/43

Tittel Forfatter Forlag Utgitt Applying UML and Patterns Craig Larman Prentice Hall 2004 978 0131489066 3rd ed. Bok Pensum PG3400 Programmering i C for Linux PG3400 Programmering i C for Linux Kjetil Raaen 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. Grunnleggende programmeringskunnskap (PG2100 Programmering 2 eller tilsvarende) samt grunnleggende digital teknologi (TK1100 Digital teknologi eller tilsvarende). Kunnskaper Etter å ha fullført emnet skal studenten: Ferdigheter Kjenne til operativsystemene Unix og Linux: bakgrunn og historie 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: compile link Forklare konseptet «everything is a file» og kjenne til eksempler inkludert: devices 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. Etter å ha fullført emnet skal studenten: Bruke grunnleggende konstuksjoner i programmeringspråket «C» inkludert: main, basic types, printf, scanf, strings, #include, enum, typedef, struct, union, command line parameters, macros, varargs Statisk minnehåndtering Utvikle programmer under paradigmet «strukturert programmering» http://nith.studiehandbok.no/layout/set/print/content/view/complete/7610/language/nor NO 20/43

Anvende dynamisk minnehåndtering inkludert: 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 makefile static libraries Implementere lesing og skriving til fil r/w modes seek buffer size Operere kommandolinjen i linux for å utføre viktige operasjoner inkludert: ls, cd, mkdir, rm, cp, chmod, chown, pwd, ps, kill, man, wget pipes, redirection starte programmer mounting av filsystemer Lage programmer som unng buffer overflow. Generell kompetanse 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 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. Deltakelse i undervisning/forelesning 24 Selvstudium 110 Forberedelse til presentasjon/diskusjon 0 Øving/prosjektarbeid/workshop 24 Vurdering 42 totalt 200 Verktøy Linux og gcc 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. Mappevurdering Tittel Forfatter Forlag Utgitt Programming in C Kochan, Stephen G Sams publishing 2004 9780672326660 3. utg Bok Pensum PG4100 Avansert Javaprogrammering 2 http://nith.studiehandbok.no/layout/set/print/content/view/complete/7610/language/nor NO 21/43

PG4100 Avansert Javaprogrammering 2 Per Lauvås Tilsynssensor Morten Andersen Gott 25.03.2012 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. 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. Kunnskaper Etter å ha fullført emnet skal studenten Ferdigheter vite hvilke fordeler trådprogrammering kan gi og n 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 webservices kjenne til begrepet "REST" vite n det kan være fornuftig å benytte Lambda Expressions i Java Etter å ha fullført emnet skal studenten kunne konfigurere avhengigheter: lage JAR/WAR legge til tredjepartsbiblioteker manuelt i Eclipse bruke Maven for å spesifisere avhengigheter og bygge et Javaprosjekt anvende open source biblioteker: sjekke de ut fra versjonskontroll bygge et open source prosjekt som baserer seg på Maven gjøre en endring i biblioteket 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 Generell kompetanse Etter å ha fullført emnet skal studenten kunne http://nith.studiehandbok.no/layout/set/print/content/view/complete/7610/language/nor NO 22/43

reflektere rundt fordeler og ulemper med tredjepartsbiblioteker reflektere rundt fordeler og ulemper med funksjonell programmering begrunne og presentere sin egen kode Kurset gjennomføres med 12 sesjoner på 4 timer som inkluderer forelesning, øving og egenarbeid. Deltakelse i undervisning 24 Øving 24 Selvstudium 70 Vurdering 82 totalt 200 Verktøy Java 1.8 Scala Eclipse Maven Git/Subversion 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 RESTbaserte webtjenester som returnerer XML/JSON. Emnet ga også en smakebit på funksjonell programmering som et alternativt programmerings paradigme til objekt orientert programmering. Pensum Utvalgte kapitler fra læreboka. Utvalgte artikler. Mappevurdering Vurdering Mappe og skriftlig Tittel Forfatter Forlag Utgitt Introduction to Java Y. Daniel Programming, Liang Comprehensive Version Prentice Hall 2014 ISBN 10: 0133761312, 10. ISBN 13: utgave 978 0133761313 Bok Pensum PG4200 Algoritmer og datastrukturer PG4200 Algoritmer og datastrukturer Lars Sydnes Tilsynssensor http://nith.studiehandbok.no/layout/set/print/content/view/complete/7610/language/nor NO 23/43

Magnus Lie Hetland, NTNU 24.04.2014 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 grafalgoritmer. PG1100 og PG2100 eller tilsvarende grunnleggende programmeringskunnskap. Kunnskapsmål Studentene skal kjenne til følgende: Sentrale abstrakte datatyper: Lister, køer, stakker, Mengder (sets, collections), Avbildninger (maps) Trær og grafer. Egenskapene til sentrale datastrukturer: Tabeller (arrays). Lenkede lister. Binære trær, søketrær, balanserte søketrær, B trær, AVL trær, Red Black trær. Hash tabeller og Hash avbildninger. Grafer implementert ved naboskapslister og matriser. Sentrale søkealgoritmer: Linært søk, Binært søk. Søk i binære søketrær. Søk i Hash tabeller. Sorteringsalgoritmer: Insertion sort, Selection sort, Bubble sort, Quicksort, Merge sort, Heap sort, Radix sort. Enkelte graf algoritmer, inkludert traversering av grafer, Dijkstras algoritme, A* algoritmen, Prims algoritme. Oppbygning, virkemåte og bruk av rekursive funksjoner, inkludert rekursiv traversering av trær og grafer, rekursiv søk og sortering, backtracking. Grunnleggende begreper innen teorien for beregningskompleksitet, inkludert O notasjon, NP kompletthet og reduksjon, den handelsreisendes problem (Travelling salesman problem), ryggsekkproblemet (Knapsack problem). Ferdighetsmål Studenten skal kunne: Bruke eksisternde bilblioteker for algoritmer og datastrukturer, Implementere kjente datastrukturer, inkludert tabell lister, lenkede lister, binære søketrær og heaps, hash tabeller, grafer. Implementere kjente algoritmer, inkludert Insertion sort, selection sort, 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, http://nith.studiehandbok.no/layout/set/print/content/view/complete/7610/language/nor NO 24/43

ha den kunnskapen om algoritmer og datastrukturer som kreves i videre informatikkstudier. Forelesninger (ca. 50%) og øvinger (ca. 50%) Deltakelse i undervisning 24 Selvstudium 128 Forberedelse til presentasjon/diskusjon i klassen Øving 24 Vurdering 24 totalt 200 Verktøy Java Development Kit 1.8 Emnet skal gi innsikt i algoritmer og datastrukturer som er sentrale i arbeidet med implementasjon og design av effektive datasystemer. Innlevering Vurdering To innleveringer underveis i semesteret og skriftlig avsluttende eksamen. Tittel Forfatter Forlag Utgitt Robert Sedgewick, Addison Algorithms 2011 Kevin Wesley Wayne 978 0 321 57351 3 4 Bok Pensum PG4300 Ruby on Rails PG4300 Ruby on Rails Per Lauvås Tilsynssensor Mads Mobæk 01.11.2013 Emnet skal gi studentene grunnleggene kjennskap til programmeringsspråket Ruby og rammeverket Rails. en 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. http://nith.studiehandbok.no/layout/set/print/content/view/complete/7610/language/nor NO 25/43