Die Klausureinsicht fand am 29. Juni 2021 statt. Sollten sich Notenänderungen ergeben haben, können diese ab sofort im QIS eingesehen werden.
Die vorläufigen Klausurergebnisse der Klausur vom 05.10. (Lösungsskizze) finden Sie hier. Bitte beachten Sie, dass die hier genannten Ergebnisse vorläufig sind (insb. steht noch die Korrektur durch den Zweitprüfer der Letztversuche aus).
Aufgrund der neuerlich verschärften Hygienebedingungen kann derzeit keine allgemeine Klausureinsicht angeboten werden. Diese wird innerhalb der durch die Prüfungsordnung vorgeschriebenen Fristen stattfinden. Kritische Fälle wurden individuell per E-Mail kontaktiert, und zu einer Sondereinsicht eingeladen.
Bitte sehen Sie davon ab, uns bezüglich vergessener Klausurnummern (die Ergebnisse werden zeitnah ans Prüfunsamt gemeldet und sind dann für Sie einsehbar) oder Klausurpunkten zu kontaktieren.
Die Klausurergebnisse der Klausur vom 27.7. (Lösungsskizze) sowie die Hinweise zur Klausureinsicht finden Sie hier. Beachten Sie, dass die Lösungsskizze nicht notwendigerweise eine vollständige oder lückenlose Lösung ist und in einigen Fällen auch nicht die einzig mögliche Lösung. Sie reflektiert lediglich unsere Erwartung für die volle Punktzahl.
Dienstag 08:00 - 10:00 Hörsaal H VI (Jügelhaus/Hörsaalgebäude)
Donnerstag 08:00 - 10:00 Hörsaal H V (Jügelhaus/Hörsaalgebäude)
Sprechstunde: Nach Vereinbarung
E-Mail: algo120@ae.cs.uni-frankfurt.de
Sprechstunde: Nach Vereinbarung
Das Lösen von Übungsaufgaben geschieht auf freiwilliger Basis. Dennoch ist die Teilnahme am Übungsbetrieb unbedingt zu empfehlen. Es werden weiterführende Inhalte vermittelt und es gibt die Möglichkeit Bonuspunkte zu sammeln. Eine Beobachtung unsererseits ist: Je höher die Bonuspunkte, desto höher die Wahrscheinlichkeit, eine gute Note zu erhalten. Weiterhin gilt aber, dass leider in der Vergangenheit immer wieder Betrugsversuche bei Übungsabgaben vorkamen. Deshalb bitten wir Sie darum, von solchen Täuschungsversuchen Abstand zu nehmen. Es lohnt sich nicht! Eine Zuwiderhandlung kann dazu führen, dass wir Ihnen alle Bonuspunkte aberkennen (genaue Regelung: siehe “Hinweise zu den Übungsabgaben”).
Es gibt wöchentlich Übungsblätter. Die Abgabe des Blattes erfolgt normalerweise eine Wochen später vor Beginn der Vorlesung. Die genaue Abgabefrist steht auf der Webseite und dem Übungsblatt. Außerdem besteht dieses Semester die Möglichkeit die Lösungen online als PDF abzugeben. Den genauen Ablauf erfahren Sie rechtzeitig hier auf der Webseite.
Sie können durch die Teilnahme an den Übungen bis zu 10 Bonuspunkte erhalten. Diese werden auf die Note einer bestanden Klausur angerechnet.
Die Übungen finden vorerst nur online statt. Die hier angegebenen Räume sind nur für den Fall, dass Präsenzveranstaltungen wieder möglich werden.
Gehen Sie nicht in die Uni zu den Tutorien. Alles findet vorerst online statt.
Der genaue Ablauf wird hier rechtzeitig bekannt gegeben.
Gruppe | Tag | Uhrzeit | Raum |
---|---|---|---|
Gruppe 1 | Mo | 12-14 | NM 103 |
Gruppe 2 | Mo | 12-14 | NM 102 |
Gruppe 3 | Mo | 14-16 | NM 112 |
Gruppe 4 | Mo | 14-16 | NM 102 |
Gruppe 5 | Di | 10-12 | NM 132 |
Gruppe 6 | Di | 14-16 | SR 11 |
Gruppe 7 | Di | 16-18 | NM 112 |
Gruppe 8 | Mi | 10-12 | SR 11 |
Gruppe 9 | Mi | 12-14 | NM 132 |
Gruppe 10 | Mi | 14-16 | SR 11 |
Gruppe 11 | Mi | 16-18 | SR 11 |
Gruppe 12 | Do | 10-12 | NM 112 |
Gruppe 13 | Do | 10-12 | NM 128 |
Gruppe 14 | Do | 12-14 | NM 132 |
Gruppe 15 | Do | 16-18 | NM 112 |
Gruppe 16 | Fr | 12-14 | NM 113 |
Gruppe 17 | Fr | 14-16 | NM 120 |
Zu Onlineabgabe:
Zu Abgaben in Papierform (vorerst nicht vorgesehen):
Plagiate und Betrugsversuche:
Die Inhalte von Datenstrukturen (DS) und Theoretische Informatik 1 (GL1) wurden in der neuen Prüfungsordnung neu aufgeteilt. Algo1 besteht jetzt aus den Inhalten von DS (jetzt Algo1a) und einem Teil der Inhalte aus GL1 (Algo1b).
Die Äquivalenzregelung des Prüfungsamts Informatik finden Sie hier.
Die Prüfung wird als ganzes oder in Teilen für sowohl Algo1a als auch Algo1b angeboten. Wenn Sie sich nur in einem Teil prüfen lassen, werden auch auch nur die Bonuspunkte aus dem entsprechenden Teil der Übungsaufgaben angerechnet. Die Übungsaufgaben und Vorlesungsvideos für Algo1b werden entsprechend markiert. Alles andere gehört zu Algo1a. Es wird auch auf der Webseite geschrieben, wenn Algo1b Inhalte auf den Übungsblättern oder in den Videos vorkommen, aber es wird keine Vorankündigung geben. Schauen Sie bitte regelmäßig auf die Webseite.
Hinweis: Manche Inhalte zählen explizit zu Algo1b. Allerdings heißt das nicht, dass in der Prüfung die anderen Inhalte nicht Teil der Aufgaben sein können. Bspw. braucht man für die Graphalgorithmen aus Algo1b Datenstrukturen die evtl. Teil von Algo1a sind. Das wäre auch bei einer regulären GL1 Prüfung nicht anders gewesen. Kurz: Alle Inhalte von Algo1a sind relevant für Algo1b. Beides sind Grundlagen.
GL1 als Auflage
Masterstudenten, die GL1 als Auflage bekommen haben, müssen nur Algo2 hören. Es ist keine Prüfung in Algo1b nötig.
GL1 im Nebenfach
Bitte klären Sie mit Ihrem Prüfungsamt, ob sie Algo1b hören müssen oder ob Algo2 genügt.
Die Vorlesung behandelt die Laufzeitanalyse, fundamentale Datenstrukturen und allgemeine Methoden für den Entwurf und die Analyse von Algorithmen und Datenstrukturen. Die Analyse im Hinblick auf Laufzeit und Speicherplatzbedarf wird motiviert. Die asymptotische Notation wird eingeführt, und Methoden zur Lösung von Rekursionsgleichungen werden besprochen.
Elementare Datenstrukturen wie Listen, Keller und Warteschlangen werden beschrieben und analysiert. Der Begriff des abstrakten Datentyps wird eingeführt und motiviert, und effiziente Realisierungen der Datentypen des Wörterbuchs und der Prioritätswarteschlange unter Benutzung von Bäumen und Hashing werden besprochen. Außerdem werden effiziente Datenstrukturen für das Union-Find-Problem behandelt.
Die Darstellung von Bäumen und allgemeinen Graphen im Rechner und Algorithmen zur systematischen Durchmusterung von Graphen diskutiert. Weiterführende Algorithmen für Graphenprobleme wie minimale Spannbäume und kürzeste Wege werden besprochen, und der Einsatz von Datenstrukturen in diesen Verfahren wird exemplarisch vorgestellt.
Wissen und Verstehen: Die Studierenden sollen grundlegende Algorithmen und Datenstrukturen mit deren Eigenschaften und Leistungsparametern kennen und diese Parameter in asymptotischer Notation verstehen und vergleichen können
Können: Die Studierenden lernen, Datenstrukturen fur neue Problemstellungen eigenständig zu entwerfen und deren Leistungsparameter zu analysieren (instrumentale Kompetenz). Dadurch sollen sie im Beruf z.B. in der Lage sein, bestehende Software durch geeignetere Datenstrukturen zu beschleunigen (systemische Kompetenz).
Kommunikative Kompetenzen werden durch Arbeiten in Gruppenübungen und die dortige Vorstellung und Diskussion von Übungsaufgaben erworben.
Bestätigte Termine
Hauptklausur: 27.07.2020 14:00 s.t. WESTEND-Campus
Nachklausur: 05.10.2020 9:00 s.t. WESTEND-Campus
Weitere Informationen insb. zur Raumzuteilung werden zu rechtzeitig bekannt gegeben.
Videos zur Vorlesung stehen hier zur Verfügung.
Es handelt sich dabei um Aufzeichnungen der Vorlesungen Datenstrukturen und Theoretische Informatik 1 aus den vergangen Semestern. Teilweise werden die Videos neu geschnitten oder durch neue Videos ergänzt um den Inhalt der aktuellen Vorlesung gerecht zu werden.
Es stehen auch die Videos zu Datenstrukturen vom Sommersemester 2018 (werden neu geschnitten und für diese Vorlesung hochgeladen) und Sommersemester 2019 (Prof. Hoefer) zur Verfügung.
Hinweis: Die Videos werden von studiumdigitale gehostet.
Video V01: Wiederholung mathematischer Grundlangen
Video V02: Laufzeitmessung und asymptotische Notation
Video V03: Mastertheorem und Analyse von Pseudocode
Video V04: Stacks, Queues, Listen und Bäume
Video V05: Binärbäume und Traversierung
Video V06: Topologisches Sortieren, Graphimplementierung und Tiefensuche
Video V07: Tiefensuche
Video V08: Breitensuche und Heaps / Prioritätswarteschlangen
Video V09.1: Heaps und Heapsort
Video V09.2: Binäre Suchbäume
Video V10: AVL-Bäume und (a,b)-Bäume
Video V11: (a,b)-Bäume und Hashing
Video V12: Hashing
Video V13: Tiefen- und Breitensuche (WH) und Dijkstras Algorithmus
Video V14: Dijkstras Algorithmus und minimale Spannbäume
Video V15: Algorithmen von Prim und Kruskal
Video V16: Greedy-Algorithmen, Scheduling, Huffman-Code und -Bäume
Video V17: Divide & Conquer, Schnelle Multiplikation, Dynamische Programmierung, TSP und gewichtete Intervall-Scheduling
Video V18: Gewichtete Intervall Scheduling, All-Pairs-Shortest-Path, Paarweises Alignment
Video V19: Das paarweise globale Alignment Problem und RNA-Sekundärstruktur
Video V20: Lineare Programmierung
Die Folien zu den Videos von Prof. Hoefer finden Sie auf der zugehörigen Vorlesungswebseite.
Altklausuren finden Sie hier.
Die Bearbeitung der Übungsblätter in Gruppen ist erlaubt, jedoch müssen Sie Ihre Lösungen eigenständig aufschreiben.
Die Übungsblätter werden so entworfen, dass ihre Bearbeitung mit den Kenntnissen aus der Vorlesung und aus vorangegangenen Übungsblättern möglich ist. Sollten Sie in Ihrer Lösung dennoch andere Quellen (Bücher, Skripte, Internetforen, soziale Netzwerke, Lösungen anderer Studenten, etc.) verwenden, so müssen Sie die entsprechenden Stellen als direkte oder indirekte Zitate kennzeichnen. Orientieren Sie sich hierfür einfach an den Hinweisen zum Zitieren in schriftlichen Arbeiten am Institut für Informatik. Darüber hinaus muss Ihre persönliche Leistung stets deutlich erkennbar sein. Bei direkten Zitaten oder fast unverändert übernommenen Passagen liegt keine persönliche Leistung vor.
Beachten Sie auch die Hinweise zu Plagiaten und Betrugsversuchen.
Variante | Download | Ausgabe | Abgabe |
---|---|---|---|
Algo1a | Übung 0 (Lösungsvorschlag) | 21.04. | keine |
Algo1a | Übung 1 (Lösungsvorschlag) | 28.04. | 05.05. 08:00 (morgens) |
Algo1a | Übung 2 (Lösungsvorschlag) | 05.05. | 12.05. 08:00 (morgens) |
Algo1a | Übung 3 (Lösungsvorschlag) | 12.05. | 19.05. 08:00 (morgens) |
Algo1a | Übung 4 (tex) (Lösungsvorschlag) | 19.05. | 26.05. 08:00 (morgens) |
Algo1a | Übung 5 (tex) (Lösungsvorschlag) | 26.05. | 02.06. 08:00 (morgens) |
Algo1a | Übung 6 (Lösungsvorschlag) | 02.06. | 09.06. 08:00 (morgens) |
Algo1a | Übung 7 (tex) (Lösungsvorschlag) | 09.06. | 16.06. 08:00 (morgens) |
Algo1a | Übung 8 (Lösungsvorschlag) | 16.06. | 23.06. 08:00 (morgens) |
Algo1a + b | Übung 9 (Lösungsvorschlag) | 23.06. | 30.06. 08:00 (morgens) |
Algo1b | Übung 10 (Lösungsvorschlag) | 30.06. | 07.07. 08:00 (morgens) |
Algo1b | Übung 11 (Lösungsvorschlag) | 07.06. | 14.07. 08:00 (morgens) |
Update: In der Aufgabe 6.2a war zuvor das Element 34 zwei Mal aufgeführt. Das erste sollte eine 35 sein.
Update: Der Lösungsvorschlag zu Aufgabe 5.4a wurde verbessert.
Update: In Aufgabe 8.1 stand “Hashtabelle der Größe 8”. Das muss natürlich 11 statt 8 sein, da 11 Elemente eingefügt werden sollen. In Aufgabe 8.2 hat eine Klammer in der Hashfunktion gefehlt. Ohne Klammer macht die Hashnunktion an der Stelle auch keinen Sinn.
Update Die Lösung zu Aufgabe 9.2 hatte einen Tippfehler bei der Laufzeit.
Update: Aufgabe 10.1 war unvollständig. Irgendwie war die zweite Satzhälfte verloren gegangen…
Selbststest sind ein zusätzliches Übungsangebot. Hier finden Sie Aufgaben und Lösungen mit denen Sie Ihren Wissensstand selbst überprüfen können. Die PDF Dateien gibt es mit und ohne JavaScript Validierung. Um diese nutzen zu können, benötigen Sie einen entsprechenden Reader der das unterstützt, z.B. der Reader von Adobe. Die Version ohne JS sollte mit allen Readern funktionieren.
Hinweis: In der PDF mit den Lösungen sind die richtigen Antworten angekreuzt. Leider sieht das aufgrund der Formatierung aus als wäre die Antwort durchgestrichen. Wir arbeiten daran, dass das besser wird.
Hinweis: Ab Selbsttest 12 bieten wir keine JavaScript-Variante mehr an. Der Grund ist, dass es nur sehr eingeschränkt unterstützt wird und JavaScript in PDFs normalerweise aus Sicherheistsgründen ausgeschaltet ist. Außerdem haben wir die Lösungen mit in die Datei mit den Aufgaben gepackt. In der Mitte des Dokuments ist eine Seite die darauf hinweist, dass die Lösungen beginnen.
Selbsttest 1: O-Notation | mit JS | ohne JS | Lösung |
Selbsttest 2: Rekursion und Pseudocodeanalyse | mit JS | ohne JS | Lösung |
Selbsttest 3: O-Notation | mit JS | ohne JS | Lösung |
Selbsttest 4: Rekursion und Pseudocodeanalyse | mit JS | ohne JS | Lösung |
Selbsttest 5: Rekursion und topologische Sortierung | mit JS | ohne JS | Lösung |
Selbsttest 6: Heaps, Breiten- und Tiefensuche (Update 30.05.) | mit jS | ohne JS | Lösung |
Selbsttest 7: Heaps und Suchbäume (Update 03.06.) | mit jS | ohne JS | Lösung |
Selbsttest 8: O-Notation und Pseudocodeanalyse | mit JS | ohne JS | Lösung |
Selbsttest 9: Hashing | mit JS | ohne JS | Lösung |
Selbsttest 10: Dijkstras Algorithmus | mit JS | ohne JS | Lösung |
Selbsttest 11: Prims Algorithmus | mit JS | ohne JS | Lösung |
Selbsttest 12: Huffman-Codes | ohne JS | ||
Selbsttest 13: O-Notation, Rekursion und Pseudocodeanalyse | ohne JS | ||
Selbsttest 14: Heaps und Suchbäume | ohne JS | ||
Selbsttest 15: topologische Sortierung, Breiten- und Tiefensuche | ohne JS | ||
Selbsttest 16: Hashing | ohne JS | ||
Selbsttest 17: Dijkstras und Prims Algorithmus | ohne JS | ||
Selbsttest 18: Huffman-Codes | ohne JS |
Es stehen Skripte von Herrn Prof. Dr. G. Schnitger zu Datenstrukturen und Theoretische Infromatik 1 zur Verfügung.
Hinweis: Mit der Zeit sollen die beiden Skripte neu aufgeteilt werden in Skripte für Algo1 und Algo2. Bis dahin sind hier noch die Skripte zu DS und GL1.