Computer Science, 2004-04-07

Module: 
Computer Science
Examiner: 
Kniesel
Assessor: 
Vornberger
Date: 
Wed, 2004-04-07

***KEINE GARANTIE WAS DIE ANTWORTEN BETRIFFT***

Modulprüfung: Informatik, Info A und B

Fachsemester: 3

Prüfer: Dr. Günter Kniesel, Prof. Dr. Oliver Vornberger

Prüfungsdatum: 07.04.2004

Wiederholungsprüfung? nein

Beisitzer: siehe Prüfer (offiziell war Kniesel mein Erstprüfer)

Note: B

Bereiche nach Zeit: schätzungsweise etwas mehr Info A

Fragensammlung: wie lauteten die Fragen im einzelnen?

Info A:

- Was ist Quicksort? (Antwort: Sortieralgorithmus)

--> Quicksort erklären

--> Laufzeit (Best und Average Case: O(n * log n), Worst Case O(n²))

--> Wie entsteht der Worstcase beim Quicksort? (Wenn man das kleinste bzw. größte Element der Folge als Pivotelement erwischt.) Wie kann man ihn verhindern? (Indem man den Median ermittelt und ihn als Pivotelement nimmt. Am besten gleich dazu sagen was genau der Median ist, nämlich das Element, das in der Mitte des Arrays stehen würde, wenn die Folge schon sortiert wäre.) Ist die Ermittlung des Medians so einfach? (Hier reichte ein einfaches: Nein, eher kompliziert.) Lohnt sich die Ermittlung des Medians? (Nicht wirklich.)

- Gibt es auch Sortieralgorithmen, bei denen dieser Worstcase von O(n²) nicht auftreten kann? Nennen Sie Beispiele! (Mergesort, Heapsort)

- Erklären Sie Mergesort (hier wollte Vornberger besonders die rekursive Version erklärt haben; konnte ich zwar nicht so gut aus dem Stegreif, er half aber freundlich nach). Nachteil von Mergesort? (Platzbedarf: Man braucht noch ein zweites Array der gleichen Länge um die sortierte Folge darin zu speichern.)

- Heapsort

--> Was ist ein Heap?

--> Wozu ist ein Heap gut? (Löschen/Einfügen)

--> Wie funktioniert Löschen/Einfügen im Heap?

--> Im Endeffekt also auch: Wie funktioniert Heapsort?

--> Laufzeit bei Wurzel-Löschen (O(1)), Heap reparieren (Letztes Element in die Wurzel setzen, durchsickern lassen (immer mit dem kleineren Sohn vertauschen): O(log n)), und einfügen (O(log n))

Info B:

- Was ist ein Objekt? Vorteile der Objektorientierten Programmierung?

- Kapselung --> Vorteile

- shadowing / overriding

- overloading: was bedeutet overloading? Schließen sich overriding und overloading gegenseitig aus? (Nein)

- Instanzfelder / Klassenfelder. Was würde man z.B. als Klassenvariable realisieren? (Zähler für Objekte)

- Sichtbarkeitsmodifikatoren, besonders protected. Was möchte man z.B. gerne als protected deklarieren und wofür ist das gut?

Was mußte schriftlich gelöst werden?

Ich wurde nicht direkt aufgefordert, etwas schriftlich zu lösen. Allerdings hat Vornberger ein Blatt Papier zu Hilfe genommen, um mir beim rekursiven Mergesort auf die Sprünge zu helfen. Auf diesem Blatt Papier habe ich danach auch noch munter Heaps gezeichnet, gelöscht, eingefügt... - weil es einfach war, als das ganze mündlich ohne Zeichnung zu erklären

Welche Beispiele wurden wofür abgefragt?

s.o.

Persönlicher Kommmentar, Was war toll? Was war doof? Was war auffällig?

Nichts Besonderes. Ich fand den relativ abrupten Einstieg gut, da man keine Zeit hat noch nervöser zu werden. Doof fand ich eigentlich, dass Vornberger sofort anfing Info A zu prüfen, obwohl ich mit Kniesel (meinem offiziellen Erstprüfer) verabredet hatte, die Prüfung mit Info B beginnen zu lassen. Aber man will sich ja auch nicht gleich zu Beginn der Prüfung beschweren... Im Endeffekt stellte sich auch heraus, dass es so für mich wohl eher besser war, da Info A wesentlich besser lief als Info B.

Wie waren Einstieg, Ablauf, Ende, Bewertung und Begründung?

Einstieg:

"Guten Tag, wir prüfen Info A und B, fangen wir mit A an..."

Ablauf:

s.o., nix Besonderes.

Ende:

Gehen Sie bitte kurz nach draussen... Notenbekanntgabe, keine großen Worte.

Bewertung und Begründung:

Bewertung: Besser, als ich es selbst eingeschätzt hätte. Keine Begründung, wollte aber auch keine hören.

Lässt sich der Prüfer von den Antworten leiten?

Ich hatte schon das Gefühl.

Zum Verhalten des Prüfers:

Vornberger: Kühl und distanziert, aber nicht unfreundlich. Hilft freundlich nach und bringt einen auf die richtige Spur, wenn man gerade keine Ahnung hat - kann damit allerdings auch verunsichern (hatte aber nicht das Gefühl, dass das seine Absicht war).

Kniesel: Sehr nett und beruhigend.

***KEINE GARANTIE WAS DIE ANTWORTEN BETRIFFT***