IDATT2001

Programmering 2

Sist undervist 2022

Vår

Trondheim

Norsk

Oversikt

Snitt

B

3,81

0,01

Ståprosent

100 %

likt

Karakterfordeling
Snitt over tid
Ståprosent over tid

Om emnet

Faglig innhold

Dette emnet skal dekke følgende tema:

  • Samarbeid mellom objekter. Lister, søking og sortering. Sammenligne objekter.
  • Arv og polymorfi
  • GUI
  • Datafiler og serialisering
  • Unntakshåndtering
  • Funksjonell programmering.
  • Designmønster
  • Integrerte utviklingsmiljø. Debugging. Enhetstesting. Versjonskontroll.
  • Databaser og object-relational mapping (ORM)

Læringsmål

Kunnskap

Kandidaten skal:

  • kunne forklare hvordan arv og polymorfi bidrar til generalisering av problemløsning
  • kunne modellere klassediagram som består av flere klasser med aggregering, komposisjon og generalisering gitt en problemstilling
  • kunne vise hvordan referanser og objekter henger sammen i et gitt program
  • kjenne til sentrale begreper innen objektorientert og funksjonell programmering og kan gjøre rede for disse
  • kunne forklare hva en object-relational mapping (ORM)/database-løsning er og begrunne når det kan være fornuftig å bruke slike løsninger

Ferdigheter

Kandidaten skal:

  • kunne bruke arv og polymorfi for å lage fleksible, utvidbare og bærekraftige løsninger
  • kunne bruke og forstå API-dokumentasjonen til å finne informasjon om klasser og metoder (D)
  • kunne bruke ferdige metoder i API-et til sortering og søking i tabeller og i lister
  • kunne programmere en objektorientert løsning gitt klassediagram som består av flere klasser med aggregering, komposisjon og generalisering
  • kunne bruke et integrert utviklingsmiljø (IDE), debugger, enhetstester og versjonskontroll

Kandidaten kan lage program:

  • med delegering av oppgaver mellom objekter og der arv og polymorfi benyttes
  • med enkle grafiske brukergrensesnitt
  • som bruker funksjonell programmering og høyere nivå funksjoner
  • som benytter ORM (object-relational mapping)

Generell kompetanse

Kandidaten skal:

  • kunne anvende objektorientert tankegang til å analysere og løse problemer
  • kunne anvende elementer fra funksjonell programmering
  • skal være i stand til å vurdere etiske forhold knyttet til OOP, enhetstesting og versjonskontroll

Læringsformer og aktiviteter

Forelesninger/workshops og øvinger.