FB18 - Das Forum für Informatik

fb18.de / Bachelorstudieng / PM Praktische Informatik

Wie fandet ihr die SE1 Klausur

Wie fandet ihr die SE1 Klausur 2007-02-15 12:04
deusmac
Ich fand sie doch recht anspruchsvoll. Ausserdem hab ich viele neue Wörter wie z.B.: konkatenieren kenne gelernt. Die Begrifflichkeiten fand ich manchmal etwas eigenartig (Operationen in einer Klasse - Warum nicht gleich Methoden oder wär das zu trivial?).
Die Zeit hat gereicht, allerdings hat mir nach der Klausur das Gehirn aus dem Ohr getropft. :-)

Wie schauts mit euch aus?

Re: Wie fandet ihr die SE1 Klausur 2007-02-15 12:18
Alexander_W
Jo ansich war sie ok, die Begriffe sind extra so gewählt, damit man auch sieht ob DU weißt worum es da geht ^^

ich musste auch voll nachdenken, umso mehr war ich verwundert, dass manche nach einer Stunde durch waren :(

Re: Wie fandet ihr die SE1 Klausur 2007-02-15 12:19
T
Ausserdem hab ich viele neue Wörter wie z.B.: konkatenieren kenne gelernt.
den eindruck hatte ich auch. hab allerdings festgestellt, dass wir einiges von dem was ich dachte noch nie in der uni gehört zu haben doch irgendwo in den übungen mal hatten oder das in den folien drin stand.

(Operationen in einer Klasse - Warum nicht gleich Methoden oder wär das zu trivial?).
ich glaub das hat irgendwas mit den interfaces zu tun. (die haben keine methoden aber operationen? oder so ähnlich?)

Re: Wie fandet ihr die SE1 Klausur 2007-02-15 12:22
Hannes
ich fand sie absolut ok, war schon recht früh fertig. ich hab aber auch schon vor dem studium programmiert (u.a. auch java) und bin deshalb im ganzen modul gut zurechtgekommen.

Re: Wie fandet ihr die SE1 Klausur 2007-02-15 14:07
Fred
Zum Schwierigkeitsgrad der Klausur: es haben über 90% bestanden.

(Operationen in einer Klasse - Warum nicht gleich Methoden oder wär das zu trivial?).
Der Unterschied zwischen Operationen und Methoden ist irgendwann in der Hälfte des Semesters eingeführt worden. Prinzipiell geht es darum:

In Java gibt es keine Möglichkeit, Objekte in Variablen zu speichern. Die sog. Objektvariablen halten immer nur Referenzen auf Objekte (deswegen nennt man sie auch lieber Referenzvariablen).

Wenn ich nun einen Dienst eines Objekts in Anspruch nehmen möchte, rufe ich dazu eine Operation seiner Schnittstelle auf. Wie die Schnittstelle genau aussieht, legt der statische Typ der Referenzvariable fest. Ich sage also z.B., dass ich die Operation "size()" aufrufen möchte. Dies ist genau eine Operation. Sie hat den Namen size und benötigt keine Parameter.

Der dynamische Typ legt jetzt fest, welche Methode sich darum kümmert, dass der Operationsaufruf abgewickelt wird. Dies kann erst zur Laufzeit ermittelt werden und sich während des Programmablaufs auch ändern. Obwohl die selbe Operation aufgerufen wird, können verschiedene Methoden dahinter stecken! Man spricht von late binding. Das ist der Grundgedanke von Polymorphie. Beispiel:

void beispiel(List liste) { System.out.println(liste.size()); }
In dieser Methode wird die Operation size() aufgerufen. Übergebe ich der Methode beispiel ein Exemplar der Klasse ArrayList, dann kümmert sich die Methode size() aus der Klasse ArrayList um die Berechnung der Grösse. Wenn ich ein Exemplar der Klasse LinkedList übergebe, dann wird im Hintergrund eine ganz andere Methode size() aufgerufen (nämlich die aus der Klasse LinkedList). Es ist aber immer dieselbe Operation size()!

Re: Wie fandet ihr die SE1 Klausur 2007-02-15 14:20
Sway
ich fand die klausur völlig ok.
die begriffe waren genau so gewählt wie auch im skript, also wer das skript gelesen hatte, sollte auch alle fragen gut verstanden haben….

Re: Wie fandet ihr die SE1 Klausur 2007-02-15 16:05
Goldl
die Klausur war in Ordnung…
Zudem war es nett, dass es Hinweise auf die Antwortmöglichkeiten gab.
Fand ebenfalls, dass alle Begriffe mal in der Vorlesung , im Skript oder in den Übungen vorkamen.

Re: Wie fandet ihr die SE1 Klausur 2007-02-16 13:27
Timo1305
Ich fand die Klausur weitestgehend auch in Ordnung. Mir stellt sich jedoch noch eine Frage, und zwar lautete eine Frage ungefähr:
Kreuzen sie das richtige an: In einem ausgeglichenen binären Suchbaum ist die Komplexität O(n*log(n)).
Ich war mir zunächst unsicher, da es sich plausible anhört, aber es doch auch Fälle gibt, wo das zu suchende Objekt direkt z.B. in der ersten Ebene des Suchbaumes liegt und ich dann nur einen bis sehr wenige Aufrufe bräuchte. Somit bin ich zu dem Schluss gekommen, dass die angegeben Komplexität nur im schlechtesten Fall stimmt, aber im optimalsten Fall kann man das Objekt direkt finden. Da in der Aussage "ist" stand habe ich sie dann als falsch bewertet und nicht angekreuzt. Mein Gefühl sagt mir aber, dass das wohl falsch ist. ;-)
Vielleicht können mir die Experten aus dem 3. Semester weiterhelfen, die bereits die Veranstaltung AD besucht haben. :-)

Re: Wie fandet ihr die SE1 Klausur 2007-02-16 14:06
Anonymer User
In einem ausgeglichenen binären Suchbaum ist die Komplexität O(n*log(n)).
Das kann gar nicht sein. In einer Liste ist die Komplexität für das Suchen linear. Wie kann sie dann in einer optimierten Datenstruktur komplexer sein?

Re: Wie fandet ihr die SE1 Klausur 2007-02-16 14:07
Fred
Der letzte Beitrag war von mir, vergessen einzuloggen.

Suche in einem binären Suchbaum ist O(log(n)).

Re: Wie fandet ihr die SE1 Klausur 2007-02-16 15:48
Anonymer User
Wann kann man denn mit den Noten rechnen?
Und ist es bei euch anderen auch so, dass eure IKON-Note nicht mehr in Stine steht?

Re: Wie fandet ihr die SE1 Klausur 2007-02-16 16:02
Timo1305
mhm, das ist logisch. Vielleicht habe ich dann sogar Glück, dass ich das nicht angekreuzt habe. Aber vielleicht täusche ich mich auch und es stand dort O(log(n)).
Dann nochmal zu meiner Frage in Bezug auf O(log(n)): ist dies nicht die Komplexität im schlechtesten Fall? Man kann das Objekt, was man sucht doch auch schon zufällig nach einem Schritt finden. Somit müsste es doch lauten, dass die Komplexität nur im schlechtesten Fall oder maximal O(log(n)) ist?

Re: Wie fandet ihr die SE1 Klausur 2007-02-16 16:45
T
Und ist es bei euch anderen auch so, dass eure IKON-Note nicht mehr in Stine steht?
http://3773.rapidforum.com/topic=109872852786&startid=#987285278627152782
(und die beiträge dahinter)

Re: Wie fandet ihr die SE1 Klausur 2007-02-16 17:25
Fred
Aber vielleicht täusche ich mich auch und es stand dort O(log(n)).
Nein.

Dann nochmal zu meiner Frage in Bezug auf O(log(n)): ist dies nicht die Komplexität im schlechtesten Fall?
Dann nimm doch den Durchschnitt von O(1) und O(log(n)) -> wieder O(log(n))

Re: Wie fandet ihr die SE1 Klausur 2007-02-16 19:42
FireTiger
Aber vielleicht täusche ich mich auch und es stand dort O(log(n)).
Nein.

Dann nochmal zu meiner Frage in Bezug auf O(log(n)): ist dies nicht die Komplexität im schlechtesten Fall?
Dann nimm doch den Durchschnitt von O(1) und O(log(n)) -> wieder O(log(n))
Wäre die korrekte Begründung nicht, dass O(irgendwas) eine obere Grenze für die Laufzeit angibt…
Wenn man das Minimum haben wollte, müsste man wohl Theta(irgendwas) nehmen, oder?
Siehe auch:
http://de.wikipedia.org/wiki/Landau-Notation

Re: Wie fandet ihr die SE1 Klausur 2007-02-16 20:45
ethrandil
Dann nochmal zu meiner Frage in Bezug auf O(log(n)): ist dies nicht die Komplexität im schlechtesten Fall?
Dann nimm doch den Durchschnitt von O(1) und O(log(n)) -> wieder O(log(n))
Wäre die korrekte Begründung nicht, dass O(irgendwas) eine obere Grenze für die Laufzeit angibt…
Korrekt.

- eth

Re: Wie fandet ihr die SE1 Klausur 2007-02-16 20:55
DeGT
In einem ausgeglichenen binären Suchbaum ist die Komplexität O(n*log(n)).
Das kann gar nicht sein. In einer Liste ist die Komplexität für das Suchen linear. Wie kann sie dann in einer optimierten Datenstruktur komplexer sein?

die Komplexitätsklasse O(n*log(n)) schließt alles was in linearer Zeit läuft mit ein, also müsste man diese Aussage als richtig mit ankreuzen, auch wenn es nlogn keine asymptotisch scharfe Schranke ist. Leider hatten wir das gleiche Problem auch am Anfang von AD ("Gemeint war natürlich eine möglichst scharfe Schranke").

Re: Wie fandet ihr die SE1 Klausur 2007-02-16 21:19
Goldl
f(n) = O(n) worst-case
Ist eine Funktion in einer Klasse, so kann die Laufzeit nur schlimmstenfalls die Eigenschaft der repräsentierenden Klasse haben. Ansonsten ist sie schneller.

Also ist die Aussage im balancierten binären Suchbaum die Komplexität bei O(Log(n)) korrekt, jedoch O (n*Log(n)) nicht.

Um es nochmal deutlicher zu sagen die Notation mit O gibt nicht nur den schlechtesten Fall an, sondern sie gibt viel mehr eine obere Schranke für das Zeitverhalten an.Fälle in denen ein Alg. schneller läuft sind dadurch ebenfalls eingeschlossen.

Es gibt auch noch andere Notationen:

best-case f(n)= Omega(n)
Ist eine Funktion in einer Klasse, so muss die Laufzeit mindestens die Eigenschaft der repräsentierenden Klasse haben. Ansonsten ist sie schneller.


best UND worst case f(n)= Theta(n)
repräsentierende funktion beschreibt alle Fälle. Die Laufzeit hat genau die Wachstumseigenschaft der repräsentierenden Funktion



Re: Wie fandet ihr die SE1 Klausur 2007-02-16 22:03
DeGT
f(n) = O(n) worst-case
Ist eine Funktion in einer Klasse, so kann die Laufzeit nur schlimmstenfalls die Eigenschaft der repräsentierenden Klasse haben. Ansonsten ist sie schneller.

Also ist die Aussage im balancierten binären Suchbaum die Komplexität bei O(Log(n)) korrekt, jedoch O (n*Log(n)) nicht.
Nein. Unter Landau-Symbole kannst du dir die Bedeutung der O-Notation ansehen. Wenn f(n) in O(g(n)) ist, dann bedeutet das (völlig informell ausgedrückt), dass f(n) im Unendlichen maximal um einen konstanten Faktor stärker steigt als g(n).

Bei g(n)=nlogn und f(n)=n ist diese Aussage eindeutig wahr (da f(n) gar nicht stärker wächst als g(n)).

o(n) ist eine Teilmenge von O(n) und O(n) ist eine Teilmenge von O(nlogn).

Re: Wie fandet ihr die SE1 Klausur 2007-02-16 22:20
Anonymer User
Japp stimmt. Habe ich nicht mitbedacht :-D man lernt nie aus,
hab ja jetzt noch 5 Semester Zeit dazu ;-)