Archiv für Juli 2010

Informatikstudium an der TUB: Literatur-Review

Während des Studiums stößt man auf etliche Fachliteratur unterschiedlichster Qualität. Manche Bücher sind den Weg dafür in die Bibliothek nicht Wert, wohingegen ich für andere eine deutliche Kaufempfehlung (wenn nicht sogar -pflicht) aussprechen würde.

Zur letzeren Gruppe gehört eindeutig das „Taschenbuch der Mathematik“ – besser bekannt als „Der Bronstein“ (Bronstein/Semendjajew/Musiol/Mühlig). Es ist im Prinzip eine fette Formel- und Tabellensammlung (> 1000 Seiten), die vermutlich alle mathematischen Grundlagen eines Ingenieurstudiums und darüber hinaus abdeckt. Viele Formeln/Zusammenhänge werden exzellent durch kleine Beispiele und Grafiken veranschaulicht. Es ist kein Lehrbuch, was man von vorne bis hinten durchlesen würde, sondern ein Nachschlagewerk. Ich selbst habe es leider erst zum Ende des dritten Semesters entdeckt – es hätte mir in den ersten drei Semestern für Lineare Algebra und Analysis 1 und 2 sehr geholfen. Insbesondere ergänzend zu Vorlesungsskripten oder anderen Mathebüchern, wo erst lange rumgeschwafelt und nie auf den Punkt gekommen wird (bzw. diese Punkte dann sehr versteckt sind), füllt der Bronstein eine Lücke.

Ein weiteres nettes Buch ist „Grundlagen der Technischen Informatik“ (Dirk W. Hoffmann). Es beginnt mit Boolescher Algebra und erklärt darauf aufbauend ziemlich leicht verständlich die Funktionsweise von Speicher, CPUs und der Von-Neumann-Architektur (auf der ja fast alle heutigen Systeme basieren). Auch auf neueste Entwicklungen – z. B. die Unterschiede der momentan auf dem Markt befindlichen Prozessoren – wird eingegangen (Ausgabe 2007 – es gibt mittlerweile noch eine aktuellere).
Als ich das Buch (noch vor Beginn des Studiums) gelesen hatte brachte es mir einen ziemlichen Erkenntnisgewinn, fast schon eine Art Erleuchtungsgefühl :). Alle Puzzleteile, die man von hier und da schon kannte setzen sich zu einem Gesamtbild zusammen – also insbesondere die Verbindung zwischen Software (Maschinensprache/Assembler) und Elektronik. Nach dem Lesen hatte ich das Gefühl, dass ich mit ausreichend Zeit und vielen Relais bzw. Transistoren einen Prozssor „from scratch“ aufbauen könnte.
Ich glaub die Uni-Veranstaltungen (TechGI1 und TechGI2) hätten das nicht so gut hinbekommen. In ihnen werden zwar alle Grundlagen einzeln betrachtet, aber es wird fast immer versäumt einen Gesamtzusammenhang herzustellen und mal auf die Praxis zu schauen (siehe auch meine Kritik an TechGI3 im dritten Semester).

Die dritte Empfehlung geht an „Computernetzwerke – Der Top-Down-Ansatz“ (Kurose/Ross). Der Ansatz von denen ist, sehr praxisnah das OSI-Schichtenmodell von oben nach unten durchzugehen – also von dort ausgehend, was man schon am besten kennt (die Anwendungsebene). Es ist wohl DAS Buch um zu verstehen, wie „das Internet“ funktioniert. Leider deckt es viele Themen von TechGI4 (Verteilte Systeme) nicht ab – Zeitsynchronisation, Webservices und Replikation kommen z. B. nicht vor (dafür sind dann ergänzend Tanenbaum/Steen bzw. Coulouris/Dollimore/Kindberg sinnvoll – siehe unten).

Was man noch in Erwägung ziehen sollte käuflich zu erwerben ist „Mathematisch-Strukturelle Grundlagen der Informatik“ (Ehrig/Mahr/Cornelius/Große-Rhode/Zeitz). Für TheGI1, TheGI3 und TheGI4 stellt dieses Buch im Prinzip das Skript dar. Inhaltlich finde ich es (wie TheGI insgesamt) jedoch eher uninteressant. Die TheGI2-Inhalte (Automaten und Formale Sprachen) werden in diesem Buch nicht behandelt.

Es folgen weitere Bücher, die teils in den Veranstaltungen empfohlen werden oder zu ihnen passen. Ich würde empfehlen sie zunächst in der Bibliothek anzugucken/zu leihen und dann zu entscheiden, ob es sinnvoll ist eins zu kaufen.

MPGI1:

  • Funktionale Programmierung: in OPAL, ML, HASKELL und GOFER (Pepper) – die OPAL-Bibel ist (nur) fürs erste Semester ganz sinnvoll

TechGI1:

  • VHDL-Synthese (Reichardt/Schwarz) – Unnötig – höchstens vielleicht für TIler interessant; Was man an VHDL-Kenntnissen für TechGI1 braucht gibts ausreichend im Netz bzw. im Skript.

MPGI2, MPGI4:

  • Java ist auch eine Insel (Ullenboom) – existiert auch als kostenloses Online-Buch; ist für Java-Neulinge vermutlich ganz gut und taugt auch um ab und zu etwas nachzuschlagen

TheGI2:

Hier kann ich nicht sagen, welches der folgenden ich am besten finde. Für die einfach zu verstehenden Themen in TheGI2 (Formale Sprachen, Automaten, Turing Maschinen) reicht das Skript/Formelsammlung und bei den komplizierten (Berechenbarkeit/Entscheidbarkeit, Komplexität) haben mir diese Bücher auch nicht sonderlich weitergeholfen.

  • Theoretische Informatik – kurz gefasst (Schöning)
  • Grundkurs Theoretische Informatik (Hollas)
  • Theoretische Grundlagen der Informatik (Socher)

MPGI3:

  • Object-oriented Analysis and Design with Applications (Booch/…) – scheint wohl ein Klassiker zu sein; einige UML-Geschichten sind hier anhand von Beispielen ganz gut erklärt; Notation teils etwas abweichend von der in der Veranstaltung

TechGI3:

  • Operating Systems: Design and Implementation (Tanenbaum) – auch MINIX-Buch genannt; Interessant für Leute, die mal sehen wollen, wie die Konzepte aus der Vorlesung in einem realen Betriebssystem implementiert sind. Es ist geschrieben um parallel zum Buch den MINIX-Quelltext durchzulesen (der witzigerweise zu großen Teilen im Buch abgedruckt ist).

MPGI5:

  • Database systems (Garcia-Molina/Ullman/Widom) – Viele Beispiele aus der Vorlesung sind genau diesem Buch entnommen. Es taugt jedoch nicht als Nachschlagewerk, da die wichtigen Definitionen in der LaTeX-Fließtext-Bleiwüste untergehen. Insgesamt scheint es mir auch viel Zeug zu enthalten, was man eigentlich in anderen Büchern suchen würde (z. B. wie in bestimmten Programmiersprachen eine Verbindung zur Datenbank hergestellt wird). Ich hab es gekauft, aber fast nicht verwendet.

TechGI4:

  • Verteilte Systeme: Prinzipien und Paradigmen (Tanenbaum/Steen) – Die Vorlesung ist sehr an diesem Buch orientiert; insgesamt eher auf einer theoretisch-abstrakten Ebene (im Gegensatz zu dem am Anfang genannten Top-Down-Approach-Buch).
  • Verteilte Systeme: Konzepte und Design (Coulouris/Dollimore/Kindberg) – Deckt ungefähr die gleichen Themen ab.

P.S.: Demnächst gibt es wieder eine Kurzzusammenfassung des 4. Semesters.