Entwurf, Analyse und Umsetzung von Algorithmen

Lernen Sie, Algorithmen zur Lösung praxisnaher Problemstellungen effizient zu implementieren

Bei eingebetteten Systemen findet man oft nur beschränkte Ressourcen vor. Die Laufzeit und der Ressourcenverbrauch von Algorithmen sind also von entscheidender Bedeutung. Dieser Kurs gibt eine Einführung in grundlegende Algorithmen und Datenstrukturen und in Methoden, um die Effizienz und die Optimalität eines Programms zu analysieren.

Ihre Vorteile

  • Weiterbildung ohne Ausfallzeiten
  • Hohe Flexibilität durch berufsbegleitendes Lernen
  • Hohe Effizienz und Anwendbarkeit durch praxisnahe Inhalte
  • Hoher Lernerfolg durch neueste Lehr- und Lernmethoden und innovative Bildungstechnologien wie z. B. virtuelle Klassenzimmer, Lernforen, Chats oder mobile Hardwarepraktika

Nächster Starttermin

Sommersemester 2024
Start am 17. April 2024
Anmeldung bis zum 01. April 2024

Schwerpunktmäßig behandeln Sie solche Algorithmen und Qualitätsaspekte, die für den Entwurf und die Analyse von Embedded Systems und Cyber Physical Systems grundlegend sind. Neben den elementaren Datenstrukturen (z.B. Felder, Listen, Bäume, Graphen, etc.) lernen Sie auch gängige Programmierparadigmen (z.B. Divide & Conquer, Rekursion, dynamische Programmierung, etc.) kennen. Mit einem Fokus auf praxisrelevante Rechnerarchitekturen lernen Sie, die Laufzeit und den Ressourcenverbrauch eines gegebenen Programmes zu analysieren, sowie die Optimalität eines Programmes zu beurteilen – sowohl theoretisch als auch praktisch.

In begleiteten Übungen setzen Sie die erlernten Methoden in die Praxis um. Sie lernen, effiziente Algorithmen selbst zu implementieren und Komplexitätsabschätzungen  und Korrektheitsbeweise anzuwenden.

Wofür können die Inhalte verwendet werden?

Das Lernziel ist die Kenntnis der elementaren Algorithmen und Datenstrukturen, die für die Entwicklung jedes größeren Programmes notwendig sind. Nach erfolgreicher Teilnahme können Sie für eine gegebene Aufgabenstellung unter Berücksichtigung der verfügbaren Ressourcen (vor allem Rechenleistung und Speicher) die am besten passenden Algorithmen und Datenstrukturen auswählen. Sie können diese selbst implementieren und wissen, wie die Standardbibliotheken Phyton für die dazugehörigen Implementationen verwendet werden können. Sie können darüber hinaus die Algorithmen theoretisch analysieren, um z.B. die Laufzeit in Abhängigkeit von der Eingabedatenmenge vorherzusagen.

Welche Vorkenntnisse brauche ich?

Grundkenntnisse in einer höheren, objektorientierten Programmiersprache (Phyton) werden für diesen Kurs empfohlen.
Im Bereich Weiterbildungskurse finden Sie weitere Informationen zu den erwarteten Vorkenntnissen.

Kosten

Die Kosten inkl. Lernmaterialien, tutorieller Betreuung durch einen wissenschaftlichen Mitarbeiter und der Prüfungsleistung belaufen sich auf 2.300 Euro.

Wie läuft der Kurs ab?

Allgemeine Einführungsveranstaltung in Freiburg

Sie lernen den Fachexperten kennen und erhalten einen Überblick über die Inhalte. Das IEMS-Team führt Sie in die Methoden des Online-Lernens ein und beantwortet Ihre organisatorischen Fragen.

E-Training & Online-Meeting

Sie lernen flexibel mit E-Lectures. Zur Selbstkontrolle Ihres Lernfortschrittes bearbeiten Sie Programmier- und Übungsaufgaben. In Online-Meetings und über das Forum können Sie sich sowohl mit Mitstudierenden als auch mit den Tutoren und Tutorinnen über Lerninhalte austauschen und Fragen klären.

Prüfung und Zertifikat

Am Ende des Semesters nehmen Sie an einer Prüfung teil. Bei Bestehen erhalten Sie ein Zertifikat der Universität Freiburg. Sie erwerben 6 Kreditpunkte (ECTS), die Ihnen im Master-studiengang IEMS angerechnet werden können.

Mehr Informationen zur Lernorganisation bei IEMS

Wie ist der Kurs aufgebaut?

  1. Einführung
  2. Laufzeitanalyse Min Sort / Heap Sort, Induktion
  3. O-Notation, Theta, Omega
  4. Mittlere Laufzeit, Assoziative Arrays aka Maps, Hashverfahren
  5. Wie baut man eine Hash Map, Universelles Hashing
  6. Hashing Kollisionsbehandlung, Prioritätswarteschlangen
  7. Dynamische Felder, Amortisierte Analyse
  8. Cache-Effizienz, Teile und Herrsche
  9. Teile und Herrsche, Mastertheorem
  10. Verkettete Listen, Binäre Suchbäume
  11. Balancierte Suchbäume
  12. Graphen, Breiten-/ Tiefensuche, Zusammenhangskomponenten
  13. Kürzeste Wege, Dijkstras Algorithmus
  14. Editierdistanz, dynamische Programmierung

Schreiben Sie uns!

Ihr persönlicher Ansprechpartner
Alistair IrelandStudienberatung

Sie haben Fragen zum Kurs oder möchten mehr über das Weiterbildungsprogramm Intelligente Eingebettete Mikrosysteme erfahren? Wir freuen uns über Ihre Nachricht.


Zur Anmeldung schicken Sie uns das ausgefüllte Anmeldeformular direkt per Mail an iems@weiterbildung.uni-freiburg.de.

Kursdozent

Prof. Dr. Peter ThiemannInstitut für Informatik

Downloads

Laden Sie sich die Informationen zum Kurs im pdf-Format herunter!

Download

Laden Sie sich das Anmeldeformular für diesen Kurs herunter!