logo of the SSW institute
Institut für Systemsoftware
Johannes Kepler Universität Linz
Fachbereich Informatik
logo of the Cristian Doppler Research Association
Christian Doppler Labor
Monitoring and Evolution of Very-Large-Scale Software Systems

Home

General
Staff
Contact
Partners
Alumni

Research
Areas
Projects
Papers
Books
Reports
Awards

Teaching
Lectures
Exams
B.Projects
M.Theses
PhD Theses
Go Abroad

Misc
Library
Seminars
Gallery
Links
Search

Webmaster


logo of the Johannes Kepler University (JKU)

Praktische Informatik 2

339.619 Mössenböck Di 08:30 - 10:00 Raum: HS 5 Beginn: 4.3.2014

In dieser Vorlesung werden die wichtigsten dynamischen Datenstrukturen (Listen, Bäume, Graphen) und die darauf arbeitenden Algorithmen vermittelt. Das Ziel ist, Studierende im algorithmischen Denken zu schulen, Verständnis für die Funktionsweise gängiger Bibliotheksklassen zu wecken sowie weitere Übung im Umgang mit Java zu vermitteln.

Inhalt

  1. Dynamische Datenstrukturen
    - Klassen als Referenztypen
    - Lineare Listen
        - Unsortierte Listen
        - Sortierte Listen
        - Ringlisten
        - Doppelt verkettete Listen
    - Stacks
    - Queues
    - Mengen

  2. Bäume
    - Begriffe
    - Binäre Suchbäume
    - Balancierte Bäume
        - Balancieren binärer Suchbäume
        - Topdown-234-Bäume
        - Rot-Schwarz-Bäume
        - B-Bäume
    - Heaps

  3. Graphen
    - Begriffe
    - Depth-First-Search
    - Breadth-First-Search
    - Kleinster spannender Baum
    - Kürzester Pfad
    - Transitive Hülle
    - Serialisierung von Graphen

  4. Hashing
    - Hashfunktion
    - Kollisionsstrategien
        - Überlauflisten (Separate Chaining)
        - Lineares Probieren
        - Quadratisches Hashen
    - Bewertung

  5. Stringsuche
    - Brute-Force-Algorithmus
    - Boyer-Moore-Algorithmus
    - Stringvergleich mit Wildcards
    - Suchen mit regulären Ausdrücken

  6. Höhere Sortieralgorithmen
    - Heapsort
    - Sortieren linearer Listen
    - Externes Sortieren
    - Topologisches Sortieren

  7. Java-Klassenbibliothek
    - Wiederholung: Objektorientierung
    - java.lang
    - java.util
    - java.io
    - javax.swing

Skript

Der Großteil der Vorlesung findet unter Benutzung der Tafel statt. Einzelne Kapitel werden auf Folien präsentiert. Diese Folien sind auf der KUSSS-Seite dieser LVA als PDF-Dokument verfügbar.

Literatur

  • Sedgewick R., Wayne K.: Algorithmen - Algorithmen und Datenstrukturen. 4. aktualisierte Auflage, Pearson 2014
    Eines der besten Bücher zu diesem Thema. Es deckt ziemlich genau den Inhalt der Vorlesung ab. Wenn Sie sich daher ein begleitendes Buch kaufen wollen, ist dieses hier zu empfehlen. Man kann Bücher dieser Art später immer wieder als Nachschlagewerk brauchen.

  • Pomberger, G., Dobler, H.: Algorithmen und Datenstrukturen. Eine systematische Einführung in die Programmierung. Pearson 2008.
    Ein sehr gutes Buch, das nicht nur elementare Algorithmen und Datenstrukturen abdeckt, sondern auch Grundlagen der Programmierung. Die vorgestellten Algorithmen sind in der Algorithmenbeschreibungssprache Adele formuliert.

  • Ottman T., Widmayer P.: Algorithmen und Datenstrukturen. 5. Auflage, Spektrum Akademischer Verlag, 2012
    Ebenfalls gut zu lesen und auf dem neuesten Stand der Technik.

  • Saake, G., Sattler, K.-U.: Algorithmen und Datenstrukturen: Eine Einführung mit Java. 4. Auflage, dpunkt.verlag, 2010

  • Cormen, T.H., et al.: Algorithmen - Eine Einführung. Oldenbourg-Verlag, 2010

  • Knuth D.E.: The Art of Computer Programming. 2nd edition, Addison-Wesley
    Volume 1: Fundamental Algorithms
    Volume 2: Seminumerical Algorithms
    Volume 3: Sorting and Searching

    Das wahrscheinlich vollständigste Werk zum Thema Algorithmen. Da es bereits 1968 erschienen ist, entspricht die verwendete Notation nicht mehr dem Stand der Technik. Die Breite und der mathematischen Tiefgang sind jedoch bisher unübertroffen. Dieses Werk kann in der Bibliothek entliehen werden.

Links