Freitag, 21. August 2015

Modul 31751: Diskussion zu Klausur SS2013 (2013-09) mit Lösungsvorschlag

Wie soll man Klausuren üben ohne Musterlösung? Es gibt zwar noch die Einsendearbeiten, aber am repräsentativsten sind immer noch die Altklausuren. Deshalb habe ich mich mal drangesetzt und mit der Klausur aus dem Sommersemester 2013 begonnen. Meinen Lösungsvorschlag stelle ich Euch hier zur AKTIVEN Verfügung. Damit meine ich: Bitte beteiligt Euch an der Diskussion und teilt mir Eure Lösungsvorschläge oder Änderungen mit (Kommentarfunktion unter dem Beitrag)! Gerade beim GP-Modell gibt es ja manchmal sehr viel Interpretationsspielraum (meine fraglichen Antworten habe ich übrigens eingekringelt). Mir stellt sich dabei immer die Frage: Soll ich extrapolieren? Soll ich nicht extrapolieren? Kann man ohne Besteck essen oder braucht man Zugriff auf eine Gabel und ein Messer, obwohl es nicht extra erwähnt wird (man könnte ja auch mit den Händen essen)? Bin daran nur ich beteiligt oder auch der Kellner, der es mir bringt oder der Koch, der es mir zubereitet? Selbst bei den EAs und ihren Musterlösungen war es mal so und mal so. Etwas weniger Spielraum gibt es dann gottseidank beim ER-Modell. Die UML-Diagramme müssen im Gegensatz zu früher völlig frei, also ohne Klassenvorgaben, modelliert werden, was es auch nicht unbedingt eindeutiger macht (Anm.: zur Modellierung habe ich argoUML benutzt).

Anbei mein Lösungsvorschlag zum Download als zip-file:
Version 1.0
Version 1.1
Passwort (ohne Anführungszeichen): "ichmachemit!"

Anmerkung: Scheinbar zeigt die Windows-Bildanzeige die Grafiken (UML) nicht korrekt an. Ihr müsst Klassen und Assoziationen mitsamt Kardinalitäten vor einem grauen (nicht schwarzen) Hintergrund sehen. Ist das nicht der Fall, verwendet IrfanView oder ein anderes externes Programm.


In den nächsten Tagen werde ich - je nach Beteiligung hier - meine weiteren Lösungsvorschläge posten.

Na dann mal ran an den Speck!

Ach ja, falls sich jemand fragt, warum ich das nicht auf studienservice poste: Dieses Forum ist zwar hilfreich, aber auch nur aus Mangel an Alternativen. Was den Admins/Mods dort nicht passt, sei es Kritik oder ein Link zu anderen Seiten, die Gefahr fürs eigene Skriptverkaufsgeschäft darstellen, wird gnadenlos zensuriert. Und wenn ein Link doch freigeschalten wird, dauert es ewig. So kann keine fruchtbare Diskussion stattfinden, außer man setzt das fruchtbare 'r' von der 2. auf die 4. Stelle. Nein, das unterstütze ich nicht. Gerade als Student sollte man solche Praktiken kritisch hinterfragen. Wer will, darf aber gerne hierher verlinken, vielleicht gibt es dann eine regere Diskussion.

---

Versionshistorie:

22.8.2015: V1.1: 
Bei Aufgabe 1 in Klasse Kunde und Konto das Attribut KundenNr eingefügt.
In Klasse Konto das Attribut BesitzerName gelöscht.
Schlüsselattribute entsprechend angepasst.
ArgoUML-Datei (.zargo) zum leichteren Bearbeiten hinzugefügt.
In SQL SORT BY durch ORDER BY ersetzt.

21.8.2015: V1.0

Kommentare:

  1. Hallo Markus,
    ich werde mich heute Abend mal ransetzen. Den SQL Teil habe ich schon fertig, der Rest folgt.
    LG Florian

    AntwortenLöschen
    Antworten
    1. Hi Florian,

      der SQL-Teil ist bei der Klausur ziemlich billig, meistens ein paar basale JOINS und das wars auch schon. Keine Kunstgriffe.
      Schwierig sind die Aufgaben, die nicht klar formuliert wurden. Das ärgert mich insofern, als dass es manchmal nicht am Verständnis des Lernenden, sondern an der Prägnanz des Lehrenden scheitert.

      MfG
      Markus

      Löschen
  2. Blogger.com hat mir einen Kommentar von Florian via Mail geschickt, der hier aber gar nicht auftaucht. Komisch!? Ich füge den Kommentar also mal per Hand ein:

    -------------FLORIAN-----------

    Ok, als Erstes der SQL Teil: Exakte Übereinstimmung. Ich fragte mich lediglich bei 2b2 ob man die letzte Zeile in der WHERE Klausel auch mit

    WHERE NOT P.WohnortNr = A.WohnortNr

    füllen könnte?! Habe jedenfalls sicherheitshalber auch die Variante mit "<>" vorgezogen.
    LG Florian

    AntwortenLöschen
    Antworten
    1. Ja, das geht auch. Aber worin siehst du da den Vorteil?

      Löschen
    2. Vorteil sehe ich keinen, es war nur die Frage ob es funktionell ist :-)

      Löschen
  3. Dann mal zu Aufgabe 1: Generell haben wir da schon zu 95% Übereinstimmung. Ein paar Kleinigkeiten:

    Bei der "Ehepartner-Frage" bin ich mir auch nicht sicher. Ich hatte es auch erst ähnlich wie du, bin dann aber doch umgeschwenkt und habe ein optionales Attribut mit Name2 betitelt. Das stellt für mich eher die Gleichberechtigung der beiden Kontoinhaber dar. Das sollte aber allenfalls Geschmackssache sein denke ich...
    Die Klasse Zentrale habe ich nach langer Überlegung genauso wie du modelliert, wobei es mir immer noch etwas merkwürdig vorkommt :-)
    Bei der Klasse Kunde habe ich noch zusätzlich eine Operation "prüfeBerechtigung()", wobei das sicherlich auch eine Unteroperation von "eröffneKonto()" sein kann
    Ansonsten habe ich alles tatsächlich sehr ähnlich. Ich habe nur noch gegrübelt ob man die Bedingung der verschiedenen Unter/Oberkonten noch irgendwie darstellen sollte...
    LG Florian

    AntwortenLöschen
    Antworten
    1. Ich sehe gerade das bei mir deine Assoziationen untergegangen waren, da ich deine Lösung mit der Windows Bildanzeige geöffnet habe. Da wird komischerweise der gesamte Hintergrund schwarz dargestellt... Öffne ich mit einem anderen Programm ist alles korrekt zu sehen. Das auch als Hinweis für die anderen, hoffentlich noch zahlreich teilnehmenden Stundenten

      Löschen
    2. Die Klasse Zentrale habe ich nur wegen dem Dispozins als Klassenattribut eingebaut. Darauf zielt dieser Teil der Aufgabe ab, ich denke das Drumherum ist dabei gar nicht mal so wichtig.

      Ich glaube mich zu erinnern, dass im Moodle ein Tutor zu dem Beispiel auf ähnliche Weise Stellung genommen hat.

      Die Ehepartner-Frage, hjma, ganz zufrieden war ich mit meiner Lösung auch nicht. Evtl. könnte man das sogar über eine Rekursion lösen:
      Ein Kunde hat als Kontobesitzer 0..1 Partner
      Ein Kunde ist als Partner 0..1 Kontobesitzer
      Gefällt mir gar nicht mal so schlecht, diese Lösung! Die werde ich wohl implementieren.

      prüfeBerechtigung ist bei mir ein Teil der Assoziation, das Alter ein abgeleitetes Attribut von Geburtsdatum der Klasse Kunde. Da stellt sich mir die Frage: Müssen Konditionen einer Assoziation auch in der Klasse als Methode definiert werden oder nicht? Wenn ich mich recht erinnere, habe ich bei den anderen Lösungsvorschlägen tw. diese Abfrage modelliert wie du. Aber auch hier wird es wohl letztlich dem Lehrstuhl darauf ankommen, die Kondition in der Assoziation stehen zu haben, der Rest ist dann optional.

      Ich frage mich beim Modellieren zudem: Muss ich sauber modellieren? D.h. braucht jede Klasse ihren key, brauchen die Klassen ihre Fremdschlüssel usw.? Das könnte man dann natürlich ins Unendliche treiben. Wenn ich mir den Notenspiegel ansehe und dabei ins Kalkül ziehe, dass auch WiWis die Klausur schreiben, kann das alles nicht so streng sein (nicht böse gemeint). Wie es dann ganz genau gemacht werden soll, werden wir in SE I sehen.

      Löschen
  4. OK, dann mal zum ER-Modell. Als erstes: Entweder ich habe ein Anzeigeproblem oder dein Kommentar im PDF scheint eine Verbindung zu hoch gerutscht sein, kann das sein? Bei mir ist der Kommentar über dem "mc" bei Turnier. Sollte der Kommentar eventuell zu "Spiel"?

    LG Florian

    AntwortenLöschen
    Antworten
    1. Ja ist verrutscht, gehört runter

      Löschen
    2. Also ich habe mir ehrlich gesagt nicht die Mühe gemacht und die Person so assoziiert wie du. Habe mich da auf den Ansprechpartner beschränkt. Deine Lösung ist da mit Sicherheit "vorbildlicher" :-). Es würde mich da wirklich mal die Musterlösung interessieren...
      Zwischen Schiedsrichter und Spiel halte ich die 1-mc Beziehung auch für richtig.
      Zwischen Platz und Spiel habe ich eine mc-1 Beziehung, da es meiner Meinung nach ja auch möglich ist, dass in der Datenbank Plätze existieren auf denen kein Spiel stattfindet.
      Zwischen Ansprechpartner und Turnier habe ich eine 1-m Beziehung. Meine Interpretation dazu ist, dass ein Ansrechpartner eines Turniers ja mindestens ein Turnier hat was ihm "untersteht", daher würde c für mich keinen Sinn machen. Vielleicht liege ich aber auch voll daneben...

      LG Florian

      Löschen
  5. Jetzt zu 3a)
    Bei Punkt 6 ist die Frage ob die nette Dame in der FiBu tatsächlich noch die Belege braucht um die Abrechnung zu erstellen, oder ob die Notizen der Sachbearbeiterin OrgA auf der Reisekostenabrechnung dazu ausreichen.
    Bei Punkt 7 hast du das FiBu System mit aufgenommen. Das habe ich außen vor gelassen, da sich mir der Sachverhalt so darstellt, als wenn dieses System tatsächlich nur für die entgültige Abrechnung benötigt wird und noch nicht zur Vorbereitung. Den Mitarbeiter habe ich ebenfalls nicht mit einbezogen, da er ja nicht aktiv am Prozess teilnimmt.
    Bei Punkt bin ich mir total unschlüssig was das System ORD angeht. Ich denke mal du hattest den gleichen Gedankengang wie ich und hast es aufgenommen da scheinbar dieses System benötigt wird um sämtliche lesende und schreibende Zugriffe auf den Personalordner zu realisieren. Wahrscheinlich ist dies auch tatsächlich so, da es sich um das Standard Office System des Unternehmens handelt und irgendeine Oberfläche braucht man ja nunmal um etwas zu tippen...
    Ansonten stimmen wir überein.

    Ich muss leider immer wieder bemerken wie albern ich diesen Aufgabentypen finde. Es hat meiner Meinung nach nicht im geringsten etwas damit zu tun, ob man etwas von der Materie verstanden hat oder nicht. Es könnte genau so gut eine Klassenarbeit in Deutsch sein, bei der es darum geht den Text möglichst genau zu lesen und zu interpretieren...
    Die Korrektur meiner Einsendearbeit war auch auf Deutsch gesagt eine Frechheit, da mir ohne weiteren Kommentar und Korrektur einfach 2,5 Punkte bei dieser Aufgabe abgezogen wurden. War das bei dir/euch ähnlich?

    LG Florian

    AntwortenLöschen
    Antworten
    1. Hi Florian,

      diese Aufgaben sind wirklich mühselig und scheitern wenn, dann nicht am grundsätzlichen Verständnis der Materie, sondern an der Interpretation der unpräzisen Texte. Ich bin da ganz bei dir. Es ist außerdem von Mal zu Mal unterschiedlich, ob man zusätzliche Informationen hineininterpretieren soll oder nicht.

      Wenn man von 150 Klausuren in der Datenbank ein "COUNT(COUNT(DISTINCT Variante)) [..] GROUP BY Variante" drüberlaufen lässt, wird die Antwort irgendwo bei 148 liegen.

      Aber wir brauchen andererseits die Klausur auch nicht neu erfinden. Seien wir froh, dass es nur beim Modellieren bleibt und nicht die anderen 1000Seiten detailgenau abgefragt werden wie bei Einführung WInf. Das könnte nämlich genausogut sein und dann wäre die Klausur ein echter Stolperstein.

      MfG
      Markus

      Löschen
    2. Bei meiner EA hatte ich ein anderes Phänomen: Ich hatte erst ein paar Punkteabzüge, bekam aber am Ende der Aufgabe plötzlich Punkte dazu, die ich nicht zuordnen kann.

      Die Korrektur der EAs scheint nicht unbedingt die Lieblingsaufgabe der Tutoren zu sein, was ich erhlich gesagt aber auch verstehen kann.

      Löschen
  6. Zum Schluß 3b)
    100% Übereinstimmung!

    AntwortenLöschen
  7. Über einen Reup würde ich mich sehr freuen!

    AntwortenLöschen