Lade Daten...
iLearn
Cau-siegel-color-300

Materialien

Vorlesungsfolien

Die Folien gibt es in zwei Versionen: Die Folien, die in der Vorlesung verwendet werden, und die lange Version mit Beweisen.

Skript

Das Skript befindet sich in ständiger Überarbeitung. Fehler sowie Verbesserungsvorschläge dürfen und sollen gerne gemeldet werden.

Skript (Stand 5. Juli 2019)

Achtung: Dieses Semester werden die Beweise zu den Hashverfahren (Sätze 4.6, 4.8, 4.9, 4.13 und 4.14) sowie der zweite Beweis zu Randomized Quicksort (Satz 3.17) nicht in der Vorlesung behandelt. Insbesondere sind diese Inhalte daher auch nicht prüfungsrelevant.

Präsenzserien

Altklausuren

Achtung: Die Inhalte der Vorlesung ändern sich ein wenig von Jahr zu Jahr und damit auch die Themen der Klausur.

Klausuren

Die erste Klausur findet am Dienstag, den 16.07.2019 von 16 bis 20 Uhr in den folgenden Räumen statt:

  • OS75 - Hörsaal 1: (A-E)
  • LS1 - Klaus-Murmann-Hörsaal: (F-K)
  • OS75 - Hörsaal 4: (L-M)
  • OS75 - Hörsaal 2: (N-Sch)
  • OS75 - Hans-Heinrich-Driftmann-Hörsaal (ehem. Hörsaal 3): (Se-Z)

Die Klausureinsicht findet am Mittwoch, den 14.08.2019 von 11 bis 12 Uhr im CAP 4, Raum 1001 statt.

Sprechstunden

Person Zeitraum Ort
Sebastian Berndt Di., 13:00 bis 14:00 Uhr (nicht 14.05) Raum 1002 im Hochhaus
Alexandra Lassota Do., 13:00 bis 14:00 Uhr (nicht 02.05, nicht 27.06, nicht 11.07 ) Raum 1008 im Hochhaus
Max Deppert Mo., 10:00 bis 11:00 Uhr Raum 1003 im Hochhaus
Christoph Daniel Schulze Do., 11:00 bis 12:00 Uhr Raum 1011 im Hochhaus
Marten Maack / Kilian Grage Di., 9:00 bis 10:00 Uhr Raum 1010 / 1009 im Hochhaus
Tim Michels Di., 16:00 bis 17:00 HRS 3, Raum 310
Yannick Schneider Mo., 14:00 bis 16:00 Raum 1019 im Hochhaus

PerLe-Tutorien ab dem 17.04.2019

  • Mittwoch von 14:30 bis 17:30 (OS74 - R.316, WSP3 - Seminarraum 3)
  • Donnerstag von 10:00 bis 11:00 (LMS14 - R.412, WSP3 - Seminarraum 3)

Globalübung, Zwischenklausur und Quiz

Die Globalübung findet am Dienstag von 18:00 bis 20:00 Uhr im Raum CAP2 - Hörsaal H statt. Zu fünf Terminen werden Mitarbeiter dort beispielhafte Klausuraufgaben rechnen. Jeweils vor diesen Terminen wird eines der fünf Quiz stattfinden. An einem sechsten Termin wird zu dieser Zeit die Zwischenklausur stattfinden. Wir werden die sechs Termine samt Themen zeitnahe hier bekannt geben.

Zwischenklausur

Die Zwischenklausur findet am 21.05.2019 von 18:00 bis 20:00 Uhr statt. Die Aufteilung in die Räume ist wie folgt:

  • OHP5 - [Chemie I] - Chemie-Hörsaal I: (A-F)
  • CAP2 - Hörsaal H - Auditorium Maximum: (G-L)
  • OS40 - Norbert-Gansel-Hörsaal - Norbert-Gansel-Hörsaal: (M-R)
  • OHP5 - [Chemie II] - Chemiehörsaal II: (S-Z)

Als Hilfsmittel ist ein doppelseitig beschriebenes DIN A4-Blatt zugelassen.

Bewertung der Quiz

Punkte Note
0,1,2 5,0
3 4,0
4 3,0
5 2,0
6,7,8 1,0

Inhalt

In der Vorlesung werden grundlegende algorithmische Fragestellungen, wie z.B. Sortieren und Suchen, und damit zusammenhängende grundlegende Datenstrukturen, wie z.B. Bäume und Halden, behandelt.

In erster Linie geht es um die effiziente Lösung der betrachteten algorithmischen Problemen und damit auch um die effiziente Umsetzung der benutzten Datenstrukturen. Darüber hinaus wird die Frage nach der Korrektheit der entworfenen Algorithmen eine wesentliche Rolle spielen. In den Übungen wird der Stoff der Vorlesung vertieft.

Abgabe der Hausaufgaben

Jede Woche wird ein Aufgabenblatt zur Bearbeitung ausgegeben. Das Aufgabenblatt enthält sowohl theoretische Aufgaben als auch Programmieraufgaben. Die Abgabe der theoretischen Aufgaben erfolgt jeweils bis spätestens Freitag 12 Uhr im Schrein (HRS3). Die Abgabe der Programmieraufgaben erfolgt jeweils zur selben Zeit, allerdings im Ilearn. Die theoretischen Aufgaben können und sollten in Zweierteams bearbeitet und abgegeben werden. Die Programmieraufgaben sind Einzelabgaben!

Achtung: Programme, die sich nicht übersetzen lassen oder nicht gegen unser bereitgestelltes Interface implementiert sind, gelten als nicht abgegeben.

Prüfungsleistung

Während des Semesters wird eine Zwischenklausur und fünf Quiz stattfinden. Am Ende des Semester wird eine schriftliche Klausur geschrieben. Zum Bestehen muss die Endklausur bestanden werden. Die Endnote zum Modul ergibt sich aus der besten Note von

  • 10 Prozent Quiz und 30 Prozent Zwischenklausur plus 60 Prozent Endklausur
  • 100 Prozent Endklausur

Die Klausurzulassung wird Ihnen nur erteilt, falls Sie uns überzeugt haben, dass Sie die Klausur auch bestehen können. Deshalb knüpfen wir die Zulassung zur Modulprüfung an folgende Bedingungen:

  • Sie dürfen in höchstens zwei Aufgabenserien weniger als 40 Prozent der Punkte erreichen, die Sie durch Theorieaufgaben erreichen können.
  • Es werden 4 Programmieraufgaben gestellt, von denen Sie mindestens 3 erfolgreich bearbeiten müssen. Für jede der Programmieraufgaben gibt es 3 Punkte und sie gilt als erfolgreich bearbeitet wenn mindestens 2 Punkte erreicht werden. Zusätzlich werden Bonusaufgaben gestellt, für die es jeweils einen Punkt gibt. Wird ein Punkt bei der regulären und ein Punkt bei der Bonusaufgabe erreicht, so gilt die reguläre Aufgabe ebenfalls als erfolgreich bearbeitet.
  • Achtung: Plagiate werden als nicht bearbeitet gewertet. Werden bei den Aufgaben mehrere Lösungen abgegeben, die im wesentlichen gleich sind, so werden diese Abgaben alle als Plagiate behandelt.

Zeitaufwand

Für das gesamte Modul werden 8 Leistungspunkte vergeben, das entspricht 240 Zeitstunden. Bei 14 Vorlesungswochen gehen wir also davon aus, dass pro Woche im Durchschnitt circa 17 Zeitstunden in das Modul investiert werden. Abzüglich 8 Zeitstunden für die Präsenz in Vorlesung, Globalübung und Präsenzübung, ist der Rest für die eigenständige Beschäftigung mit dem Thema vorgesehen.

Empfohlene Literatur

  • Klaus Jansen, und Marian Margraf: Approximative Algorithmen und Nichtapproximierbarkeit, Walter de Gruyter, 2008.
  • Thomas H. Cormen, Charles E. Leiserson, und Ronald L. Rivest, Clifford Stein: Introduction to Algorithms, Boston: MIT Press, 2001.
  • Norbert Blum: Algorithmen und Datenstrukturen: eine anwendungsorientierte Einführung, Oldenbourg 2004.
  • Donald E. Knuth: The Art of Computer Programming. Vol. 1: Fundamental Algorithms, 3rd ed., Addison-Wesley 1997. Vol. 3: Sorting and Searching, 2nd ed., Addison-Wesley 1998.
  • Sven Oliver Krumke, Hartmut Noltemeier: Graphentheoretische Konzepte und Algorithmen, Teubner 2005.
  • Harald Reß und Günter Viebeck: Datenstrukturen und Algorithmen: objektorientiertes Programmieren in C++, Hanser 2000.
  • Robert Sedgewick: Algorithms in Java, Parts 1-4, 3rd ed., Addison-Wesley, 2002.
  • Mark Allen Weiss: Data Structures and Algorithm Analysis in Java, 2nd ed., Addison-Wesley, 2007.