AIS1003

Objektorientert programmering for kyberfysiske systemer

Høst

Ålesund

Norsk

Oversikt

Snitt

C

3,03

0,21

Ståprosent

93 %

2 poeng

Karakterfordeling
Snitt over tid
Ståprosent over tid

Om emnet

Faglig innhold

Emnet inneholder et utvalg av følgende tema, med fokus på anvendelse mot kyberfysiske systemer:

  • Grunnleggende objektorientert programmering og design.
  • Grunnleggende begreper innen objektorientering (bl.a. klasser, klassehierarki, objekter, innkapsling, polymorfisme).
  • Kode modularisering og gjenbruk.
  • Introduksjon til byggsystemer, integrerte utviklingsmiljø (IDE), debugging, enhetstesting og versjonskontroll.
  • Innføring i grunnleggende datastrukturer (f.eks arrays, lister, hash-maps, trær)
  • Minne og feilhåndtering.

Mer informasjon om pensum blir tilgjengeliggjort ved starten av semesteret.

Læringsmål

Følgende læringsutbytter er formulert med tanke på anvendelse relatert til kyberfysiske systemer.

Kunnskap

  • Kandidaten kan forklare enkle prinsipper innen objektorientert programmering som innkapsling, modularisering og samhandlende objekter.
  • Kandidaten kan formulere prinsipper for god kodedesign (kobling/kohesjon), kodekvalitet og god kodestil, og hvorfor det er viktig i programvaredesign.
  • Kandidaten kan skrive kode for ulike plattformer, og som er testbar og gjenbrukbar.
  • Kandidaten kan identifisere og bruke grunnleggende datastrukturer for best løse et gitt problem.

Ferdigheter

  • Kandidaten kan anvende grunnleggende objektorientert tankegang til å analysere og løse enklere problemer.
  • Kandidaten kan sette opp enkle programmiljø for å utvikle, teste og kjøre objektorienterte programmer.
  • Kandidaten kan lage strukturert, oversiktlig og godt dokumentert programkode basert på prinsipper for god kodedesign.
  • Kandidaten kan anvende klasser (også fra biblioteker), kontrollstrukturer og samarbeid mellom objekter, samt finne fram i API-dokumentasjon.
  • Kandidaten kan benytte et integrert utviklingsmiljø (IDE) godt.
  • Kandidaten kan benytte en "debugger" til å undersøke programkode under kjøring og for å skrive enhetstester.
  • Kandidaten kan modellere og implementere elementer av typiske kyberfysiske systemer med bruk av konsepter innen OOP.

Generell kompetanse

  • Kandidaten kan kommunisere og drøfte kodeløsninger og forklare hvordan et program oppfører seg.
  • Kandidaten kan finne og anvende verktøy og dokumentasjon relatert til programmeringsspråket og standardbiblioteket.
  • Kandidaten kjenner til programmeringsaspekter med betydning for informasjonssikkerhet.
  • Kandidaten kan overføre konsepter innen OOP til andre programmeringsspråk.
  • Kandidaten kan benytte algoritmisk tenkning ("computational thinking") og kybernetisk systemtekning til å løse ingeniørfaglige problemer og bryte større ingeniørfaglige problemer ned i mindre delproblemer som kan løses hver for seg og settes sammen til overordnede systemer.

Læringsformer og aktiviteter

Emnet benytter hovedsaklig en blanding av forelesninger, øvingstimer og praktisk rettet laboratoriearbeid/prosjektarbeid som læringsformer. Det benyttes en konstruktivistisk tilnærming til læring, med stort fokus på problemløsing og praktisk anvendelse av teori.