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.

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

Properties

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

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.

Teaching methods changed because of Corona restrictions

  • Since mid March there are no lectures because of legal restrictions. Alternatively you can find slides, a video and references to web resources suitable for private study in TUWEL.

Mode of examination

Immanent

Additional information

ECTS-Breakdown: 3 ECTS = 75 hours

  • 15h: Lectures and aquiring the covered topics
  • 10h: Exam and preparation for exam
  • 48h: Programming assignments
  • 02h: Interview meeting and preparation therefore

Lecturers

Institute

Course dates

DayTimeDateLocationDescription
Fri10:00 - 12:0006.03.2020 - 13.03.2020EI 3A Hörsaal Lecture
Advanced Object-Oriented Programming - Single appointments
DayDateTimeLocationDescription
Fri06.03.202010:00 - 12:00EI 3A Hörsaal Lecture
Fri13.03.202010:00 - 12:00EI 3A Hörsaal Lecture
Course is held blocked

Examination modalities

In an interview meeting for each exercise group (that has to take place until end of June 2020) programs to be written by the exercise group will be discussed and rated. In the meeting the development of the programs, the source code and program executions are presented.

  • Additionally, each student takes an oral exam (until January 2021).
  • For a positive overall rating there must be positive ratings for both, the interview meeting and the oral exam. If the overall rating is positiv, it is computed as the average of the ratings for the interview meeting and the oral exam.
  • The interview meeting and the oral exam can each be retried once if negative within the scope of the lecture (and within the given time period).

Examination modalities changed because of Corona restrictions

  • Interview meetings have to be prevented in this semester. Instead, each exercise group submits documents and files with the following contents to the lecturer:
    • source code of the programs written by the exercise group,
    • these programs executable on Windows or Linux,
    • a short description of how to execute the programs,
    • 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,
    • and a testing protocol describing briefly how the programs were tested and summarizing the results (including concrete data like, e.g., run times).
    Please let the lecturer know if you cannot provide some of this information; maybe alternative ways can be found in special situations. In any case, the lecturer will ask for additional information if the submitted documents  are insufficient.
  • The deadline for submitting these documents is September 15, 2020.
  • As announced, an oral exam has to be taken by the end of January 2021 at latest. Topics of the exam are divided into two groups: obligatory and optional topics. At the begin of the exam students specify for which of the optional topics they are prepared for. In the exam students must answer questions to all obligatory topics as well as the selected optional topics. Obligatory topics include everything on slides of Lecture 1 to Lecture 4. Optional topics occur in the "Slides for optional topics". Everything with the same title in the footline (directly above the date) belongs to the same optional topic (hence, "Further Topics" is just a single optional topic). Overall there are six optional topics, and two of them must be select for the exam.
  • Oral exams will preferably be done online using GoToMeeting as long as Corona restrictions indicate us to do so, under the following conditions:
    • Appointment and registration are arranged by mail. In general, there will be exams each Monday and Wednesday (except during holidays) from 10 a.m. to 11 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.
    • Few days before the exam you will get access data to GoToMeeting (essentially a link) by mail. You need a computer (e.g., laptop) with microphone and video cam. Please take care that your browser (or the GoToMeeting App if you use it) have the right to access microphone and cam. Enter the GoToMeeting session at the time the exam is scheduled for (see https://colab.tuwien.ac.at/pages/viewpage.action?pageId=11634937#Schritt-für-Schritt-AnleitungenfürOnline-Prüfungen-TeilnahmeaneinemGoToMeeting-WebmeetingimKontextvonOnline-Prüfungen).
    • 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 your access data for the GoToMeeting session to them. This person shall enter the session at about the same time as you. Please inform the lecturer at the begin of the exam about the invitation of a witness in order to ensure that nobody enters the session during the exam. 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).
    • 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 GoToMeeting session 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, as soon this is possible under Corona constraints. 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 registration

Begin End Deregistration end
02.03.2020 00:00 12.03.2020 23:59

Registration modalities

In the lecture on March 13 we build exercise groups. Please don't miss this lecture. Your participation in the course can be confirmed only if you are a member of an exercise group.

Group Registration

GroupRegistration FromTo
FOOP 110.03.2020 00:0013.03.2020 14:00
FOOP 210.03.2020 00:0013.03.2020 14:00
FOOP 310.03.2020 00:0013.03.2020 14:00
FOOP 410.03.2020 00:0013.03.2020 14:00
FOOP 510.03.2020 00:0013.03.2020 14:00
FOOP 610.03.2020 00:0013.03.2020 14:00
FOOP 710.03.2020 00:0013.03.2020 14:00
FOOP 810.03.2020 00:0013.03.2020 14:00
FOOP 910.03.2020 00:0013.03.2020 14:00
FOOP 1010.03.2020 00:0013.03.2020 14:00
FOOP 1110.03.2020 00:0013.03.2020 14:00
FOOP 1210.03.2020 00:0013.03.2020 14:00
FOOP 1310.03.2020 00:0013.03.2020 14:00
FOOP 1410.03.2020 00:0013.03.2020 14:00
FOOP 1510.03.2020 00:0013.03.2020 14:00
FOOP 1610.03.2020 00:0013.03.2020 14:00
FOOP 1710.03.2020 00:0013.03.2020 14:00
FOOP 1810.03.2020 00:0013.03.2020 14:00
FOOP 1910.03.2020 00:0013.03.2020 14:00
FOOP 2010.03.2020 00:0013.03.2020 14:00
FOOP 2110.03.2020 00:0013.03.2020 14:00
FOOP 2210.03.2020 00:0013.03.2020 14:00
FOOP 2310.03.2020 00:0013.03.2020 14:00
FOOP 2410.03.2020 00:0013.03.2020 14:00
FOOP 2510.03.2020 00:0013.03.2020 14:00
FOOP 2610.03.2020 00:0013.03.2020 14:00
FOOP 2710.03.2020 00:0013.03.2020 14:00
FOOP 2810.03.2020 00:0013.03.2020 14:00
FOOP 2910.03.2020 00:0013.03.2020 14:00
FOOP 3010.03.2020 00:0013.03.2020 14:00

Curricula

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

Literature

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

Language

German