Objektorienteret programmering
Efteråret 2009
ved
Keld Helsgaun
Formål
Kursets formål er at kvalificere den studerende til at beherske og anvende centrale begreber og teknikker i forbindelse med udvikling af objektorienterede programmer.Mål
Undervisning i objektorienteret programmering er mere end undervisning i syntaks og semantik for et objektorienteret programmeringssprog. Beherskelse af objektorienteret programmering kræver fortrolighed med objektorienterede begreber samt færdighed i at kunne anvende disse effektivt og systematisk ved udvikling af programmer.
Målet er, at den studerende efter gennemførelse af kurset
- er fortrolig med de vigtigste begreber inden for objektorienteret programmering, herunder indkapsling, nedarvning og polymorfi, og kan anvende disse i praksis
- kan anvende det objektorienterede programmeringssprogs forskellige faciliteter, bl.a. til realisering af grafiske brugergrænseflader, netværksbaserede programmer og programmer med samtidighed
- kan anvende designmønstre i programudviklingen
- kan anvende en grafisk notation til beskrivelse af objektorienterede programmer
Indhold
- Klassebegrebet
- Modularisering
- Designmønstre
- Fejlhåndtering
- Indlæsning og udskrivning
- Grafiske brugergrænseflader
- Samtidighed
- Netværksprogrammering
Lærebog
Som lærebog anvendes
Xiaoping Jia:
Object-Oriented Software Development Using Java: Principles, Patterns and Frameworks
Addison-Wesley, 2003 (Second Edition)Supplerende litteratur
Som supplerende litteratur anbefales:
Ken Arnold, James Gosling, David Holmes:
The Java Programming Language
Fourth Edition, Addsion-Wesley, 2005
Erich Gamma, Richard Helm,
Ralph Johnson, John Vlissides:
Design Patterns - Elements of Reusable Object-Oriented Software
Addsion-Wesley, 1995Form
Undervisningen foregår ved forelæsninger og øvelser.
Øvelserne har som mål at opøve de studerendes færdigheder i objektorienteret programmering igennem løsning af en række mindre, velafgrænsede programmeringsopgaver.Til stofgennemgang er afsat 10 forelæsningsgange. Forelæsninger og øvelser finder sted i teorirum 43.2.29 på mandage fra 930 til 1200 og fra 1200 til 1530. Dog afholdes kurset i ISLab (43-2.02) den 31. august, den 14. september og den 5. oktober. Første kursusgang er mandag den 31. august. Sidste kursusgang er mandag den 9. november.Deltagerforudsætninger
Ingen formelle forudsætninger.
Anbefalede forudsætninger:
- Gennemført kurset Indledende programmering (Dat A) eller tilsvarende.
- Praktisk programmeringserfaring ved f.eks. samtidig at følge kurset Constructing Software Systems (CSS), samtidig at lave datalogisk bachelorprojekt eller tilsvarende.
Eksamen
Afleveringsopgave med mundtlig prøve.
Der skal udarbejdes en rapport, der beskriver løsningen af en af de(n) studerende valgt programmeringsopgave. Opgaven løses i grupper på 2 studerende. Det er dog også muligt at løse opgaven individuelt. Opgavens formulering skal være godkendt af kursuslæreren. Det forventes, at opgaven løses i løbet af kursusperioden.
Rapporten udgør grundlaget for bedømmelsen. Den mundtlige prøve, der varer 20 minutter, har primært til formål at undersøge, om den enkelte studerende har deltaget i opgavens løsning i et tilstrækkeligt omfang.Underviser
Keld Helsgaun, lektor
Yderligere information
Nyttigt Javaprogrammel:
- IntelliJ IDEA (udviklingsmiljø til Java, avanceret, kommercielt)
- NetBeans (udviklingsmiljø til Java, avanceret, gratis)
- Eclipse (udviklingsmiljø til Java, avanceret, gratis)
- BlueJ (udviklingsmiljø til Java, simpelt, gratis)
- JUnit (framework til afprøvning af Java-programmer, gratis)
- ArgoUML (værktøj til UML-diagrammering, gratis)
- Poseidon (værktøj til UML-diagrammering, kommercielt)
- JProfiler (program til profilering af Java-applikationer, kommercielt)
- findbugs (program til fejlfinding i Javaprogrammer, gratis)
- javaSimulation (Java-pakke til diskret simulering, gratis)
Gratis bøger på nettet:
- M. Campione, K. Walrath & A. Huml: The Java Tutorial
- B. Eckel: Thinking in Java
- B. Eckel: Thinking in Patterns with Java
- James W. Cooper: The Design Patterns Java Companion
- J. Nordfalk: Objektorienteret programming i Java
- J. Nordfalk: Videregående programming i Java
- J. Gosling, B. Joy & G. L. Steeele: The Java Language Specification
- P. Sestoft: Java Precisely