Objektorienteret programmering
Efterråret 2003
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 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:
David Flanagan:
Java in a Nutshell
OReilly, 2002
David Flanagan:
Java Foundation Classes
in a Nutshell
OReilly, 1999
Ken Arnold, James Gosling, David Holmes:
The Java Programming Language
Third Edition
Addsion-Wesley, 2000
Cay Horstmann:
Object_Oriented Design & Patterns
John Wiley & Sons, 2002Barbara Liskov, John Guttag:
Program Development in Java: Abstraction, Specification, and Object-Oriented Design
Addsion-Wesley, 2000Erich 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æsningerne finder sted i teorirum 43.2 på fredage fra 930 til 1200. Første forelæsningsgang er fredag den 5. september. Sidste forelæsningsgang er fredag den 7. november.
Øvelserne finder sted møderummet og datastuen i 42.1 på fredage fra 1300 til 1530. Første øvelsesgang er fredag den 5. september. Sidste øvelsesgang er fredag den 7. november.
Deltagerforudsætninger
Ingen formelle forudsætninger.
Anbefalede forudsætninger:
- Fulgt kurset Dat-A eller Indledende programmering.
- Fulgt kurset Begreber og redskaber i programmering.
- Gennemført et datalogisk projekt svarende til projektet på OB modul 1 eller TIT 1. semester.
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 10-20 minutter per studerende, 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
Deltagere
Yderligere information
Nyttigt Javaprogrammel:
- BlueJ (udviklingsmiljø til Java, simpelt)
- Eclipse (udviklingsmiljø til Java, avanceret)
- JUnit (framework til afprøvning af Java-programmer)
- iContract (værktøj til understøttelse af kontraktbaseret design)
- Poseidon (værktøj til UML-diagrammering)
- ArgoUML (værktøj til UML-diagrammering, gratis)
- Jindent (program til formatering af Java-kode)
- class Console (simpel indlæsning fra skærm): Console.java. Java Documentation
- IO (simpel input/output): IO.java. IO.jar. Vejledning
- javaSimulation (Java-pakke til diskret simulering)
Gratis bøger på nettet:
- M. Campione, K. Walrath & A. Huml: The Java Tutorial
- P. H. Winston & S. Narasimhan: Onto Java
- B. Eckel: Thinking in Java
- B. Eckel: Thinking in Patterns with Java
- J. Gosling, B. Joy & G. L. Steeele: The Java Language Specification
- James W. Cooper: The Design Patterns Java Companion
- Glenn L. Vanderburg. et al.: Tricks of the Java Programming Gurus
- P. Sestoft: Java Precisely
Projektforslag: