185.211 Fortgeschrittene objektorientierte Programmierung
Diese Lehrveranstaltung ist in allen zugeordneten Curricula Teil der STEOP.
Diese Lehrveranstaltung ist in mindestens einem zugeordneten Curriculum Teil der STEOP.

2020S, VU, 2.0h, 3.0EC, wird geblockt abgehalten
TUWEL

Merkmale

  • Semesterwochenstunden: 2.0
  • ECTS: 3.0
  • Typ: VU Vorlesung mit Übung

Lernergebnisse

Nach positiver Absolvierung der Lehrveranstaltung sind Studierende in der Lage

  • nominale von strukturellen Typen zu unterscheiden und als Abstraktionsmittel in der objektorientierten Programmierung einzusezten,
  • Möglichkeiten, Schwierigkeiten und Grenzen der Verwendung von Zusicherungen zur Beschreibung von Objektschnittstellen abzuschätzen,
  • Einsatzbereiche, Strukturen, Eigenschaften und typische Implementierungstechniken einiger Software-Entwurfsmuster (z.B. Observer und State) zu beschreiben,
  • kleine verteilte Programme (Spiele) zu schreiben und dabei Zusicherungen und Software-Entwurfsmuster einzusetzen,
  • kleine Programme in (historisch gesehen) einflussreichen objektorientierten Programmiersprachen (Smalltalk und Eiffel) zu schreiben und dabei charakteristische Merkmale dieser Sprachen zu nutzen,
  • die Implementierung von dynamischem Binden in üblichen Programmiersprachen zu beschreiben.

Inhalt der Lehrveranstaltung

  • Namen als Abstraktionsmittel, Bedeutung von Typnamen für Zusicherungen und Ersetzbarkeit
  • Möglichkeiten, Schwierigkeiten und Grenzen beim Einsatz von Zusicherungen entsprechend Design-by-Contract
  • ausgewählte Software-Entwurfsmuster
  • Implementierung von dynamischem Binden in objektorientierten Sprachen
  • Smalltalk und Eiffel
  • weitere Themen im Bereich der objektorientierten Programmierung, die von Studierenden vorgeschlagen werden

 

Methoden

  • In einem Vorlesungsteil werden die Lehrinhalte besprochen. Neben den vorgegebenen Lehrinhalten werden auch von den Studierenden vorgeschlagene Aspekte des Themas behandelt.
  • Drei Programmieraufgaben, die in Übungsgruppen (je 2 bis 4 Studierende) zu lösen sind, sollen die Lehrinhalte verinnerlichen und praktisch anwenden. Dabei ist ein kleines Spiel in drei Varianten zu entwerfen und implementieren: in beliebiger objektorientierter Sprache als verteilte Anwendung, in Eiffel und in Smalltalk.

Abweichende Methoden aufgrund der Corona-Einschränkungen

  • Seit Mitte März ist die Abhaltung von Vorlesungen ausgesetzt. Als Ersatz für die Vorlesungen werden in TUWEL Vorlesungsfolien, ein Video sowie Referenzen auf Ressourcen im Web zum Selbststudium bereitgestellt.

Prüfungsmodus

Prüfungsimmanent

Weitere Informationen

ECTS-Breakdown: 3 ECTS = 75 Stunden

  • 15h: Teilnahme an Vorlesungen und Aufbereitung des Vorlesungsstoffes
  • 10h: Prüfungsvorbereitung und Prüfung
  • 48h: Lösung der Programmieraufgaben
  • 02h: Abgabegespräch und Vorbereitung darauf

Vortragende

Institut

LVA Termine

TagZeitDatumOrtBeschreibung
Fr.10:00 - 12:0006.03.2020 - 13.03.2020EI 3A Hörsaal Vorlesung
Fortgeschrittene objektorientierte Programmierung - Einzeltermine
TagDatumZeitOrtBeschreibung
Fr.06.03.202010:00 - 12:00EI 3A Hörsaal Vorlesung
Fr.13.03.202010:00 - 12:00EI 3A Hörsaal Vorlesung
LVA wird geblockt abgehalten

Leistungsnachweis

  • In einem (bis spätestens Ende Juni 2020 zu absolvierenden) Abgabegespräch pro Übungsgruppe werden Lösungen der Programmieraufgaben besprochen und beurteilt (mit  Schilderungen der Programmentstehung und Präsentationen von Quellcodes und Programmausführungen).
  • Zusätzlich legt jede/jeder Studierende eine mündliche Prüfung ab (bis spätestens Ende Jänner 2021).
  • Für eine positive Gesamtbeurteilung müssen sowohl Abgabegespräch als auch Prüfung positiv beurteilt sein, wobei sich eine positive Gesamtnote aus dem Durchschnitt der Beurteilungen von  Abgabegespräch und Prüfung bildet.
  • Abgabegespräch und Prüfung können bei negativer Beurteilung innerhalb der Lehrveranstaltung jeweils einmal (innerhalb des gegebenen Zeitraums) wiederholt werden.

Abweichender Leistungsnachweis aufgrund der Corona-Einschränkungen

  • Abgabegespräche müssen in diesem Semester vermieden werden. Stattdessen übermitteln Übungsgruppen Dokumente und Dateien mit folgenden Inhalten an den Vortragenden:
    • Quellcode der von der Übungsgruppe entwickelten Programme,
    • diese Programme in einer unter Windows oder Linux ausführbaren Variante,
    • eine kurze Beschreibung, wie diese Programme auszuführen sind,
    • eine kurze Beschreibung der wichtigsten Entwurfsentscheidungen hinter diesen Programmen,
    • ein kurzer Text, der die Fragen in den Aufgaben 2 und 3 beantwortet,
    • eine kurze Beschreibung der Arbeitsaufteilung (wer in der Gruppe für welche Arbeiten verantwortlich ist) und eine Bestätigung, dass die Programme von Mitgliedern der Übungsgruppe persönlich entwickelt wurden,
    • sowie ein Testprotokoll, das kurz beschreibt, wie die Programme getestet wurden, und die Ergebnisse zusammenfasst (einschließlich konkreter Daten wie z.B. Laufzeiten).
  • Bitte informieren Sie den Vortragenden, wenn Sie einige dieser Daten nicht bereitstellen können; in speziellen Situationen können Alternativen gefunden werden. Der Vortragende wird jedenfalls um weitere Informationen bitten, falls die übermittelten Daten nicht ausreichend waren.
  • Die Deadline für die Übermittlung der Dokumente und Dateien ist der 15. September 2020.
  • Wie angekündigt muss die mündliche Prüfung bis Ende Jänner 2021 abgelegt werden. Dabei werden die Themen unterteilt in obligatorische und optionale Themen. Zu Beginn einer Prüfung geben Studierende bekannt, für welche optionale Themen Sie sich vorbereitet haben. Während der Prüfung müssen Studierende Fragen zu obligatorischen sowie den gewählten optionalen Themen beantworten. Obligatorisch sind alle Themen, die in den Foliensätzen 1 bis 4 behandelt werden. Optionale Themen finden sich in den "Slides for optional topics". Alle Folien mit dem gleichen Titel in der Fußzeile (direkt über dem Datum) behandeln das gleiche Thema ("Further Topics" ist daher nur ein Thema). Insgesamt gibt es sechs optionale Themen, von denen zwei für die Prüfung gewählt werden müssen.
  • Mündliche Prüfungen sollen bevorzugt online unter Verwendung von GoToMeeting abgelegt werden, solange die Corona-Einschränkungen dies nahelegen. Dafür gelten folgende Bedingungen:
    • Anmeldungen und Terminvereinbarungen erfolgen per Mail. Generell werden Prüfungen jeden Montag und Mittwoch (außerhalb der vorlesungsfreien Zeit) von 10 bis 11 Uhr angeboten, können aber auch zu anderen Zeiten vereinbart werden. Die Prüfungsanmeldung muss mindestens 14 Tage vor dem Prüfungstermin erfolgen. Abmeldungen sind jederzeit bis kurz vor der Prüfung möglich.
    • Einige Tage vor dem Prüfungstermin erhalten Sie per Mail die für den Einstieg in GoToMeeting nötigen Zugangsdaten (Link). Zur Abwicklung der Prüfung ist ein Computer (z.B. Laptop) mit Mikrofon und Kamera nötig. Bitte achten Sie darauf, dass der Browser bzw. (falls verwendet die GoToMeeting-App) die nötigen Zugriffsrechte auf Mikrofon und Kamera hat. Steigen Sie zum Zeitpunkt, an dem die Prüfung angesetzt ist, in das Meeting ein (siehe die Anleitung unter https://colab.tuwien.ac.at/pages/viewpage.action?pageId=11634937#Schritt-für-Schritt-AnleitungenfürOnline-Prüfungen-TeilnahmeaneinemGoToMeeting-WebmeetingimKontextvonOnline-Prüfungen).
    • Absolvieren Sie die Prüfung in einem Raum, in dem Sie ungestört sind. In der nächsten Umgebung dürfen sich nur Gegenstände befinden, die Sie auch bei einer normalen mündlichen Prüfung verwenden dürfen (z.B., Ausweis, leeres Papier, Stift, Drinkglas) sowie die für die Online-Prüfung benötigten technischen Einrichtungen, sonst nichts (vor allem keine Handys oder Skripten). Außerhalb des unmittelbaren Arbeitsbereichs können sich beliebige Gegenstände befinden. Es dürfen sich keine anderen Personen im Raum aufhalten.
    • Wenn Sie zur Prüfungsbeobachtung eine weitere Person hinzuziehen wollen, geben Sie die Zugangsdaten bitte weiter und ersuchen Sie diese Person, ebenfalls zum Zeitpunkt des Prüfungsbeginns in GoToMeeting einzusteigen. Geben Sie zu Beginn der Prüfung bekannt, falls Sie noch auf jemanden warten, damit die Prüfung nicht durch den späteren Einstieg einer weiteren Person gestört wird. Studierender und Prüfer können jeweils eine weitere Person zur Beobachtung einladen, aber nicht mehrere, um die Übersicht nicht zu leicht zu verlieren. Mikrofon und Kamera von Beobachtern sollen ausgeschaltet bleiben.
    • Zu Beginn der Prüfung müssen Sie Ihren Ausweis (Studierendenausweis bevorzugt) in die Kamera zeigen und auch Ihre Arbeitsumgebung herzeigen (indem Sie die Kamera bzw. den Laptop entsprechend den Anweisungen im Raum bewegen).
    • Wie bei jeder mündlichen Prüfung müssen Sie die gestellten Fragen beantworten. Da jedoch die Bild- und Tonqualität vermutlich nicht immer ideal und daher die Gestik nicht stets zweifelsfrei erkennbar ist, müssen Sie damit rechnen, dass Wiederholungen von Fragen und Antworten nötig sein können und möglicherweise zusätzliche Fragen gestellt werden. Stellen Sie sich darauf ein, dass eine Prüfung aus diesen Gründen auch länger als veranschlagt dauern kann.
    • Wenn eine Frage aufgrund der Bild- und Tonqualität nicht verständlich war, fragen Sie bitte nach. Wenn die Verbindung überhaupt abbricht, steigen Sie wieder neu mit den gleichen Zugangsdaten ein. Sollte auch das nicht funktionieren, schreiben Sie dem Prüfer bitte eine Mail. In diesem Fall wird die Prüfung zu einem späteren, getrennt vereinbarten Termin fortgesetzt.
    • Bild- und Tonaufzeichnungen der Prüfung sind nicht vorgesehen. Sollten doch Aufzeichnungen gewünscht werden, ist das vor der Prüfung schriftlich (per Mail) gegenseitig zu vereinbaren; andernfalls sind Aufzeichnungen verboten.
    • Falls Sie die Prüfung nicht online ablegen können oder wollen, dürfen Sie auch eine normale mündliche Prüfung ablegen, sobald dies unter Einhaltung von Hygienemaßnahmen wieder generell möglich ist. Auf gleiche Weise kann eine spätere Fortsetzung einer wegen technischer Probleme abgebrochenen Online-Prüfung als mündliche Prüfung vereinbart werden.
    • Sobald mündliche Prüfungen auch ohne besondere Hygienemaßnahmen wie Mund-Nasen-Schutz möglich sind, werden Online-Prüfungen generell durch Präsenzprüfungen ersetzt. Online-Prüfungen werden dann nur mehr in Ausnahmesituationen durchgeführt, in denen die Präsenz nicht oder nur unter stark erschwerten Bedingungen möglich ist.

 

LVA-Anmeldung

Von Bis Abmeldung bis
02.03.2020 00:00 12.03.2020 23:59

Anmeldemodalitäten:

Die Einteilung in Übungsgruppen erfolgt am Rande der Vorlesung am 13. März. Kommen Sie daher bitte unbedingt zu dieser Vorlesung. Die Anmeldung zur Lehrveranstaltung wird erst bestätigt,  wenn Sie einer Übungsgruppe zugeteilt sind.

Gruppen-Anmeldung

GruppeAnmeldung VonBis
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

Literatur

Es wird kein Skriptum zur Lehrveranstaltung angeboten.

Vorkenntnisse

Vorausgesetzt werden

  • gute Kenntnisse der objektorientierten Programmierung in Java, C#, C++ oder ähnlichen Sprachen
  • Erfahrungen im Umgang mit Ersetzbarkeit (Untertypbeziehungen) und Generizität
  • Wissen über Design-by-Contract und den prinzipellen Einsatz von Software-Entwurfsmustern
  • individuelle praktische Programmiererfahrungen

Sprache

Deutsch