Innledning

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.

Læringsutbytte

Kunnskap

Studenten...

  • vet bakgrunn og innhold for UML standarden

  • vet hva Unit Testing er

  • kan forklare prinsippene for test-driven development (TDD)

  • kjenner til parprogrammering og hvordan bruken av dette påvirker softwareprosjekter

  • vet hva design patterns er

  • kjenner til og kan identifisere en del viktige design patterns når studenten ser dem i kode

  • vet hva refactoring er

  • vet hva multi-threading er

  • forstår hvordan locking/låsing kan benyttes for å programmere trådsikre applikasjoner

  • kan forklare prinsippene for event handling

Ferdigheter

Studenten...

  • har oversikt over og kunne benytte den grunnleggende syntaksen i programmeringsspråket C#

  • behersker følgende UML-diagrammer: use case, klassediagram og sekvensdiagram

  • kan bruke UML til å designe programarkitektur

  • kan delta i parprogrammering på en produktiv måte

  • kan implementere følgende patterns: MVC and MVP, singleton, factory, builder, flyweight, composition, decorator

  • kan anvende design guidelines, som layers og GRASP prinsippene (med fokus på følgende for sistnevnte: controller, information expert, low coupling, high cohesion)

  • kan gjennomføre refactoring på eksisterende kode

  • kan implementere applikasjoner som benytter flere tråder

  • behersker et integrert utviklingsverktøy (IDE)

  • kan skrive og redigere kildekode med dette verktøyet

Generell kompetanse

Studenten...

  • kan reflektere over multi-threading og dets bruksområder

  • kan samarbeide med andre programmerere for å utvikle gode programmer og for å videreutvikle sin kompetanse

  • kan vurdere kvalitet på eksisterende programmer og vurdere strukturelle forbedringer

Emnet inngår i

  • Bachelor i informasjonsteknologi - Programmering
  • Bachelor i informasjonsteknologi - Spillprogrammering

Læringsaktiviteter

Forelesninger, øvinger og egenstudier.

Anbefalt tidsbruk

  • Deltakelse i undervisning og veiledning - 48 timer
  • Selvstudium - 104 timer
  • Gjennomføring av og forberedelse til eksamen - 48 timer

Anbefalt tidsbruk totalt - 200 timer

Eksamen

Eksamensdel: Individuell mappevurdering*

Varighet: 2-12 uker

Gradering: Nasjonal karakterskala A - F (F er ikke bestått) 

Vekting: 100 % av hel vurdering 

Hjelpemidler: Alle hjelpemidler tillatt 

Kontinuasjon

*Kontinuasjon av hjemmeeksamen: Kontinuasjon gjennomføres over én kalenderuke og med ny oppgavetekst. 

Merknader

Anbefalte forkunnskapskrav: grunnleggende ferdigheter i objektorientert programmering.

Undervisningen vil bli levert på norsk eller engelsk avhengig av undervisere.