MARTIN-LUTHER-UNIVERSITÄT HALLE-WITTENBERG
Institut für Informatik
Prof. Dr. Stefan Brass
Informationen über mündliche Prüfungen
für Wirtschaftsinformatiker
Die folgenden Informationen sind selbstverständlich
nicht eine vollständige Liste aller möglichen
Prüfungsfragen, sollten aber schon einen guten
Anhaltspunkt für Ihre Vorbereitung geben.
Diese Seite hat ein striktes Copyright (C) 2006 von Stefan Brass.
Sie dürfen sie keinesfalls an anderer Stelle ins Netz stellen.
Ich behalte mir vor,
sie jederzeit wieder aus dem Netz heraus zu nehmen.
Links auf diese Seite sind natürlich zulässig.
Warnung aus gegebenem Anlass!
- Die Durchfallquote
wegen nicht ausreichenden Programmierkenntnissen
liegt bei über 35%.
Dabei habe ich bisher viel geholfen und viel Zeit gegeben.
Ich habe vor,
das in Zukunft nicht mehr zu tun.
Wer das Programm(stück),
das ich in 5 Minuten schaffen würde,
in 15 Minuten noch nicht fertig hat,
fällt einfach durch.
Bitte nehmen Sie diese Aufgabe ernst,
und glauben Sie nicht,
daß Sie sich schon irgendwie durchmogeln können.
Programmierkenntnisse sind für jede Art von Informatikern
eine absolut notwendige Grundlage.
- Bedenken Sie auch,
daß bei der Wiederholungsprüfung dann der ganze Zweck
Ihres Studiums auf dem Spiel steht.
Sie können endgültig durchfallen,
und ich habe auch schon Studierende endgültig durchfallen lassen.
Kein Professor tut das gern,
aber manchmal ist die Situation eindeutig.
Übrigens hat auch kein Professor gern das Gefühl,
das die Studierenden ihn nicht ausreichend ernst nehmen.
Wir haben ja den Vortest zur Programmierung
bei der Wiederholungsprüfung (s.u.),
aber wenn ich Ihre Kenntnisse dabei nicht eindeutig
als ausreichend empfinde,
bleibt doch ein wesentliches Risiko bei Ihnen,
wenn Sie dann doch unbedingt zur Prüfung kommen wollen.
In jedem Fall haben Sie auch das Risiko,
daß Sie bei der Wiederholungsprüfung
ein völliges "Blackout" haben,
oder aus anderen Gründen die im Vortest gezeigte Leistung
nicht erreichen.
Hinzu kommt die Möglichkeit,
aus formalen Gründen durchzufallen,
weil Sie z.B. nicht rechtzeitig zur Prüfung erscheinen.
Lassen Sie es nicht so weit kommen!
Bereiten Sie sich schon auf die erste Prüfung ausreichend vor.
Es wäre eine gefährliche Naivität,
anzunehmen,
daß ich Sie bei der Wiederholungsprüfung dann schon nicht
durchfallen lassen werde.
Administrative Vorbemerkungen
- Es ist etwas unglücklich,
daß in der mündlichen Abschlussprüfung
in Informatik sowohl der Bereich Datenbanken
als auch der Bereich Software Engineering in einer Prüfung
abgedeckt werden muß.
Ich bin eigentlich nur Experte für Datenbanken.
- Ich habe mich mit Herrn Kollegen Zimmermann
(dem Experten für Software Engineering)
geeinigt,
daß bei diesen Prüfungen
der Beisitzer ein promovierter Mitarbeiter aus seiner Gruppe ist,
d.h. Herr Dr. Gabrisch, Frau Dr. Picht,
oder (gelegentlich) Herr Kollege Zimmermann selbst.
Für seine Prüfungen gilt entsprechend das Umgekehrte.
- Außerdem haben wir uns geeinigt,
daß ich nur Prüfungen abnehme,
bei denen mindestens soviel Leistungspunkte Datenbanken
eingebracht werden wie Software Engineering.
Wenn Sie mehr Software Engineering als Datenbanken einbringen,
ist es ja auch plausibel,
daß Sie von dem Experten für Software Engineering
geprüft werden sollten.
Umgekehrt nimmt Herr Kollege Zimmermann keine Prüfungen ab,
bei denen mehr Datenbanken eingebracht wird.
Das Seminar zählt dabei jeweils mit und
gibt nicht selten den Ausschlag.
- Ich biete für die Prüfungen normalerweise einen Tag pro Monat
an, die genauen Daten finden sich auf
meiner Homepage.
In den Semesterferien ist es möglicherweise etwas seltener,
aber mehr als zwei Monate Abstand sollte es nicht geben.
Wenn Sie meinen,
daß ein Prüfungstermin fehlt,
kontaktieren Sie mich bitte.
Die Terminreservierung erfolgt bei Frau Vahrenhold
(Von-Seckendorff-Platz 1, Raum 324,
Telefon: 0345/55-24750, EMail: vahrenho@...).
Wenn Sie einen Prüfungstermin von Frau Vahrenhold
bekommen haben,
müssen Sie sich in Ihrem Prüfungsamt zu der Prüfung
anmelden.
Falls Sie sich doch entscheiden,
einen reservierten Termin nicht wahrzunehmen,
teilen Sie das bitte Frau Vahrenhold möglichst früzeitig
mit.
- Wirtschaftsinformatiker haben für die mündlichen
Abschlussprüfungen nur einen Wiederholungsversuch.
Deshalb ist es vor einer Wiederholungsprüfung absolut essentiell,
festzustellen,
daß der Kandidat/die Kandidatin ausreichend vorbereitet sind.
Ich würde nicht gern jemand endgültig durchfallen lassen,
aber es gehört zu meinem Job,
daß ich das im Notfall auch tue.
Frau Vahrenhold hat die Anweisung,
keinen Prüfungstermin für eine Wiederholungsprüfung
zu vergeben,
wenn der/die Studierende nicht vorher bei mir in einer
ausführlichen Konsultation nachgewiesen hat,
daß er/sie den Stoff jetzt hinreichend beherrscht.
(Das ist eine Art "Probeprüfung".
Natürlich gibt es keine Garantien für die echte Prüfung,
aber das ist noch das beste,
was ich für Sie tun kann.)
- Offiziell darf ich nur 30 Minuten prüfen.
Ich arbeite daran,
schneller zu werden,
aber von der Informatik bin ich Prüfungen von 45 Minuten
gewöhnt.
Ich möchte mir ja hinterher bei der Note auch sicher sein.
Allein die Programmieraufgabe (s.u.) verschlingt
häufig schon 15 Minuten und mehr,
und natürlich sollten wir noch zu Datenbanken
und Software Engineering kommen.
Sie müssen daher damit rechnen,
daß ich Sie nach ca. 28 Minuten frage,
ob Sie damit einverstanden wären,
daß ich 15 Minuten länger prüfe.
Sie können selbstverständlich "nein" sagen,
in dem Fall würde ich das arithmetische Mittel
aus der besten Zensur, die noch möglich wäre,
und der schlechtesten Zensur, die möglich wäre,
nehmen.
Der weitere Prüfungsverlauf schränkt dieses Intervall
weiter ein.
Falls Sie zustimmen,
und sich in den letzten 15 Minuten schlimm reinreissen,
würde ich das weniger stark gewichten.
Ich kann Ihnen aber nicht versprechen,
daß die Zensur in den letzten 15 Minuten niemals
schlechter wird.
Das Problem ist auch,
daß ich Ihnen keine Zwischenzensur nennen kann,
ohne etwas nachzudenken und mich mit dem Beisitzer zu beraten.
Dazu müssten Sie aber vor die Tür gehen,
und die Prüfung wäre dann ohnehin unterbrochen.
Bisher haben alle Studierenden zugestimmt.
Wahrscheinlich können Sie trotzdem klagen,
aber die Zustimmung, die im Protokoll vermerkt wird,
verringert Ihre Chancen etwas.
Wenn der erste Student klagt,
werde ich mich anschliessend genau an die 30 Minuten halten.
Ich denke aber,
daß das etwas längere Prüfungsgespräch
das Ergebnis etwas weniger von Zufällen abhängig macht,
und damit zu einer gerechteren Zensur führt.
- Bei der Bewertung spielt auch die Zeit eine Rolle.
Es sollte alles relativ glatt und zügig laufen.
Wenn wir die offizielle halbe Stunde schon allein für das
Programm gebraucht haben,
sieht es nicht gut aus.
Durch etwas mehr Zeit bekommen Sie eine zusätzliche Chance,
noch in einem anderen Punkt zu zeigen,
was Sie können.
Aber es gibt Grenzen,
ich kann die Prüfung nicht beliebig lange ausdehnen
(eine Stunde ist wohl das äußerste).
Wenn wir dann noch nicht genug geschafft haben,
können Sie durchgefallen sein,
obwohl Sie fast nie etwas echt Falsches gesagt haben,
oder endgütig passen mußten.
Das sind natürlich Ausnahmefällte.
Aber die Zensur könnte sich schon verschlechtern.
- Die Berücksichtigung des Zeitfaktors
bedeutet aber nicht,
daß Sie ständig reden sollten,
ohne nachzudenken.
Langsamkeit wirkt sich erst ab einem gewissen Schwellwert
negativ auf die Zensur aus,
und insgesamt schaffen wir mehr,
wenn Sie nicht ganz so schnell,
dafür aber präzise auf den Punkt antworten.
Programmierkenntnisse
- Es hat sich gezeigt,
daß einige Wirtschaftsinformatiker,
die in diese Prüfung kommen,
nicht programmieren können.
Meine Kollegen und ich sind der Auffassung,
daß jeder Informatiker, egal mit welchem Präfix,
wenigstens einigermassen programmieren können muß.
Ich glaube,
daß es den Wert des Abschlusses verschlechtern würde,
wenn ich Kandidaten ohne Programmierkenntnisse bestehen lassen
würde.
- Daher enthält jede Prüfung eine kleine Programmieraufgabe.
Die Programmiersprache können Sie sich frei aussuchen,
z.B. C++, Java, C, Pascal, Prolog.
Wenn Sie eine exotische Sprache wollen,
kontaktieren Sie mich bitte vorher.
- Allgemein hat die Fachprüfung Informatik das Ziel,
die Leistungen im Fach Informatik abschließend zu beurteilen,
und nicht nur einige Vorlesungen,
über die Sie schon eine schriftliche Prüfung abgelegt haben,
noch ein zweites Mal mündlich zu prüfen.
Deswegen halten wir es für legal,
auch Programmierkenntnisse in dieser Prüfung zu testen.
Programmierung war in Ihrem Studium ja dran.
Außerdem ist es wichtig,
daß Sie die Beziehungen
zwischen den vorher getrennt geprüften
Vorlesungen verstanden haben.
- Natürlich muß das Programm kurz sein,
also nicht mehr als ca. 10 Zeilen haben.
Ich erwarte auch nicht,
daß Sie bestimmte Algorithmen auswendig können.
Man merkt aber schon,
ob Sie länger programmiert haben,
oder nur vor der Prüfung einen 14-tägigen Java-Kurs belegt
haben.
Sie sollten die Syntax Ihrer gewählten Sprache gut kennen.
Natürlich können Sie in der Eile ein Semikolon vergessen,
aber wenn Sie darauf angesprochen werden,
sollten Sie schon wissen,
wo genau ein Semikolon oder ein Komma hinkommt.
Sie sollten alle von Ihnen verwendeten Konstrukte auch
erklären können.
Wenn Sie z.B. "public static void main" schreiben,
sollten Sie die Bedeutung jedes dieser Schlüsselworte
erklären können.
Sie sollten auch keine ganz schlimmen Typfehler machen,
z.B. ein Array einer Integer-Variablen zuweisen.
Sie sollten einige elementare Muster für Programmcode
kennen und anwenden können.
- Beispiel 1: Zum Beispiel war eine Aufgabe der Bubblesort-Algorithmus.
Ich erkläre den Algorithmus natürlich in der Prüfung,
etwa so:
"Sie sollen ein Array von Integers aufsteigend sortieren.
Dazu laufen Sie wiederholt über das Array
und vergleichen jeweils zwei aufeinander folgende Elemente.
Falls sie in der verkehrten Reihenfolge sind,
vertauschen Sie die Elemente.
Dies wiederholen Sie solange,
bis Sie bei einem Durchlauf keine solche Vertauschung ausgeführt
haben.
Dann ist das Array ja sortiert."
Sie müssen hier selbst darauf kommen,
daß Sie eine boolesche Variable brauchen,
um sich zu merken,
ob Sie bei einem Durchlauf schon eine Vertauschung
durchgeführt haben.
Natürlich würde ich Ihnen im Notfall noch ein paar Tipps
geben,
aber das würde möglicherweise Ihre Zensur verschlechtern
(das kann man aber so allgemein nicht sagen,
die Zensur hängt immer vom Gesamteindruck der Prüfung ab).
Natürlich sollten Sie auch wissen,
daß Sie für die Vertauschung noch eine weitere Variable
als temporären Speicher brauchen.
Das gehöhrt auch zu den wirklich elementaren Mustern.
- Beispiel 2: Schreiben Sie eine Prozedur/Methode für einen
Palindromtest.
Ihre Prozedur bekommt ein Array von Zeichen,
und einen Integer-Parameter für die Anzahl Zeichen in dem Array
(Stringlänge,
das Array könnte ja eventuell grösser sein).
Ihre Prozedure soll "true" liefern,
wenn das Wort im Array vorwärts und rückwärts
gelesen das gleiche Wort ist,
z.B. OTTO, RENTNER, RELIEFPFEILER.
Beachten Sie übrigens,
daß hier (wie auch bei Beispiel 1)
kein komplettes Programm gefragt ist,
sondern nur eine Methode,
eventuell auch eine Klasse mit dieser einen Methode.
Die Ein- und Ausgabe ist bei diesen Beispielen nicht Bestandteil
der Aufgabe.
- Beispiel 3: Schreiben Sie ein Programm,
daß Zahlen von der Standard-Eingabe (Konsole) einliest,
bis -1 kommt,
und dann das Maximum ausgibt (auf die Standard-Ausgabe).
Sie können sich darauf verlassen,
daß in der Eingabe wirklich nur Zahlen stehen,
d.h. Sie brauchen keine Syntaxfehler zu behandeln.
- Beispiel 4: Schreiben Sie Klassendeklarationen
für Professor und Vorlesung.
Vorlesung soll Attribute für den Titel (einen String)
und die SWS (ein Integer) haben.
Professor soll ein Attribut für den Namen haben.
Jede Vorlesung wird von genau einem Professor gehalten,
ein Professor kann mehrere Vorlesungen halten.
Vorlesung soll eine Methode haben,
die den Namen des Professors liefert.
Professor soll eine Methode haben,
die die Gesamtanzahl SWS seiner Vorlesungen liefert.
Das schwierige hier ist also die Verlinkung zwischen beiden Klassen
entsprechend einer Eins-zu-viele-Beziehung (1:n).
- Beispiel 5:
Deklarieren Sie einen Typ/eine Klasse für binäre
Suchbäume (linker Teilbaum, Inhalt: ein Integer,
rechter Teilbaum).
Schreiben Sie dann eine rekursive Prozedur zur Bestimmung
der Höhe eines Baums.
Die Höhe ist das Maximum der Höhen der beiden Teilbäume
plus 1.
- Programmierkenntnisse sind notwendig zum Bestehen der Prüfung.
Wenn Sie auch mit viel Hilfe das geforderte Programm nicht schreiben
können,
fallen Sie durch,
auch wenn Sie Datenbanken gut beherrschen.
- Falls Sie an der Aufgabenstellung merken,
daß Sie mit dieser speziellen Aufgabe Schwierigkeiten haben
werden,
können Sie versuchen,
um eine andere Aufgabe zu bitten.
Das würde Ihre Zensur natürlich verschlechtern.
Zum Beispiel würde ich es akzeptieren,
daß die rekursive Prozedur zur Bestimmung der Höhe eines
Baums nicht jedermanns Sache ist.
Aber dann würden Sie wahrscheinlich keine 1 mehr bekommen,
wenn Sie nicht in Datenbanken wirklich überragend sind.
Ich garantiere aber nicht,
daß ich auf Wunsch eine andere Aufgabe gebe.
Falls ich die Aufgabe schon für sehr einfach halte,
würde es wohl keinen Sinn machen,
auf eine andere Aufgabe zu wechseln.
- Bedenken Sie bei Ihrer Prüfungsplanung,
daß man programmieren nicht in einer Woche lernen kann.
Es ist eine praktische Tätigkeit,
die man eine gewisse Zeit ausgeübt haben muß.
Nur ein Buch durchzulesen,
reicht sehr wahrscheinlich nicht.
Sie sollten wenigstens einmal ein etwas größeres und
komplexeres Programm geschrieben haben
(besser mehrere).
Dafür hatten Sie ja eigentlich Ihr ganzes Studium Zeit.
Datenbanken I
- Siehe
Hinweise zu Prüfungen über DB I.
Diese Datei enthält auch Hinweise für den allgemeinen
Ablauf von Prüfungen,
und die Bewertung.
- Bei Prüfungen für Wirtschaftsinformatiker ist allerdings
weniger Zeit,
und ich würde nicht bei allen Punkten so in die Tiefe gehen,
wie bei Informatikern.
- Es wird sehr wahrscheinlich ein kleiner Datenbankbank-Entwurf
drankommen,
aber in Form eines UML Klassendiagramms
anstelle eines ER-Diagramms.
Zum großen Teil ist das nur eine etwas andere Syntax,
und wir haben so gleichzeitig auch einen Punkt
von "Software Engineering" behandelt.
Aus Zeitgründen muß der Entwurf natürlich
klein sein,
typischerweise zwei Klassen und eine Assoziation
(zwei Entity-Typen und ein Relationship).
Es ist mir wichtig,
daß Sie die genaue Syntax z.B. von Kardinalitätsangaben
(Multiplicities) in UML kennen.
Ich behalte mir vor,
daß ich gelegentlich auch das normale ER-Modell testen kann
(inklusive schwachen Entity-Typen).
- Sie werden dieses Klassendiagramm/ER-Schema
dann in das relationale Modell übersetzen müssen.
Sie sollten dabei insbesondere auch Schlüssel
und Fremdschlüssel erklären können.
- Dann werden Sie eine SQL-Anfrage formulieren müssen,
die auch Aggregationen (GROUP BY, HAVING),
Unteranfragen (NOT IN, EXISTS)
oder mehrere Tupelvariablen über der gleichen Relation
enthält.
- Ich frage häufiger auch nach funktionalen Abhängigkeiten
und BCNF.
Sie sollten diese Begriffe definieren können,
und BCNF an einem Beispiel (auch abstrakt mit A, B, C)
prüfen können.
Dazu müssen Sie unter anderem auch die Attributhülle
(A+) berechnen können.
- Ebenso frage ich auch häufiger nach Mehrbenutzerbetrieb,
z.B. Machen Sie ein Beispiel für einen Lost Update.
Wie verhindert das DBMS Dirty Reads?
Was würden Sie eingeben,
um einen Deadlock zu provozieren?
Was ist das theoretische Ziel perfekter Mehrbenutzer-Synchronisation?
- Sichten kommen auch gelegentlich vor.
Datenbanken IIA: Datenbankentwurf
- Falls Sie Datenbanken IIA einbringen,
werden wir auch einen Datenbank-Entwurf machen,
voraussichtlich aber mit Subklassen.
- Damit wird die Übersetzung in das relationale Modell
dann auch etwas komplizierter.
Sie müssen die eventuell notwendigen CHECK-Constraints
korrekt in SQL formulieren können.
- Allgemein würde ich erwarten,
daß Sie SQL nicht komplett vergessen haben,
auch wenn Sie Datenbanken I nicht einbringen.
Ich würde es vielleicht nicht mehr darauf anlegen,
unbedingt eine komplizierte SQL-Anfrage zu verlangen.
Aber häufig ergeben sich ja Integritätsbedingungen,
die sich nicht im CREATE TABLE angeben lassen.
Dann müssten Sie eventuell eine SQL-Anfrage formulieren,
die prüft,
ob es in der Datenbank Daten gibt,
die die Bedingung verletzen.
- Sie müssen die Oracle Designer Notation für das ER-Modell
kennen (obwohl der Datenbank-Entwurf in den meisten Fällen
wieder als UML Klassendiagramm gemacht werden wird).
- Natürlich müssen Sie immernoch funktionale Abhängigkeiten,
BCNF, u.s.w. kennen.
Auch Verlustlosigkeit und die
Erhaltung funktionaler Abhängigkeiten
sind wichtig.
Sie sollten auch erklären können,
warum BCNF eine gute/sinnvolle Definition ist.
Sie sollten auch 3NF definieren können,
und etwas zum Vergleich mit BCNF sagen.
Mehrwertige Abhängigkeiten und 4NF würde ich vermutlich
nur fragen,
wenn es um eine 1 geht,
aber Prüfungen sind immer etwas spontan.
- Sie sollten auch ein bisschen zum globalen Vorgehen mit Oracle Designer
sagen können,
etwa die verschiedenen Teilwerkzeuge,
die wir in der Vorlesung behandelt haben,
kurz erklären können,
und die Rolle des Repositories beschreiben.
Natürlich würde ich aber nicht fragen,
wo man genau klicken muss,
oder welche Felder es in einer Dialog-Box gibt.
Sie sollten verstanden haben,
daß ein Diagramm normalerweise nur einen Ausschitt des
Gesamtschemas wiedergibt,
und man mehrere,
überlappende Diagramme für ein Schema haben kann.
Das Gesamtschema steht im Repository,
man kann es z.B. mit dem Repository Object Navigator anschauen.
- Auch Domains in Oracle Designer sind ein interessantes Detail.
Aber es gibt wichtigeres.
- Ich könnte z.B. auch nach
Korrektheits- und Qualitätskriterien
für Datenbank-Schemata fragen.
Datenbanken IIB: DBMS-Implementierung
- Sie sollten ein Beispiel für einen B-Baum
(genauer: B+-Baum)
aufzeichnen können,
und z.B. einen Wert einfügen.
Sie sollten die Komplexität für Suche,
Einfügen, Löschen kennen (logarithmisch).
Sie sollten erklären können,
warum man bei Externspeicher nicht einfach binäre Suchbäume
verwendet.
Sie sollten den minimalen Füllungsgrad der Knoten
kennen und erklären können.
- Sie sollten den Aufbau von Platten erklären können
und den Ablauf eines Lese- oder Schreibzugriffs.
Sie sollten ungefähre Zeiten für
einen wahlfreien Blockzugriff
auf eine Platte kennen (alles zwischen 3 und 20 Millisekunden
ist richtig).
Sie sollten auch wissen,
wieviel Megabyte/Sekunde man sequentiell von einer Platte lesen kann
(alles zwischen 20 und 100 MB/s ist richtig).
- Sie sollten RAID-Systeme erklären können.
- Sie sollten das ROWID-Konzept erklären können.
Wieviel Blockzugriffe braucht man maximal,
um eine Zeile mit gegebener ROWID in den Hauptspeicher zu laden?
In diesem Zusammenhang könnten wir auch auf den Parameter PCTFREE
bei Oracle kommen.
Sie brauchen aber keineswegs die Formel für PCTFREE aus
dem Skript auswendig zu lernen.
- Sie sollten den Nested Loop und den Merge Join erklären können.
- Sie sollten abwägen können,
wann man besser über einen Index auf eine Tabelle zugreift,
und wann ein Full Table Scan besser ist.
Allgemein sollten Sie für eine gegebene SQL-Anfrage
einen sinnvollen Zugriffsplan verbal beschreiben können.
Sie brauchen nicht unbedingt die Operatoren in Oracle QEPs
auswendig zu lernen.
- Sie sollten wissen,
was ein Data Dictionary ist.
Sie sollten in SQL Anfragen an ein Data Dictionary formulieren
können,
wenn die relevanten Tabellen gegeben sind.
Selbstverständlich brauchen Sie nicht die Tabellen
des Oracle Data Dictionaries auswendig zu lernen.
Sie sollten aber bei Bedarf Data Dictionary Tabellen
entwerfen können (Ihres eigenen DBMS).
- Sie sollten den Cache und das LRU-Verfahren erklären können.
Grundlagen des WWW
- Wenn Sie Grundlagen des WWW einbringen,
wäre z.B. eine typische Frage,
was genau passiert,
wenn Sie einen Link anklicken.
Sie müssten in diesem Zusammenhang auch ein einfaches Beispiel
für einen HTTP-Request und einen HTTP-Response
aufschreiben können.
- Sie müssten auch eine XML-DTD entwerfen können,
z.B. für die Daten aus dem Datenbankentwurf
früher in der Prüfung.
Sie sollten auch Daten zu einer DTD syntaktisch korrekt
aufschreiben können.
- Was ist der Zusammenhang zwischen SGML, XML, HTML und XHTML?
- Sie brauchen nicht alle HTML-Elemente auswendig lernen.
Aber eine einfache Seite (mit einem Paragraph, einem Link
und einer Unordered List) sollten Sie schon syntaktisch
korrekt hinschreiben können.
Sie sollten auch die Tag Minimierung und die Unterschiede zu XHTML
erklären können.
- Beim HTTP-Protokoll könnten wir uns auch über Content Negotiation
und Proxies unterhalten.
- Sie sollten das Domain Name System erklären können.
Software Engineering
- Da ich mich mit Software Engineering nicht so gut auskenne,
sind die Fragen zum Teil etwas allgemeiner.
Das bedeutet,
daß Sie eine Art Kurzvortrag zu einem von mir vorgegebenen
Thema geben können.
Z.B. frage ich manchmal:
"Was sind eigentlich Petrinetze, und wozu sind sie gut?"
Sie könnten sich für diese Frage schon eine Antwort
zurechtlegen und auch schon ein Beispiel im Kopf haben,
an dem Sie Petrinetze erklären können.
Ich berate mich allerdings möglicherweise anschliessend
mit meinem Beisitzer,
um eventuell zu speziellen Dingen noch nachzuhaken,
die Sie aus Sicht des Beisitzers noch vergessen haben.
Nach der Prüfung frage ich den Beisitzer,
ob Ihre Erklärungen zu Petrinetzen gut waren
(Er/Sie ist ja der Experte für diesen Bereich,
ich kenne mich damit leider nur oberflächlich aus).
Daher ist es in Ihrem Sinne,
wenn Sie während der Prüfung
noch eine Chance bekommen,
eventuell fehlende Punkte zu ergänzen.
Zum Beispiel müssten Sie präzise sagen können,
was der Zustand eines Petrinetzes ist,
und wann genau eine Transition feuern kann.
Auch die verschiedenen Arten von Petrinetzen kommen häufiger
in Prüfungen vor.
- Ebenso frage ich häufiger nach Vorgehensmodellen,
z.B. dem Wasserfallmodell, dem V-Modell, und die Spiralmodell.
Sie sollten auch die Vorteile
des jeweiligen Modells erklären können.
Außerdem sollten Sie auch etwas zu den zu erstellenden Dokumenten
wissen,
z.B. frage ich manchmal nach dem Unterschied von Lastenheft
und Pflichtenheft.
- Kostenschätzungsverfahren kommen auch häufig dran.
Gerade die Funktionspunktmethode hat ja auch besonders
für Datenbank-Anwendungsprogramme geeignet.
Aber auch die COCOMO-Methode kann drankommen,
manchmal können Sie es sich auch aussuchen.
- State Charts und endliche Automaten:
Z.B. entwerfen Sie ein Statechart zur Steuerung einer Tür:
Sie soll aufgehen,
wenn man kurz-lang-kurz klingelt.
Ansonsten muß man eine Pause machen,
bevor man es neu probieren kann.
Das Eingabealphabet ist also kurz,lang,Pause.
Sie sollten die Statechart-Notation schon genau kennen.
- OCL: OCL bietet sich z.B. für Integritätsbedingungen
beim Klassendiagramm an.
Häufig passen die Studenten,
das führt nur zu einer leichten Verschlechterung der Zensur
(aber schon einer Verschlechterung).
Wenn Sie OCL gut kennen,
weisen Sie mich darauf hin,
daß ich eine Frage dazu stellen kann
(das würde zu einer Verbesserung der Zensur führen).
Ich habe übrigens inzwischen OCL selbst gelernt,
es ist also damit zu rechnen,
daß in Zukunft häufiger Fragen zu OCL drankommen.
- Bedenken Sie auch,
daß offiziell das ganze Skript möglicher Prüfungsstoff
ist.
Zum Beispiel wäre es möglich,
daß mir Herr Kollege Zimmermann kurz vor der Prüfung
noch eine gute Prüfungsfrage empfiehlt.
Die obigen Angaben sind nicht so zu verstehen,
daß nur ein kleiner Teil von Software Engineering
prüfungsrelevant ist.
Herr Kollege Zimmermann und ich bemerken öfters,
daß sich Studierende nur auf den Stoff vorbereiten,
den sie bei dem jeweiligen Prüfer gehört haben.
Das gefällt uns beiden nicht besonders,
und würde mindestens zu einer Verschlechterung der Note
führen.
Falls der jeweilige Beisitzer sagt,
daß die eine Hälfte der Prüfung eindeutig
durchgefallen ist,
wäre die ganze Prüfung durchgefallen,
selbst wenn die andere Hälfte gut war
(wir hatten noch nicht den Fall,
daß die andere Hälfte der Prüfung
wirklich ausgezeichnet war:
So gute Studierende sind klug genug,
sich auf beides vorzubereiten).
Allgemeine Hinweise zu mündlichen Prüfungen
und zur Bewertung
Stefan Brass
(brass@acm.org),
12. Juli 2006
Original URL:
http://www.informatik.uni-halle.de/~brass/pruef_wi.html
[HTML 3.2 Checked]
[Links Geprüft]