185.211 Advanced Object-Oriented Programming
This course is in all assigned curricula part of the STEOP.
This course is in at least 1 assigned curriculum part of the STEOP.

2021S, VU, 2.0h, 3.0EC, to be held in blocked form


  • Semester hours: 2.0
  • Credits: 3.0
  • Type: VU Lecture and Exercise
  • Format: Online

Learning outcomes

After successful completion of the course, students are able to

  • differentiate between nominal and structural types and use these types as means of abstraction in object-oriented programming,
  • rate possibilities, difficulties and limits of assertions used in specifying object interfaces,
  • describe use cases, structures, properties and typical implementation techniques of some software design patterns (e.g., Observer and State),
  • write small distributed programs (games) using assertions and software design patterns,
  • write small programs in (from a historical point of view) influential programming languages (Smalltalk and Eiffel) using characteristic properties of these languages,
  • describe the implementation of dynamic binding in common programming languages.

Subject of course

  • names as means of abstraction, significance of type names for assertions and substitutability
  • possibilities, difficulties and limits in the use of assertions according to "Design by Contract"
  • selected software design patterns
  • implementation of dynamic binding in object-oriented languages
  • Smalltalk and Eiffel
  • further topics in the area of object-oriented programming proposed by students


Teaching methods

  • In lectures we discuss the contents. Beside predetermined contents of the course we also discuss aspects of object-oriented programming proposed by students.
  • In exercise groups (two to four persons) students write programs in order to internalize and practically apply the learning matter. Thereby, a small game has to be designed and implemented in three variants: once as a distributed application in an arbitraty object-oriented language, once in Eiffel and once in Smalltalk.

Mode of examination


Additional information

ECTS breakdown: 3 ECTS = 75 hours

  • 15h: Lectures and aquiring the covered topics
  • 50h: Programming tasks
  • 10h: Exam and preparation for exam


A registration for an exercise group in TISS (from March 1 to March 11) is regarded as registration for the course. Exercise groups consist of at least two students, groups of three or four students are preferable. Groups consisting of only a single student will be combined to larger groups after the registration deadline, groups with only two members will be enlarged if possible. To arrage groups, please use the discussion forum in TUWEL; please keep in mind that you get access to TUWEL only after registration for an arbitrary group. You can change group membership at any time until the registration deadline.


12 lectures are on Fridays from 10 to 11 a.m. (c.t.) online over Zoom meetings accessible through TUWEL. Recordings of the lectures will be provided through TUWEL. Still, please participate live in the Zoom meetings because you can help shape the lectures especially in the second half of the course.

Exercise tasks

Three programming tasks will be provided in TUWEL after registration has ended and groups are determined. These tasks have to be performed until the end of June 2021. To demonstrate that you did the work, please upload the following files and documents (which build the basis for rating the exercise part of the course) in TUWEL before this deadline:

  • source code (including comments) of the programs written by the exercise group,
  • these programs in a variant directly executable on Windows or Linux together with a brief description of how to start and use these programs,
  • a testing protocol describing briefly how the programs were tested and summarizing the results (including concrete data like, e.g., run times).
  • a short description of the most important design decisions behind these programs,
  • a short text giving answers to the questions in exercises 2 and 3,
  • a short description of who in the exercise group was responsible for which parts of the work and saying that the documents and programs have been created by members of the exercise group personally.

Details on online exams

Oral exams shall be taken online under the following conditions:

  • Appointment and registration are arranged by mail. In general, there will be exams each Thursday (except during holidays) from 11 a.m. to 12 a.m., but can also be arranged at other times. Registrations must be made at least 14 days before the exams. It is possible to unregister until the exam starts. Exams on Thursdays from 11 a.m. to 12 a.m. will be done in a Zoom meeting accessible through TUWEL. Exams arranged at other times use Zoom or GoToMeeting, and access data will be provided by mail.
  • You need a computer (e.g., laptop) with microphone and video cam. Zoom as well as GoToMeeting need a specific app (will be installed automatically at the first time, for GoToMeeting not available under Linux) or the Chrome browser (available on all major operating systems). Please take care that your browser or app gets the right to access microphone and cam. Enter the meeting at the time the exam is scheduled for (see https://colab.tuwien.ac.at/pages/viewpage.action?pageId=11634937).
  • Use a room for the exam where you are undisturbed. Close to your working place there can only be objects that are allowed to be in front of you also in usual oral exams (e.g., ID card, white paper, pen, water glas) as well as technical equipment used for the exam, but nothing else (especially no cell phone or text book). Further away from you there can be anything. However, there must not be other persons in the room.
  • If you want to invite another person as a witness to the exam, you can give access data for the meeting session to them. This person shall enter the meeting at about the same time being in another room as you. Please inform the lecturer at the begin of the exam about the witness. Examinee and lecturer can each invite at most one witness to avoid unnecessary complexity. Microphones and cams of witnesses shall be switched off.
  • At the begin of the exam you are asked to show your ID card (preferably Studierendenausweis) and your room (by moving around your cam or laptop as requested).
  • You have to answer questions. However, we have to expect that the audio and video quality is far away from being perfect. The gesture may not be identifiable. Therefore, it may be necessary to repeat questions and answers as well as to ask additional questions. Please be prepared that the exam may last longer than expected for such reasons.
  • If a question was not understandable because of bad audio or video quality, please ask to repeat it. If the connection is lost, please enter the meeting again using the same access data as before. If that does not work, please contact the lecturer by mail. In that case the exam will be continued at a later time according to new arrangements.
  • There are no recordings of video or audio. If you want to record the exam, it is necessary to have a written bilateral commitment about that in advance (by mail). Otherwise recordings are prohibited.
  • If you are not able or do not want to take an online exam, you can also take a usual oral exam instead, provided this is possible under Corona restrictions. In the same way it is possible to continue an interrupted online exam as a usual oral exam.
  • As soon als oral exams are allowed to take place without special means to protect against Corona infections, online exams will in general be replaced by usual oral exams. In that case, online exams can take place only in special situations where exams at the university are not feasible or would require large extra effort.



Course dates

Fri10:00 - 11:0005.03.2021 - 18.06.2021 Zoom (see TUWEL) (LIVE)Lecture
Advanced Object-Oriented Programming - Single appointments
Fri05.03.202110:00 - 11:00 Zoom (see TUWEL)Lecture
Fri12.03.202110:00 - 11:00 Zoom (see TUWEL)Lecture
Fri19.03.202110:00 - 11:00 Zoom (see TUWEL)Lecture
Fri26.03.202110:00 - 11:00 Zoom (see TUWEL)Lecture
Fri16.04.202110:00 - 11:00 Zoom (see TUWEL)Lecture
Fri23.04.202110:00 - 11:00 Zoom (see TUWEL)Lecture
Fri30.04.202110:00 - 11:00 Zoom (see TUWEL)Lecture
Fri07.05.202110:00 - 11:00 Zoom (see TUWEL)Lecture
Fri21.05.202110:00 - 11:00 Zoom (see TUWEL)Lecture
Fri28.05.202110:00 - 11:00 Zoom (see TUWEL)Lecture
Fri11.06.202110:00 - 11:00 Zoom (see TUWEL)Lecture
Fri18.06.202110:00 - 11:00 Zoom (see TUWEL)Lecture
Course is held blocked

Examination modalities

  • The exercise part of the course will be rated based on the files and documents uploaded by the end of June (see Additional information - Exercise tasks).
  • Missing or insufficient files and documents (up to about 1/4 of the total volume) of the exercise part can be handed in later until July 15, 2021.
  • Additionally, each student takes an oral online exam (until January 2022) using Zoom or GoToMeeting. See "Further information - Details on online exams" for details.
  • For a positive overall rating there must be positive ratings for both, the exercise part and the oral exam. If the overall rating is positiv, the mark is computed as the average of the ratings for the interview meeting and the oral exam.
  • The oral exam can be retried once if negative within the scope of the lecture (and within the given time period).
  • All parts of the course are configured for distance learning. If the Corona situation allows us to do so, an oral online exam can be replaced by an oral exam in presence.

Course registration

Begin End Deregistration end
01.03.2021 00:00 11.03.2021 23:59

Registration modalities

Please register for a group (TISS). A registration for a group in this course is regarded as registration for the course.

Group Registration

GroupRegistration FromTo
FOOP A01.03.2021 00:0011.03.2021 23:59
FOOP B01.03.2021 00:0011.03.2021 23:59
FOOP C01.03.2021 00:0011.03.2021 23:59
FOOP D01.03.2021 00:0011.03.2021 23:59
FOOP E01.03.2021 00:0011.03.2021 23:59
FOOP F01.03.2021 00:0011.03.2021 23:59
FOOP G01.03.2021 00:0011.03.2021 23:59
FOOP H01.03.2021 00:0011.03.2021 23:59
FOOP I01.03.2021 00:0011.03.2021 23:59
FOOP J01.03.2021 00:0011.03.2021 23:59
FOOP K01.03.2021 00:0011.03.2021 23:59
FOOP L01.03.2021 00:0011.03.2021 23:59
FOOP M01.03.2021 00:0011.03.2021 23:59
FOOP N01.03.2021 00:0011.03.2021 23:59
FOOP O01.03.2021 00:0011.03.2021 23:59
FOOP P01.03.2021 00:0011.03.2021 23:59
FOOP Q01.03.2021 00:0011.03.2021 23:59
FOOP R01.03.2021 00:0011.03.2021 23:59
FOOP S01.03.2021 00:0011.03.2021 23:59
FOOP T01.03.2021 00:0011.03.2021 23:59
FOOP U01.03.2021 00:0011.03.2021 23:59
FOOP V01.03.2021 00:0011.03.2021 23:59
FOOP W01.03.2021 00:0011.03.2021 23:59
FOOP X01.03.2021 00:0011.03.2021 23:59
FOOP Y01.03.2021 00:0011.03.2021 23:59


Study CodeObligationSemesterPrecon.Info
033 201 Technical Mathematics Mandatory elective
066 931 Logic and Computation Mandatory elective
066 932 Visual Computing Mandatory elective
066 937 Software Engineering & Internet Computing Mandatory elective


No lecture notes are available.

Previous knowledge

  • good knowledge of object-oriented programming in Java, C#, C++ or similar languages
  • experience in the handling of substitutability (subtyping) and genericity
  • knowledge of Design by Contract and the usage of software design patterns
  • individual practical programming experience