Teaching

FS13: Informatik IIb: Algorithmen und Datenstrukturen (AINF1152)

Diese Vorlesung ist Teil des Moduls Informatik II: Modellierung, Algorithmen und Datenstrukturen (V-Nr. 437)

Organisation

Dozent: Prof. Dr. Renato Pajarola
Assistenten: Matthias Thöny
Zeit: Donnerstag 12:15-15:45 Uhr
Ort: BIN 0.K.02
Sprache: Deutsch mit Unterlagen auf Englisch (Slides und Buch)
ECTS: 6
Übungen: Die Übungen beginnen in der 1. Vorlesungswoche. Die Einschreibung für die Übungsgruppen wird ab dem 15.2.2013 um 14:00 über OLAT "INF_13_FS Informatik II" freigeschalten.

Voraussetzungen

Informatik I, Grundkenntnisse in Programmieren.

Inhalt

Algorithmen und Datenstrukturen, Analyse und Komplexität von Algorithmen, NP-Vollständigkeit, Berechenbarkeit, Such- und Sortieralgorithmen, Listen, Bäume und Graphen, Geometrische Algorithmen.

In dieser Vorlesung werden die Grundlagen effizienter Algorithmen und Datenstrukturen vermittelt. Sie lernen dabei die algorithmischen Lösungsverfahren von fundamentalen Informatikproblemen zu verstehen, wie sie in der Datenverarbeitung vielerorts üblich sind, und diese auch selbst in einer modernen Programmiersprache zu implementieren. Die Vorlesung führt Sie in die Programmierung mit C++ ein, wobei einfache praktische Probleme studiert und verwendet werden deren Lösungen dann in C++ illustriert werden. Bekannte einfache Algorithmen die Sie bereits in Java bearbeitet haben werden neu in C++ gezeigt.

Literatur

Michael T. Goodrich, Roberto Tamassia, David M. Mount; Data Structures and Algorithms in C++. John Wiley & Sons Inc. Higher Education, ISBN 0-471-20208-8 (empfohlene Erstliteratur) Link zu buch.ch online Shop,  Link zu John Wiely & Sons online Shop

Robert Sedgewick: Algorithms in C++ Parts 1-4 and 5 (Fundamentals, Data Structures, Sorting, Searching, Graph Algorithms). 3rd Edition, Addison-Wesley Professional (mögliche Zweitliteratur)

Leistungsnachweis

Erfolgreiche Mitarbeit in den Übungen während des Semesters, Übungsaufgaben und zwei Zwischentests, sowie Bestehen der schriftlichen Endklausur.

Selbststudium

Als ständige Aufgabe besteht die Anforderung, dass sich alle Teilnehmer dieser Vorlesung stets über die in der Vorlesung vorkommenden Themen in der Begleitliteratur auf dem laufenden zu halten haben.

Übungen

Die wöchentlichen (oder zweiwöchentlichen) Programmierübungen sind Pflichtbestandteil der Vorlesung. Zwei Zwischentests müssen erfolgreich abgeschlossen werden um an der schriftlichen Schlussprüfung teilnehmen zu können. Die Zwischentests werden während der Vorlesungszeit durchgeführt und müssen dort vor Ort gelöst werden.

Prüfung

Die Vorlesung wird mit einer schriftlichen Endprüfung abgeschlossen. Zu dieser sind nur diejenigen Teilnehmer zugelassen welche die Zwischentests erfolgreich bestanden haben. Ort und Zeit der Schlussprüfung werden vom Dekanat festgelegt, gemäss Vorlesungsverzeichnis.

Vorlesungsthemen, Unterlagen und Übungen

Original Folien zur Vorlesung zum Buch "Data Structures and Algorithms in C++".

Die aktualisierten und in der Vorlesung verwendeten Folien werden auf OLAT bereitgestellt.

Wichtig: Die 1. Übung findet in der 1. Vorlesungswoche statt!

(vorläufige Angaben, vorbehatlich Änderungen)

Woche Themen Übungen
1 Einführung in C++ (Intro, Demos), Algorithm analysis Übung 1 + 2
3 Stacks, queues Uebung 3
4 Vectors, lists, sequences
5 Trees
... Priority queues, heaps
... Dictionaries, hash tables
... Search trees
... Sorting
... Text processing
... Graphs
... Dynamic programming
... Spatial data structures and hashing