IDATA1003
Programmering 1
Høst
Ålesund
Norsk
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.