Kursusgang | Emne | Beskrivelse |
---|---|---|
1 Torsdag 6. September 2001 | Introduktion til Objekt-orienteret programmering | Objekt-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 I | I 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 Java | Selv 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 II | I denne lektion fortsætter vi vore studier af de basale objekt-orientede mekanismer i Java. |
5 Torsdag 4. Oktober 2001 | Arrays og lister | Arrays 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 | Programtest | I 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 | Nedarvning | Nedarvning 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 klassehierarkier | I 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 ansvarsfordeling | I 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åndtering | Relativ 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 Streams | I 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 I | Interaktion 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 II | Vi 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 Java | Samtidig 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 patterns | Genbrug 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 | Dat1/Inf1 hjemmeside Forelæsningsnoter | JDK API | JDK Tools | Java Tutorial Java på Sun | Kurt Nørmark |