Forelæsninger og øvelser. Øvelserne omfatter løsning af mindre opgaver og et projektarbejde i grupper på 2 studerende (undtagelsesvis 1 eller 3). 1-2 frivillige, individuelle feedback-opgaver
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 (p.t. Java). At kunne udvikle mindre, objekt-orienterede programmer og kunne dokumentere det udførte arbejde i en projektrapport, med afsnit om bl.a en problemanalyse og om design, implementering og afprøvning af det udarbejdede program.
Læringsmål:
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
gennemføre en kravanalyse for mindre problemer
designe og dokumentere strukturen i et objekt-orienteret program (fx med brug af CRC-kort)
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 (fx JUnit)
forstå og anvende programmeringssprogets basale elementer
vælge og anvende hensigtsmæssige datatyper og datastrukturer
designe og implementere en hensigtsmæssig fejlhåndtering
forstå og anvende det aktuelle programmeringssprogs faciliteter til håndtering af polymorfi og nedarvning
designe og implementere flexible og vedligeholdelsesvenlige programmer for mindre problemstillinger
genkende nogle få, simple designmønstre
Kursusindhold:
Gennemgang af det valgte programmeringssprog opfattet som en specifik repræsentation af generelle datalogiske begreber og anvendt ved implementeringen af kursets projektopgave. De behandlede sprogelementer relaterer til følgende begreber: - datatyper (simple typer og objekttyper) - værdier, operatorer og udtryk - klasser, objekter, felter og metoder - biblioteksklasser (fx String, ArrayList, HashSet og HashMap) - dokumentation, afprøvning og fejlretning - design af klasser - stærk binding og svag kobling - nedarvning - klassehierarkier og polymorfi - abstraktion (interfaces (fx List, Set og Map) og abstakte klasser) - fejlhåndtering - design af anvendelser (krav, analyse, strukturering, implementering, afprøvning og dokumentation)