IDATA1003

Programmering 1

Høst

Ålesund

Norsk

Oversikt

Snitt

B

3,65

0,03

Ståprosent

100 %

likt

Karakterfordeling
Snitt over tid
Ståprosent over tid

Om emnet

Faglig innhold

Dette emnet skal dekke følgende tema:

  • grunnleggende objektorientert programdesign og objektorientert programmering - begreper innen objektorientering (klasser, objekter og innkapsling)
  • modellering/ design - datatyper, betingelser, valg, løkker, logiske og aritmetiske uttrykk, innlesing og utskrift
  • tabeller, lister og samling
  • samarbeid mellom objekter
  • lambda, introduksjon til funksjonell programmering og streams i forbindelse med samlinger
  • grunnleggende unntakshåndtering (exceptions)
  • debugging og enhets-testing
  • introduksjon til integrerte utviklingsmiljø (IDE)

Læringsmål

Kunnskap

Kandidaten skal:

  • kunne demonstrere kunnskap innen OOP
  • kunne forklare hva et program er 
  • har kunnskap om grunnleggende prinsipper innen objektorientert programmering som innkapsling, modularisering og samhandlende objekter
  • kunne forklare hva som menes med en lagdelt arkitektur og hvorfor det er viktig i programvaredesign
  • kunne forklare prinsipper for god kodedesign (kobling/ kohesjon), kodekvalitet og god kodestil
  • har kunnskap om typiske disipliner i programvareutvikling (livssyklusen til et program som design, utvikling og testing) på et overordnet nivå
  • kunne modellere klassediagram som består av flere klasser og kunne gjøre rede for grunnleggende diagrammer i UML (for eks, aktivitetsdiagram, klassediagram, sekvensdiagram, pakkediagrammer)

Ferdigheter

Kandidaten skal:

  • kunne sette opp programmiljø for å utvikle, teste og kjøre objektorienterte programmer
  • kunne benytte profesjonelle verktøy for programvareutvikling, inkludert KI-baserte verktøy, på en kritisk og reflektert måte
  • kunne lage strukturert, oversiktlig og godt dokumentert programkode basert på prinsipper for god kodedesign 
  • kunne anvende klasser, kontrollstrukturer og samarbeid mellom objekter
  • kunne anvende klasser fra biblioteker og finne fram i API-dokumentasjon
  • kunne anvende grunnleggende objektorientert tankegang til å analysere og løse enklere problemer
  • kunne anvende elementer fra funksjonell programmering
  • kunne teste og analysere programkomponenter gjennom enhetstesting
  • kunne skrive robust kode inkludert å kaste og fange unntak (enkel unntakshåndtering).
  • kunne bruke et integrert utviklingsmiljø (IDE) og debugger samt verktøy for analyse av kodekvalitet
  • kunne anvende enkel kildekodekontroll (teori gjennomgås i IDATA1004)

Generell kompetanse

Kandidaten skal:

  • kunne forklare og gjøre bruk av sin kunnskap både innen hvert enkelt tema i faget og på tvers av temaene.

Læringsformer og aktiviteter

Undervisningsaktiviteter for hver uke:

  • Undervisning med faglærer med bruk av studentaktive læringsformer som for eksempel lærerstyrte programmeringsoppgaver og samkoding (livecoding) for å løse programmeringsoppgaver.
  • Veiledning på lab med læringsassistenter og veksling mellom individuell veiledning og godkjenning av programmeringsøvinger

Obligatoriske aktiviteter: Det vil bli gitt obligatoriske øvinger, hvorav 90% må være godkjent for å gå opp til eksamen.