Forelæsninger og øvelser. Øvelserne omfatter løsning af mindre opgaver og projektarbejde i grupper på 2-3 studerende. Projektarbejdet dokumenteres med rapporter og programmer, som indgår i kursets bedømmelse.
At tilegne sig forståelse af basale begreber for imperative og objekt-orienterede programmeringssprog. At kunne udtrykke disse begreber med anvendelse af et gængs imperativt objekt-orienteret programmeringssprog. At kunne udvikle mindre objekt-orienterede programmer og kunne dokumentere det udførte arbejde i en rapport indeholdende strukturerede beskrivelser af bl.a. problem- og krav-analyse, design, implementering og afprøvning. At kunne læse og forstå programkode, samt analysere dets opførsel uafhængigt af en implementering.
Læringsmål:
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
gennemføre en kravanalyse for problemer med få frihedsgrader
designe og dokumentere strukturen i et objekt-orienteret program
implementere et udarbejdet design
opstille relevante testcases, og planlægge og gennemføre en automatiseret afprøvning med brug af et gængs testværktøj
forstå og anvende programmeringssprogets basale elementer
vælge og anvende hensigtsmæssige datatyper og datastrukturer
forstå og anvende programmeringssprogsets faciliteter til håndtering af polymorfi, nedarvning og indkapsling
genkende nogle få, simple designmønstre
analysere kørslen af et program
skrive en overskuelig og velstruktureret rapport der dokumenterer alle de centrale aspekter af et programmeringsprojekt
Kursusindhold:
Kurset er bygget op omkring programmeringssproget Java. Følgende emner behandles i kurset: - typer (primitive typer og reference typer) - basale programmeringssprogskonstruktioner (løkker og forgreninger) - værdier, operatorer og udtryk - klasser, objekter, felter og metoder - brug af simple biblioteksklasser - dokumentation, afprøvning og fejlretning - problemanalyse og kravspecifikation - design af klasser - stærk binding og svag kobling - nedarvning - klassehierarkier og polymorfi - abstraktion (interfaces og abstrakte klasser) - basal fejlhåndtering - benyttelse af basale funktionaliteter i et gængs udviklingsmiljø