Studium

Diese Seite dokumentiert meinen Studienverlauf. Da ich zur Zeit am Studieren bin, wird diese Seite nach und nach aktualisiert.

Seit dem Wintersemester 2004/2005, welches im Oktober 2004 begonnen hat, studiere ich an der Universität Hamburg das Fach Informatik. Das Studienfach Informatik beginnt immer im Wintersemester. Mein Jahrgang (j2004) ist der letzte mit dem Abschluss Diplom und ich studiere nach der Diplom-Prüfungsordnung von 1998. Der Jahrgang, der im Wintersemester 2005/2006 angefangen hat, wird den Bachelor machen und andere Veranstaltungen haben als wir sie gehabt hatten. Damit wir den Diplom machen können, müssen wir das Grundstudium, welches vier Semester lang ist, auf jeden Fall in der Regelstudienzeit schaffen. Anschließend kommt die Vordiplomsprüfung. Das Hauptstudium dauert ebenfalls vier Semester und die Diplomprüfung zusätzlich ein Semester, so dass die Regelstudienzeit für das ganze Studium neun Semester ist.

Als Ergänzungsfach habe ich mich für Mathematik entschieden. Da das Studienfach Diplom Mathematik immer zum Wintersemester anfängt musste ich gleich im ersten Semester auch mit dem Ergänzungsfach anfangen, wodurch ich einen vollen Stundenplan hatte. So sieht es aber der Regelstudienplan vor. Dafür fallen die Veranstaltungen M2 und M3 inkl. der mündlichen Prüfung über M2/M3 für Informatiker mit Ergänzungsfach Mathematik weg.

Übersicht

Links

Die Homepage der Uni Hamburg:
Externer Link http://www.uni-hamburg.de

Die Homepage des Department Mathematik (FB11):
Externer Link http://www.math.uni-hamburg.de

Die Homepage des Department Informatik (FB18):
Externer Link http://www.informatik.uni-hamburg.de

Semester- und Semesterferientermine:
Externer Link http://www.verwaltung.uni-hamburg.de/vp-1/3/33/termine.html

Das KVV (Kommentiertes Vorlesungsverzeichnis) der Informatik Online:
Externer Link http://kvv.informatik.uni-hamburg.de/cgi-bin/kvv/ausgabe/index_start.pl

Studieninfonetz (STiNE):
Externer Link http://www.stine.uni-hamburg.de

Infos zum Studieninfonetz (STiNE Infos):
Externer Link http://www.info.stine.uni-hamburg.de

MIN-CommSy:
Externer Link http://www.mincommsy.uni-hamburg.de

Weitere Links

Externer Link Grundstudium.info, Alles rund ums Informatikstudium

Externer Link Wirtschaftsinformatik, Portal für Wirtschafsinformatik Studenten


Grundstudium

Ja, also hier soll dann später noch etwas zum Grundstudium stehen, so Allgemeines. Zum Beispiel, was man alles für das Vordiplom braucht. Regelstudienzeit ist 4 Semester, man kann das Grundstudium aber auch in 6 Semestern machen, dann sollte man aber schon das Vordiplom gemacht haben, sonst muss man zur Studienberatung.

zum Anfang


1. Semester Wintersemester 2004/2005

Im ersten Semester, welches vom 18. Oktober 2004 anfing und bis zum 4. Februar 2005 lief, habe ich folgende Veranstaltungen besucht:

Während des Semesters hatte ich damit insgesamt durchschnittlich 27 SWS. Die Orientierungseinheit fand die ganze Woche vor dem Semester statt und das Praktikum Logikprogrammierung fand in den anschließenden Semesterferien statt. Mein Stundenplan sah dann wie folgt aus:

Stundenplan WS04/05
Zeit Montag Dienstag Mittwoch Donnerstag Freitag
8-9 P1 MEF1 MEF1 Ü
9-10
10-11 IMG1 F1 T1
11-12
12-13 M1 T1 Ü* M1 P1 Ü
13-14 T1 P*
14-15 ERB1* / T1 P* F1 Ü M1 Ü
15-16
16-17 MEF1
17-18

Legende:
ERB1: Einführung in die Rechnerbenutzung I (fand nur die ersten 7 Wochen statt)
F1: Formale Grundlagen der Informatik 1
F1 Ü: Übung zu F1
IMG1: Informatik, Mensch und Gesellschaft I
M1: Mathematik I für Studierende der Informatik - Diskrete Mathematik
M1 Ü: Übung zu M1
MEF1: Lineare Algebra und Analytische Geometrie I
MEF1 Ü: Gruppenarbeit mit Übungen zu MEF1
P1: Praktische Informatik 1
P1 Ü: Übung zu P1
T1: Technische Informatik 1
T1 Ü: Übung zu T1 (fand alle 2 Wochen statt)
T1 P: Praktikum zu T1 (fand an 4 Terminen am Ende des Semesters statt)

Das Praktikum Logikprogrammierung (P) hab ich in der vorlesungsfreien Zeit gemacht. Thema bzw. Ziel des Praktikum war es, ein Schachspiel in Prolog zu programmieren, was über das Netzwerk laufen sollte. Dabei wurden wir in mehreren Gruppen aufgeteilt, die jeweils verschiedene Aufgaben hatten. Zusammen mit drei Freunden haben wir die Kommunikation zwischen den Rechnern realisiert. Vorgabe war eine Peer-To-Peer (P2P) Struktur, was einige Schwierigkeiten mit sich brachte. Für den Namen des Spiels konnten wir uns auf "PRolog chESS", kurz Press einigen.

Da wir am Donnerstag zwischen M1 und M1 Ü nicht viel Zeit hatten, konnten wir nicht in der Mensa essen. Wir haben auf dem Weg vom Campus zum Geomatikum immer einen Döner bei "akdeniz" gekauft, welcher immer sehr lecker war. So kamen wir dazu, den Donnerstag in Dönerstag umzutaufen. Wir waren etwa 7 Leute und zogen nach Mathe mit hungrigen Magen immer zusammen zum Dönerladen.

Prüfungen und Scheine

Am 02.02.2005 von 14:00 - 15:30 Uhr habe ich im Hörsaal H1 im Geomatikum meine erste Klausur an der Uni geschrieben und zwar in Lineare Algebra und Analytische Geometrie I. Wir sollten den Schnittpunkt einer Geraden mit einer Ebene im R3 berechnen. Außerdem eine Familie mit drei Polynomen auf lineare Unabhängigkeit prüfen, die Invertierbarkeit einer 4x4 Matrix feststellen, zeigen, dass ein gegebenes G eine Gruppe ist und ein s auf Skalarprodukteigenschaften testen. Man durfte keine Art von Unterlagen oder Hilfsmitteln benutzen, auch keinen Taschenrechner. Dafür war sie relativ einfach. Für diese Klausur gab es keine Note, da sie lediglich für den Schein ist. Ich habe 19,5 Punkte von 20 Punkten erreicht.

Am 09.02.2005 von 09:30 - 11:30 Uhr habe ich im Audimax 1 meine erste richtige Prüfung gehabt und zwar hab ich eine Klausur in P1 geschrieben. Die erste Hälfte war zu Prolog, die zweite Hälfte zu Scheme. Man durfte Skripte, eigene Aufzeichnungen und Unterlagen, sowie die Aufgaben mit Musterlösung aus den Übungen mitbringen und benutzen. Der Scheme-Teil war viel einfacher als der Prolog-Teil. Die erste Prolog-Aufgabe war Unifikation. Danach kamen verschiedene Textaufgaben und später sollte man eigene Prädikate schreiben. Rekursionen kamen dran, aber auch Prädikate, die auf eine gegebene Datenbasis angewendet werden sollen und vorgegebene Ergebnisse liefern sollen. In der ersten Scheme-Aufgabe musste man das Ergebnis von verschiedenen Ausdrücken angeben, z.B. zu was (cdr (cons a b)) evaluiert. Desweiteren sollte man high-order-functions verstehen und die verschiedene Arten der Rekursion (z.B. Endrekursiv). Die letzte Aufgabe hatte viel mit Mathe zu tun, so sollte man z.B. bei einer gegebenen Liste mit Zahlen eine Liste der Quadrate dieser Zahlen berechnen.

Kurz darauf am 14.02.2005 in der Zeit von 09:30 - 11:30 Uhr auch im Audimax 1 hab ich meine zweite Prüfung in Form einer Klausur gehabt und zwar in M1. Vollständige Induktion war die erste Aufgabe, die etwas trickreicher als in den Übungsaufgaben war. Komplexe Zahlen war eine weitere Aufgabe. Die Sterling-Zahlen musste ich einmal nachschlagen, da sie für die Anzahl der surjektiven Abbildungen von X nach Y gebraucht werden, wobei X und Y Mengen mit einer gegebene Anzahl von Elementen sind. Ebenso musste man die Anzahl aller injektiven Abbildungen bestimmen, was einfach war. Bei einer anderen Aufgabe musste man mit den Gruppenaxiomen herumhantieren, um etwas zu beweisen. Am Ende durfte man noch die Cover-Up Rule benutzen.
Beide Prüfungsklausuren habe ich beim ersten Versuch mit 1,3 bestanden.

Leider weiß ich nicht mehr genau, welche Aufgabentypen noch in der P1 und M1 Klausur dran kamen. Falls du sie auch geschrieben hast und dich an mehr erinnerst, schreibe mir doch bitte eine kurze Mail, damit ich die Beschreibung vervollständigen kann. Vielen Dank!

Leistungsnachweise, sogenannte Scheine, habe ich in folgenden Fächern bekommen:
F1, M1, MEF1, P1, T1, T1 P, P Praktikum

Links

Lehrveranstaltungen Department Informatik WS04/05:
Externer Link http://www.informatik.uni-hamburg.de/Info/Studium/Lehrtableau/04w-lehrtableau.html

Lehrveranstaltungen Department Mathematik WS04/05:
Externer Link http://www.math.uni-hamburg.de/teaching/lectures/1104waus.html

zum Anfang


2. Semester Sommersemester 2005

Im zweiten Semester, welches am 4. April 2005 anfing und bis zum 15. Juli 2005 lief, habe ich folgende Veranstaltungen besucht:

Im zweiten Semester habe ich mit 19 SWS weniger Stunden als im ersten Semester, was ganz angenehm ist. Das Praktikum in T2 musste ich dieses Semester in der vorlesungsfreien Zeit machen. Zur ERB2 bin ich nur die ersten drei Male hingegangen und dann auch nicht wieder, so dass ich dann am Montag nur noch von 16:00 bis 18:00 Uhr zu MEF2 hingehen muss. Nebenbei habe ich mit 3 Freunden an Press ("PRolog chESS") weiter gearbeitet. Wir haben uns freiwillig dazu bereit erklärt, die noch vorhandenen Bugs zu beseitigen und weiter an dem Spiel zu entwickeln, um es dann als Binary auf einer Website der Öffentlichkeit zur Verfügung zu stellen. Das habe ich dann in der freien Zeit gemacht, z.B. Mittwoch oder auch mal Freitag nach MEF2 Ü. Ansonsten sah mein Stundenplan wie folgt aus:

Stundenplan SS05
Zeit Montag Dienstag Mittwoch Donnerstag Freitag
8-9 P2 F2 Ü MEF2 Ü
9-10
10-11 ERB2* F2 MEF2 T2
11-12 MEF2 HÜ
12-13
13-14
14-15 T2 Ü* IMG PS
15-16
16-17 MEF2 P2 Ü
17-18
18-19

Legende:
ERB2: Einführung in die Rechnerbenutzung II (fand nur die ersten 7 Wochen statt)
F2: Formale Grundlagen der Informatik 2
F2 Ü: Übung zu F2
IMG PS: Proseminar Wissenschaftliches Arbeiten mit Latex (IMG)
MEF2: Lineare Algebra und Analytische Geometrie II
MEF2 Ü: Gruppenarbeit mit Übungen zu MEF2
MEF2 HÜ: Hörsaalübungen zu MEF2
P2: Praktische Informatik 2
P2 Ü: Übung zu P2
T2: Technische Informatik 2
T2 Ü: Übung zu T2 (fand alle 2 Wochen statt)

Das Praktikum T2 habe ich in der vorlesungsfreien Zeit als Blockpraktikum gemacht (25.-27.07.05).

Prüfungen und Scheine

Ich musste eine Klausur in MEF2 für den Schein schreiben (13.07.05 um 14:00-14:45), eine mündliche Prüfung in MEF1/MEF2 (23.09.05 um 10:00-10:30) machen und zwei Prüfungsklausuren über F1/F2 (20.07.05 um 9:30-11:30 im Audimax) und T1/T2 (12.08.05 um 9:30-11:30 im Audimax).

Zur Mathe-EF 2 Klausur: In der ersten Aufgabe sollte man eine gegebene Matrix auf Diagonalform bringen (also charakteristisches Polynom PA bilden, Nullstellen=Eigenwerte bestimmen, zerfällt in Linearfaktoren?!, Eigenvektoren zu den Eigenwerten, als Spalten bilden sie T-1, inverse Matrix T bilden und prüfen, ob TAT-1 Diagonalform hat). In der zweiten Aufgabe sollte man etwas über orthogonale Matrizen wissen (Gruppe O(n), det A = ±1). Gegeben war eine 2x2-Matrix mit Einträgen a+b, b-a; a-b, b+a und man sollte für a und b Bedingungen finden, so dass diese Matrix in O(n) ist. Die dritte Aufgabe handelt von Minimalpolynomen (MA). Zu einer gegebenen Matrix (3x3 war sie) sollte man MA bestimmen. Und die letzte Aufgabe sollte man eine 2x2-Matrix mit Einträgen aus C (Menge der komplexen Zahlen) auf die Eigenschaften hermitesch und unitär prüfen. Außerdem wurde verlangt, dass man eine Orthonormalbasis (ONB; Basis, wo alle Basisvektoren orthogonal auf einander stehen, also Skalarprodukt gleich Null, und normiert) angibt. Es gab 18 Punkte, 6 für die erste und letzte und 3 jeweils für die zweite und dritte Aufgabe. Ich habe 14 Punkte erreicht und damit bestanden.

Zur F1/F2-Klausur: Was kam dran? Aus dem F1-Teil kamen u.a. folgende Themen dran: Modelle und Folgerbarkeit; die Funktionen tiefe und grad einer Formel, wobei man die rekursive Formel zum Bestimmen des Grads (Anzahl der Junktoren) einer Formel selbst schreiben sollte; strukturelle Induktion; DNF; Verfahren, um eine belibiege Formel in DNF umzuformen; Resolution; Unifikation. Aus dem F2-Teil kamen u.a. folgende Themen dran: lexikalische Ordnung (man sollte gegebene Wörter der Reihe nach ordnen); charakteristische Funktion; einen NFA lambda-frei machen; minimalen DFA anhand einer Äquivalenztafel basteln; Homomorphismen anwenden und beschreiben können; Kellerautomat basteln; Pumping-Lemma für reguläre Mengen (uvw-Theorem); zeigen, dass eine Sprache regulär ist ohne einen Automaten zu bauen. Wichtig war vor allem, dass man mit der mathematischen Mengenbeschreibung klar kam. Die Klausur hab ich mit 1,3 bestanden.

Zur T1/T2-Klausur: Richtig abgerenzt waren beide Teile nicht. Sie bestand nur aus 9 Seiten und war ziemlich einfach, auch wenn man keine Hilfsmittel nutzen durfte (obwohl auf der ersten Seite steht, dass ein Taschenrechner erlaub ist - den hatte man auch nicht wirklich nötig). Die meisten waren nach einer halben Stunde mit allen Aufgaben schon durch, weil vieles einfach zum ankreuzen war. Es gab etwa 40 Punkte.. Aber im Ganzen kamen folgende Themen dran: man sollte wissen, in welche Richtung die Übersetzung eindeutig sein muss (Informatik <-> Representation); eine Zahl in verschiedenen Systemen interpretieren (1001)b mit b = 2, 3, 10; 1er- und 2er-Komplement; Dualzahl mit Komma in Dezimalzahl umwandeln; eine Addition mit 2er-Komplement (also Subtraktion) im Binärsystem; einen logischen Ausdruck vereinfachen (wir hatten den leichten Ausdruck (x or (x and y)) ); anhand einer Funktionstabelle ein KV-Diagramm füllen und anschließend über Schleifen den Ausdruck minimieren und die DNF angeben; am Zustandsdiagramm erkennen, ob es sich um einen Moore oder Mealy-Automat handelt; Diagramm mit Signalverlauf des Automaten zeichnen (Eingangssignal und Takt gegeben); wofür sind Codes variabler Länge sinnvoll?; Hammingabstand berechnen; wieviele Fehler-Bits kann der gegebener Code erkennen bzw. korrigieren?; Knoten- und Maschenregel, sowie U=RI anwenden, um Spannungen und Ströme in einem Netz zu bestimmen; Inverter-Spezifikation kennen; Bauteile, die an einen BUS angeschlossen werden können: eine gegebene Funktion als NMOS-Schaltung realisieren; Kennlinie von MOS-Transistoren im Widerstandsbereich (ID in Abhängigkeit von UGS). Am Ende durften wir ein kleines (PRIMA)Assembler-Programm (mit den Befehlen LOAD, ADD, STORE). Auch diese Klausur hab ich mit 1,3 bestanden :)

Mündliche Prüfung in Mathe-EF (Lineare Algebra I + II) bei Ernst Bönecke: Er ging die Themen schon vom Anfang zum Ende hin durch und da die Themen aufeinander aufbauen, ging der Übergang von einem zum nächsten immer sehr flüssig. So kam erstmal etwas aus dem 1. Semester dran und zwar wollte er zuerst wissen, was eine Basis ist (linear unabhängiges Erzeugendensystem). Da ich erklärt hab, dass V=span(vj) mit j aus {1,2,3,...,n} beim Erzeugendensystem gilt, wollte er noch wissen, wie der span und die lineare Unabhängigkeit definiert ist. Dieses n ist dann ja die Länge der Basis sprich die Dimension. Damit sind wir auf die Dimensionsformel (dim V = dim Ker F + dim F(V)) gekommen. Sei nun F injektiv, was passiert dann? Der Kern von F enthält nur die 0 (Ker F={0} => dim Ker F=0), daraus folgt, dass dann dim V = 0 + dim F(V) und F auch surjektiv, also bijektiv ist. Ich sollte sagen, wann eine Abbildung linear ist (F(v+w)=F(v)+F(w) und F(λv)=λF(v)) und wie man zu einer gegebenen linearen Abbildung die Matrix findet. Rang einer Matrix bestimmen (Zeilenstufenform). Seien F, G gegebene lineare Abbildungen und FoG die Hintereinanderausführung, wie berechnet man das? Wir kamen auf die Matrizenmultiplikation, die ich aufschreiben sollte. Zusätzlich sollte ich angeben, welche Eigenschaften diese hat (assozuiativ, nicht kommutativ, nicht nullteilerfrei). Er fragte nach dem neutralen Element En und wann eine Matrix invertierbar ist (Determinante invertierbar oder Rg A=n) es gilt dann A*A'=A'*A=En. Im Großen und Ganzen war das der Inhalt vom 1. Semester. Aus dem 2. Semester wollte er dann zuerst wissen wie eine Determinante definiert ist (det: M(nxn,K)->K und D1-D3 aufschreiben) und wie viele Funktionen diese Bedingungen erfüllen (es gibt genau eine!). Dann kamen wir auf die Berechnung der Determinante. Die Formel vom Entwicklungssatz von Laplace sollte ich dann aufschreiben. Danach kamen wir auf die Eigenwerte (F(v)=λv und v≠0) und wie man sie berechnen kann (charakteristisches Polynom) und zu gegebenen Eigenwert einen Eigenvektor findet (Lösen des homegenen linearen Gleichungssystem: (A-λEn)v=0). Er wollte auch etwas zu Eigenwerten aus der Analysis wissen und zwar gab er an: V sei der R-Vektorraum (R=reele Zahlen) der beliebig oft differenzierbaren Funktionen und D: f -> f' (Ableitung), was für Funktionen gibt es dort so? Ich gab ex mit dem Eigenwert 1 und eλx mit Eigenwerte λ aus ganz R (reele Zahlen). Er wollte auch wissen, wann ein Endomorphismus diagonalisierbar ist (charakteristisches Polynom zerfällt in Linearfaktoren und Vielfachheit des Eigenwertes gleich der Dimension des Eigenraumes: μ(PF,λ)=dim Eig(PF,λ) oder einfacher: die zugehörige Matrix ist zu einer Diagonalmatrix ähnlich (A=SBS-1 mit S aus GL(n,k)). Dann hatte er mir eine 2x2-Matrix mit Einträgen 0 1, 0 0 gegeben, wobei ich dann angeben soll, ob sie diagonalisierbar ist (char. Polynom zerfällt zwar, aber μ<dim Eig also nein), aber man kann sie auf Jordansche Normalform bringen. Am Ende wollte er noch wissen, wie ein Skalarprodukt definiert ist (positiv definite hermitesche Form). Gelernt hatte ich ungefähr 1,5 Wochen durch und hab dann eine 1,7 bekommen.

Diese Scheine habe ich alle gemacht:
F2, IMG PS, MEF2, P2, T2, T2 P

Links

Lehrveranstaltungen Department Informatik SS05:
Externer Link http://www.informatik.uni-hamburg.de/Info/Studium/Lehrtableau/05s-lehrtableau.html

Lehrveranstaltungen Department Mathematik SS05:
Externer Link http://www.math.uni-hamburg.de/teaching/lectures/1105saus.html

Technische Informatik II (T2)-Skript (Digitale Systeme 2) / Mitschrift von Jan Menne SS99 als PDF-Dokument:
Externer Link http://www.stuhlmeister.de/assets/TechInf2.PDF

zum Anfang


3. Semester Wintersemester 2005/2006

Im dritten Semester, welches am 24. Oktober 2005 anfing und bis zum 10. Februar 2006 lief, habe ich folgende Veranstaltungen besucht:

*: IMG 3 (Diplom) = IKON 1 (Bachelor)

Im dritten Semester habe ich mit 20 SWS wieder etwas mehr Stunden, dafür einen Tag sogar ganz frei. Ich finde es nur schade, dass die Übungen für F3 ausschließlich für Wirtschaftsinformatiker und anderen Studenden von anderen Hochschulen sind. Deswegen muss man dann selbst den Stoff selbst zu Hause bearbeiten und hat dann auch nur Musterlösungen, weiß dadurch trotzdem nicht, ob das, was man geschrieben hat, richtig oder zumindest teilweise richtig ist. Das Praktikum in T3 muss ich wieder in der vorlesungsfreien Zeit machen, weil ich mich zu spät um die Anmeldung für die Kurse, die im Semester angeboten werden, gekümmert habe. Zuerst hingen die Listen noch nicht aus und als ich dann wieder dort war, gab es die Listen gar nicht mehr. Mittwoch Nachmittag ging die Zeit für Übungsaufgaben aller Art, also Mathe, P und T drauf. Die Vorlesung IMG3 wurde als solche nicht mehr angeboten, da in diesem Semester der neue Jahrgang den Bachelor macht. Deswegen müssen wir angehenden Diplom-Informatiker die Vorlesung IKON1 mit den Bachelor-Studenten gemeinsam besuchen. In Mathe gab es kein Skript, Herr Gasser hat sich aber stark nach Foster Analysis I orientiert. Es ist aber auch möglich, einfach alles mitzuschreiben, was Herr Gasser an die Tafel schreibt. Das Erstaunliche daran ist, dass er selbst kein Skript in den Vorlesungen benötigt, sondern alles aus dem Kopf anschreiben kann. Ab und zu unterläuft ihm dann auch mal ein Fehler und ein einziges Mal musste er dann doch kurz in den Unterlagen nachgucken, da er zu einem gerade angeschriebenen Satz sofort ein Gegenbeispiel wusste und deswegen verunsichert war. In T gab es auch noch kein Skript, wir sollten es angeblich am Anfang des nächsten Semester bekommen, deswegen habe ich alle Folie, die Herr Lehmann aufgelegt hatte mit der Digitalkamera fotografiert und meinen Kommilitionen zugänglich gemacht. Die Übungen zu T haben sich ausschließlich um das Programmieren mit Assembler auf den Sparc-Rechner beschäftigt und es wurden dort auch extra Folien gezeigt. Nach Absprache mit Herrn Lehmann konnte ich zum Glück auch sein Proseminar über Kompressionstechniken zur einen Hälfte besuchen und in der zweiten Hälfte dann zur T-Übung gehen. Das Problem war, dass alle T-Übungen nur am Montag angeboten wurden und ich da viele Mathe-Veranstaltungen hatte, die ich besuchen musste. Hier dann noch mein Stundenplan des dritten Semesters:

Stundenplan WS05/06
Zeit Montag Dienstag Mittwoch Donnerstag Freitag
8-9 MEF3 IMG3
9-10
10-11 MEF3 Ü MEF3 T3
11-12
12-13 F3 P3 Ü
13-14
14-15 PS P3
15-16 T3 Ü / PS

Legende:
F3: Formale Grundlagen der Informatik 3
IMG3: Informatik, Mensch und Gesellschaft 3
MEF3: Analysis I
MEF3 Ü: Gruppenarbeit mit Übungen zu MEF3
P3: Praktische Informatik 3
P3 Ü: Übung zu P3
PS: Proseminar Kompressionstechniken
T3: Technische Informatik 3
T3 Ü: Übung zu T3

Das Praktikum T3 habe ich in der vorlesungsfreien Zeit als Blockpraktikum (20.-23.02.06) gemacht.

Prüfungen und Scheine

Um den Schein in MEF3 zu bekommen, musste ich zwei Übungstests (1. Test: 05.12.05 in der Übungsgruppe, 2. Test 06.02.06 um 8:15-9:45 im H1) bestehen. Dann habe ich noch eine mündliche Prüfung über P2/P3 (17.02.06 um 10:30) und eine über IMG3 (28.03.06 um 16:30) gemacht.

Zu den Übungstests in MEF3: Der erste Test fand in den Übungsgruppen statt. Wir haben einen einseitigen Aufgabenzettel mit nur drei Aufgaben bekommen. In der ersten Aufgabe musste man eine Vollständige Induktion durchführen. Die zweite Aufgabe unterteilte sich in mehrere Unteraufgaben, wo man einfach das Ergebnis nur hinschreiben musste. Dabei musste man u.a. die geometrische Summe, den Binomischen Lehrsatz, Grenzwerte bestimmen und Doppelsummen auflösen können. Die dritte Aufgabe war Multiple-Choice. Man musste dann angeben, ob etwas wahr oder falsch ist. Wenn man allerdings mit seiner Antwort daneben gelegen hat, bekommt man sogar einen Minuspunkt. Um diese Fragen beantworten zu können, sollte man etwas u.a. Mengenlehre, inkl. Potenzmenge können. Um zu bestehen, brauchte man mindestens 50% der Punkte. Ich habe mit 14 von 19 Punkten bestanden. Diejenigen die bei dem Test nicht bestanden haben (ganze 70%) müssen dann im 2. Test mehr Punkte machen, um den Schein dann zu bekommen. Den Test werden wir nie zurückbekommen, können ihn lediglich einsehen.
Der zweite Test unterschied sich stark vom ersten. Dieses Mal war es nötig, den Lösungsweg aufzuschreiben, man musste also wie in den Übungen vier Aufgaben lösen, wobei jede 10 Punkte wert war. In der ersten Aufgabe war verlangt, dass man den Grenzwert von sin(ax)/x mit x gegen 0 bestimmt, ohne de l'Hospital und das Ergebnis lim x->0 sin(x)/x=1 aus der Vorlesung zu benutzen. Als Hinweis wurde dann die Schreibweise der Exponentialreihe mit dem Restglied angegeben. Als Teilaufgabe sollte man noch angeben, ob die Funktion g(x) = sin(ax) für x>0 und 0 für x=0 in R+ differenzierbar ist. In der zweiten Aufgabe musste man die geometrische Reihe wieder entdecken und diese ableiten, um angeben zu können für welche x eine gegebene Gleichung (Reihe = Grenzwert) gilt. Die dritte Aufgabe forderte den Umgang mit Folgen und ihre Eigenschaften (Beschränkheit, Nullfolge, ...). In der vierten Aufgabe sollte man die Exponentialreihe sehen. Dann kann man schnell zeigen, dass diese Reihe konvergiert und stetig ist. Zudem sollte man noch angeben, für welche x die Reihe überhaupt definiert ist, da ln(sin(x+1)) vorkam. Ich fand diesen Test unerwartet schwieriger als den ersten, habe aber mit 24 von 40 Punkten bestanden und erhalte somit den Schein.

Mündliche Prüfung über P2/P3 bei Heinz Züllighoven: Ich hatte eigentlich um 10:30 Uhr die Prüfung, welche normalerweise 20 Minuten dauert, aber durfte schon früher rein, weil der Prüfling vor mir auch früher fertig war. Ich hatte mich eine Woche darauf vorbereitet und konnte die letzte Nacht nur schlecht schlafen. Nachdem Herr Züllighoven seine Uhr gestellt hatte, durfte ich mir ein Java-Quellcode angucken. Darin ging es um eine Klasse Konto. Nachdem ich mir den 1,5 Seiten langen Code angeguckt habe, sollte ich von vorn bis hinten mal so erzählen, was für Java Konstrukte zu sehen sind. Angefangen hab ich bei public class, also dass es sich um eine Klasse handelt, die zudem public ist, was bei Packages wichtig ist, um die zu exportieren. Dann Exemplarvariable _saldo vom Typ int als private deklariert, der Unterstrich soll zudem eine Exemplarvariable von lokalen Variablen in Methoden unterscheiden. Dann kamen zwei Konstruktoren (überladen), wobei der Standardkonstuktor ohne Parameter einfach _saldo = 0 setzt, was in Java nicht nötig ist, da numerische Variablen immer mit 0 initialisiert werden. Der zweite Konstruktor gibt die Möglichkeit, über den Paramter das Saldo zu setzen. Danach kamen die beiden verändernde Operationen public void zahleEin(betrag:int) und public void hebeAb(betrag:int). Darin wird zunächst geprüft, ob der Betrag größer gleich 0 ist und wenn nicht wird mittels System.out.println() eine Fehlermeldung ausgegeben, sonst wird entweder der übergebene Betrag vom Saldo addiert oder abgezogen. Ich meinte dann nebenbei, dass dies schlecht wäre und nicht dem Vertragsmodell entspreche. Und am Ende gab es noch eine sondierende Operation public int gibSaldo(). Dann wollte er was zum Vertragsmodell wissen. Ich antwortete damit, dass das Vertragsmodell dazu dient, dass die Software korrekt läuft, d.h. genau das tut, was an der Schnittstelle spezifiziert ist und fehlerrobust sein sollte, d.h. entsprechend auf Verletzung der Vorbedingung reagiert (-> Exception) Vor-/Nachbedingung und Invaranten gibt es, diese müssen geprüft werden. Wenn der Klient die Vorbedingungen erfüllt, kann er fordern, dass der Anbieter/Dienstleister die Nachbedingungen einhält. Realisieren mit assert und am Beispiel zahleEin(int betrag) erklärt, was wie wo geprüft werden muss und dass die Kommentare (mit @require und @ensure) entsprechend ergänzt werden müssten, damit das sichtbar für die Klienten gemacht wird. Exception muss geworfen werden, damit der Aufrufer (ein anderes Objekt) mitbekommt, dass der Aufruf fehlgeschlagen ist. Dann wollte er etwas über die Zuweisungen in imperativen Programmiersprachen wissen und erklärt haben wollen, was genau die Zeile _saldo = _saldo + betrag bedeutet. Es gibt linke und rechte Seite und das rechte _saldo hat den Wert vorher und wird zunächst mit dem betrag addiert und dann dem _saldo zugewiesen. Rechts steht ein Ausdruck, der erstmal ausgewertet wird (Wert interessiert bei _saldo) und anschließend an den Bezeichner _saldo zugewiesen (linke Seite). Dann wollte er wissen, was man statt int _saldo noch nehmen könnte. Ein int ist zunächst einmal eine einfache Ganzzahl, die positiv und negativ sein kann. In Java ist es schwer benutzerdefinierte Werttypen zu modellieren, aber man könnte eine Klasse Betrag erstellen, die neben dem Wert auch eine Währung beinhaltet. Vorteil ist, dass dieer abstrakte Datentyp näher am Anwedungsfall ist, da noch eine Währung repräsentiert werden kann. Außerdem kann man geeignete Operationen definieren, die eine Addition von Beträgen nur erlaubt, wennd ie Während gleich sind. Nachteil ist das Alias-Problem. Dieses tritt auf, wenn über den Konstruktor ein Objekt (genauer: nur die Referenz bzw. eine Kopie davon, weil Call by Value) an die Klasse Konto übergeben wird und anschließend dieses Objekt von außen verändert wird. Dann geht das ganze schöne Konzept der Kapselung kaputt. Verhindern kann man das, indem man beim Erzeugen eines Exemplar von der Klasse Betrag die Attribute mit dem Schlüsselwort final festlegt. Somit lassen sich die Werte dann nicht mehr verändern. Dann wollte er kurz noch etwas zu P3 fragen, was denn dynamische Datenstrukturen sind und welche ich da kennengelernt habe. Eine Struktur besteht allgemein erstmal aus Komponenten, die miteinander in Beziehung stehen. Dynamisch ist eine Datenstruktur dann, wenn die wachsen und schrumpfen kann, d.h. es wird nur so viel Platz verbraucht, wie gerade benötig. Es können Elemente hinzugefügt und entfernt werden. Als Beispiele habe ich dann Liste, Schlange/Queue, Keller/Stack, Bäume und Graphen erwähnt. Zu Bäume wollte er dann wissen, wofür man sie braucht. Ich hab dann erklärt, dass man Schlüssel darin ablegen kann, indem man links von einem Knoten Schlüssel mit einem kleineren und rechts vom Knoten nur Schlüssel mit einem größeren Wert ablegt. Auf den Fachbegriff Suchbaum kam ich zwar nicht, konnte aber sagen, wie die Komplexität beim Suchen ist: im schlimmsten Fall die Höhe des Baumes, welche beim balancierten Baum log2(n+1) ist, wenn n die Anzahl der Knoten sind und ein Knoten alleine einen Baum der Höhe 0 repräsentiert. Dann hatte er Schluss gemacht und ich sollte kurz rausgehen. Schnell durfte ich wieder rein und bekam ein "Sehr gut" also 1,0! :-)

Mündliche Prüfung über IMG3 bei Christopfer Habel: Zuerst wurde ich gefragt, welches Ergänzungsfach ich habe und wann ich die IMG3 Vorlesung gehört habe. Beisitzerin war Carola Eschenbach, die auch die Vorlesung F1 gehalten hat. Als erstes wollte Herr Habel von mir wissen, wie das mit den verschiedenen Ebenen der visuellen Wahrnehmung funktioniert. Ich fing damit an, dass das Licht ins Auge fällt und dort auf die Retina (Netzhaut) auftrifft. Dort befinden sich Rezeptoren (Zapfen und Stäbchen, 125 Mio. pro Auge), die über Bipolarzellen mit den 1 Mio. Ganglienzellen pro Auge verschaltet sind. Diese leiten die Information über den Sehnerv, das optische Chiasma zum Corpus Geniculatum Laterale (CGL) (Anmerkung: Leider hatte ich aufgrund der Nervosität den genauen Namen vergessen. Herr Habel meinte dann, ich könnte einfach die Abkürzung verwenden.). Weiter werden diese Informationen an das visuelle Cortex geleitet. Dort im V1 (einen von ca. 32 Teilen des visuellen Cortex) befinden sich "einfache Zellen" (einfach gegenüber andere Zellen, die komplexere Aufgaben erfüllen) und im CGL findet die erste von vier Ebenen der visuellen Wahrnehmung nach Palmer statt und zwar das Image Based Processing, u.a. die Linien- und Kantenerkennung. Darauf aufbauen gibt die komplexe Zellen, die z.B. für die Bewegungsdetektion verantwortlich sind. Diese befinden sich in V1 und V2. In der 2. Ebene werden dann Regionen (Surfaced Based Processing), in der 3. Ebene Objekte (Object Based Processing) und in der letzten Ebene diese Objekte in Kategorien eingeordnet (Category Based Processing). Er wollte von mir daraufhin genauer wissen, wie die Kantendetektion funktioniert. Ich antwortete damit, dass es rezeptive Felder gibt. Diese bestehen aus vielen Rezeptoren, die ihre Information an weniger Ganglienzellen weitergeben. Die rezeptiven Felder überlappen sich jeweils, so dass die Sensordaten der Rezeptoren an verschiedene Ganglienzellen geleitet und unterschiedlich verarbeitet werden. In diesen rezeptiven Feldern gibt es dann die On-center-cells und die off-center-cells. Die On-center-cells feuern Nervenimpulse, wenn die Mitte des rezeptiven Feldes beleutet und der Rand dunkel ist. Die Off-center-cells (Surrounding-cells) feuern Nervenimpulse, wenn die Mitte dunkel, aber der Rand beleuchtet ist. Die "einfachen Zellen" in V1 bekommen diese Informationen vom CGL. Wenn diese rezeptiven Felder linear angeordnet sind, dann wird eine Kante bzw. Linie erkannt. Danach wollte er wissen, wie das ist, wenn man eine Matrix hat. Ich sagte darauf hin, dass man ein Bild als eine Matrix aus einzelnen Bildpunkten (Pixel) bei künstlichen Systemen hat. In natürlichen Systemen bekommt man solch eine Matrix z.B. von der Retina, die zwei-dimensional ist. Eine Matrix besteht dann aus den einzelnen Pixeln, die als Helligkeitswerte angesehen werden können. Man nimmt sich nun eine Zeile raus und wendet darauf den Operator [-1,+1] auf diese Zeile an und zwar schrittweise, d.h. wenn man z.B. das Helligkeitspaar [10,10] hat, ergibt sich mit diesem Operator, welcher vertikale Kanten detektieren kann, der Kontrastwert -1*10+1*10 = 0. Aus einem Helligkeitsvektor/-zeile [10,10,2,10,10] ergibt sich dann der Kontrastvektor [0,-8,+8,0]. Ein Element weniger als im Helligkeitsvektor, da dieser durch den Operator gefaltet wird. Dabei ist es egal, ob man [-1,+1] oder [+1,-1] hat. Dann drehen sich lediglich die Vorzeichen im Kontrastvektor um. Im Beispiel oben bedeutet -8, dass es dunkler wird. Für die Detektion von horizontalen Kanten verwendet man dann einen Spaltenvektor [-1,+1] auf die einzelnen Spalten der Matrix. Anschließend wollte Herr Habel auf onmidirektionale Operatoren. Ich sagte, dass es im 2. Level (second-order) Operatoren gibt, die einen Fokus auf einem Pixel haben und noch benachbarte Pixel mit einbezieht, z.B. [-1,+2,-1], wobei der Fokus auf der +2 liegt und die Informationen aus den direkt benachbarten Pixeln links und rechts für die Kontrastberechnung noch mit einbezogen werden (im Gegensatz zu den Operatoren in der 1. Stufe). Als omnidirektionalen Operator nannte ich eine 3x3-Feld, wobei in der Mitte +8 und am Rand jeweils -1 steht. Ich erwähnte noch, dass die Summe der Zahlen immer Null ergeben muss. Warum wollte er wissen und ich musste zugeben, dass das eine gute Frage war. Ich meine dann, dass man sonst als Kontrastwert nicht Null bekommen würde, wenn alle Helligkeitswerte gleich sind, z.B. aus dem Helligkeitsvektor [10,10,10] wird mit dem Operator [-1,+3,-1] der Kontrastwert -1*10+3*10-1*10 = 10 berechnet. Außerdem würde man überall anders auch andere Werte erhalten. Nach ein bisschen Herumgeraterei sagte Herr Habel dann, dass ich mich nicht aufs Glatteis führen sollte, denn es würde nur den Null-Punkt der Kontrastwerte verschieben und man müsste dann die Ergebnisse nur Normalisieren. Dann überraschte er mich mit der Frage, wie das sein würde, wenn man asymmetrische Operatoren hätte. Ich kam nur darauf, dass es egal ist, wie groß man die Operatoren machen würde. Denn je größer sie sind, z.B. 5x5, desto mehr angrenzende Informationen werden mit einbezogen für die einzelne Rechnung. Aber zu asymmetrischen Operatoren konnte ich nur sagen, dass man dann schon seltsame Werte erhalten würde. Dann kam Farbe ins Spiel. Ich sollte das ganze mal unter farbigen Umständen erklären. Bisher hatten wir nur Helligkeiten unterschieden. Ich sagte, es gibt drei Arten von Zapfen, die für das Farbsehen zuständig sind (rot, grün, blau) und habe nebenbei ein Diagramm mit den Wellenlängen und der Empfindlichkeit der drei Zapfen aufgemalt (Wellenlängenbereich von ca. 400 - 800 nm; Blaue Kurve mit Hoch im kurwelligen Bereich, grüne und rote Kurve mehr im langwelligen Bereich, die Peaks dichter zusammen). Ich hab dann noch ein weiteres Diagramm (siehe rechts) im Text beschriebenes Diagramm angefangen, wo ich B, G und R in Kästchen aufmalte, in der Mitte zwischen G und R ein Kästchen mit Y (für Gelb), dieses verbunden mit G und R und dann noch dadrunter ein Kästchen mit S/W (für Schwarz/Weiß) unter B und Y mit den beiden verbunden. Er wollte dann wissen, ob das exitatorische oder inhibitorische Kanten dazwischen wären. Ich war mir nicht sicher, meinte dann aber, es wären exitatorische Kanten, denn Gelb (Y) entsteht, wenn die Kanäle Grün (G) und Rot (R) addiert werden. Weiter gilt, dass Weiß durch Addition von Blau und Gelb zustande kommt (und änderte das S/W in W um). Nun sollte ich den Nutzen dieser Farbentheorie für die Informatik erklären. Ich sagte, dass 8% der männlichen Bevölkerung sind rot-grün-blind, da im Wellenlängendiagramm die Peaks von Rot und Grün dicht beieinander liegen und Rot und Grün Komplementärfarben sind. Deshalb sollte man statt dem Rot-Grün-Kanal eher den Blau-Gelb-Kanal verwenden, obwohl es auch möglich ist, blau-gelb-blind zu sein, jedoch tritt diese Einschränkung der farblichen Wahrnehmung sehr selten auf. Ich habe noch schnell den Doppelkonus für den 3D-Farbraum (zwei lineare Achsen: Helligkeit, Sättigung, eine zyklische Achse: Farbton; zyklisch nur für uns, weil wir UV=IR setzen) aufgemalt. Außerdem ist es wichtig zu wissen, welche Vordergrundfarbe man auf welcher Hintergrundfarbe setzen kann, damit eine gute Lesbarkeit gewährleistet ist. Der Kontrast muss stimmen, auch Helligkeiten, bei der Schrift die Strichstärke und die Schriftformatierung (z.B. Fett), Sättigung, Größe, Form, etc. spielen da eine Rolle, da die Farbwahrnehmung kontextabhängig ist. Hab die Chevreul-Streifen aufgemalt und daran erklärt, dass dort eine Illusion (Streifen ungleichmäßig gefärbt, mal heller, mal dunkler, obwohl die Streifen konstant eingefärbt sind) auftritt, da verschieden gefärbte Flächen aneinanderstoßen. Die Sättigung sollte ich dann noch einmal genauer erläutern und tat dies damit, dass ich den Doppelkonus genauer beschrieben hatte: Die Farben mit einer Sättigung von 100% befinden sich ganz außen auf der Mittelscheibe des Doppelkonus. Je weiter man in die mitte geht, desto weniger Sättigung haben dort die Farben. Nach oben haben die Farben mehr Helligkeit (bis zu Weiß) und nach unten weniger (bis Schwarz). Der Farbton geht einmal außen um den Doppelkonus herum. Da ich Schriftarten erwähnt hatte, sollte ich dort noch etwas hinzufügen. Mir fiel u.a. ein, dass es Grotekt-Schriften (serifenlose Schriften wie z.B. Arial) und Schriften mit Serifen (d.h. kleine Häckchen, wie z.B. Times New Roman) gibt und dass man serife Schriften besser lesen könnte, außer wenn die Auflösung des Bildschirm schlecht ist, so dass die kleine Häckchen nicht mehr richtig dargestellt werden können. Das war das zum Thema visueller Wahrnehmung/Perzeption. Ich sollte dann aufsagen, was für Typen von Gedächtnis man in der Psychologie unterscheidet. Es gibt zwei Komponenten: aktiv und "passiv". Zum aktiven gehört das Kurzzeitgedächtnis und das Arbeitsgedächtnis, was eigentlich das gleiche meinen, nur haben die Namen jeweils einen anderen Fokus. Das Kurzzeitgedächtnis betont eher die Dauer, die Informationen gespeichert werden können (ca. 15-20 Sekunden) und das Arbeitsgedächtnis legt mehr Wert auf die Funktion. Es können dort etwa 7±2 Chunks gespeichert werden. Zum "passiven" Gedächtnis gehört das Langzeitgedächtnis (Kapazität und Speicherdauer: (fast) unbegrenzt). Und es gibt noch das sensorische Gedächtnis mit einer Speicherdauert von ca. 200 ms. Mit "passiv" war Herr Habel allerdings nicht ganz zufrieden. Ich korrigiert mich auf "nicht ganz so aktiv" und erklärte dies damit, dass die Chunks im Arbeitsgedächtnis immer wieder aktiviert werden müssen. Ohne etwas zu tun, zerfällt die Aktivation auf ein Grundniveau, was dann der Aktivation des Langzeitgedächtnisses gleich kommt. Außerdem kann man die dort gespeicherten Informationen wieder reaktivieren. Er bemängelte, dass 20 Sekunden nicht viel seien, um damit etwas machen zu können und ich fügte hinzu, dass es möglich ist, die Informationen zu behalten, indem man die phonologische Schleife (auditiv) nutzt (sich immer wieder die Sache innerlich aufsagen, um sie zu behalten; man redet dann von "innerem Ohr" und "innerer Stimme", die es aber eigentlich gar nicht wirklich gibt) oder das visuelle Gegenstück dazu das Visual Spatial Scratch Pad (wo man sich die Sache immer wieder innerlich vorstellt). Damit kann man die Aktivation aufrecht erhalten, es sei denn man wird dabei gestört. Ich sollte das "Stören" noch genauer erläutern und sagte, dass man gestört wird, wenn man z.B. was Vorlesen soll, wöhrend man die phonologische Schleife nutzt oder wenn man sich gerade etwas innerlich vorstellt dann plötzlich irgendetwas anschauen sollte. Dann wird die gleiche Modalität genutzt (visuell/auditiv) und es kommt dann zu Interferenzen. Das war es dann auch gewesen und habe dafür unerwarteter weise wieder eine 1,0 bekommen! :-)

Diese Scheine habe ich gemacht:
MEF3, P3, PS, T3, T3 P

Links

Lehrveranstaltungen Department Informatik WS05/06:
Externer Link http://www.informatik.uni-hamburg.de/Info/Studium/Lehrtableau/05w-lehrtableau.shtml

Lehrveranstaltungen Department Mathematik WS05/06:
Externer Link http://www.math.uni-hamburg.de/teaching/lectures/1105waus.html

zum Anfang


4. Semester Sommersemester 2006

Im vierten Semester, welches am 3. April 2006 anfing und bis zum 15. Juli 2006 lief, habe ich folgende Veranstaltungen besucht:

*: IMG 4 (Diplom) = IKON 2 (Bachelor)

Im vierten Semester hatte ich zum ersten Mal eine Vorlesung im alten Gebäude an der Edmund-Siemers-Allee (ESA). Das ist das Gebäude, welches am Dammtor ist und zwei neue Gebäudeflügel erhalten hat. Die Vorlesung F4 hatten wir im ESA B, das ist der Hörsaal ganz oben in der Kuppel. Allerdings hört sich das schöner an als es ist, wenn man nämlich während der Vorlesung versucht das zu verstehen, was der Professor sagt. Die Akustik dort ist dermaßen schlecht, dass ich hoffe, dass ich dort nie wieder eine Veranstaltung haben werde. Sehr lustig war die Szene, wo der Prof uns fragte, ob wir ihn verstehen könnten. Einer aus den mittleren Reihen schrie "Wir können Sie hier nicht verstehen!", daraufhin der Prof: "Was haben Sie gesagt?" - Später hatte der Prof dann ein Mikrofon verwendet, dann konnte man ihn etwas besser verstehen. Und falls es etwas langweilig wurde gab es in diesem Raum noch etwa drei bewegliche Kameras, die man sich anschauen konnte. Ein paar Male konnte man auch beobachten, wie sich eine bewegte und einfach so mal durch den Raum geblickt hatte... Der Hörsaal Phil D war leider auch ein Griff ins Klo, was man fast wörtlich nehmen konnte, da dort wohl das Ende der Toilettenlüftung war, zumindest roch es dort so. Zusätzlich war eine Wand komplett aus Glas. Diese war auch noch die Wand Richtung Süden und es war Sommer! Auch mit zugezogenen schwarzen Vorhängen wurde es wie in einem Treibhaus recht warm und der Notausgang wurde immer zum Vorlesungsbeginn vom Professor geschlossen. Die Übungen zu T4 hatten in diesem Semester erstaunlicher Weise wieder etwas mit der Vorlesung zu tun, im Gegensatz zum dritten Semester. Zu IMG4 bin ich nur einmal hingegangen, schließlich hatte ich bereits meine Prüfung auf diesem Gebiet. In M4 (Stochastik) wurden zwei Tests geschrieben (mehr dazu weiter unten). Da wir diese Tests zeitlich dann geschrieben haben, wann eigentlich eine Vorlesung stattfinden soll, kam diese Prof auf die Idee extra Termine anzusetzen, um die verlorene Zeit wieder nachholen zu können. Die Tests in vergangenen Semester wurden auch während der Zeit geschrieben, wann eigentlich die Vorlesung stattfand, aber die Vorlesung wurde dann nie nachgeholt. Zu den Ersatzterminen sind natürlich recht wenige Leute erschienen und gegen Ende des Semesters konnte man die Studenten, die noch zu M4 gingen an beiden Händen abzählen. Mein Stundenplan für dieses Semester sah wie folgt aus (In Klammern stehen die Raumbezeichnungen):

Stundenplan SS06
Zeit Montag Dienstag Mittwoch Donnerstag Freitag
9-10 T4 P* (C-005)
10-11 F4 (ESA B) MEF4 (H1) M4 Ü (431)
11-12
12-13 IMG4 (ESA C) M4 (H1) M4 (H1)
13-14 T4 Ü (F-535)
14-15 MEF4 Ü (435) T4 (Phil D)
15-16
16-17 MEF4 (H1)
17-18 MEF4 HÜ (H1)

Legende:
F4: Formale Grundlagen der Informatik 4
IMG4: Informatik, Mensch und Gesellschaft 4
M4: Stochastik für Studierende der Informatik
M4 Ü: Übung zu M4
MEF4: Analysis II
MEF4 Ü: Gruppenarbeit mit Übungen zu MEF4
MEF4 HÜ: Hörsaalübungen zu MEF4
T4: Technische Informatik 4
T4 Ü: Übung zu T4
T4 P: Praktikum zu T4 (fand nur an 3 Terminen im Semester statt)

Dieses Semester habe ich es geschafft, mich rechtzeitig für das Praktikum T4 während der Vorlesungen anzumelden. Am 30.5. fand der erste Termin statt und dann wöchentlich noch zwei weitere Male.

Prüfungen und Scheine

In diesem Semester habe ich zwei Tests in M4 (Nr.1, Nr.2) geschrieben und folgende Prüfungen abgelegt: T3/T4, F3/F4, MEF3/MEF4. Wobei ich die letzte Prüfung in Mathe über Analysis I+II verschoben hatte und diese dann erst im November gemacht habe, wo das neue Semester schon angefangen hat.

M4-Test Nr. 1: Am 19.05.06 (12:15-13:45 im H1) habe ich den 1. Test in M4 geshrieben. Offiziell hieß der Test allerdings "Individuelles Bearbeiten von Aufgaben unter Aufsicht", was auch besser zutrifft, da man alle Unterlagen mitnehmen und verwenden durfte. Es sollte zunächst jede zweite Reihe belegt werden und immer einen Platz freigelassen werden. Nachdem aber ganz viele noch auf den Treppen standen, hat Herr Daduna gesagt, wir sollten in jeder zweiten Reihe alle Plätze belegen, weil der Hörsaal zu klein wäre. Es gab zwei verschiedene Aufgabenzettel, wobei die Zettel bei einer Version mit einem roten Rahmen markiert wurden. So konnte von weitem schon sichergestellt werden, dass nicht zwei rote Zettel nebeneinander lagen. In der 1.) Aufgabe wurde ein Merkmalraum Omega gegeben und eine Teilmenge davon und wir sollten die davon erzeugte kleinste sigma-Algebra aufschreiben. Dann wurde in der Aufgabe 2) von einem verlangt, eine Tabelle mit Wahrscheinlichkeiten auszufüllen. Gegeben waren z.B. P(A) und P(B) und man sollte P(A geschnitten B) etc. berechnen. Die 3.) Aufgabe war schon etwas kniffliger. Es ging um Zufallsvariablen X, Y und Z. X sollte Normalverteilt N(0,1) sein, Y = a+bX und Z = c+dY und gefragt war nach der Verteilungsfunktion f von Y und Z. In der 4.) Aufgabe wurde eine Tabelle mit relativen Häufigkeiten gegeben. Wir sollten explizit die Zähldichte (Z-Dichte) angeben und anschließend den Erwartungswert E(X) ausrechnen. Aufgabe 5) handelte von der Poisson-Verteilung (Ausfall einer zuverlässigen Komponente in einem Jahr). Wir sollten den Merkmalsraum, die sigma-Algebra und die Z-Dichte angeben. Danach wurden noch einige Wahrscheinlichkeiten abgefragt, z.B. wie groß ist die Wahrscheinlichkeit, dass die Komponente mehr als 2mal in einem Jahr ausfällt. In der letzten Aufgabe 6) ging es u.a. um bedingte Wahrscheinlichkeiten. Gegeben waren die Wahrscheinlichkeiten, dass ein Teil defekt/intakt war und jeweils die Wahrscheinlichkeiten, dass ein Test des Teils defekt bzw. intakt anzeigt unter der Bedingung, dass das Teil wirklich defekt/intakt ist. Wieder sollten wir Merkmalsraum, sigma-Algebra und Z-Dichte angeben, sowie die Ereignisse angeben. In einer Teilaufgabe wurde gefragt, wie groß die Wahrscheinlichkeit ist, dass der Test ein Teil als defekt markiert und in einer weiteren wie groß die Wahrscheinlichkeit ist, dass das Teil wirklich defekt ist, aber der Test intakt anzeigt. Insgesamt gab es für die 6 Aufgaben 24 Punkte zu holen. Um den Test zu bestehen, reichten 10 Punkte aus. Ich habe ganze 23 von 24 Punkten holen können und damit den Test bestanden! Den Test werden wir leider nicht wieder bekommen, können ihn jedoch unter Aufsicht einsehen.

Mündliche Prüfung über T3/T4 bei Martin Lehmann: Am 25.07.06 um 10:30 Uhr sollte ich meine Prüfung haben. Natürlich war ich schon früher da und dieses Mal wurden sogar Stühle auf dem Flur hingestellt, so dass ich mich nicht wie sonst immer zuvor auf den Boden setzen musste. Nachdem dann die laufende Prüfung zu Ende war, kamen alle Beteiligten aus dem Zimmer und Herr Lehmann meinte zu mir, dass es gleich los gehen würde, so dass ich nach kurzem Warten um Punkt 10:30 Uhr ins Zimmer gelassen wurde und meine Ausweise dem Beisitzer zur Identitätsfeststellung vorlegte, ging es dann los:
Herr Lehmann wollte mit T4 beginnen und fragte mich, welches Thema ich denn gern hätte. Auf diese Frage hatte ich mich schon eingestellt, allerdings wusste ich immer noch keine Antwort darauf. Sehr nervös war ich zwar nicht, trotzdem fiel mir spontan kein einziges Thema aus T4 ein und ein Lieblingsthema, welches ich sehr gründlich vorbereitet hatte, gab es für mich ebenfalls nicht. Also entschied ich mich dafür Herrn Lehmann die Wahl des Themas zu überlassen. Dagegen hatte er nichts einzuwenden und meinte, dass wir dann mit den Grundlagen beginnen, also Parallelrechner. Ich sollte also erstmal die Gründe für Parallelität aufzählen, worauf ich mich freute, da ich diese Liste auswendig gelernt hatte: Steigerung der Leistung durch Erhöhung des Durchsatzes und Verringerung der Antwortzeiten; Erhöhung der Zuverlässigkeit (wenn man mehrere Rechner das gleiche rechnen lässt, erhält man größerer Zuverlässigkeit das richtige Ergebnis, dadurch dass mehrere Rechner parallel das gleiche Problem unabhängig voneinander lösen); Erhöhung der Verfügbarkeit (wenn ein Rechner von vielen ausfällt ist das nicht so schlimm); Verringerung der Kosten; graduelle Anpassung (man konnte je nach Aufgabe, ein Rechnernetz aufsplitten oder zusammenschalten, um so viele Rechner zu benutzen, wie es am optimalsten ist) und als letzte erwähnte ich den Punkt, dass die Programmierung einfacher wäre. Daraufhin wollte Herr Lehmann von mir wissen, was genau ich darunter verstehen würde. Leider stand dazu nichts in seinem Skript (Folienkopien), so dass ich den genauen Grund auch nicht kannte. Ich vermutete aber, dass es Aufgaben geben würde, wo es auf Parallelität ankommt und es dann einfacher wäre, solche ein Problem verteilt auf mehrere Rechner zu berechnen als dieses Problem so umzuformen, dass ein einzelner Rechner es lösen könnte. Dann sollte ich etwas über Herrn Minskys Vermutung erzählen. Dieser Mann hatte mal gesagt, dass die Leistungssteigerung nur logarithmisch zur Prozessoranzahl anwachsen würde und begründete diese Vermutung mit dem Summationsproblem. Darin addiere man z.B. 8 Zahlen miteinander. Mit einem Prozessor kann man immer nur einen Befehl zur Zeit ausführen, so dass man 7 Zeiteinheiten braucht, um alle 8 Zahlen aufzusummieren. Hätte man genügend Prozessoren, könnte man im ersten Schritt immer jeweils zwei Zahlen miteinander addieren, so dass man für die Summe aller Zahlen nur 3 Zeiteinheiten benötigte, also log2(8)=2. Außerdem habe ich noch die These von Herrn Amdahl eingeworfen, wo es hieß, dass ein Programm immer aus einem seriellen Teil s und einen paralellisierbaren Anteil p besteht mit s+p=1. Hat man mehrere Prozessoren, kann man den p Anteil auf p/n reduzieren, im Grenzwertprozess erhält man als Formel für die Leistungssteigerung L(s)=1/s, also z.B. L(0,1)=10 und L(0,01)=100. Also wenn der Anteil des seriellen Anteils 10% beträgt, dann kann man die Geschwindigkeit um den Faktor 10 erhöhen. Als letztes wollte er von mir etwas über den Supercomputer BlueGene wissen. Genau hab ich mir den zwar nicht angeguckt, wusste aber noch, dass dieser aus PowerPC Prozessoren bestand. Mehrere davon auf einem Board, mehrere Boards zusammen in einem Schrank und viele von diesen Schränken wurden dann mittels unterschiedliche Verbindungsnetze verbunden. Diese Netze sollte ich dann auch noch aufzählen. Mir sind dann auch 4 von 5 eingefallen: Wartungsnetz, Synchronisationsnetz, Ein- und Ausgabenetz und das Datennetz. Das Reduktionsnetz hatte ich vergessen meinte Herr Lehmann, zu dem ich noch etwas sagen sollte. Ich wusste aber nichts darüber und er musste gestehen, dass er selbst in der Vorlesung nur sehr wenig darüber erzählt hatte. Dann kam er auf das Datennetz zu sprechen, welches wie ein Torus (sieht aus wie ein Autoreifen) aufgebaut ist. Nachdem er mich gefragt hatte, ob ich wüsste, was ein Torus ist und ich diese Frage bejahte und versuchte einen aufzumalen, fragte er mich, warum man sich für einen Torus entschieden hatte. Nach ein bisschen überlegen und angucken meiner Zeichnung fing ich an, dass in einem Torus der Querschnitt ein Kreis wäre und die Rechner auf diesem Kreis in dieser Ringstruktur gut kommunizieren könnten. Und ganz viele Kreise wiederrum liegen auf einem Kreis und von oben hätte man wieder Kreise für jeden Punkt auf einen der ersten erwähnten Kreise, so dass die Laufzeiten optimal wären. "Ja! Laufzeiten ist das Stichwort!" sagte Herr Lehmann erfreut. "Man kann eine Obergrenze für die Laufzeiten angeben" fügte er hinzu. Anschießend sollte ich anhand einer Beispiels von 1000 Rechner die Laufzeit in einem Ring, Zylinder und anschließend in einem Torus angeben, wobei seine letzte Frage dann war, wie man einen Torus noch optimieren könnte und zwar im Verhältnis von der Anzahl der Rechner auf einem Kreis und die Anzahl der Kreise, die dann wieder auf einem Kreis angeordnet waren. Nachdem er den Beisitzer gefragt hatte, wie man wohl das Optimum berechne und dieser es - wie ich - nicht wusste, gab er mir dann nach ein bisschen im Kopf schätzen zwei Antworten zur Auswahl: 2te oder 3te Wurzel, wobei ich mich für die zweite Antwort entschied und Herr Lehmann T4 dann abgeschlossen hatte.
Auch zu T3 durfte ich mir ein Thema aussuchen, aber da ich mich wieder nicht entscheiden konnte und ihm die Wahl überlassen hatte, bekam ich das Thema Scheduling. Ich sollte mal erzählen, was es für Arten gibt in einem Terminbetrieb. Ich erklärte, dass in einem Terminbetrieb verschieden Aufträge in unterschiedlichen Perioden ankommen und eine bestimmte Rechenzeit benötigen und zu einem bestimmten Zeitpunkt bearbeiten werden mussten. Nachdem ich Rate-Monotonic erwähnt hatte, sollte ich ein Beispiel aufmalen, an dem ich erklärte, wie Rate-Monotonic mit festgelegten Prioritäten für die einzelnen Aufträge funktioniert und was passiert, wenn man den Aufträgen andere Prioritäten zuordnet. In meinem Beispiel (2 Aufträge, jeweils mit Bearbeitungszeit von 1 Zeiteinheit und der erste Auftrag mit Periode 2, der zweite mit Periode 3) waren beide Arten gültige Schedules. Zudem merkte ich an, dass in diesem Beispiel er reichen würde, wenn man sich 6 Zeiteinheiten betrachte, weil es das kleinste gemeinsame Vielfache (kgV) von 2 und 3 ist und zudem lässt sich beiden Fällen keiner der beiden Aufträge noch zusätzlich verlängern, da kein Puffer (ungenutzte Zeit) zwischen den einzelnen Aufträgen vorhanden war. Earliest-Deadline und Least-Laxity habe ich dann auch beide erklärt und gesagt, dass Earliest-Deadline (Der Auftrag wird vorgezogen, welcher zuerst fertig sein muss) für den Monoprozessorbetrieb optimal und Least-Laxity (Der Auftrag wird vorgezogen, welcher am wenigsten Freiraum hat - also Periode minus Bearbeitungszeit) ist im Multiprozessorbetrieb optimal, wobei ich nur auf sein Beispiel aus der Vorlesung verwies, dass man dies zeigen könnte. Am Ende sagte Herr Lehmann, dass der Verwaltungsaufwand nicht berücksichtigt wäre und was ich mir darunter vorstellen würde und wie man dieses Problem umgehen könnte sollte ich ihm sagen. Ich antwortete, dass man z.B. den Systemzustand einer Rechners retten müsste, wenn man einen Auftrag unterbrechen würde, um einen anderen Auftrag bearbeiten zu können und dass man mittels eingeplanter Puffer (ungenutzte Zeiteinheiten im Schedule) dort die Verwaltung tätigen konnte und evtl. andere Aufträge dort bearbeiten könnte. Damit war die Prüfung dann zu Ende und ich sollte kurz raus gehen. Nach kurzer Zeit durfte ich wieder ins Zimmer kommen und nachdem ich mich gesetzt hatte, sagte Herr Lehmann zu mir: "Es gibt nichts zu beanstanden" und ich bekam (wieder einmal) eine 1,0! Zu meinem Erstaunen wusste Herr Lehmann über meine anderen Noten Bescheid, da er zu mir noch sagte: "Ich habe von einer anderen Prüfungsstelle gehört, dass Ihre anderen Prüfungen bisher ebenfalls so gut gelaufen sind?!" und ganz Unrecht hat er damit nicht... :-)

Mündliche Prüfung über F3/F4 bei Rüdiger Valk: Am 23.08.06 um 12:10 Uhr stand die nächste Prüfung an, aber erst um 12:30 Uhr war ich dann schließlich dran.
Als erstes wurde ich gefragt, was in F3 so dran kam. Ich nannte u.a. die Turingmaschine (TM), Berechenbarkeit, Algorithmen und die Analyse von Algorithmen sowie Komplexitätsklassen. Er fügte hinzu: Entscheidbarkeit (Klasse REC) und wollte die Definition von mir wissen. Ich sagte, dass eine Menge M, die Teilmenge von Σ* ist, entscheidbar ist, genau dann wenn die charakteristische Funktion χM: Σ* {0,1} berechenbar ist oder wenn es eine TM gibt, die die Menge akzeptiert M = L(A) und bei jeder Eingabe w aus Σ* anhält. Daraufhin wollte er wissen, ob alle akzeptierten Sprachen entscheidbar sind. Ich erwähnte die größere Klasse der aufzählbaren Mengen (Klasse: RE), worin alle Mengen akzeptiert werden, sowie die noch größere Klasse der abzählbaren Mengen. Zudem gab ich das Halteproblem H = {<A><w> | die TM A hält bei Eingabe von w an}, welche eine Teilmenge von {0,1}* ist. Er wollte von mir auch die Definitionen für aufzählbare Mengen wissen. Eine Menge M ist genau dann aufzählbar, wenn es eine totale turing-berechenbare Funktion g: N Σ* gibt mit g(N) = M, wobei N die Menge der natürlichen Zahlen ist. Im Gegensatz dazu braucht man bei der Definition der Abzählbarkeit von g nicht zu verlangen, dass sie berechenbar ist, g kann da eine surjektive Abbildung von N nach M sein. Schön wär es zudem gewesen, dass ich wüsste, warum H zwar aufzählbar, aber nicht entscheidbar ist. Dazu meinte er nur, dass es vielleicht auch gar nicht im Skript stand. Dann kamen TM dran, wie sie definiert sind. Ich gab zu einer deterministischen TM (DTM) das Sieben-Tupel an: A = (Z,Σ,Γ,δ,q0,#,Zend) und erläuterte jeweils die Elemente (Zustandsmenge, Eingabealphabet, gesamtes Bandalphabet mit weiteren Zeichen, Übergangsfunktion, Startzustand, Symbol für das unbeschriebene Feld, welches in Γ, aber nicht in Σ ist und eine Teilmenge von Z mit den Endzuständen). Bei einer nicht-deterministischen TM (NTM) wird das delta durch die Übergangsrelation K ersetzt, wodurch es in einem Zustand mehrere Möglichkeiten gibt. Dies ist eigentlich der einzige Unterschied, da beide die gleichen Sprachen akzeptieren können. Dann wollte er noch wissen, wie man eine NTM in eine DTM überführen kann. Genau wusste ich das nicht, sagte, dass man in einem Zustand mehrere Möglichkeiten der Folgekonfigurationen hat und man diese in einem Baum aufschreiben kann und darauf das delta konstruieren muss. Das geht mit einer Breitensuche, warum eine Tiefensuche nicht geht ist, weil man dann in einen Pfad gelangen könnte, wo die TM nicht anhält. Dann schrieb Herr Valk mir T(n) aufs Blatt und wollte wissen, was man damit bezeichnet. Die Zeitkomplexität, was der Anzahl der maximalen (worse-case) durchlaufenden Konfigurationen bei einer DTM ist. Da es bei einer NTM mehrere Rechnungen zu einem Eingabewort gibt, wird dort die minimale Schrittanzahl gezählt. Dann gibt es noch die Speicherplatzkomplexität S(n). Hier wird ebenfalls die maximale Anzahl der benutzten Felder gezählt. Es kamen dann die Klasse P und NP dran. P ist dabei die Klasse aller Sprachen, die in polynomieller Zeit von einer DTM akzeptiert wird. Im Gegensatz dazu wird bei der Klasse NP von einer NTM akzeptiert. Da wir dann auf NP-Vollständigkeit zu sprechen kamen, habe ich die polynomielle Reduktion erklärt. LA sei dabei eine Teilmenge von Σ* und LB von Γ* und es gibt eine DTM, die in Polynomzeit eine Funktion f: Σ* Γ* berechnet, dann gilt: LA pol LB genau dann, wenn w in LA <=> LB gilt. Warum nicht einfach eine Implikation gilt ist, da dieser Satz auch für die Nein-Antworten gelten soll. Bei Parallele Algorithmen sollte ich erstmal die verschiedenen Komplexitätsmaße aufzählen, die ich kenne: W (Arbeit, Anzahl der Schritte), S (Speicher), T (Zeit), P (Prozessorkomplexität) und bei Verteilten Algorithmen gibt es noch die Nachrichtenkomplexität. Ich wurde gefragt, wann ein paralleler Algorithmus optimal sei und ich antwortete, dass W(n) in Θ(T*(n)) gelten muss, wobei T*(n) die beste Zeitkomplexität im sequentiellen Fall ist. Schlechter darf der Parallele Algorithmus nicht sein, da man diesen sonst serialisieren könnte, um das Problem mit einem sequenziellen Algorithmus auf einem Prozessor schneller lösen könnte. Dann sollte ich das Parallele Sortieren genauer beschreiben. Ich wusste lediglich, dass es wie Merge Sort funktioniert und habe das Aufteilen und wieder zusammenfügen (was mit Hilfe des optimalen Mischen geht) skizziert. Leider wusste ich die Komplexität nicht (O(log(n)*log(log(n))). Das Aufteilen sollte entgegen aller Annahmen von linearen Aufwand ganz ohne auskommen, da immer ein Zahlenpaar als ein Unterproblem zusammengefasst werden können. Vom Optimalen Mischen (für das zusammen führen der sortierten Listen) wusste ich die Komplexität leider auch nicht (O(log(log(n)))) Bei den Verteilten Algorithmen sollte ich die Komplexität des Echo-Algorithmus sagen, die mir auch nicht einfiel, nachdem ich erklärt habe, was der Unterschied zwischen Parallele und Verteilte Algorithmen sind (bei Parallelen wird ein Problem aufgeteilt und parallel gelöst, bei Verteilten besitzt jeder Prozessor einen Algorithmus, der selbstständig läuft und mittels Nachrichten mit den anderen kommuniziert). Lediglich die Nachrichtenkomplexität im gerichteten Ring (O(n2)) wusste ich noch. (Im ungerichteten Ring wäre das O(n*log(n)) gewesen) Zum Schluss kamen dann auch noch Petrinetze (S/T-Netze) dran, die ich erklären durfte. Ich habe zuerst ein allgemeines Netz N formal mit dem Tripel N = (P,T,F) definiert und hinzugefügt, dass man oft noch eine Gewichtungsfunktion W hat. P ist die Menge aller Plätze bzw. Stellen, die die passiven Elemente eines Netztes darstellen und T (Menge der Transitionen) die aktiven und F ist die Flussrelation. Ich sollten den Begriff der Beschränkheit erklären (ein Netz ist genau dann beschränkt, wenn alle Plätze beschränkt sind) und anschließend ein unbeschränktes Netz aufzeichen. Ich entschied ich für die einfaches Variante: eine Transition, ein Platz und eine Kante von der Transition zum Platz. Die Transition ist permanent aktiviert und kann unendlich viele Marken auf diesen Platz legen. Ich wurde gefragt, ob das Netz lebendig ist? Ja, denn lebendig bedeutet, dass in einer unendlichen Schaltfolge alle Transitionen unendlich oft schalten müssen. Verklemmungsfrei ist das Netz auch, denn in einer Markierung liegt eine Verklemmung vor, wenn keine Transition mehr schalten kann. Es gibt dann auch noch die partielle Verklemmung, wo dann nur einige Transitionen immer schalten können, andere aber nicht. Dann sollte ich eine formale Definition aufschreiben, wann eine Transition t aktiviert ist: Wenn alle Eingangsplätze der Transition gleich oder mehr Marken besitzen als das Gewicht der Kante, die jeweils von einem Platz zur Transition führt. Herr Valk wollte dann noch auf den Unterschied zwischen lebendig und verklemmungsfrei kommen. Es gilt: lebendig => verklemmungsfrei, anders herum nicht, ein Gegenbeipsiel, welches ich aufmalen sollte ist: (.) [t1] ( ) [t2] denn t1 kann zu Anfang schalten, später aber nie wieder, denn dann befindet sich die einzige Marke auf dem rechten Platz und dann kann t2 immer schalten. Das war es dann glaube ich auch und wurde raus geschickt. Als ich wieder reingehen durfte und mich gesetzt habe, wurde ich gefragt, was ich für ein Gefühl hatte. Wahrheitsgemäß sagte ich, dass ich das mit den ganzen Komplexitäten nicht so gut konnte. Herr Valk stimmt mir da zu und sagte, dass es ihm auch Leid täte, aber das mit dem Parallelen Sortieren war einfach nicht gut und für eine 1 hätte man schon etwas mehr Ansprüche. Deswegen habe ich eine 2+, also eine 1,7 bekommen. An der Stelle kann ich allen anderen, die dies hier lesen und ihre Prüfung noch vor sich haben, nur empfehlen nicht auch den gleichen Fehler zu machen. Also: schön die Komplexitäten lernen! Mir fiel das schwer, da sie doch alle sehr ähnlich für mich waren...

Diese Scheine habe ich gemacht:
M4, MEF4*, T4, T4 P
*: Der erste Schein, den ich alleine geholt habe. Normalerweise und bisher habe ich immer in einer Gruppe die Übungsaufgaben gelöst und abgegeben.

Links

Lehrveranstaltungen Department Informatik SS06:
Externer Link http://www.informatik.uni-hamburg.de/Info/Studium/Lehrtableau/06s-lehrtableau.shtml

Lehrveranstaltungen Department Mathematik SS06:
Externer Link http://www.math.uni-hamburg.de/teaching/lectures/1106saus.html

zum Anfang


Ende Grundstudium! Nach 4 Semestern habe ich das Grundstudium in der Regelstudienzeit beendet und fange mit dem 5. Semester im Hauptstudium an, welches weitere 4 Semester dauern soll. Im Hauptstudium habe ich mich dann für das Profil Softwaresystemtechnik (SST) mit dem Schwerpunkt Softwareentwicklungsmethodik (SEM) entschieden.


Hauptstudium

Und hier soll dann später mehr zum Hauptstudium stehen, wie das dort alles ist. Und dann auch etwas zum Baccalaureat, welches man als Diplom-Student nebenbei machen kann, wenn man seinen Projektbericht vorher als Baccalaureatsarbeit anmeldet. Für das Bacc. muss man je eine Prüfung in angewandter, praktischer, technischer und theoretischer Informatik machen. Diese kann man sich dann auch fürs Diplom anrechnen lassen, desweiteren muss man noch zwei Prüfungen in theoretischer Informatik machen (also insgesamt hat man dann 3), 1 Prüfung im Schwerpunkt, 3 Scheine aus den Grundlagen, einen Projektbericht und ein Seminarschein, sowie je eine Teilnahmebestätigung von einem weiteren Seminar und einem zweiten Projekt.

zum Anfang


5. Semester Wintersemester 2006/2007

Im fünften Semester, mein erstes Semester im Hauptstudium, welches am 23. Oktober 2006 anfing und bis zum 10. Februar 2007 lief, habe ich folgende Veranstaltungen besucht:

*: PNL (Diplom) = FGI2 (Bachelor)

In diesem Semester gibt es einige alternierende Veranstaltungen, d.h. dass die eine Woche am Do. morgen zur STE Vorlesung musste und erst um 16:00 die DOS Vorlesung hatte und in der nächsten Woche hatte ich am Do. Morgen nur die PNL Vorlesung, dafür dann später die STE Übung und die DOS Vorlesung. Am Freitag wechselten sich die DKR Übung mit der DKR Vorlesung ab und jede zweite Woche hatte ich am Abend noch die DOS Übung. So sah mein Stundenplan fürs fünfte Semester aus (In Klammern steht noch die Raumbezeichnung):

Stundenplan WS06/07
Zeit Montag Dienstag Mittwoch Donnerstag Freitag
8-9 OOSE1 (D-220) STE (Phil C) PNL Ü (C-104) PNL (Phil C)
9-10 DKR Ü* (D-125)
10-11 STE* (Phil C) DKR* (B-201)
11-12
12-13 DKR (B-201) PNL (Phil A)
13-14
14-15 AZSE (D-129) STE Ü* (D-125a)
15-16
16-17 DOS (B-201) DOS Ü* (B-201)
17-18
18-19

Legende:
PNL: Prozesse und Nebenläufigkeit
PNL Ü: Übung zu PNL
STE: Softwaretechnik und Softwareergonomie (die Vorlesung am Do. fand alle 2 Wochen statt)
STE Ü: Übung zu STE (fand alle 2 Wochen statt, alternierend zu der Vorlesung am Do.)
DOS: Diskrete Optimierung und Simulation
DOS Ü: Übung zu DOS (fand alle 2 Wochen statt)
DKR: Datenkommunikation und Rechnernetze (die Vorlesung am Fr. fand alle 2 Wochen statt)
DKR Ü: Übung zu DKR (fand alle 2 Wochen statt, alternierend zu der Vorlesung am Fr.)
OOSE1: Projekt Objektorientierte Softwareentwicklung (Teil 1)
AZSE: Seminar Architekturzentrierte Softwareentwicklung

Zusätzlich habe ich das Praktikum Agile Software-Entwicklung mit Open Source Software in der vorlesungsfreien Zeit als Blockpraktikum gemacht (12.-14.02.07).

Prüfungen und Scheine

Folgende Scheine habe ich gemacht: PNL, STE, DOS, DKR, AZSE (Leistungsnachweis), Praktikum OpenSource.

Zudem habe ich vor Prüfungen in diesen Fächern abzulegen: PNL, DKR und DOS.

Mündliche Prüfung über PNL bei Rüdiger Valk: Am 28.02.07 um 11:15 Uhr hatte ich meine erste Prüfung im Hauptstudium. Diese Prüfung hatte ich beim gleichen Prüfer wie auch die Prüfung über F3/F4. Als ich dann reingebeten wurde und mich erstmal hingesetzt habe, fing die Prüfung nicht sofort an, sondern Herr Valk hat sich noch mit dem Beisitzer (Daniel Moldt) über irgendwelche organisatorischen Dinge unterhalten, die noch erledigt werden müssten. Um 11:20 Uhr schrieb Herr Valk auf einen Zettel die Uhrzeit, das Fach PNL und die Endzeit (11:40 Uhr). Vor mir hatte er noch andere Fächer abgeprüft und auf seiner Liste war ich wohl der dritte Prüfling. Zuerst sollte ich aufzählen, welche Themen in PNL so behandelt wurden. Ich fing dann mit dem ersten Kapitel Striktornungen an, dann Petrinetz und erwähnte kantenkonstante gefärbte, gefärbte Netze und auch minimal objektbasierte Netze (MOB-Netze) und Referenznetze. Anschließend hatten wir die Harel-Graphen (Statecharts) und nach kurzem Überlegen Prozessalgebra. Ich nannte dann noch probabilistische Algorithmen und Verifikation. Dann unterbrach mich Herr Valk und meinte, wir könnten dann ja mal anfangen und zwar bei den probabilistischen Algorithmen. Mir wären Petrinetze lieber aber ok, fangen wir in der Mitte an. Ich sollte erläutern, was probabilistische Algorithmen sind und wofür sie gut sind. Daraufhin antwortete ich, dass diese sich im Gegensatz zu vollständig deterministischen Algorithmen darin unterscheiden, dass der Zufall eine Rolle spielt. Es gebe zwei Arten von probabilistischen Algorithmen, einmal diejenigen, die bei Beginn den Zufall entscheiden lassen und anschließend einen aus vielen deterministischen Algorithmen auswählt und diesen dann benutzen und dann gibt es die anderen, die im Ablauf immer wieder den Zufall eingebaut haben, um eine Entscheidung zu treffen. Der Vorteil gegenüber den deterministischen Algorithmen liegt darin, dass die probabilistischen Algorithmen sehr komplexe Probleme überhaupt oder besser lösen können. Ich sollte dann ein Beispiel nennen, welches Problem deterministisch gar nicht lösbar wäre und mit einem Tipp fiel mir dann nur das Konsensproblem ein, was dann auch richtig war und wohl ein sehr wichtiges Beispiel. Dann sollte ich natürlich erstmal erläutern, was wir unter dem Ausfallkonsens verstanden haben und welche drei Voraussetzungen gelten müssen. Beim Konsensproblem geht es darum, dass sich mehrere Prozessoren mit Nachrichten einigen müssen, z.B. wer als nächstes einen Schreibzugriff auf eine zentrale Datenbank machen darf oder ich nannte auch die in der Vorlesung vorgestellt militärische Variante, dass sich mehrere Generäle einigen müssen, wann sie zusammen angreifen. Dabei können Prozessoren ausfallen. Die drei Voraussetzungen lauten: 1. Termination (alle zuverlässigen Prozessoren entscheiden sich), 2. Einigung (wenn sich ein zuverlässiger Prozessor für einen Wert v entscheidet, dann entscheiden sich alle anderen zuverlässigen Prozessoren auch für den Wert v) und 3. Gültigkeit (starten alle Prozessoren mit dem gleichen Wert v, so entscheiden sich alle zuverlässigen Prozessoren für genau diesen Wert v). Für den einfachen Ausfallkonsens haben wir gezeigt, dass mindestens f+1 Runden gebraucht werden, wobei f die Anzahl der ausfallenden Prozessoren ist. Wie es zu dem f+1 kommt, sollte ich dann erklären. Ich habe dann gesagt, dass in f+1 Runden mindestens ein zuverlässiger Prozessor die Nachricht erhalten muss und dieser schickt die Nachricht dann an alle anderen Prozessoren weiter. Somit haben dann am Ende alle Prozessoren die gleichen Werte. Die Schranke, dass nf+2 gelten muss, stimmte wohl nicht. Dies versuchte mir Herr Valk wie folgt klar zu machen: wenn n=f gilt, dann gibt es keine zuverlässigen Prozessoren. Die drei Voraussetzungen sind aber trotzdem alle erfüllt (haben wir dann zusammen alle nachgeprüft) und da keine dieser Voraussetzungen verletzt wird, kann n=f sein. Danach kamen wir über den byzantinischen Konsens zu sprechen und was der Unterschied zum einfachen Ausfallkonsens ist. Beim byzantinischen Konsens können Prozessoren Nachrichten fälschen, verschiedene Nachrichten weiterleiten, Nachrichten unterdrücken, Ausfall erleiden und vortäschen. Wir hatten zwei verschiedene Algorithmen, einmal der exponentielle Algorithmus und dann den polynomiellen Algorithmus. Beide brauchen O(n3) viele Nachrichten. Der exponentielle Algorithmus benötigt f+1 Runden und n3f+1, die Nachrichten haben exponentielle Größe. Beim polynomiellen Algorithmus werden 2(f+1) Runden benötigt und n4f+1 muss gelten, dafür haben die Nachrichten alle eine konstante Größe. Das alles war für den synchronen Fall, er wollte dann noch von mir wissen, wie es im asynchronen Fall aussehe. Ich antwortete, dass es da keinen Algorithmus gibt, was korrekt war, nicht mal für einen fehlerhaften Prozessor, also schon für f=1 gibt es keinen Algorithmus, der das Problem lösen kann.
Anschließend wechselten wir das Thema zu Verifikation. Zuerst wollte Herr Valk wissen, was man darunter versteht. Ich antwortete, dass man eine Systemspezifikation überprüft. Man kann System auch testen, aber das geht nur bei einfachen Systemen und mir zunehmender Komplexität, z.B. durch Nebenläufigkeit geht das nicht mehr so gut. Ich glaube ich habe dann auch kurz die Kripke-Strukturen und das Model Checking erwähnt. Man kann die Verifikation ja auch auf der Prozessalgebra anwenden sagte Herr Valk dann. Was ist denn das System und was verifiziert man? Die Frage hat mich doch sehr überrascht, weil ich mich nur an die Skizzen (Dreiecke) erinnerte, die an die Tafel gezeichnet bzw. auf den Folien gezeigt wurden, jedoch nicht mehr an die Beschriftung. Nachdem mir Herr Valk ein bisschen Überlegzeit gegeben hatte und in der ich trotzdem nicht auf eine Antwort kam, fragte er, wie wir das am Alternierbitprotokoll gemacht hatten. Ich sollte es kurz einführen und dann angeben, wie es spezifiziert ist. Ich machte eine kleine Skizze und erklärte dabei: Man hat einen Sender und einen Empfänger, die über zwei störanfällige Kanäle miteinander verbunden sind. Der Sender empfängt Daten über einen Eingangskanal A und sendet diese über den störanfälligen Kanel an den Empfänger. Dieser quittiert den korrekten Erhalt der Daten über einen Rückkanal und leitet dieser Datei dann über einen Ausgangskanal C weiter. Das Alternierbitprotokoll stellt sicher, dass jedes Datum, das der Sender auf dem Kanal A empfängt, beim Empfänger auf dem Ausgangskanal C weitergeleitet wird und genau einmal. Also keine Duplizierung, keine Verfälschung, kein Verlust und zudem wird die Reihenfolge der Daten einhalten, die beim Sender eintreffen. Außerdem existiert ein Credit von 1, d.h. der Sender empfängt zunächst Daten, anschließend leitet der Empfänger die Daten auf dem Ausgangskanal C weiter. Erst dann empfängt der Sender auf dem Eingangskanal A weitere Daten. Das Alternierbitprotokoll verhält sich fair, da jedes Datum, welches beim Sender ankommt nach endlicher Zeit beim Empfänger korrekt ankommt, dann auf dem Ausgangskanal C weitergeleitet wird und die Quittung an den Sender auch mal ungestört ankommt. Als rekursive Spezifikation habe ich dann X = rAsCX angegeben. Dazu sollte ich dann auch die allgemeine Definition angeben: Xi = ti(X1, ..., Xn) wobei der rechte Seite bedeutet, dass dort ein Prozessterm mit möglichen offenen Variablen steht. Prozessgraph Alternierbitprotokoll Dazu sollte ich dann noch den Prozessgraphen aufmalen. Die Ableitungsregeln der Rekursion konnte ich nicht genau aufschreiben, sollte dann aber auch noch Rekursives Definitions Prinzip (RDP), Rekursives Spezifikations Prinzip (RSP) und eine Lösung einer Rekursion erklären können. Noch zur Prozessalgebra habe ich das BPA Kalkül mit den 5 Axiomen (Kommutativität, Assoziativität und Idempotenz von +, Rechtsdistributivität und Assoziativität von *) und 3 Regeln (Substitution, Äquivalenz, Kontext). Es hätte wohl gereicht alles kurz aufzuzählen, was ich bei den Regeln auch gemacht habe. Die Axiome wollte ich kurz aufschreiben, hab sie dann zum größten Teil nur sehr grob skizziert, Herr Valk hat da auch nicht sehr interessiert zugeguckt, soweit ich das mitbekommen habe. Dann sollte ich aber noch ein Axiom zum Paralleloperator (M1) und ein Axiom zum Kommunikations-Merge-Operator (CM8 hatte ich aufgeschrieben und erklärt) aufschreiben, an denen Herr Valk mehr interessiert war.
Wir kamen dann wieder zurück zur Verifikation. Ich sollte die zwei Klassen bei Petrinetze angeben (Markierungs- und Lebendigkeitsinvarianteneigenschaft) und Beispiele zum ersten geben: K-Beschränkheit, Markierungsausschluss und Verklemmungsfreiheit, wobei alle die Form "Für alle erreichbaren Markierungen m gilt: Π(m)", mit Π(m) ist ein Markierungsprädikat der Form Σp Element von A kpm[p]k. Leider ist hab ich vergessen, dass auch aussagenlogische Verknüpfungen erlaub sind. Herr Valk meinte auch, da fehlt noch was, aber ich sollte erstmal zur Verklemmungsfreiheit die Formal aufschreiben. Weil ich immer noch nicht drauf gekommen bin, sollte ich das auch für den Markierungsausschluss machen. Ich sagte, dass es zwei Formeln gab, wobei ich dann folgende gelernt und aufgeschrieben hatte: m[p1] + m[p2] 1. Für alle, die noch Prüfung haben, würde ich die andere Form: (m[p1] = 0 oder m[p2] = 0) Dann hat man eine Eselsbrücke zu den aussagenlogischen Elementen. Zu der zweiten Invarianteneigenschaft sollte ich irgendwie gar nichts sagen. Den Unterschied zwischen Beschränkheit und k-Beschränkheit (hier hat man ein festes k gegeben, ist weniger komplex als allgemeine Beschränkheit) sollte ich dann noch erklären und wie man prüft, dass etwas unbeschränkt ist (Überdeckungsgraph). Dann sollte ich erklären, wie der Algorithmus im Groben funktioniert, also wann das ω eingesetzt wird. Ich habe dann zwei Markierungen m und m' eingezeichnet (Ausschnitt aus einem Erreichbarkeitsgraphen), wobei m' mit σ Element aus T* von m erreichbar ist. Wenn m' m gilt (Markierungen als Vektoren betrachtet, komponentenweise Vergleich: überall gleich und in einer Komponente echt größer), dann kann σ danach immer wieder ausgeführt werden, weil ja mehr Marken vorhanden sind, damit auch alle Transitionen aktiviert sind. Frage von Valk: Geht das auch bei Zählerautomaten? - Nein, geht nicht, weil es spezielle Übergangsrelationen gibt, z.B. eine, die auf Null testet. Es kann sein, dass während des Pfades σ einmal eine Stelle keine Marken enthält, dann würde beim Zählerautomaten eine andere Übergangsrelation greifen und man würde nach m' mit der gleichen Schaltfolg σ zu einer ganz anderen Markierung gelangen. Das war dann auch schon meine letzte Antwort gewesen und nachdem ich kurz draußen warten sollte, wurde mir dann die Note 1,7 mitgeteilt mit der Begründung, dass ich alles ganz gut konnte und auch mitgedacht habe, aber da ich bei mehr als einer Frage nicht auf die Antwort gekommen bin, konnte ich kein "Sehr gut" mehr bekommen. Bei einer Lücke würde man wohl noch eine 1- (1,3) bekommen, ich habe dann die nächst schlechtere Note, also eine 2+ (1,7) bekommen. Bevor ich dann gehen durfte, hat mich Herr Valk noch gefragt, ob ich noch eine Prüfung bei ihm machen werde, z.B. LOS oder STH. STH werde ich nicht hören und LOS werde ich erst im nächsten Semester hören und dann wohl auch bei jemand anderes die Prüfung ablegen. Er meinte nur noch, dass er sich gut vorstellen kann, dass ich in seinem Fachbereich eine Arbeit schreiben könnte und ich mir das noch überlegen sollte.

Mündliche Prüfung über DKR bei Bernd Wolfinger: Am 19.03.07 um 14:00 Uhr hatte ich meine zweite Hauptstudiumsprüfung. Zuerst wurde ich gefragt, welche primären Signalklassen es gibt und ich erwähnte die vier (Signal-/Zeitkoordinate: diskret bzw. kontinuierlich) und habe teilweise Skizzen angefertigt. Außerdem sagte ich, dass diskrete Zeitkoordinate nicht zwingend äquidistant heißt. Dann sollte ich sagen, ob und wie man ein Signal einer Klasse in eine andere umwandeln kann. Ich griff PCM auf und erklärte daran die Umwandlung eines analogen in ein digitales Signal über Abtastung und Quantisierung (bei uns in 256 Zustände, nicht gleichmäßige Unterteilung, je Zustand 8 Bit, in Amerika 7 Bit). Abtastfrequenz (8kHz) bei Sprache (ca. 4kHz) habe ich mit Shannon (Abtasttheorem) erklärt und als Abtastrate 125µs angegeben. Auf Nachfrage habe ich dann nochmal genauer erklärt, dass es beim Abtastheorem auf die maximale Frequenz und nicht auf die Bandbreite ankommt. Nur bei Basisbandübertragungen ist die Bandbreite gleich der maximalen Frequenz. Wir kamen dann zur Amplitudenmodulation (AM), was dort übertragen wird (Seitenbänder, Träger). Habe noch die verschiedenen Arten von AM aufgezählt und erklärt. Herr Wolfinger hat dann in mein Diagramm der Spektralfunktion dann ein νT und ein νS eingezeichnet und wollte wissen, welche und wie viele Frequenzen übertragen werden. Korrekte Antwort wäre hier gewesen: drei, nämlich: νT-νS,νT,νT+νS. Ich sollte außerdem noch die Funktion für ein Sinussignal aufschreiben. Die Amplitude und die Phase konnte ich noch gut unterbringen, aber bei der Frequenz hatte es zu lange gedauert.
Als nächstes sollte ich CSMA und p-persistent erklären und sollte noch sagen, ob das p von der Last abhängig sei. Das ist der Fall, bei hoher Last sollte das p klein gewählt werden und veranschaulichte das an einem Beispiel. Dann sollte ich noch das exponential backoff erklären. Die Wartezeit verdoppelt sich da und Herr Wolfinger wollte genau wissen, wie man auf die zufällige Zeit kommt. Es wird eine Zeit aus dem Intervall [0;T] gewählt, gleichverteilt, deswegen im Mittel T/2 und wenn dann die Leitung immer noch nicht frei wird, wird das Intervall auf [0;2T] verdoppelt, im Mittel wird dann T zufällig gezogen.
Anschließend sollte ich erklären, was PBX (Private Brance Exchange) ist und Vorteile und Nachteile zwischen Leitungsvermittlung und Paketvermittlung erläutern. U.a. kann man bei Leitungsvermittlung bestimmte Garantien machen, der Aufbau dauert aber entsprechend, was für kleine Dateneinheiten nicht sehr sinnvoll ist. Dann wollte Herr Wolfinger wissen, was bei einem Bus besser sei: Leitungs- oder Paketvermittlung. Da war ich dann etwas überrascht, weil ich das nur von Vermittlungsrechner kannte. Für alle, die auch diese Frage vorgesetzt bekommen: auch beim Bus kann man store-and-forward verwenden und zwar in den einzelnen Stationen. Diese speichern die zu sendenden Pakete solange zwischen bis der Bus frei ist. Dann sollte ich sagen,was ich bevorzugen würde, wenn man Sprache oder eine große Datei überträgt. Die richtige Antwort wäre wohl: "Es kommt drauf an" gewesen, denn je nach Last und Bandbreite und Durchsatz kann das eine oder das andere besser sein. Dass ein hoch ausgelastetes Ethernet nicht besser als Schmalband-ISDN (S-ISDN) ist, wusste ich auch und daraufhin sollte ich ein Diagramm aufzeichnen, wie die erwartete mittlere Warteschlangenlänge (y-Achse) in Abhängigkeit der momentanen Auslastung ρ (x-Achse) ist. Ich zeichne zuerst eine Art Exponentialfunktion. Wolfinger wollte wissen, wo die (senkrechte) Asymptote sei. Bei 1.0 natürlich, denn es gibt keine Auslatung größer als 1. Wenn man aber mit der Auslastung gegen 0 geht, dann hat man für die mittlere Wartezeit immerhin die Bedienzeit, also darf die Funktion bei ρ=0 nicht bei y=0 sein, sondern etwas nach oben versetzt das Ganze.
Kurz vor Schluss sollte ich noch die Betreiberhierarchie erklären. Habe u.a. Carrier erwähnt und bin dann auf Gateways und deren Aufgaben (u.a. Accounting, Fehler-, Flusskontrolle, ...) eingegangen. Und zum Schluss sollte ich noch etwas zur Last sagen. Wie ist das definiert: L=L(U,S,IF,T). Wichtig ist, dass es L=L(...) ist und nicht ein Tupel ist, da die Last von diesen Parametern abhängt. Habe noch eine Skizze angefertigt und Primär- und Sekundärlast erklärt. Bevor ich dann rausgehen durfte, sollte ich noch kurz sagen, ob ich wüsste, was ein Benutzerverhaltensautomat (BVA) sei. Sagte nur, dass ich mich an das Programm aus den Übungen erinnerte und was wir damit in den Übungen gemacht hatten. Erwartet hatte Herr Wolfinger an dieser Stelle die Definition mit den 4 Markozuständen sagte er mir später.
Der erste Teil lief ganz gut und da dachte Herr Wolfinger noch, dass er mir ein Sehr gut geben könnte, aber die Sinusfunktion hätte ich nicht so gut drauf gehabt und später auch das mit der Betreiberhierarchie und dem BVA, deswegen hat er mir dann eine 2,3 (also 2-) gegeben. Es stimmt auf jeden Fall, dass er Karteikarten benutzt, auf denen wohl grob die Themen stehen. Trotzdem kann er dann aufbauend auf eine Antwort noch etwas mehr fragen. Übrigens sahen diese Karten schon etwas älter und mitgenommen aus. Ebenfalls die Box, in der er sie aufbewahrt.

Links

Lehrveranstaltungen Department Informatik WS06/07:
Externer Link http://www.informatik.uni-hamburg.de/Info/Studium/Lehrtableau/06w-lehrtableau.shtml

zum Anfang


6. Semester Sommersemester 2007

Im sechsten Semester, welches am 2. April 2007 angefangen hat und bis zum 14. Juli 2007 läuft, besuche ich folgende Veranstaltungen:

Die zweite Hälfte der Vorlesung GSS aus dem Bachelor-Studiengang dient z.T. als Ersatz für die ersatzlos weggefallene Vorlesung GBI (Gestaltbarkeit und Beherrschbarkeit von Informatiksystemen) aus dem Diplom-Studiengang im Hauptstudium. Außerdem muss im WS07/08 noch die Vorlesung Datenschutz besucht werden.

Stundenplan SS07
Zeit Montag Dienstag Mittwoch Donnerstag Freitag
8-9 DIS (Phil D)
9-10
10-11 OOSE2 (D-220) AUK (B-201) AUK (B-201) DIS (ESA A) GSS* (ESA A)
11-12 Num1 Ü (431)
12-13 LOS (B-201) VSS (B-201)
13-14
14-15 LOS (B-201) GSS* (Phil D) Num1 (H2)
15-16
16-17
17-18 DOS2* (D-125)
18-19
19-20
20-21

Legende:
AUK: Automaten und Komplexität
DIS: Datenbanken und Informationssysteme
DOS2: Diskrete Optimierung (DOS Teil 2) (fand an 3 Terminen im Semester statt)
GSS: Grundlagen der Systemsoftware (nur die 2. Hälfte von Joachim Posegga)
LOS: Logik und Semantik
Num1: Numerische Mathematik I
Num1 Ü: Übung zu Num1
OOSE2: Projekt Objektorientierte Softwareentwicklung (Teil 2)
VSS: Verteilte Softwaresysteme

Prüfungen und Scheine

Folgende Scheine kann ich machen: DIS, GBI (2. Hälfte der GSS Klausur oder Datenschutz Klausur im WS07/08), Numerik, VSS und eine Bacc-Arbeit über OOSE1+2.

Zudem habe ich vor in diesen Fächern Prüfungen abzulegen: AUK, LOS und dann in DIS.

Links

Lehrveranstaltungen Department Informatik SS07:
Externer Link http://www.informatik.uni-hamburg.de/Info/Studium/Lehrtableau/07s-lehrtableau.pdf

Lehrveranstaltungen Department Mathematik SS07:
Externer Link http://www.math.uni-hamburg.de/teaching/lectures/archive/LV-Plan07S-PVV-20070130-V2.pdf

zum Anfang

Letzte Änderung: 09.09.2009