course: Datenstrukturen und Algorithmen für ITS (PO 20)

number:
150322
teaching methods:
lecture with tutorials
media:
overhead transparencies, black board and chalk
responsible person:
Prof. Dr. Maike Buchin
lecturer:
Prof. Dr. Maike Buchin (Mathematik)
language:
german
HWS:
6
CP:
8
offered in:
summer term

dates in summer term

  • start: Tuesday the 13.04.2021
  • lecture Tuesdays: from 14:00 to 16.00 o'clock
  • lecture Thursdays: from 12:00 to 14.00 o'clock
  • tutorial (alternativ) Tuesdays: from 12:00 to 14.00 o'clock
  • tutorial (alternativ) Tuesdays: from 16:00 to 18.00 o'clock
  • tutorial (alternativ) Wednesdays: from 10:00 to 12.00 o'clock
  • tutorial (alternativ) Wednesdays: from 12:00 to 14.00 o'clock

Exam

Form of exam:written
Registration for exam:FlexNow
Date:01.10.2021
Begin:10:15
Duration:150min
Room : wird vom Lehr­stuhl be­kannt ge­ge­ben.

goals

Nach dem erfolgreichen Abschluss des Moduls - können Studierende Algorithmen formal beschreiben und deren Korrektheit beweisen - können Studierende die Laufzeit und den Speicherbedarf von Algorithmen und Datenstrukturen analysieren und bewerten - kennen Studierende grundlegende Datenstrukturen - kennen Studierende grundlegende Schemata zum Entwurf von Algorithmen - können Studierende Algorithmen und Datenstrukturen für spezifische Probleme entwickeln

content

Die Vorlesung gibt einen systematischen Überblick über den Entwurf und die Analyse von Algorithmen und Datenstrukturen. Dazu werden zunächst grundlegenden Methoden der Analyse (insbesondere Korrektheit, Laufzeit und Speicherbedarf) von Algorithmen vorgestellt. Anschließend werden einige Algorithmen zum Sortieren und Suchen analysiert. Ebenfalls werden verschiedene grundlegende Datenstrukturen (Listen, Felder, Suchbäume und Heaps) vorgestellt. Schließlich werden Graphen betrachtet: Ihre Darstellung und diverse Algorithmen auf Graphen (Durchläufe, kürzeste Wege, minimale Spannbäume). In den Übungen lernen die Studierende sowohl die theoretische Analyse von Algorithmen und Datenstrukturen als auch deren praktische Umsetzung in einer modernen Programmiersprache (z.B. Python).