Main Page: Difference between revisions

From Alda
Jump to navigationJump to search
No edit summary
No edit summary
Line 43: Line 43:
#* selbst-balancierende Bäume, Rotationen
#* selbst-balancierende Bäume, Rotationen
#* Komplexität der Suche
#* Komplexität der Suche
<!------------->
# [[Prioritätswarteschlangen]] (14.5.2008)
# [[Prioritätswarteschlangen]] (14.5.2008)
#* Heap-Datenstruktur
#* Heap-Datenstruktur
Line 48: Line 49:
#* Heapsort
#* Heapsort
#* Komplexität des Heaps
#* Komplexität des Heaps
<!------------->
# [[Dictionaries]] (15.5.2008)
# [[Dictionaries]] (15.5.2008)
Mengen
#* Implementation mit Bäumen
Hashing
#* Hashing
Dictionaries als Baum und als Hashtabelle
#* Implementation als Hashtabelle
Iteration vs. Rekursion
<!------------->
Typen der Rekursion und ihre Umwandlung in Iteration
# [[Iteration versus Rekursion]] (21.5.2008)
Iteratoren
#* Typen der Rekursion und ihre Umwandlung in Iteration
Übungen zu Rekursion und Iteration: Fakultät, Koch-Schneeflocke, Auflösung rekursiver Formeln, Umwandlung von Rekursion in Iteration
#* Iteratoren
Fronleichnam
<!------------->
Abstrakte Datentypen
# [[Generizität]] (28.und 29.5.2008)
Generizität: Required Interface, Adapter und Typattribute
#* Abstrakte Datentypen, Typspezifikation
Funktoren (Beispiel: Ordnung für Sortieren)
#* Required Interface versus Offered Interfvace
Übungen zur Generizität: Sortieren mit veränderter Ordnung, Adapterklassen
#* Adapter und Typattribute, Funktoren
Zahlendatentypen und Arithmetik, Byteorder, IEEE floating point
#* Beispiel: Algabraische Konzepte und Zahlendatentypen
Algebraische Konzepte
#* Operator overloading in Python
Operator Overloading, Anwender-definierte Zahlentypen (z.B mit physikalischen Einheiten)





Revision as of 14:59, 5 April 2008

Vorlesung Algorithmen und Datenstrukturen SS 08

Vorläufiger Inhalt der Vorlesungen und Übungen

  1. Einführung (9.4.2008)
    • Organisatorisches: Übungsbetrieb, Scheinbedingungen, Klausurtermin, Gliederung der Vorlesung
    • Definition von Algorithmen und Datenstrukturen, Geschichte
    • Fundamentale Algorithmen: create, assign, copy, compare etc.
    • Fundamentale Datenstrukturen: Zahlen, Container, Handles
  2. Container (10.4.2008)
    • Anforderungen von Algorithmen an Container
    • Einteilung der Container
    • Grundlegende Container: Array, verkettete Liste, Stack und Queue
    • Ranges in Containern
  3. Sortieren (16. und 17.4.2008)
    • Spezifikation des Sortierproblems
    • Selection Sort
    • Merge Sort
    • Quick Sort und seine Varianten
    • Vergleich der Anzahl der benötigten Schritte
    • Laufzeitmessung in Python
  4. Korrektheit (23. und 24.4.2008)
    • Definition von Korrektheit, Algorithmen-Spezifikation
    • Korrektheitsbeweise versus Testen
    • Programming by contract, Vor- und Nachbedingungen, Invarianten
    • Testen, Execution paths, Unit Tests in Python
    • Ausnahmen (exceptions) und Ausnahmebehandlung in Python
  5. Effizienz (24. und 30.4.2008)
    • Laufzeit und Optimierung: Innere Schleife, Caches, locality of reference
    • Laufzeit versus Komplexität
    • Komplexitätsklassen
    • Bester, schlechtester, durchschnittlicher Fall
    • Amortisierte Komplexität
  6. Suchen (7. und 8.5.2008)
    • Binäre Suche in sortierten Arrays
    • Suchbäume
    • balancierte Bäume
    • selbst-balancierende Bäume, Rotationen
    • Komplexität der Suche
  7. Prioritätswarteschlangen (14.5.2008)
    • Heap-Datenstruktur
    • Einfüge- und Löschoperationen
    • Heapsort
    • Komplexität des Heaps
  8. Dictionaries (15.5.2008)
    • Implementation mit Bäumen
    • Hashing
    • Implementation als Hashtabelle
  9. Iteration versus Rekursion (21.5.2008)
    • Typen der Rekursion und ihre Umwandlung in Iteration
    • Iteratoren
  10. Generizität (28.und 29.5.2008)
    • Abstrakte Datentypen, Typspezifikation
    • Required Interface versus Offered Interfvace
    • Adapter und Typattribute, Funktoren
    • Beispiel: Algabraische Konzepte und Zahlendatentypen
    • Operator overloading in Python


Getting started