TU Wien:Fortgeschrittene objektorientierte Programmierung VL (Puntigam)

Aus VoWi
Wechseln zu: Navigation, Suche

Daten[Bearbeiten]


Inhalt[Bearbeiten]

  • Tiefergehendes Verständnis objektorientierter Programmierung (Namen, Nebenläufigkeit, Mehrfachvererbung, Reflektion)
  • Auf OO aufbauende Konzepte (aspektorientierte Programmierung, Mixins, Verschiedenes und von Studenten Vorgeschlagenes)
  • Implementation von OO in diversen Programmiersprachen (Impl. von (Mehrfach-)Vererbung, Exceptions)
  • Design Patterns (anhand der Beispiele State und Observer)

Ablauf[Bearbeiten]

  • Geblockter Vorlesungsteil, 6 Einheiten zu je 120 Minuten.
  • 3 Übungsbeispiele die in Gruppen von 2-4 Personen gelöst werden müssen.
  • Übungsanmeldung in der Vorbesprechung bzw. den ersten Vorlesungen.

Empfehlenswerte Vorkenntnisse[Bearbeiten]

Vortrag[Bearbeiten]

Angenehme Atmosphäre mit ca. 20-30 Leuten im Hörsaal. Der Vortrag beginnt pünktlich (s.t.) und dauert die vollen 2 Stunden.

Die genaue Themenauswahl der Vorträge wird in Übereinstimmung mit den TeilnehmerInnen getroffen. Kein Frontalvortrag, ca. die Hälfte jeder Vortragseinheit besteht aus Diskussion über das aktuelle Thema. Es wird von TeilnehmerInnen erwartet, dass sich in die Diskussion einbringen.

Trotz des Titels der LVA wird der Stoff nur vergleichsweise oberflächlich behandelt. Die Fülle an Themen können in sechs Vorlesungseinheiten einfach nicht genauer betrachtet werden. Für meine Kollegen und mich war das unerwartet und enttäuschend.

Übungen[Bearbeiten]

Gruppenbildung mit jeweils 3 Personen, lösen von 3 Programmieraufgaben, wobei jede Aufgabe in einer anderen Sprache zu lösen ist. Die erste Aufgabe wird in einer schon bekannten Sprache (wahlweise Java, C# oder C++) gelöst und ist umfangreicher. Die beiden anderen Aufgaben sind in Smalltalk und Eiffel zu lösen, wobei hier eher das Erlernen und Experimentieren mit der Sprachstruktur im Vordergrund stehen; die Übungsaufgaben sind eher überschaubar.

Es gibt ein Abgabegespräch für die Beispiele, bei dem die Gruppe ihre drei Lösungen präsentieren muss. Im Vordergrund steht die Usability, d.h. der Code selbst wird nur sporadisch angesehen (Beim Durchscrollen fallen fehlende Kommentare schnell auf...) - solange die Anwendung das tut, was sie soll, wird nicht nachgebohrt. Darüber hinaus wird locker über die Erfahrungen mit der jeweiligen Aufgabe diskutiert. Das Abgabegespräch muss bis Ende des Semesters statt finden, den Termin kann man sich aber frei mit dem Kollegen Puntigam ausmachen.

Prüfung[Bearbeiten]

Die Note teilt sich auf 50% Übung und 50% Vorlesung auf. Die Prüfung selber ist mündlich und betrifft dem im Vorlesungsteil behandelten Stoff. Sofern mensch in der Vorlesung war und sich aktiv beteiligt hat, ist an sich keine weitere Vorbereitung auf die Prüfung notwendig.

Andere Meinung: Der Vorlesungsstoff ist zwar nicht extrem umfangreich, aber die Folien enthalten oft nur Schlagworte und da du bis zum Ende des Semesters doch einiges wieder vergessen hast, ist Lernen für die Vorlesungsprüfung unumgänglich. Mit Wikipedia, Google etc. kannst dur dir den Stoff im Detail selbst erarbeiten. Eine Linksammlung wurde bei den Materialien angefangen.

Die Prüfung ist im Vergleich zur OOP-Prüfung angenehmer und wird auch sehr human benotet; man sollte es dennoch nicht unterschätzen, möglichst die neusten Stoffzusammenfassungen lernen und bei Grundthemen sattelfest sein.

Dauer der Zeugnisausstellung[Bearbeiten]

  • SS09: Prüfung am 22.06.2009, Zeugnis erhalten am 01.07.2009 (ca. 1 Tag).
  • SS09: Prüfung am 30.06.2009, Zeugnis erhalten am 01.07.2009 (ca. 1 Tag).
  • SS12: Prüfung am 09.07.2012 12:00, Zeugnis erhalten um 13:13 (ca. eine Stunde!)
  • SS12: 30 Minuten
  • SS14: ca. 30 Minuten

Zeitaufwand[Bearbeiten]

  • Vorlesung: 6 Einheiten zu je 120 Minuten. Für die Vorlesungsprüfung sollten 3 Tage Vorbereitung reichen.
  • Übung: Pro Beispiel ca. 1-2 Tage pro Person, je nach Motivation auch mehr - notwendig ist dies aber nicht.

andere Meinung:

  • Übung SS17: Wir durften ein Snake Spiel in Java (in java verteilt), in Smalltalk und Eiffel implementieren. Das war definitiv mehr aufwand als 1-2 Tage, vor allem Java und Eiffel haben mehr Zeit gefressen. Nicht unterschätzen.
  • Prüfung: 3 Tage Vorbereitungszeit reichen für einen 1er aus (hängt aber auch damit zusammen, wie gut man den Stoff schon teilweise vorher beherrscht, manche Themen davon sind zB. Teil von der LVA OOP)

Tipps[Bearbeiten]

  • In die Vorlesung gehen, aufpassen und mitschreiben(!!!). Da es kein Buch und kein Skriptum zur Vorlesung gibt würde man sich beim Lernen sonst schwer tun.
  • Es gibt einige thematische Überschneidungen mit der LVA Programmiersprachen. Will man beide LVAs machen würde es sicher nicht schaden Beide im gleichen Semester zu absolvieren.
  • Die Beispiele nicht nur blind runterprogrammieren, sondern darüber auch reflektieren. Puntigam fragt bei Abgabgegesprächen dinge wie "empfinden Sie die Kovarianz bei Bedingungen in Eiffel als gut?". Dafür will er keine "richtige" Antwort, weil's keine gibt, sondern eine eigene Meinung die zeigt, dass man sich darüber Gedanken gemacht hat.
  • Beim ersten Beispiel unbedingt zumindest ein Interface verwenden und implementieren, ein Pattern verwenden kommt gut, und er sieht sehr gern Kommentare im code.
  • SS17: Man neigt in dieser LVA automatisch dazu, dass man Overengineering begeht, für die Übung ist es nicht notwendig Patterns auf Teufel komm' raus zu implementieren, aber man sollte sich vorher Gedanken machen, wo man eventuell Patterns verwenden könnte, damit man beim Abgabegespräch zeigt, dass man sich damit beschäftigt hat. Ansonsten ist es für Smalltalk/Eiffel nicht notwendig Patterns oder großartige Vererbung zu verwenden, simpel ist auch gut. Die Angabe der Beispiele kann man sich auch ein wenig selbst zusammenreimen, man sollte Problemfelder möglichst erkennen und Features vermeiden, die unnötig aufwendig sind.

Verbesserungsvorschläge / Kritik[Bearbeiten]

  • Den Vorlesungsstoff fand ich leider etwas langweilig vorgetragen (Puntigam halt, obwohl ich ihn eigentlich mag). Bei der Prüfung wird dann zum Teil recht ins Detail nachgefragt, dafür ist die Benotung sehr sehr fair. Ich hab bei zwei Fragen teile nicht gewusst, und hab trotzdem ein S1 bekommen. -Thrau 14:43, 9. Jul. 2012 (CEST)