Advanced Aspects of Object-Oriented Programming (summer term 2015)

Announcements

  • The result of the second exam can be found here. If you are interested in reviewing the your exam, please contact me.

  • The results of the first exam can be found here. The review of the exam will be possible Monday, 7. September 2015 in 34-420 between 17:00 and 17:45. Contact me if there is any problem.

  • There seams to be an incompatibility between the Common JML-Tools (tested with version 5.5) and Java 8. If you get an error about malformed class-files and bad constant tags, try using a Java version 7 JDK.

  • The date and time of the alternative exercise slot is decided. The alternative exercise will take place on Tuesdays at 17:15 in 34-420.

Old Announcements

  • I created a Foodle for the alternative date of the exercise. If you cannot participate in the Wednesday exercise, please fill out the Foodle as soon as possible and write me an email so I can contact you when the decision is final.

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.

  1. Introduction
  2. Objects, Classes, Inheritance
  3. Subtyping and Parametric Types
  4. Object Structures, Aliasing, and Encapsulation
  5. Specification and Checking
  6. Concurrency and Distribution (see also slides on JCoBox)
  7. Program Frameworks
  8. Component Software

Exam

The exam will be a written exam this year. It will cover the content of the lecture as well as the content of the exercises. The date of the exam is the 25.08.2015 9:00 in 24-102. In autumn there will be a second exam (Nachklausur) on 08.10.2015 9:00 in 01-006.

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, 11:45 in room 48-462. An alternative session will take place on Tuesday, 17:15 in room 34-420 (we will cover the same material that we cover on Wednesdays).

Exercise Sheets

Exercise Material Hints and Comments
0 exercise00.pdf Code.zip
1 exercise01.pdf hints01.pdf Heise Artikel (german)
2 exercise02.pdf ObjectOutputStream.java IPlugin.java HelloPlugin.jar hints02.pdf Code02.zip
3 exercise03.pdf webserver.zip hints03.pdf webserver_solution.zip NonNull.zip
4 exercise04.pdf hints04.pdf
5 exercise05.pdf hints05.pdf code05.zip
6 exercise06.pdf kacheck.zip ConfinedList.zip hints06.pdf
7 exercise07.pdf hints07.pdf ByteArrayInputStream.jml
8 exercise08.pdf hints08.pdf
9 exercise09.pdf hints09.pdf
10 exercise10.pdf ChatServer_raw.zip hints10.pdf ChatServer_threaded_solution.zip
11 exercise11.pdf ChatServer_jcobox_raw.zip accontrol_raw.zip hints11.pdf JCoBoxChat_solution.zip accontrolsys_solution.zip
12 exercise12.pdf mobile_code.zip worker_JCoBox.zip hints12.pdf ChatServer_RMI.zip mobile_code_solution.zip worker_solution.zip
13 exercise13.pdf ladder.zip
14 exercise14.pdf

Additional Sources

If you have any questions regarding the exercises, do not hesitate to get in touch with the contact person listed below.

Contact Person

Mathias Weber