|
|
Dozent |
Prof. Dr. Oliver Vornberger |
Übungsleiter |
Nils Haldenwang, M.Sc., Lukas Kalbertodt, B.Sc. |
Tutoren |
Dennis Altenhoff,
Johan von Behren,
Franziska Becker,
Miriam Beutel,
Malte Boßert,
Jan-Niklas Brandes,
Lena Dorfschmidt,
Alejandro Dinkelberg,
Christoph Eichler,
Till Grenzdörffer,
Laura Hembrock,
Katrin Ihler,
Famke Lamberti,
Hannah Lewerentz,
Matthias Jansen,
Moritz Nipshagen,
Svantje Jung,
Timo Osterkamp,
Ann-Kathrin Schalkamp,
Lena Scholz,
Andreas Schröder,
Kevin Trebing,
Rene Warnking,
Philipp Wicke,
Joshua Wiebe,
Sven Wilke
|
|
|
Vorlesung |
montags und dienstags, 14:15 - 15:45 Uhr, Raum 32/102 und per Videostream in 32/109 und 32/110
|
Übung |
Lukas Kalbertodt: |
donnerstags, 08:30 - 10:00 Uhr, Raum 31/E06
donnerstags, 10:15 - 11:45 Uhr, Raum 31/E06
|
Nils Haldenwang: |
donnerstags, 12:15 - 13:45 Uhr, Raum 93/E31
donnerstags, 14:15 - 15:45 Uhr, Raum 93/E31
|
Alle Übungen haben den gleichen Inhalt.
|
|
|
Inhalt |
Es werden anhand der Programmiersprache Java Algorithmen zum Suchen und Sortieren vorgestellt und die dazu benötigten Datenstrukturen wie Keller, Schlange, Liste, Baum und Graph eingeführt. Programme werden auf Eigenschaften wie Korrektheit, Terminierung und Effizienz untersucht. |
Literatur |
Vorlesungsskript (HTML), Vorlesungsskript (PDF)
    (Das Skript kann in der ersten Vorlesungsstunde für 5 € erworben werden.)
Die Veranstaltung behandelt (naturgemäß) nur einen Teil
der Programmiersprache Java und auch nur exemplarisch
einige wichtige Datenstrukturen. Der prüfungsrelevante
Stoff ist vollständig
in diesem Skript dokumentiert. Wer sich darüberhinaus
noch umfassender informieren möchte, sei auf folgende Bücher verwiesen:
- Christian Ullenboom:
"Java ist auch eine Insel", 10. Auflage, Galileo Computing, 2011
Onlinefassung: http://openbook.galileocomputing.de/javainsel/
- Robert Sedgewick, Kevin Wayne:
"Einführung in die Programmierung mit Java", Pearson, 2011
|
Evaluation |
über stud.ip-Fragebogen (PDF)
|
Foto |
Die Teilnehmer der Veranstaltung
Die Teilnehmer der Veranstaltung (mit Markierungen)
|
Vorlesungsmitschnitte und Podcast |
Von der Vorlesung werden Film- und Tonaufzeichnungen erstellt und als HTML5-Video, mp4-Video und mp3-Audio angeboten.
Zusätzlich zu stud.ip finden Sie die Links auf die jeweiligen Folgen in der untenstehenden Ablauf-Tabelle. Sie werden
eingefügt, sobald die jeweiligen Aufzeichnungen verfügbar sind.
|
Ablauf |
Mo, 24.10. |
1 |
Einführung: Organisation, Informatik, Algorithmus, Anweisungen, Collatz-Funktion |
FLV |
mp4 |
mp3 |
Di, 25.10. |
- |
Organisation: Übungsbetrieb, Systemadministration, Installation, Algotools |
FLV |
mp4 |
mp3 |
Mo, 31.10. |
2 |
Java: Sprachmerkmale, Variablen, Bedingungen, Fallunterscheidungen |
FLV |
mp4 |
mp3 |
Di, 01.11. |
2 |
Schleifen: while, do-while, for, Berechnung der Fakultät, Berechnung des GGT |
FLV |
mp4 |
mp3 |
Mo, 07.11. |
2 |
Datentypen: Ganze Zahlen (byte, short, int, long), Gleitkommazahlen (float) |
FLV |
mp4 |
mp3 |
Di, 08.11. |
2 |
Datentypen: Gleitkommazahlen (double), Boolean, Character, Typumwandlung, Konstanten |
FLV |
mp4 |
mp3 |
Mo, 14.11. |
3 |
Felder: Feld von Ziffern, Feld von Daten, Feld von Zeichen, Feld von Wahrheitswerten |
FLV |
mp4 |
mp3 |
Di, 15.11. |
3 |
Felder: Feld von Indizes (Abzählreim), Feld von Zuständen (Endlicher Automat), Lineare Suche |
FLV |
mp4 |
mp3 |
Mo, 21.11. |
3, 4 |
Binäre Suche, Methoden: aktuelle + formale Parameter, Übergabe von arrays, Sichtbarkeit |
FLV |
mp4 |
mp3 |
Di, 22.11. |
4, 5 |
Rekursion: Fakultät, Potenzieren, Fibonacci, ggT, Türme von Hanoi |
FLV |
mp4 |
mp3 |
Mo, 28.11. |
6 |
Komplexität: O-Notation, Analyse von Schleifen, Analyse eines rekursiven Programms |
FLV |
mp4 |
mp3 |
Di, 29.11. |
6 |
Verifikation: partielle Korrektheit, Terminierung, Halteproblem (Algorithmen-Fee) |
FLV |
mp4 |
mp3 |
Mo, 05.12. |
7 |
Sortieren: Greedy, SelectionSort, BubbleSort, MergeSort rekursiv, MergeSort iterativ |
FLV |
mp4 |
mp3 |
Di, 06.12. |
7 |
Sortieren: Quicksort, Median |
FLV
| mp4 |
mp3 |
Mo,   12.12. |
7 |
Sortieren: Baum, Heap, HeapSort |
FLV |
mp4 |
mp3 |
Di, 13.12. |
7 |
Sortieren: Laufzeit und Platzbedarf, Untere Schranke, Bucket Sort, Objektorientierung |
FLV |
mp4 |
mp3 |
Mo, 02.01. |
8 |
Objektorientierte Programmierung: Class Person, Vererbung, Class Student, Binden, Abzählreim |
FLV |
mp4 |
mp3 |
Di, 03.01. |
8 |
ADT: Interface, ADT Liste |
FLV |
mp4 |
mp3 |
Mo, 09.01. |
9 |
ADT: Keller, Reverse, Klammerung, CharKeller, Infix-Postfix |
FLV |
mp4 |
mp3 |
Di, 10.01. |
9 |
ADT: Schlange, Baum, VerweisBaum |
FLV |
mp4 |
mp3 |
Mo, 16.01. |
9 |
ADT: Traverse, TiefenSuche, BreitenSuche, PostfixBaumBau, Enumeration, PreorderTraverse |
FLV |
mp4 |
mp3 |
Di, 17.01. |
9 |
SuchBaum: Comparable, Interface Menge, Insert, Delete, Lookup |
FLV |
mp4 |
mp3 |
Mo, 23.01. |
9 |
Suchbaum: Implementation von Lookup, Insert, SuchBaumTest, ausgeglichen, AVLBaum |
FLV |
mp4 |
mp3 |
Di, 24.01. |
10,11 |
Hashing: Kollision, Sondieren, offenes + geschlossenes Hashing, HashSet, HashMap |
FLV |
mp4 |
mp3 |
Mo, 30.01. |
12 |
Graphen: Modellierung, Fragestellungen, Implementation, All-Pairs-Shortest Path |
FLV |
mp4 |
mp3 |
Di, 31.01. |
12 |
Graphen: Vertex, Edge, Single-Source-Shortest-Path, Topologisches Sortieren, Hamiltonkreis |
FLV |
mp4 |
mp3 |
Mo, 06.02. |
12 |
Graphen: Maximaler Fluss, Minimaler Cut, erweiternder Weg, Ford Fulkerson |
FLV |
mp4 |
mp3 |
Di, 07.02. |
12 |
Graphen: Spannbaum, Matching, Chinese Postman |
FLV |
mp4 |
mp3 |
Mo, 13.02. |
- |
Wanderung |
Do, 23.02. |
- |
Klausur |
|