Advanced Aspects of Object-Oriented Programming (summer term 2013)
Announcements
- 26.06.2013: To register for the exam, write an email to our secretary Judith Stengel. The currently fixed dates are 25.07.13 (July), 23.08.13 (August) and 26.09.13 (September).
Old Announcements
- 26.06.2013: Next week, the dates of the exercise and the lecture will be swapped again. The exercise will take place on Tuesday, 02.07.2013 at 11:45 in 48-462 and the lecture will take place on Wednesday, 03.07.2013 at 10:00 in 42-110.
- 13.06.2013: There is an error on sheet 9: In exercise 1 b) it reads that you should give an implementation of
BlankReader
. Instead it should read that you should give an implementation of yourStringReader
interface. - 11.06.2013: Next week, the dates of the exercise and the lecture will be swapped. The exercise will take place on Tuesday, 18.06.2013 at 11:45 in 48-462 and the lecture will take place on Wednesday, 19.06.2013 at 10:00 in 42-110.
- 05.06.2013: The exercise next week (12.06.2013) will be held in 13-305.
- 25.04.2013: Because of the holiday, the exercise will be held on Thursday, 02.05.2013 at 17:15 in 46-268 next week. This is only an exception. The weeks after, the exercise will take place at the normal time and in the normal location.
- 24.04.2013: Sheet 1: If the
AgeManager
class does not work with an error “Unparsable date”, replaceDateFormat.getDateInstance()
withDateFormat.getDateInstance(DateFormat.SHORT, Locale.GERMANY)
in methodAgeManager.add(…)
. - 23.04.2013: When writing me emails regarding this lecture, please start the subject of your mail with the following tag: [FASOOP]
- 23.04.2013: Those of you which want to participate in the exercise but have not yet found a group to work in, please write me an email.
- 16.04.2013: The first exercise will take place tomorrow, 17.04.2013, at 10:00 am. We will form groups and discuss the organisation of the exercises.
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.
- Introduction
- Objects, Classes, Inheritance
- Subtyping and Parametric Types
- Object Structures, Aliasing, and Encapsulation
- Specification and Checking
- Concurrency and Distribution (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.
The exercise session takes place on Wednesdays, 10:00 in room 42-110.
Exercise Sheets
Exercise | Material | Hints and Comments | ||
---|---|---|---|---|
1 | ||||
2 | ObjectOutputStream.java HelloPlugin.jar | PDF sol02.zip | ||
3 | exercise03.zip | PDF NonNull.zip | ||
4 | webserver.zip | PDF webserver_solution.zip | ||
5 | PDF solution05.zip | |||
6 | kacheck.zip exercise06.zip | |||
7 | PDF solution07.zip | |||
8 | ||||
9 | ||||
10 | ChatServer.java | PDF Chatserver_Thread.zip | ||
11 | accontrolsys.zip JCoBoxChat.zip | PDF accontrolsys.zip JCoBoxChat.zip | ||
12 | PDF factorize.zip ChatServer_RMI.zip | |||
13 | ladder.zip | |||
14 |
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
- JML Reference Manual
- 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.