You are here: Wiki>SS Web>ALP3 (24 Apr 2006, oezbekPCPOOL.MI.FU-BERLIN.DE)Edit

Algorithmen und Programmierung III

Überblick

Dozent
Prof. Löhr (Sprechstunde: Do, 17-18 Uhr)
Inhalt
Im 3. Semester des Zyklus Algorithmen und Programmierung werden Daten- und Programmstrukturen vertieft behandelt. Von grundlegender Bedeutung für die Strukturierung von Programmen und die Konstruktion von Datenobjekten mittels Modulen oder Klassen ist das Kapselungsprinzip. Eine zentrale Rolle bei der Modellierung von Daten spielt der Begriff der Datenabstraktion verbunden mit der Unterscheidung zwischen Spezifikation und Implementierung abstrakter Datenobjekte und Datentypen. Mengen, Relationen, Listen, Bäume, Graphen u.a. werden als abstrakte Typen eingeführt. Anschließend werden effizient manipulierbare Repräsentationen dieser Typen betrachtet und die zugehörigen Algorithmen auf ihre Komplexität hin untersucht. Zu den für die Repräsentation verwendeten Verfahren und Datenstrukturen gehören Streuspeichertechniken, Geflechte und verschiedene Arten von Bäumen. - In der objektorientierten Programmierung spielen neben der Datenabstraktion Vererbung und Polymorphie eine wesentliche Rolle. Wir werden daher abstrakte Datentypen häufig unter Verwendung von Vererbungsmechanismen spezifizieren und implementieren. Programmiert wird imperativ mit Java und funktional mit Haskell.
Zielgruppe
Die Veranstaltung ist Pflichtveranstaltung des Grundstudiums in allen Studiengängen Informatik.

Organisatorisches

  • Veranstalter: Prof. Löhr (Sprechstunde: Do 17-18)
  • Übungsleiter: Christopher Oezbek (Sprechstunde: Einfach vorbeikommen)
  • Tutoren:
    • Paul-Christian Plückhahn, plueckha[at]inf.fu-berlin.de
    • Dimitar Robev, robev[at].fu-berlin.de
    • Olufemi Rosanwo,
    • Jan Siwy
  • Veranstaltungsform: Vorlesung mit Tutorium
    • 4 SWS Vorlesung
    • 2 SWS Tutorium
  • Veranstaltungsnummer: KVV 19510
  • Mailingliste auf Spline. Kein Forum.
  • Klausur:
  • Zulassungkriterien:
    • Regelmäßige und aktive Teilnahme am Tutorium, wobei nicht mehr als zweimal gefehlt werden darf.
    • Vortragen der Lösungen einiger Übungsaufgaben im Tutorium.
    • Vollständige Bearbeitung von n-2 Aufgabenblättern: jede Woche gibt es ein Aufgabenblatt, insgesamt voraussichtlich n=13.
    • Die genannten Kriterien sind Voraussetzung für die Zulassung zur Klausur.
    • Hörsaalverteilung
  • Übungsblattabgabe:
    • Übungsblätter sind vor (d.h. nicht während oder nach) der Vorlesung in die entsprechenden Kästen der Tutoren abzugeben.
    • Abzugeben sind die Übungsblätter zu zweit und zusammengetackert.
    • Eine elektronische Abgabe kann zusätzlich mit dem Tutor vereinbart werden. Verbindlich ist aber nur die Abgabe auf Papier, sorry.
    • Alternativ können die Übungsblätter auch in die entsprechenden Kästen der Tutoren eingeworfen werden, welche vor der Vorlesung gelehrt werden (Stichpunkt für euch: 14:00).
    • Übungsblätter, die zu spät abgegeben wurden oder nicht korrekt bezeichnet sind (<>, ALP III, <<Übungsblattnummer>>, Tutorium von <>), werden nicht als Abgabe gewertet.
  • Evaluation:

Termine

Beginn: 18.10.2004

Bitte meldet euch über das KVV für ein Tutorium an.

Dienstag Mittwoch Donnerstag
08-10   Tutorium in SR051, SR055  
10-12   Tutorium in SR051, SR046  
12-14   Tutorium in SR051, SR055  
14-16 Vorlesung in 028 Tutorium in SR051, SR053 Vorlesung in 028

Vorlesungen

A Objektorientierte Programmierung B Datenstrukturen und Algorithmen C Speicherverwaltung

Übungsblätter

Alle Jar-Dateien aus den Übungsblättern sind generell dazu da, von euch ausgepackt zu werden (z.B. in zip umbenennen und Java-Dateien extrahieren).

  1. Übungsblatt
  2. Übungsblatt V2 05-10-26 19:29:00
  3. Übungsblatt V2 05-11-01 17:54:00
  4. Übungsblatt
  5. Übungsblatt
  6. Übungsblatt (V2 05-11-25 11:09:00 - korrigierter Testfall)
  7. Übungsblatt (V2 05-11-29 13:18:00 - verschobener Abgabetermin)
  8. Übungsblatt
  9. Übungsblatt (V3 05-12-15 14:04:00 - kleine Anpassungen)
  10. Übungsblatt (V2 06-01-03 16:01:00 - kleine Anpassung)
  11. Übungsblatt
  12. Übungsblatt
  13. Übungsblatt (V3 06-01-25 12:17 - Histogramm korrigiert)
  14. Übungsblatt (V2 06-02-02 18:35 - Eine Klammer und ein E korrigiert)

Zum Üben. Musterlösungen gibt es jetzt auch direkt. Es lohnt sich aber die Klausuren unter realistischen Bedingungen am Stück zu rechnen. Achtung die Probeklausur 04 war auf 180 Minuten angesetzt.

Mega-Pack:

Wiederholung

Links

Literatur

  • R. H. Güting, S. Dieker: Datenstrukturen und Algorithmen. Teubner 2004
  • Th. H. Cormen, Ch. E. Leiserson, R.L. Rivest: Introduction to Algorithms. MIT Press 2001 (deutsch: Algorithmen. Oldenbourg 2004)
  • ... und mit Java:
    • M.T. Goodrich, R. Tamassia: Data Structures and Algorithms in Java. Wiley 2004
    • R. Sedgewick: Algorithms in Java. (2 Bände, verschiedene Ausgaben, Addison-Wesley 2002/2003)
    • B. Liskov, J, Guttag: Program Development in Java. Addison-Wesley 2000
    • G. Saake, K.-U. Sattler: Algorithmen und Datenstrukturen. dpunkt 2004
  • Java speziell:
    • J. Gosling, B. Joy, G.L. Steele, G. Bracha: The Java Language Specification. Addison-Wesley 2005. (Siehe auch hier.)
    • D.J. Barnes, M. Kölling: Objects First with Java. Prentice-Hall 2004
    • H. Mössenböck: Sprechen Sie Java?. dpunkt 2005
    • S. Middendorf, R. Singer, J. Heid: Java - Programmier-Handbuch und Referenz. dpunkt 2002
    • B. Eckel: Thinking in Java. Prentice-Hall 2002. (Siehe auch hier.)
  • Haskell speziell:
    • S. Thompson: Haskell - The Craft of Functional Programming. Addison-Wesley 1999

ALP3 Zitate

  • "Haskell ist ja nicht der Papst."
  • "Diese omninöse -1, die aus der Programmiersprache C stammt."

Kommentare

 
Topic revision: r73 - 24 Apr 2006, oezbekPCPOOL.MI.FU-BERLIN.DE
 
  • Printable version of this topic (p) Printable version of this topic (p)