Aufgabenblatt 2 oder Schwammige Aufgabenstellung...

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Aufgabenblatt 2 oder Schwammige Aufgabenstellung…
In einem anderen Thread wurde es bereits erwähnt, ich möcht nochmal ausführlicher drauf eingehen. Ich find auch, dass die Aufgaben des neuen Blattes nicht wirklich schwer sind, wenn man denn wüsste, was man >genau< machen soll, bei der schwammigen Aufgabenstellung… Das lässt sich meines Achtens oftmals so oder so auslegen.
Ich möcht mal wissen, was ihr davon haltet, also der Reihe nach:

2.1
Ich denke ziemlich einfach, bei Fragen einfach posten.

2.2
Da fängts schon an. Soll sich mit meiner Umsetzung nur die Frage in welcher Stunde welcher Lehrer welche Klasse wo unterrichtet, sprich in welcher stunde welche unterrichtseinheit stattfindet klären lassen, oder müssen auch Fragen wie “welcher Lehrer unterrichtet welche Klassen” geklärt werden können? (dh auch Beziehungen zwischen Lehrer und Klasse / Klasse und Raum / Lehrer und Raum) Ich gehe von ersterem aus? D.h. nur die Frage, zu welcher Schulstunde welche Unterrichtseinheiten (Lehrer/Klasse/Raum) stattfinden soll geklärt werden? (also keine Beziehungen zwischen Lehrer und Klasse etc.)
Und: Bezieht sich “Schulstunde” bereits auf eine Unterrichtseinheit, oder bezieht sich “Schulstunde” nur auf den Zeitraum z.B. 10 bis 12 Uhr und diesem werden dann eben mehrere Unterrichtseinheiten zugeordnet? Ich gehe von zweiterem aus?

2.3
Hab ich noch nicht näher angeschaut, d.h. evtl später mehr dazu :wink:

2.4
a) Motorrad ist ja sowohl Kraftfahrzeug, als auch Zweirad. Später solls aber mit Java umgesetzt werden und das kann keine Mehrfachvererbung. Soll heißen will mir die Aufgabenstellung mit “mehrere Lösungen sind möglich” sagen, dass ichs einfach entweder Kraftfahrzeugen oder Zweirädern zuordnen kann?
Und das Diagramm is doch echt einfach ne ganz simple Vererbungsstruktur und sonst nix?
b) Da steht ich soll Ware beschreiben. Ich würd jetzt 2 Klassen machen, eine CDLaden und eine abstrake Klasse Ware. Die Klasse Ware bekommt dann 5 Attribute und 5 Operationen und steht im UML Diagramm als Klasse als solche mit der Klasse CDLaden in Beziehung?

2.5
a) Könnte man auch schon bei 2.4a) fragen, daher rührts ja, aber: Es liegt doch in meinem Ermessen welche Klassen ich für abstrakt halte und welche nicht? Thema “mehrere Lösungen sind möglich”?

Eure Meinungen?
Fänd ich doch sehr hilfreich mal zu hören wie ihr das seht.

Flo


Zu 2.4
Es gibt zwar keine Mehrfachvererbung aber es gibt die Interfaces.
Also ein

class Motorrad public Zweirad extends KFZ

sollte schon gehen.

zum Stundenplan:
In der Berufsschule haben wir damit fast zwei Wochen verbracht.
Man kann ja auch noch einbauen, dass bestimmte Lehrer nur bestimmte Fächer unterrichten dürfen- … und und und


2.4
Naja, dass sollte sich doch aber mit dem Zeug, was wir aus der Vorlesung kennen machen lassen? Sprich Aufgabe muss sich doch mit dem Wissen, was in der Vorlesung vermittelt wurde lösen lassen?
Von Interfaces “wissen” wir doch noch gar nichts? Zumindest kann ich mich nicht daran erinnern das in der Vorlesung gehört zu haben :wink:
Alles was wir wissen is grad mal “abstract” und “extends” und halt “class”, aber von mehr haben wir doch noch gar nicht gehört?

Zum Stundenplan:
Schon klar, man kann eht VIEL machen, die Frage ist aber: Was fordert die Aufgabenstellung so wie sie dasteht von mir? Und ich glaub irgendwie, dass gar nicht erwartet wird sonderlich weit zu denken?


Also das mit den Interfaces stimmt schon, nur müsste das dann heissen

class Motorrad extends KFZ implements Zweirad {} (sry for klugscheissing)

Iss aber wie von TheChip gesagt nicht in der Vorlesung erwähnt worden und muss deswegen auch nicht so gemacht werde denk ich.
Den Stundenplan check ich auch überhaupt nicht…gibt unendlich viele Möglichkeiten!

Naja Morgen iss Algo-Übung und da werd ich erstmal genau nachfragen wie dass denn nun gemeint ist.


Wär sehr cool, wenn du morgen nachfragen und dann mal deine hoffentlich erhaltenen Erkenntnise hier posten kannst!
Wär dir dankbar, denn mich nervts einfach unglaublich, dass die Aufgaben simpel wären, ich bloß nicht weiß, was die Aufgabenstellung von mir will. Und meiner Meinung liegt das nicht daran, dass ich die Aufgabenstellung nicht verstehe. Denn ich kann mir denken, auf was sie hinaus will, nur leider fallen mir da ohne groß nachzudenken halt immer gleich mehrere Möglichkeiten ein. Und das nervt einfach.
Also wär echt cool, wenn du dich morgen mal melden kannst.
Ich selber hab erst am Donnerstag Übung und Morgen und Mittwoch nen Stundenplan, so das ich nur schwer in ne andere Algoübung reinschaun könnt.

Und es kommen mehr Fragen auf, bei der 2.5b):
Eigentlich ist bei 2.4b) ja nur nach der “Ware” und nicht nach nem CDLaden gefragt, richtig? D.h. im Prinzip mach ich bei der 2.5b) eine Datei “CDLaden.java” und der Inhalt sieht so aus, dass ich gar keine Klasse “CDLaden” habe (weil von der Aufgabenstellung her nicht brauche?), sondern nur die Klasse “Ware”. Dateiinhalt sieht wie folgt aus:
“abstract class Ware {
[Attribute]
[Operationen]
}”

Was meint ihr?


Also ich würds genau so machen, weil es ist ja nur nach der Ware gefragt…
da stellt sich natürlich die Frage ob CD oder Schallplatte??? :wand:

Vom Prinzip her stell ich mir des so vor:

class CDLaden {
    String Interpret
    String Album
    Short Erscheinungsjahr
    int isbnNummer
    int regalPlatz

    abstract void Verkaufen()
    abstract void Entfernen()
    .
    .
    .
}

Ich werd aber sicher Morgen mal genau nachfragen und es hier berichten!


Richtig, und weil da ja allgmein nach Ware gefragt ist, werd ich wohl ne abstrakte Klasse machden, wovon man dann, wenn man will, ne Klasse “CD” und ne Klasse “Schallplatte” ableiten kann.

Zu deiner Vorstellung:
Naja, also die Implementierung seh ich schon auch so in der Art, aber der Klasse würde ich halt den Namen “Ware”, wegen mir auch “CD” bzw. “Schallplatte” geben, aber doch nicht “CDLaden”?!
Ich mein die Instanzen davon sind halt die einzelnen Waren (Cds etc.).
Und nicht lauter CDLäden?! :wand:


Das Problem ist nur wir sollen ne Datei hochladen die CDLaden.java heisst!

wenn du nun deine Klasse im Quellcode nicht genau so bezeichnest wie den Dateinamen dann wird dir der Compiler was vorheulen…

Ansonsten seh ich schon was du meinst, nur müsste diese Abstrakte Klasse dann eben CDLaden heissen

abstract class CDLaden {
    String Interpret
    String Album
    Short Erscheinungsjahr
    int isbnNummer
    int regalPlatz

    abstract void Verkaufen()
    abstract void Entfernen()
    .
    .
    .
}

Von der Klasse könnte man ja jetz beliebige andere Klasse wie CD oder Schallplatten ableiten…
Also ich verstsehs auch net genau aber Morgen wissen wir hoffentlich bescheid :vogel:


Jep, das mit den Dateinamen, die wir hochladen, das is auch noch so ein weiteres Problem! :wand:
Soll ja “Fahrzeuge.java” heißen, aber die 11 Klassen, die man sich aus der Aufgabenstellung bauen soll sind alle Einzahl, sprich “Fahrzeug”

Ich hab auch fest damit gerechnet, dass der Compiler mault, aber er mault nicht. Meine Datei “Fahrzeuge.java” enthält keine Klasse “Fahrzeuge”, lässt sich aber trotzdem problemlos kompilieren.
Und schaut wirklich nur so aus:

abstract class Fahrzeug {}

abstract class Kraftfahrzeug extends Fahrzeug {}
class Personenkraftwagen extends Kraftfahrzeug {}
...

Also nichts von “Fahrzeuge”, aber wird kompiliert und ich bekomm meine 11 .class Dateien, davon einmal “Fahrzeug”
Aber Ausgangsdatei heißt Fahrzeuge.java …

Evtl. weil der Code eh so nicht ausführbar ist?

Bei CDLaden.java hab ichs jetzt noch nicht probiert, aber kann mir gut vorstellen, dass sich das auch kompilieren lässt obwohl nur eine Klasse “Ware” drin ist?
Wenn dem nicht so der Fall ist, kann man ja immernoch ne Dummy Klasse einbauen:

class CDLaden {}

abstract class Ware {
....
}

?

Ach, is doch echt alles bescheuert, ich hoff du kannst morgen für Klarheit sorgen!
Sonst nervt mich das echt…


Okay, hab mir grad die 2.3 näher angeschaut…
Da hab ich mal überhaupt kein Plan, wie sowas bitte auszusehen hat?
Das Beispiel im Skript is ja auch kein Brüller…

Vorschläge, Anregungen zur 2.3 wärmstens Willkommen!


Mir ist soeben eine E-Mail ins Postfach geflattert, in der steht, dass das Aufgabenblatt überarbeitet wurde. Mal schauen, ob sich irgendwas großartig geändert hat…
Also: Neue Angabe runterladen! :finger:


Änderung ist witzlos, okay, damit ist klar, dass bei der 2.4a) ne Doppelvererbung eingezeichnet werden muss, aber bei 2.5a) nicht realisiert.
Aber das wars auch schon.

Hey punkstar, auf dich wird sehnlichst gewartet :wink:


Also erstmal vorweg, der Typ der da die Übung bei uns gemacht hat iss so ne Pfeiffe… :motz:
Da stellt er sich hin und lässt uns die Aufgaben selber vorrechnen und weiss teilweise selber nichtmal wie die Aufgaben gehen.
Dann sagt er nach ner halben Stunde so jetz iss schluss bis nächstes mal…
na danke sag ich da!

Ich hab trotzdem nach der Übung mal ausgequetscht und o wunder er wusste natürlich nicht mal welche Aufgaben überhaupt drann sind…
Trotzdem hier die Ergebnisse meiner Befragung:

2.1
Also die Aufgabe dürfe denk ich jedem klar sein. Geht genau so wie auf der einen Folie mit Buch und Exemplar und so…

2.2
Da hab ich ihn zum Thema Mehrdeutigkeit gefragt und er hat gemeint dass, solange wir in der b) erläutern wie wir des genau meinen
(z.B. jede Klasse hat ihr eigenes Klassenzimmer oder die Klassen wechseln durch)
dann gibts auch auf das Diagramm die Punkte.
Die a) dürfte ja wieder klar sein!

2.3
Also bei der a) einfach nochmal die Vorlesung durchgehen (gilt auch für die anderen Teilaufgaben)…
es dürfte eigentlich soweit nicht so schwer sein, zumal ja nichts zu zeichnen ist sonder nur schriftlich.
Zustände sind eben so Sachen wie Geschwindigkeitsstufe 1 oder Intervallbetrieb.
Aktionen sind so wie Drücke Taste Stufe 1 oder drücke Taste Intervallbetrieb.
Zustandsübergänge ist quasi wechsle von Intervallbetrieb zu Dauerbetrieb

2.4
Also bei der a) isses ja jetz klar geworden. Einfach nen Vererbungsbaum malen, der von Oben nach unten spezialisierter wird (Generalisierungspfeile).
Was machts schwierig??? Mehrfachvererbung natürlich :wand:
Die b) geht so wie schon irgendwo hier besprochen, also einfach ne CD oder so in ne Klasse abbilden ohne funktionalität (abstrakt)

2.5
Hier steht ja jetz berüchtigsichten sie die Vererbungsbeziehungen so weit wie möglich also klar.

Jetz dürfte eigentlich alles geklärt sein!

Ich hoffe euer Übungstyp iss besser als meiner…


Erstmal danke!
Unsere Rechnerübungsleiterin letzte Woche hat sich nicht vorgestellt, sondern wir haben nach ner Stunde mal rumgefragt, bis wir sie “gefunden” haben… soviel dazu. Aber sagt ja noch nix über ihre Kompetenz aus, insofern mal sehn :wink:
Rechnerübung hät ich morgen, fällt also aus.
Tafelübung hab ich erst Donnerstag.

Ich denk ich werd der mal eine Mail schreiben.

Naja, die 2.1 ist easy, die 2.4 und die 2.5 sollten auch leicht sein jetzt. Ich machs jetzt so, dass ich zwar die Dateien “Fahrzeuge.java” und “CDLaden.java” nenne, aber beide enthalten nicht die zum Dateinamen zugehörigen Klassen.
Und bei der 2.2? Also ja, ich denk ich erklär einfach wie ich die Aufgabe verstehe, sprich welche Fragestellung ich mit meiner Implementierung lösen will und warum ich mach, was ich mach und dann wird das schon zählen… ach ich mags einfach net, wenn sowas so schwammig ist…


unser fips is da eigentlich schon ganz cool. Sofort zur Stelle bei irgendwelchen Fragen gestern.

Ich hatte den thread nich gelesen, drum hab ich nich zu allem fragen gestellt. Bin auch noch früher gegangen, also im grunde nur frage geklärt zu der Aufgabe mit dem stundenplan. (2.2 denk ich)
Da meinte er halt, dass man es im grunde machen kann wie man will (was die bemerkung von mehrfachlösung bei der nächsten aufgabe wieder vollkommen sinnlos macht, weil überall mehrfachlösungen möglich sind… :anx: ), man muss halt nur vorher festlegen, wie man sich das vorstellt. Also im Grunde wie bei der 2.1. Man kann z.b. “seine” schule so machen, dass jeder leherer nur eine klasse hat, die immer nur in einem klassenzimmer hat und immer nur eine stunde in der woche. Zum Beispiel. Man kann es sich also so weit vereinfachen wie man will. Ob eure ÜGLeiter das genauso sehen weiß ich nicht.

Gut, viel Spaß noch damit am feiertag und bis dennsen.

Begründen
So wie ich das verstanden haben, lassen die fast alles gelten wenn es nur eine gute Begründung gibt.
Soll uns - glaub ich - auch zeigen, dass die Realität eben schwammig “ist” und dass man dann erst durch ein sauberers UML-Diagramm weiß, was man programmiern soll.


Ich glaub mittlerweile auch, dass das der Hauptzweck von dem Übungsblatt ist… :rolleyes:


Nach Gestern wars mir dann auch zu dumm.
Ich denk jetzt auch, die wollen einfach sehen, ob man UML anwenden, sprich so Diagramme zeichnen kann. Und die müssen nur konform sein mit dem, was man vorher dazu geschrieben hat.
Aber DIE Lösung gibts so oder so nicht.
Und so hab ich das jetzt auch mal gemacht :wink:


Hm, ich habe eine zentrale Klasse Unterrichtstunde.
Diese hat je eine Verbindung zu Lehrer, Zimmer, Klasse, und Fach (Schulstunde).
Au0erdem hab ich noch eine Verbindung zwischen Lehrer und Fach - denn nicht jeder Lehrer kann jedes Fach unterichten.