Advanced Aspects of Object-Oriented Programming (summer term 2011)
Announcements
The dates for the oral exams have been fixed to 18 August 2011, 14 and 22 September 2011, 13 October 2011. If you want to take an exam at one of these dates, please register with our secretary or write an e-mail to Judith Stengel.
Content
This lecture furthers knowledge and skills in the domain of object-oriented software development. Focus is on operational semantics of object-oriented languages, modularity and encapsulation, typing and type systems, and specification of program properties including tools and techniques supporting verification and checking. Further information is available in the “Modulhandbuch” for Bachelor & Master Studies.
Please do not hesitate to get in touch with the contact person listed below in case of questions or problems.
Lecture
The lecture will take place on Tuesdays in room 48-462 at 11:45.
The lecture is structured into the following chapters. The slides for the chapters will usually be made available at least a day before the lecture.
Chapters for which the slides are available:
- Introduction
- Objects, Classes, Inheritance
- Subtyping and Parametric Types
- Object Structures, Aliasing, and Encapsulation
- Specification and Checking
- Concurrency and Distribution (updated 4/7/11) (see also slides on JCoBox)
- Program Frameworks
- Component Software
Practice
The practice aims at consolidating acquired knowledge with the help of exercises. Students will present their solutions and discuss them with the tutor. You are allowed to work in groups. For group work, please send your solution in only once.
There are two exercise sessions per week, participate in the one going better with your timetable.
- Wednesday, 10:00 in room 42-110
- Thursday, 13:45 in room 48-379
- Exercise 1
- Exercise 2
- Exercise 3 ObjectOutputStream.java
- Exercise 4 webserver UAS with Delegation
- Exercise 5
- Exercise 6
- Exercise 7 ConfinedTypes
- Exercise 8
- Exercise 9
- Exercise 10 Chatserver
- Exercise 11 JCoBoxChatServer GUI
- Exercise 12 rangliste_awt
- Exercise 13
Hints and Comments on the exercises
- Exercise 1
- Exercise 2
- Exercise 3 PersistencyManager
- Exercise 4 Webserver
- Exercise 5
- Exercise 6 Iterators
- Exercise 7
- Exercise 8
- Exercise 9
- Exercise 10 Code
Exam Questions Online Document
We set up an online document http://bit.ly/lGbs2v, in which you can enter questions, which you think could appear in the exam. You can formulate the questions in German or English as you like. You could also try to give an answer to the question, but please do not start large discussions in this document. If there are open questions, please discuss them in the exercise courses. It is OK to reformulate questions, but try to ensure that the meaning of the question is not changed. If in doubt add a new question.
Additional Sources
- Konzepte objektorientierter Programmierung (Arnd Poetzsch-Heffter) : Online version if accessed from University network.
- Java Language Specification
- Abstraction, Encapsulation, and Information Hiding (Edward V. Berard)
- Encapsulation is not information hiding (Paul Rogers)
- Secrets of equals() (Angelika Langer)
- Class-Based vs. Prototype-Based Languages
- Java Reflection Tutorial
- Supplementary Notes on Inheritance and Subtyping (Jonathan Aldrich)
- Featherweight Java (Igarashi, Pierce, Wadler)
- Confined Types (Jan Vitek, Boris Bokowski) (accessible from the TU network)
- Balloon Types:Controlling Sharing of State in Data Types (Paulo Sergio Almeida) (accessible from the TU network)
- Flexible alias protection (Noble, Vitek, Potter) (accessible from the TU network)
- Ownership types for flexible alias protection (Clarke, Potter, Noble) (accessible from the TU network)
- JML Home Page
- JCoBox Home Page
- RMI specification
If you have any questions regarding the exercises, do not hesitate to get in touch with the contact person listed below.