NITH 2012 - 2013 / Emner / Programmeringsemner (PG,IPG) / PG3100 Avansert Javaprogrammering 1  

PG3100 Avansert Javaprogrammering 1

Emnenivå
Bachelor

Emnekode
PG3100

Emnenavn
Avansert Javaprogrammering 1

Studiepoeng
7,50

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 datastrukturer, collections APIet og 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
  • kjenne til vanlige datastrukturer i programmering og når det lønner seg å bruke disse
  • forklare begrepet "SQL injection" og hvordan man kan unngå dette
  • forklare begrepet "Cross-site scripting" (XSS) og hvordan man unngår dette

Ferdigheter

Etter å ha fullført emnet skal studenten kunne

  • anvende de vanligste klassene i Java sitt Collections API
  • 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
  • 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 arkitektur/struktur av kode
  • reflektere rundt:
    • valg av riktig datastruktur
    • verdien av automatiserte tester
    • grunnleggende websikkerhet (SQL injection/XSS)
Gjennomføring
Forelesninger, øvinger med veileder, innleveringer og skriftlig vurdering.

Anbefalt tidsbruk

Aktivitet

Tidsbruk

Deltakelse i undervisning

24

Øving

24

Selvstudium

149

Vurdering

3

Anbefalt tidsbruk totalt

200

Verktøy
  • Java 1.7
  • 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, datastrukturer, databaseprogrammering og servlets. Studenten kjenner til prinsipper for automatisert testing og konsepter som lagdeling og separation of concerns. Studenten kan gjøre bruk av Collections APIet i Java, unntaktshåndtering, oppkobling og manipulering av data i en database, samt skrive enkle servlets og deployere til en server.

Pensum

Introduction to Java Programming, Comprehensive Version, Y. Daniel Liang, Prentice Hall, 2012, 9. utgave

Vurderingstype
Mappevurdering

Vurdering

Mappe bestående av innleveringer og avsluttende skriftlig vurdering.




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

Vurdering / Assessment

Vekting (%):
100

Vurderingstype:
Mappevurdering m/skriftlig prøve (se emnesiden) / Portfolio w/written test

Hjelpemiddel:
Ingen / None

Varighet:


Semester:
Høst / Autumn