Kenntnisse von Algorithmen und Datenstrukturen sind ein Grundbaustein des Studiums der Informatik und verwandter Fachrichtungen. Das Buch behandelt diese Thematik in Verbindung mit der Programmiersprache Java und schlägt so eine Brucke zwischen den klassischen Lehrbuchern zur Theorie von Algorithmen und Datenstrukturen und den praktischen Einfuhrungen in eine konkrete Programmiersprache. Die konkreten Algorithmen und deren Realisierung in Java werden umfassend dargestellt. Daneben werden die theoretischen Grundlagen vermittelt, die in Programmiersprachen-Kursen oft zu kurz kommen: abstrakte Maschinenmodelle, Berechenbarkeit, Algorithmenparadigmen sowie parallele und verteilte Abläufe. Einen weiteren Schwerpunkt bilden Datenstrukturen wie Listen, Bäume, Graphen und Hashtabellen sowie deren objektorientierte Implementierung mit modernen Methoden der Softwareentwicklung. Die 5. Auflage wurde uberarbeitet und gibt u.a. einen Überblick uber die mit Java 8 eingefuhrten Lambda-Ausdrucke, die eine Anwendung des applikativen (funktionalen) Paradigmas darstellen. Weiter wurden neue Beispiele, die aus dem Einsatz des Buches in einigen Einfuhrungsvorlesungen entstanden sind, aufgenommen. Das Buch richtet sich an Studierende im Grundstudium an Universitäten und Fachhochschulen sowie an alle, die die Grundlagen der praktischen Informatik strukturiert erlernen wollen. Sie erwerben damit die Basis fur die theoretischen und praktischen Vertiefungen im Hauptstudium und lernen gleichzeitig die Umsetzung in den "Alltag" der Softwareentwicklung kennen.