logo of the SSW institute ;)
Computer Science
System Software

Home

General
Staff
Contact
Partners
Alumni

Research
Areas
Projects
Papers
Books
Reports
Awards

Teaching
Lectures
Exams
B.Projects
M.Theses
PhD Theses
Go Abroad

Misc
Talks
Library
Gallery
Links
Search

Webmaster


Algorithmen und Datenstrukturen 1 / Praktische Informatik 1

339.110 Algorithmen und Datenstrukturen 1 (Informatik) 2VO Blaschek Di 10:15-11:45 Raum: HS 9 Beginn: 7.3.2017
339.910 Algorithmen und Datenstrukturen 1 (Informationselektronik) 2VO Blaschek Mi 10:15-11:45 Raum: HS 19 Beginn: 8.3.2017
339.630 Praktische Informatik 1 (Mechatronik) 2VO Blaschek Mi 10:15-11:45 Raum: HS 19 Beginn: 8.3.2017

Organisatorisches

Studienrichtungen

Die drei Lehrveranstaltungen 339.110, 339.910 und 339.630 werden an zwei Terminen für drei Studienrichtungen abgehalten (siehe Tabelle). Die Lehrveranstaltungen sind inhaltlich gleich.

Übungen

Die Übungen zu den Vorlesungen werden aus organisatorischen Gründen vom Institut für Pervasive Computing angeboten.

Ziele

Algorithmen sind das formale Grundgerüst für die Software-Entwicklung. Sie sind ein Bindeglied zwischen der Theoretischen Informatik und der eigentlichen Programmierung.

In dieser Lehrveranstaltung werden die wesentlichen Eigenschaften von Algorithmen untersucht und wichtige Klassen von Algorithmen in Bezug auf ihre praktische Anwendung vorgestellt.

Die Behandlung der Algorithmen erfolgt großteils in "Jana", einer abstrakten Schreibweise, die an Java angelehnt ist. Diese Notation erlaubt die Betrachtung von Algorithmen losgelöst von einer konkreten Programmiersprache.

Manche Lehrinhalte (z.B. Rekursion, Zufallszahlen und Sortieren) werden durch Vorführungen veranschaulicht.

Inhalt

  • Der Algorithmusbegriff
    Definition, Abgrenzung zwischen Algorithmen und Programmen, Darstellungsarten, Abstraktionsschichten und Bestandteile von Algorithmen
  • Spezifikation
    Zweck, Schnittstellenbeschreibung, Aufgabenbeschreibung, Darstellungsarten
  • Schrittweise Verfeinerung
    "Divide & Conquer", systematisches Lösen großer Probleme, Beispiel in Java
  • Algorithmen mit Gedächtnis
    Begriff, Implementierungsvarianten
  • Komplexität
    Begriff, Laufzeitanalyse, Laufzeitmessung, Asymptotische Komplexität, Minimale Komplexität von Problemen
  • Rekursion
    Begriff, Klassifizierung, Terminierung, Anwendungen, Umwandlung rekursiver Algorithmen in iterative und umgekehrt
  • Zufallszahlen
    Aufbau von Zufallszahlengeneratoren, Periodenlänge, Varianten von Zufallszahlengeneratoren, Zufälligkeitstests
  • Sortieren
    Auswahlverfahren, Einfügeverfahren, Shellsort, Quicksort, internes und externes Mischsortieren, Komplexität von Sortierverfahren
  • Exhaustion
    Das n-Damen-Problem, Schema zum Suchen einer Lösung, Exhaustionsvariante, Optimierungsvariante, Darstellung von Lösungsvektoren, Näherungsverfahren, Nichtdeterministische Algorithmen
  • Klassifikation von Algorithmen

Leistungsnachweis:

VO: Vorlesungsklausur am Ende des Semesters.

UE: Beurteilung ausgearbeiteter Übungsaufgaben.

Unterlagen

Die Vorlesung wird foliengestützt abgehalten. Die Folien und ergänzende Unterlagen stehen im KUSSS zum Download zur Verfügung; eine Beschreibung der in der Vorlesung und in den Übungen verwendeten Algorithmenbeschreibungsprache Jana finden Sie zusätzlich hier.
Hinweise auf weiterführende Literatur sind im Skript enthalten. Ergänzendes Begleitmaterial zur Übung wird zum Download im PDF-Format bereitgestellt.

Movies

Weitere teils interaktive Visualisierungen von Algorithmen finden Sie auf einer Seite der University of San Francisco.