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.

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

Course evaluation


  • Semester hours: 2.0
  • Credits: 3.0
  • Type: VU Lecture and Exercise
  • LectureTube course
  • Format: Hybrid

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 February 26 to March 7) 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.


There are 6 lectures are on Fridays. Recordings of the lectures will be provided through TUWEL. Still, please participate in presence or live 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. You have to present your solutions in an interview meeting that has to occur until the end of June 2024.

Presence and online mode

Lectures and interview meetings are planed to occur in presence. However, regulations of the TU Wien may require us to change to an online mode. In this case you will be informed about necessary changes through TUWEL News.

Lectures that have to occur in online mode will be held via Zoom meetings to support interactions. In the case of online lectures you will find the link to the Zoom meeting in TUWEL.

Interview meetings and oral exams in presence take place in the office of Puntigam (Argentinierstraße 8, 4th upper floor). For online interview meetings and online exams we use Zoom where access data are available through TUWEL.

Appointment and registration of exams and interview meetings are arranged by e-mail. In general, there will be exams each Thursday (except during holidays) from 11 a.m. to noon, but can also be arranged at other times. Registrations must be made at least one week before the exams. It is possible to unregister until the exam starts.

Details on online exams

Online exams shall be taken online under the following conditions (only if oral exams in presence are not possible):

  • 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 upon request 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 e-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 e-mail). Otherwise recordings are prohibited.
  • If oral exams are allowed to take place in presence, online exams will be offered only in special situations where exams in presence are not feasible or would require large extra effort.



Course dates

Fri11:00 - 13:0001.03.2024 - 19.04.2024EI 5 Hochenegg HS Lecture
Advanced Object-Oriented Programming - Single appointments
Fri01.03.202411:00 - 13:00EI 5 Hochenegg HS Lecture
Fri08.03.202411:00 - 13:00EI 5 Hochenegg HS Lecture
Fri15.03.202411:00 - 13:00EI 5 Hochenegg HS Lecture
Fri22.03.202411:00 - 13:00EI 5 Hochenegg HS Lecture
Fri12.04.202411:00 - 13:00EI 5 Hochenegg HS Lecture
Fri19.04.202411:00 - 13:00EI 5 Hochenegg HS Lecture
Course is held blocked

Examination modalities

  • The exercise part of the course will be rated based on the solutions shown at the interview meeting that takes place until the end of June (see Additional information - Exercise tasks).
  • Missing or insufficient solutions of the exercise part can (if the shortcomings are important) be corrected and presented in a further interview meeting until July 15, 2024.
  • Additionally, each student takes an oral exam (until January 2025) . See "Further information" 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).

Course registration

Begin End Deregistration end
27.02.2024 00:00 07.03.2024 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 A27.02.2024 00:0007.03.2024 23:59
FOOP B27.02.2024 00:0007.03.2024 23:59
FOOP C27.02.2024 00:0007.03.2024 23:59
FOOP D27.02.2024 00:0007.03.2024 23:59
FOOP E27.02.2024 00:0007.03.2024 23:59
FOOP F27.02.2024 00:0007.03.2024 23:59
FOOP G27.02.2024 00:0007.03.2024 23:59
FOOP H27.02.2024 00:0007.03.2024 23:59
FOOP I27.02.2024 00:0007.03.2024 23:59
FOOP J27.02.2024 00:0007.03.2024 23:59
FOOP K27.02.2024 00:0007.03.2024 23:59
FOOP L27.02.2024 00:0007.03.2024 23:59
FOOP M27.02.2024 00:0007.03.2024 23:59
FOOP N27.02.2024 00:0007.03.2024 23:59
FOOP O27.02.2024 00:0007.03.2024 23:59
FOOP P27.02.2024 00:0007.03.2024 23:59
FOOP Q27.02.2024 00:0007.03.2024 23:59
FOOP R27.02.2024 00:0007.03.2024 23:59
FOOP S27.02.2024 00:0007.03.2024 23:59
FOOP T27.02.2024 00:0007.03.2024 23:59
FOOP U27.02.2024 00:0007.03.2024 23:59
FOOP V27.02.2024 00:0007.03.2024 23:59
FOOP W27.02.2024 00:0007.03.2024 23:59
FOOP X27.02.2024 00:0007.03.2024 23:59
FOOP Y27.02.2024 00:0007.03.2024 23:59
FOOP Z27.02.2024 00:0007.03.2024 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