Das vierte Semester Informatik an der TUB

Wie angekündigt der Rückblick auf das 4. Semester:

MPGI5 – Datenbanksysteme: Es fängt damit an, aus Anforderungsbeschreibungen (E)ER-Diagramme zu erstellen. An dieser Stelle schon meine erste Kritik: Der Dozent und der für den Übungsbetrieb zuständige Dr. verwenden unnötigerweise unterschiedliche Notationen… Weitere Themen sind: Relationaler Entwurf (überlegen, wie die Tabellen auszusehen haben), Funktionale Abhängigkeiten, Normalformen (1.-3. und BCNF), Relationale Algebra, SQL, Abfrageoptimierung und Transaktionen/Serialisierbarkeit. Wie üblich wieder alles auf einer sehr theoretischen Schiene. Wenigstens bei SQL hätte es sich doch schön angeboten, wenn der Dozent einfach mal am Projektor auf seinem Rechner live ein paar Abfragen vorgeführt hätte – oder besser noch – den Teilnehmern einen Zugang zu einem SQL-Server geben, wo sie die für die Hausaufgaben nötigen Statements ausprobieren können. Aber nein, das gehört sich für eine Universität ja nicht.

Datenbankpraktikum (Wahlpflicht-Praktikum zu MPGI3): Das Datenbankpraktikum füllt die fehlende Praxisnähe von MPGI5, aber eben nur für die, die auch daran teilnehmen, denn es ist im Gegensatz zu MPGI5 keine Pflichtveranstaltung. Es werden Themen behandelt, mit denen ich so als Durchschnitts-Webentwickler teils noch nicht viel zu tun hatte, wie Views, UDRs (Stored Procedures), Trigger oder die Anbindung per JDBC. Alles wird auch direkt ausprobiert und am Ende in einem kleinen Projekt umgesetzt. Sehr empfehlenswerter Kurs. Auch wenn es als MPGI3-Praktikum angeboten wird hat es nicht sehr viel mit MPGI3 zu tun. Mit der Projektgruppe (6 Leute) muss man etwas Glück haben – andere hatten offenbar nicht so zuverlässige Gruppenpartner bekommen und dadurch etwas Stress.

TechGI4 – Verteilte Systeme: Die Grundlagen Verteilter Systeme werden angerissen – Probleme und deren Lösungsansätze (DHTs, Peer-To-Peer, Zeitsynchronisation, Replikation, TCP-/IP-Grundlagen). Der Dozent erzählt hauptsächlich Beispiele aus dem menschlichen Miteinander (Kommunikation), die dann ein bestimmtes Problem oder eine Technik in Rechnernetzwerken erklären sollen. In den Übungen werden (wie bei TechGI3) im Prinzip nur die Hausaufgaben vorgeführt/besprochen, wodurch Anwesenheitszwang besteht. Es gibt wieder eine Unterteilung in Theorie und Praxisaufgaben. Im Praxisteil werden Client/Server Beispiele programmiert (C und Java), die Theorie-Hausaufgaben entsprechen meistens der Recherche in den wirren Folien oder im Netz.

TheGI4: Das eine große Thema sind Petrinetze – das ist recht verständlich und lässt sich sehr schön mit Graphen veranschaulichen. Mein Eindruck ist, dass Petrinetze keine neuen Grundlagenerkenntnisse liefern, sondern eher eine zusätzliche Modellierungsmöglichkeit sind, mit der sich Prozesse ganz gut darstellen lassen (wie das Erkennen von Deadlocks – z. B. bei den Dining Philosophers). Das ganze Thema ist wie ein etwas komplexeres Brettspiel. :)
Der andere Scherpunkt sind Algebraische Spezifikationen. Die Grundlagen, die in TheGI1 rankamen (Signaturen und Algebren) werden weiter ausgebaut: Eine Spezifikation ist im Prinzip eine Signatur mit einer Menge von Gleichungen, die beschreiben, welche Eigenschaften die Operationen erfüllen sollen. Dann kann man sagen, ob eine Algebra (zu der passenden Signatur) ein Modell für diese Spezifikation ist (das heißt alle in der Spezifikation enthaltenen Gleichungen erfüllt) oder „initial korrekt“ ist (das ist so eine Art minimalst-mögliche Algebra, die Modell für die Spezifikation ist). Ich glaube an sich steckt da nicht so besonders viel dahinter, aber dadurch, dass für die Beweisführungen noch so etwas wie massig Meta-Algebren eingeführt werden (Grundtermalgebra), wird es irgendwie extrem kompliziert und für mich kaum noch nachvollziehbar. Der größte Anteil der Klausur stellte glücklicherweise Petrinetz-Aufgaben dar.

Stochastik für Informatiker: Es geht um Grundlagen der Wahrscheinlichkeitstheorie. Einige Handwerkszeuge werden gelehrt (kombinatorische Überlegungen, Bedingte Wahrscheinlichkeit, Zufallsvariablen und Verteilungen) und Markov-Ketten sind noch ganz witzig (ich mag Graphen). Aber was recht kompliziert wird sind Abschätzungs-Berechnungen mit Chebyshev-Ungleichung oder dem Starken/Schwachen Gesetz der Großen Zahlen – was die Gesetze anschaulich sagen ist eigentlich ziemlich intuitiv, aber das dann in konkreten Aufgaben anzuwenden wieder ne andere Sache.

Damit ist jetzt das sogenannte Grundstudium für mich vorbei und für das 5. und 6. Semester habe ich ziemliche Wahlfreiheit, was die Module angeht. Trotzdem muss ich mich einerseits auf eine Richtung für das Fachstudium festlegen (Softwaretechnik oder Kommunikationstechnik – in den jeweiligen Richtungen stehen unterschiedliche Module zur Auswahl) und ein Anwendungsfach auswählen.
So ein paar Themen, die ich interessant fände, wären NoSQL-Datenbanken (Map-Reduce etc.), Sicherheit, Betriebssysteme und Netzwerke/“NGN“.