MENY
Dette er studietilbudet for studieår 2019-2020. Endringer kan komme.


Studenten skal lære mer avansert programmering i et sterkt typet objektorientert programmeringsspråk. Beste programmeringspraksis og testing.

Læringsutbytte

Kunnskap:
  • Bruk av sterkt typete programmeringsspråk som Java
  • Objektorientert programmering og polymorfisme
  • Grunnleggende mønstre for programmering (design patterns)
  • Bruk av forskjellige verktøyer som compilers, build tools, debuggers og versjonskontroll

Ferdigheter:
  • Være i stand til å designe, utvikle og feilsøke komplekse programvaresystemer.
  • Kunne bruk av design mønstre, bruk av verktøy for feilsøking og testing

Generell kompetanse:
  • Kunne utvikle større og mer avanserte kjørbare dataprogrammer.

Innhold

  • Introduksjon til Java. Rask gjennomgang av syntaksen til språket for datatyper, metoder, klasser og objekter
  • Mer utdypende om innkapsling og objektorientert programmering.
  • Polymorfisme i sterkt typete språk, inkludert grensesnitt og abstrakte klasser
  • Design Patterns
  • Generics
  • Parallell programmering
  • Bruk av kompilatorer, programmeringsverktøy og debugging-verktøy
  • Bruk av versjonskontroll (git) og kodegjennomgang i grupper
  • Clean code, error handling, Unit Testing/TDD, debugging and profiling tools
  • Introduction to functional programming (Java8/scala)

Forkunnskapskrav

ING100 Ingeniørfaglig innføringsemne - Data og elektro

Anbefalte forkunnskaper

DAT110 Grunnleggende programmering

Eksamen/vurdering

Skriftlig og muntlig eksamen
Vekting Varighet Karakter Hjelpemiddel
En skriftlig prøve3/5 A - F
Programmeringsprosjekt om muntlig prøve2/5 A - F
Prosjektoppgave bestående av en stor programmeringsoppgave. Prosjektoppgaven utføres i gruppe. Karakteren for prosjektoppgaven baseres på innlevert programkode og individuell muntlig gjennomgang av innlevert programkode. Begge deler må gjennomføres før endelig karakter fastsettes. Gruppemedlemmene kan få ulik karakter basert på den muntlige gjennomgangen.
Hvis en student ikke består prosjektoppgaven, må hun/han ta dette om igjen neste gang kurset undervises.

Vilkår for å gå opp til eksamen/vurdering

Tre obligatoriske individuelle laboppgaver (programmeringsoppgaver). Godkjent/ikke godkjent. Alle programmeringsoppgavene må godkjennes for å gå opp til skriftlig- og lab-eksamen. Godkjenning skjer ved innlevering via Autograder-systemet for automatisk evaluering, samt etterfølgende godkjenning på lab.
Gjennomføring av obligatorisk lab skal gjøres til de tider og i de grupper som er oppsatt. Fravær på grunn av sykdom eller av andre årsaker skal snarest mulig kommuniseres til laboratorie- eller fagansvarlig. Det kan ikke påregnes å få gjennomføre lab utenom oppsatt tid hvis dette ikke er kommunisert og ny avtale gjort.
Konsekvens av at man ikke har fått godkjent laboratoriearbeid er at man ikke får gå opp til eksamen i emnet.

Fagperson(er)

Emneansvarlig
Vinay Jayarama Setty , Terje Per Kårstad
Faglærer
Glenn Frode Henriksen
Instituttleder
Tom Ryen

Arbeidsformer

Forelesninger og gruppeøvinger. Programmeringsoppgaver som skal gjøres i grupper på 2-3 studenter.
4 timer med forelesning og 4 øvingstimer pr. uke.

Overlapping

Emne Reduksjon (SP)
Programmering, videregående (BID100_1) 5
Programvareutvikling (DAT210_1) 10

Åpent for

Bachelornivå på Det teknisk-naturvitenskapelige fakultetet.

Emneevaluering

Skjer vanligvis ved skjema og/eller samtaler etter gjeldende retningslinjer.

Litteratur

For Java basics: Head First Java, 2nd Edition by Kathy Sierra and Bert Bates Publisher: O'Reilly Media, Inc. ISBN: 9780596009205

For best coding practices: Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin. Prentice Hall, ISBN: 9780136083238

Domain-Driven Design: Tackling Complexity in the Heart of Software 1st Edition by Eric Evans ISBN-13: 978-0321125217


Dette er studietilbudet for studieår 2019-2020. Endringer kan komme.

Sist oppdatert: 19.09.2019