- grunnleggende objektorientert programdesign og objektorientert programmering - begreper innen objektorientering (klasser, klassehierarki, 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)
- kunne demonstrere kunnskap innen OOP
- kunne forklare hva et program er
- har kunnskap om enkle 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)
- 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 versjonskontroll (teori gjennomgås i IDATT1004)
- 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
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.
Mappevurdering gir grunnlag for sluttkarakter i emnet. I mappen inngår et programmeringsprosjekt og et refleksjonsnotat. Det gis tilbakemeldinger i løpet av semesteret på innholdet i mappen.
Ved frivillig gjentak, ikke-bestått eller gyldig fravær, må hele mappen tas på nytt ved neste gjennomføring av emne.