Emne

Videregående programmering (DAT240)

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


Dette er emnebeskrivelsen for studieåret 2019-2020. Merk at det kan komme endringer.

Se emnebeskrivelse og eksamens-/vurderingsinfo for dette studieåret (2024-2025)

Semesters

Fakta

Emnekode

DAT240

Vekting (stp)

10

Semester undervisningsstart

Høst

Undervisningsspråk

Engelsk

Antall semestre

1

Vurderingssemester

Høst

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)

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.

Forkunnskapskrav

Ingeniørfaglig innføringsemne - Data og elektro (ING100)

Anbefalte forkunnskaper

Grunnleggende programmering (DAT110)

Eksamen / vurdering

Vurderingsform Vekting Varighet Karakter Hjelpemiddel Exam system Withdrawal deadline Exam date
Programmeringsprosjekt og muntlig prøve 2/5 Bokstavkarakterer
En skriftlig prøve 3/5 4 Timer Bokstavkarakterer 04.11.2019 18.11.2019


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

3 obligatoriske laboppgaver

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)

Instituttleder:

Tom Ryen

Emneansvarlig:

Vinay Jayarama Setty

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) , Videregående programmering (DAT240_1) 5
Programvareutvikling (DAT210_1) , Videregående programmering (DAT240_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

Emnebeskrivelsen er hentet fra Felles studentsystem Versjon 1