DAT108 Programmering og webapplikasjoner
Emneplan for studieåret 2019/2020
Innhold og oppbygning
Dette er et videregående emne innen objektorientert programmering. Studentene forutsettes å ha god kunnskap og gode ferdigheter innen objektorientert programmering før de tar dette emnet. Sentrale tema i emnet er objektorientert design, modulær programoppbygging og arkitekturprinsipper, problemløsing og testing. Java er undervisningsspråk i emnet, og viktige særtrekk ved språket blir gjennomgått, inkludert lambda-uttrykk og funksjonell programmering. I tillegg vil programmeringsspråket Javascript bli introdusert.
Emnet gir en innføring i videregående tema innen objektorientert design og noen sentrale designmønstre og anvendelsen av disse blir presentert. Grunnleggende prinsipper for arkitektur, som lagdeling er også en viktig del av emnet.
Studentene skal videre lære å utforme og programmere web- og desktopapplikasjoner, og få erfaring med utvikling av en større applikasjon i samarbeid med andre.
Emnet skal også gi en innføring i algoritmer som bygger på pensum i DAT102 Algoritmer og datastrukturer, blant annet implementasjon av grafalgoritmer og tilnærmingsalgoritmer for NP-problemer.
Innhold
- Lagdelt arkitektur
- Enkle designmønstre: low coupling/high cohesion
- MVC og Model 2-arkitektur
- Lambdauttrykk og funksjonell programmering
- Tråder og synkronisering
- Objektserialisering og strømhåndtering
- Bruk av biblioteker for grafiske grensesnitt
- Tjenersideprogrammering med JavaServer Pages og Java Servlets
- Modellering av web-applikasjoner
- Utforming av web-baserte interaktive brukergrensesnitt
- Enkel tilgangskontroll og brukerhåndtering
- Bruk av utviklingsverktøy
Læringsutbytte
Etter å ha fullført dette emnet skal studenten kunne:
Kunnskaper
- Utrede generelle prinsipper for lagdelt programvarearkitektur
- Forklare grunnleggende designmønstre
- Kjenne forskjellen på objektorientert og funksjonell programmering
- Forklare prinsipper og virkemåte for hendelsesdrevet programmering
- Forklare tekniske detaljer ved tjenersideprogrammering
- Forklare kommunikasjonen som skjer mellom klient og tjener i en webapplikasjon
- Kjenne definisjonen av minste spenntre for grafer
- Forklare virkemåten til Prims algoritme
- Forklare virkemåten til Dijkstras algoritme
- Kjenne til problemklassen NP og strategier for å konstruere tilnærmingsalgoritmer for slike problemer
Ferdigheter
- Implementere og anvende viktige arkitekturprinsipper og designmønstre i programkode
- Kunne bruke grunnleggende elementer fra funksjonell programmering.
- Implementere grafiske grensesnitt
- Skrive programkode for generering av dynamiske websider
- Programmere serverside-kode for MVC-løsninger
- Planlegge, gjennomføre og følge opp mindre utviklingsprosjekter
- Finne frem i API-dokumentasjon og anvende klasser fra programvarebibliotek i egen programkode
- Benytte prinsipper for hendelsesdrevet programmering i praksis.
- Implementere grafer ved hjelp av naboliste og nabomatrise.
- Implementere Prims algoritme
- Implementere Dijkstras algoritme
Generell kompetanse
- Arbeide i gruppe i et utviklingsprosjekt
- Kommunisere skriftlig og muntlig innad i en gruppe.
Krav til forkunnskaper
Bestått eksamen i DAT100 Grunnleggende programmering eller tilsvarende er et obligatorisk krav for å kunne ta dette emnet.
Anbefalte forkunnskaper
DAT102 Algoritmer og datastrukturer eller tilsvarende emne.
Undervisnings- og læringsformer
Forelesninger, øvingsoppgaver og prosjektarbeid i grupper.
Obligatorisk læringsaktivitet
4 obligatoriske øvinger må være gjennomført til fastsatte frister og godkjent før eksamen kan avlegges. Aktuelle former kan være programmeringsoppgaver, utviklingsprosjekt, skoleprøver.
Godkjente øvinger gir også adgang til eventuell utsatt eksamen påfølgende semester. Ved utsatt og ny eksamen neste gang faget undervises, må nye øvinger leveres.
Vurderingsform
Skriftlig skoleeksamen, 4 timer.
Tid og sted for eksamen blir opplyst på Studentweb og digitalt eksamenssystem.
Eksamen vil bli avholdt på digitalt eksamenssystem. Studentene må medbringe egen PC/MAC. Programvaren som er nødvendig for å gjennomføre eksamen må være installert og testet før eksamensdagen.
Karakterskala A-F, der F tilsvarer ikke bestått.
Dersom det er få oppmeldt til eksamen, kan det bli arrangert muntlig eksamen.
Hjelpemidler ved eksamen
Ingen
Mer om hjelpemidler