TU Wien:Distributed Systems Technologies VU (Truong)

Aus VoWi
Zur Navigation springen Zur Suche springen
Ähnlich benannte LVAs (Materialien):

Daten[Bearbeiten | Quelltext bearbeiten]

Diese LVA wird nicht mehr von dieser Person angeboten, ist ausgelaufen, oder läuft aus und befindet sich daher nur noch zu historischen Zwecken im VoWi.
Vortragende Thomas Rausch, Andrea Morichetta
ECTS 6
Sprache English
Links tiss:184260
Zuordnungen
Masterstudium Business Informatics
Masterstudium Software Engineering & Internet Computing

Mattermost: Channel "distributed-systems-technologies"RegisterMattermost-Infos Mattermost: Channel "distributed-systems-technologies"RegisterMattermost-Infos

Inhalt[Bearbeiten | Quelltext bearbeiten]

  • Java EE
  • Hibernate, objektrelationales Mapping
  • MongoDB
  • Redis
  • Remoting
  • Web Services
  • Java Message Service (Message Queues)
  • Message-oriented Middleware
  • Instrumentation
  • Aspect Orientated Programming

Ablauf[Bearbeiten | Quelltext bearbeiten]

Ein Vorlesungsteil. Daneben gibt es drei größere Übungsrunden, wo Programmieraufgaben gelöst und elektronisch abgegeben werden müssen. Zu jeder Übungsrunde gibt es einen Übungstermin in Kleingruppen (ca. 20 Leute), wo einige Studierende ausgewählt werden und ihre Lösungen präsentieren und vorführen müssen.

Benötigte/Empfehlenswerte Vorkenntnisse[Bearbeiten | Quelltext bearbeiten]

Sehr gute Programmierkenntnisse in Java sind Voraussetzung.

Vortrag[Bearbeiten | Quelltext bearbeiten]

Bis 2018 (Hong-Linh Truong): Sehr leise, Englisch ist nicht gerade das Beste (sehr starker Akzent) und damit eher einschläfernd...

Übungen[Bearbeiten | Quelltext bearbeiten]

Die 3 Übungsaufgaben sind recht umfangreich, du solltest also früh genug beginnen. Leider ist der elektronische Abgabetermin bereits über eine Woche vor dem Übungstermin, wodurch Verwirrung bei der Deadline entstehen kann.

SS14: Dem obigen Kommentar kann ich nicht zustimmen. Die Deadlines sind früh genug bekannt, ein paar Tage vor der Deadline für die Abgabe kam immer eine Erinnerungs-Mail.

Inhalt der Übungen:

  1. JPA, Hibernate, MongoDB, Redis
  2. EJB 3 (Session Beans), Injection/Reflection, Web Services
  3. JMS, Complex Event Processing (Esper), AOP Plugin System

Fragen zu den Übungsangaben werden über das Tuwel-Forum beantwortet. Die Antwortzeiten der TutorInnen sind recht gut.

Nach der elektronischen Abgabe-Deadline werden die Abgaben bewertet und die Bewertung im Tuwel eingetragen. Wer mit der Bewertung nicht zufrieden ist, muss das in der Übungseinheit am Beginn bekannt geben.

Die Lösungen müssen zur Übungseinheit selbst mitgebracht werden. Die Präsentation erfolgt per Beamer, also braucht man auch ein Notebook mit, das am Beamer angeschlossen werden kann.

Zusätzlich gibt es bei jeder der 3 Übungen einen Theorie Part den man bis zur Übungsrunde ausarbeiten muss und für den es extra Punkte gibt (ca. 4-6 Fragen pro Übung). Es steht zwar in der Angabe, dass man alle seine Theoriepunkte verliert wenn man eine Frage nicht oder nicht gut beantworten kann, das ganze wird aber nicht so eng gesehen (d.h. wenn man irgenwas sagen kann sollte das schon passen)

Obwohl gesagt wird, die Übungen laufen wie bei Mathe ab, stimmt das überhaupt nicht. Wenn man etwas nicht weiß, lernt man noch etwas, weil der Vortragende dann die richtige Antwort erklärt bzw. allgemein gibt er oft interessante Zusatzinfos. Mathe war mehr eine stressige Prüfungssituation für mich.

Die Sprache in den Übungsrunden ist grundsätzlich Englisch.


SS19: Inhalt der Übungen:

  • 1. JPA, Hibernate, MongoDB, Redis
  • 2. Service Oriented Architecture (Java EE CDI, JAX-RS REST , gRPC), Dependency Injection, Aspect Oriented Programming
  • 3. Message oriented Middleware (RabbitMQ), Container-based virtualization (Docker), Event Stream Processing with Apache Flink + CEP

Ich sehe mich selbst als unterdurchschnittlich guten Programmierer, daher war dieser Übungsteil für mich wirklich zäh. Trotzdem habe ich es geschafft, alleine durch den Übungsteil positiv zu sein (was sehr wichtig ist!).

Strategie um positiv zu werden für ungeübtere Programmierer:

  • Knallhart am ersten Tag mit dem Übungsbeispiel anfangen und TÄGLICH Zeit einplanen. Recherche und Programmierung sind sehr aufwendig.
  • Stelle Fragen im TUWEL Forum! Übungsleiter und andere Studenten beantworten selbst die blödesten Fragen. Schäme dich nicht und nutze es aus, du brauchst jeden Punkt. Ich habe wirklich peinliche Fragen gestellt aber schlussendlich hat es weitergeholfen!
  • alle Theoriefragen immer ankreuzen. Recherche für Theoriefragen + Lernen für die (meist 4) Theoriefragen waren bei mir insgesamt ca. 2 Stunden pro Übungsblock.
  • Bereite dich auch darauf vor, deinen Code zu präsentieren. Es geht sehr ins Detail. Verstehe was du machst und warum, und verstehe die THEORIE dahinter.
  • Der JPA Teil im Block 1 muss zu 100% stimmen (alle Testläufe), sehr wichtig für spätere Übungsbeispiele!
  • Alles implementieren im Block 1 und 2. Du willst auf jeden Fall 40+ (von 50) Punkte pro Übungsblock haben. Mit 100 Punkten gesamt bist du positiv.
  • Extrem viel Zeit für Dependency Injection einplanen. Hat bei mir alleine rund 50 Stunden beansprucht.
  • du kommst zum präsentieren nur dran, wenn du 100% in der Bewertung auf einen Unter-Teil hast, z.B. 1.1.3. Also bereite für die Übungsrunden nur das vor, wo du 100% hast, es ist sonst eh zu viel.
  • Übungsrunden: Manchmal fragt der Übungsleiter ob jemand freiwillig will. Wenn du dir sicher bist dass du es kannst, mach es! Wenn du bei einem schwierigen Teil dran kommst, hast du verloren. Ich hatte wirklich riesen Glück, die meisten Fragen hätte ich nicht so beantworten können. Teilweise geht es wirklich sehr ins Detail.
  • Die Übung ist extrem aufwendig aber wird FAIR bewertet. Ich hatte zB des Öfteren (wie gesagt ich bin kein geübter Programmierer) Code-Probleme bezüglich Atomicity, Thread-Safety etc., aber trotzdem gibt's dafür wenig Abzug. Sehr human!

Fazit: Als ungeübter Programmierer extrem aufwendig, habe zusätzlich in jeder Übungsrunde gezittert, aber mit harter, konsistenter Arbeit alles gut gegangen und alleine durch den Übungsteil positiv geworden.

Prüfung, Benotung[Bearbeiten | Quelltext bearbeiten]

SS 2019: Die Prüfung ist optional und besteht aus 7 Blöcken. Die ersten 5 decken jeweils einen Foliensatz ab und bestehen aus jeweils 2 Multiple-Choice-Fragen und 2 offenen Fragen (2-3 Sätze sollten als Antwort ausreichen). Jede dieser Fragen ist 2 Punkte wert. Die letzten beiden Blöcke sind stoffübergreifend und erfordern tiefergehende Antworten. Dafür gibt es jeweils 5 Punkte. Offizielle Beispielfragen findet ihr in den #Materialien.

SS 2018: Die Prüfung war unerwartet zach. Es waren mehrere Beispiele, bei denen man sich eine Architektur überlegen musste (alte Testangaben haben überhaupt keine Relevanz mehr, da sich das Stoffgebiet verändert hat und die Fragen anders gestellt werden). Mit bloßem Auswendiglernen von Patterns oder Technologien deckt man wohl max. 10% der Prüfung ab. Für den Rest musste man die zahlreichen Theorien, Konzepte und Technologien verstehen und mit Begründung auswählen können (ca. so: "Sie bauen ein Social Network, das aus 3 Komponenten besteht (Video-Service, Bild-Service, ...). Wegen GDPR müssen Sie ein Verfahren implementieren, sodass User ihre Daten löschen können. Wie schaut Ihre Architektur aus und welche Technologien verwenden Sie? Wie stellen Sie die Skalierbarkeit sicher?") Bei ca. 400 hingepfuschten Folien mit wenig Struktur, die viele Fragen hinterlassen, keine leichte Aufgabe. Es ist daher extrem wichtig, dass man schon durch den Übungsteil allein positiv wird.

Ab dem SS 2012 ist die Vorlesungsprüfung (ähnlich DSLAB) optional, d.h. wenn bereits mit den Übungen mehr als die Hälfte der insgesamten Punkteanzahl erreicht worden ist, ist man auch ohne (bzw. mit negativer) Prüfung positiv. Auf die Prüfung gibt es 50 Punkte, auf die drei Übungen jeweils auch 50 Punkte.

Dauer der Zeugnisausstellung[Bearbeiten | Quelltext bearbeiten]

17.06.2011: 4 Tage

20.06.2012: 3 Tage (Punkte im Tuwel)

30.06.2018: 3 Tage (Punkte im TUWEL), Zeugnis am 13.07.2018 (einige Tage nach der Einsichtnahme)

Zeitaufwand[Bearbeiten | Quelltext bearbeiten]

Hoch. Die Übungen erfordern viel an Recherchearbeit, um sich mit den Technologien vertraut zu machen (bzw. um diese zum Laufen zu bringen). Pro Beispiel ist mit 20-50 Stunden an Aufwand zu rechnen, je nach Vorkenntnissen.

Für die Prüfung waren zwar 5 Foliensätze (insgesamt ca. 300 Folien + ein 30-seitiges pdf) zu lernen, jedoch kann man einige Folien überspringen, da man das meiste schon aus den Übungsbeispielen kennt. Man sollte mind. einen Tag konzentriertes Lernen einplanen. Falls man sich mit den Technologien in der Übung schwer tut bzw. nicht alles implementiert hat eher 2 Tage.

For mid-skilled programmers one point in the exercises is like 40 minutes of research and 20 minutes of coding.

Unterlagen[Bearbeiten | Quelltext bearbeiten]

Tipps[Bearbeiten | Quelltext bearbeiten]

  • Tuwel-Forum lesen, dort werden viele Fragen gestellt und beantwortet.
  • Nicht zu spät mit den Beispielen anfangen - vor allem mit dem 2. Auch als erfahrener Entwickler sollte man 2 - 3 Tage für jedes Übungsbeispiel einplanen.

Verbesserungsvorschläge / Kritik[Bearbeiten | Quelltext bearbeiten]

noch offen