Objektorienteret programmering
Foråret 2002
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, 2000Supplerende litteratur
Som supplerende litteratur anbefales:
David Flanagan:
Java in a Nutshell
OReilly, 1999
David Flanagan:
Java Foundation Classes
in a Nutshell
OReilly, 1999
Ken Arnold, James Golsling, David Holmes:
The Java Programming Language
Third Edition
Addsion-Wesley, 2000
Barbara Liskov, John Guttag:
Program Development in Java: Abstraction, Specification, and Object-Oriented Design
Addsion-Wesley, 2001Erich 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 8. februar. Sidste forelæsningsgang er fredag den 19. april.
Øvelserne finder sted møderummet og datastueen i 42.1 på fredage fra 1300 til 1530. Første øvelsesgang er fredag den 8. februar. Sidste øvelsesgang er fredag den 19. april.
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:
- simset (tovejslister): simset.java. simset.jar Vejledning. Java Documentation.
- class Console (simpel indlæsning fra skærm): Console.java. Java Documentation.
- IO (simpelt input/output): IO.java. IO.jar. Vejledning.
- javaSimulation (Java-pakke til diskret simulering).
- JUnit (framework til afprøving af Java-programmer).
- Poseidon (værktøj til UML-diagrammering).
- Jindent (program til formatering af Java-kode).
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 m.m.:
- Ti forslag til datalogiske projekter inden for kunstig intelligens
- Forslag til datalogiprojekter (38 forslag)
- Projektforslag på modul 2 (slides)
- Om projektarbejdet (slides)
- Vejlederpræsentation (slides)
- Forslag til programmeringsopgaver på modul 1 (slides)