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?
- Einführung
- Laufzeitanalyse Min Sort / Heap Sort, Induktion
- O-Notation, Theta, Omega
- Mittlere Laufzeit, Assoziative Arrays aka Maps, Hashverfahren
- Wie baut man eine Hash Map, Universelles Hashing
- Hashing Kollisionsbehandlung, Prioritätswarteschlangen
- Dynamische Felder, Amortisierte Analyse
- Cache-Effizienz, Teile und Herrsche
- Teile und Herrsche, Mastertheorem
- Verkettete Listen, Binäre Suchbäume
- Balancierte Suchbäume
- Graphen, Breiten-/ Tiefensuche, Zusammenhangskomponenten
- Kürzeste Wege, Dijkstras Algorithmus
- Editierdistanz, dynamische Programmierung
Schreiben Sie uns!
Ihr persönlicher Ansprechpartner
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.