Praktische Informatik 2
Practical Computer Science 2
|
Modulnummer
INF-2
|
Bachelor
|
Schwerpunkt
|
Anzahl der SWS
V |
UE |
K |
S |
Prak. |
Proj. |
∑ |
2 |
2 |
0 |
0 |
0 |
0 |
4 |
|
Kreditpunkte
:
6
|
Turnus
angeboten in jedem SoSe
|
Formale Voraussetzungen
:
-
|
Inhaltliche Voraussetzungen
:
-
|
Vorgesehenes Semester
:
2. Semester
|
Sprache
:
Deutsch
|
Ziele
:
- Typische Datenstrukturen identifizieren und problemadäquat einsetzen können.
- Datenstrukturen und Algorithmen in Java umsetzen können.
- Wesentliche Algorithmen der Informatik erklären, anwenden und modifizieren können.
- Algorithmische Alternativen bezüglich der Eignung für ein Problem beurteilen können.
- Grundbegriffe der formalen Verifikation erläutern können.
- Die Komplexität von einfachen Algorithmen analysieren können.
- In Gruppen Probleme analysieren und gemeinsam Lösungsstrategien entwickeln und präsentieren können.
Die Vorlesungen Praktische Informatik 1 und 2 vermitteln essenzielles Grundwissen und Basisfähigkeiten, deren Beherrschung für nahezu jede vertiefte Beschäftigung mit Informatik – sowohl in der industriellen Anwendung, als auch in der Forschung – Voraussetzung ist.
|
Inhalte
:
- Komplexität von Algorithmen – O(n)-Notation und asymptotische Analyse
- Suchen und Sortieren auf Arrays: Binäre Suche – Quicksort und weitere Sortieralgorithmen – Komplexitätsvergleiche
- Mengen – Bags – Multimengen – Relationen – Funktionen: Datenstrukturen und Algorithmen zur Realisierung kanonischer Operationen (z.B. Mengenalgebra)
- Listen – Stapel – Warteschlangen: Datenstrukturen zur Realisierung (Arrays versus Verkettung und dynamische Speicherallokation für Elemente), Algorithmen zur Realisierung kanonischer Operationen (Listentraversion, Anfügen, Einfügen, Löschen, Suchen, Stack-Operationen, FIFO-Warteschlangenoperationen)
- Bäume: Binäre Bäume, AVL-Bäume, Rot-Schwarz-Bäume, B-Bäume – Suchen, Einfügen, Löschen, Traversion
- Hashing: Hash-Array, Hashfunktion, Hash Buckets, offenes Hashing
- Graphen: ungerichtete, gerichtete, gewichtete Graphen – Repräsentation durch Knoten- und Kantenlisten, durch Adjazenzmatrizen, Adjazenzlisten – Algorithmen auf Graphen: Breitensuche, Tiefensuche, Topologische Sortierung, kürzeste Wege auf gewichteten Graphen: Dijkstras Algorithmus, Maximaler Durchfluss, Realisierung markierter Transitionssysteme mit Graphen
- Algorithmen zur Syntaxprüfung: Tokenizer und Parser – systematische ParserGenerierung aus EBNF-Grammatiken
- Textsuche: Knuth-Morris-Pratt – Boyer-Moore – Pattern Matching für reguläre Ausdrücke
- Spezifikation von Programmen: Vor- und Nachbedingungen – Invarianten
- Verifikation: Partielle und totale Korrektheit sequenzieller Programme – Formale Verifikation, z.B. Hoare Logik (Pre-/Postconditions) – Eigenschaftsbeweis durch Strukturelle Induktion
|
Unterlagen (Skripte, Literatur, Programme usw.)
:
- G. Saake und K.-U. Sattler: Algorithmen und Datenstrukturen. dpunkt.verlag, Heidelberg (2004)
- R. Schiedermeier: Programmieren mit Java. Pearson, München (2005)
Weitere Informationen (Beispielprogramme, Musterlösungen, im WWW verfügbare Literatur) sind auf der Web-Seite der Veranstaltung zu finden.
|
Form der Prüfung
:
i.d.R. Bearbeitung von Übungsaufgaben und Klausur
|
Arbeitsaufwand
Präsenz |
56 |
Übungsbetrieb/Prüfungsvorbereitung |
124 |
Summe |
180 h |
|
Lehrende:
Prof. Dr. J. Peleska, Dr. T. Röfer, Dr. K. Hölscher
|
Verantwortlich
Prof. Dr. J. Peleska
|