Objekt-orienteret Programmering
Lektionsbeskrivelser


KursusgangEmneBeskrivelse
1
Torsdag 6. September 2001
Introduktion til Objekt-orienteret programmeringObjekt-orienteret programmering er anderledes end sædvanlig programmering i Pascal eller C. Det er derfor vigtigt at forstå præmisserne for 'den nye form' for programmering. I denne lektion vil vi introducere nogle af de helt fundamentale ideer og begreber i objekt-orienteret programmering: Dataabstraktion, indkapsling, og synlighedskontrol, og vi vil gennem et eksempel studere hvordan disse ideer påvirker opbygningen af et program. Denne lektion knytter sig ikke til noget bestemt programmeringssprog.
2
Torsdag 13. September 2001
Objekt-orienteret programmering i Java II denne lektion introducerer vi de grundlæggende objekt-orienterede programmeringsbegreber, som de ser ud i programmeringssproget Java.
3
Torsdag 20. September 2001
De ikke objekt-orienterede dele af JavaSelv om Java er et objekt-orienteret programmeringssprog findes de fleste imperative programmeringsbegreber i Java. I denne lektion vil vi give en oversigt over disse, og vi vil gennemgå de væsentligste imperative konstruktioner i sproget, herunder forskellige kommandoer kontrolstrukturer. Vi vil også se på udtryk og deres beregning.
4
Torsdag 27. September 2001
Objekt-orienteret programmering i Java III denne lektion fortsætter vi vore studier af de basale objekt-orientede mekanismer i Java.
5
Torsdag 4. Oktober 2001
Arrays og listerArrays og lister er klassiske datastrukturer. I denne lektion studerer vi disse to begreber, dels ud fra en interesse for i dybden at forstå de væsentlige ligheder og forskellige, dels for at se hvorledes arrays og lister falder ud i det objekt-orienterede paradigme.
6
Torsdag 18. Oktober 2001
ProgramtestI software industrien er det ikke ualmindeligt, at der bruges længere tid på test af et program end på implementationen af programmet. I denne lektion ser på forskellige teknikker til test af programmer.
7
Mandag 29. Oktober 2001
NedarvningNedarvning er en vigtig mekanisme i objekt-orienterede programmeringssprog. I denne lektion vil vi først se på ideerne bag ved nedarvning, som groft sagt kan henledes i to forskellige retninger: Modellering og programtransport. Vi ser også på nogle af de sproglige mekanismer, som følger i kølvandet på nedarvning, nemlig polymorfi og dynamisk binding. Endelig introducerer vi abstrakte klasser. Første del af denne lektion er sproguafhængig. Dernæst går vi over til at se på emnet med Java briller.
8
Torsdag 1. November 2001
Design af klassehierarkierI denne lektion ser vi på abstrakte klasser, som kommer os til gavn på et højt niveau i klassehierarkiet. Vi ser også på emnet multiple nedarvning. Endelig studerer vi interfaces, som er Java's erstatning af multipel nedarvning
9
Torsdag 8. November 2001
Designkontrakter og ansvarsfordelingI objekt-orienteret programmering distribuerer vi egenskaber og funktionalitet ud på forskellige objekter. Når objekter interagerer med hinanden har vi en (ofte løs) forestilling om, hvordan objekterne skal tage hensyn til hinanden, for at opfylde hinandens forventninger og krav. I denne lektion vil vi formalisere dette. Vi vil tale om operationers ansvar i objekter, og ansvarsfordelingen mellem objekter. Vi vil også blive i stand til at beskrive, hvornår et objekt er sundt, nemlig via klasseinvarianter. Vi slutter af med at se på hvordan ansvarsfordeling forholder sig til nedarvning.
10
Tirsdag 13. November 2001
UndtagelseshåndteringRelativ til en specifikation, kan man tale om at et program opfører sig korrekt. Vi ønsker naturligvis altid at skrive korrekte programmer. I praksis er det imidlertid meget vanskeligt at undgå, at vore programmer fra tid til anden bryder specifikationen. Vi siger, at programmet kommer i en undtagelsestilstand. I denne lektion vil vi studere og systematisere undtagelser og fejlhåndtering. Vi vil naturligvis også studere Java teknikker til håndtering af undtagelser: 'exception handling'.
11
Torsdag 15. November 2001
Collections og StreamsI en tidligere lektion har vi set på to basale samlingsklasser: lister og arrays. I denne lektion vil vi videreudvikle og forfine ideen om objekter, der indeholder andre objekter som bestanddele. Konkret studerer vi Collection interfacet, sub-interfaces og de implementerende klasser. Som en vigtig del af alt dette ser vi på operationer, som på forskellig vis gennemløber elementerne i en samling. Lektionen afsluttets med et overblik over streams i Java.
12
Tirsdag 20. November 2001
Grafiske brugergrænseflader i Java IInteraktion med moderne computer programmer sker ofte gennem en grafisk brugergrænseflade. I denne lektion vil vi se på brugergrænseflader . Vi koncentrerer os om vigtige og overordnede forhold, herunder ansvarsfordelingen mellem objekter, der indgår i en brugergrænseflade. Vi ser naturligvis også på nogle forhold, som er specfikke i forhold til konstruktion af grafiske grænseflader i Java.
13
Torsdag 22. November 2001
Grafiske brugergrænseflader i Java IIVi fortsætter gennemgangen af grafiske brugergrænseflader i Java. Vi ser i denne sammenhæng nærmere på Swing.
14
Torsdag 29. November 2001
Samtidighed i JavaSamtidig udførelse af dele af et program er et stort og vigtigt emne. Emnet vil dukke op i flere forskellige kurser i datalogi og dataingeniørstudiet. I denne lektion introducerer vi emnet i forhold til objekt-orienteret programmering, hvor vi vil tale om aktive objekter. Vi ser naturligvis også på emnet fra et Java perspektiv, hvor samtidigt udførte programforløb kaldes tråde.
15
Torsdag 6. December 2001
Design patternsGenbrug og objekt-orienteret programmering er knyttet tæt til hinanden. Det har imidlertid vist sig, at genbrug på enkelt-klasse niveau ikke har givet så stort udbyttet, som man har drømt om. Genbrug af mønstre mellem klasser, såkaldte design mønstre eller mini-arkitekturer, er en meget lovende udvikling. I denne lektion vil vi introducerer de basale ideer omkring design patterns, og vi vil se på et par udvalgte eksempler.

Vi har undervejs i kurset på en løs måde stiftet bekendtskab med forskellige design mønstre. Vi vil i denne lektion på en mere systematisk måde introducere dette spændende emne.


Kurt Nørmark

Genereret: Mandag 17. December 2001, 10:37:57
Genereret for: cs-unix

OOP hjemmeside     |     D3 hjemmeside     |     OMSWING hjemmeside
Dat1/Inf1 hjemmeside
Forelæsningsnoter     |     JDK API     |     JDK Tools     |     Java Tutorial
Java på Sun     |     Kurt Nørmark