Ein Kurs für Praktiker: Algorithmen mit Schwerpunkt Collections mit minimaler Theorie (Teil 1)

26. Februar 2019 - 18:00
Kaiserslautern

Ein Kurs für Praktiker: Algorithmen mit Schwerpunkt Collections mit minimaler Theorie

Dieser Kurs (6 Teile) bespricht Algorithmen mit Schwerpunkt Collections und zeigt die wichtigsten theoretischen Grundlagen. Der Kurs war notwendig, da in der Berufsschule diese Thematik ungenügend behandelt wurde. Unserer Meinung nach sind diese Kenntnisse aber unerlässlich, wenn man auf modernen Plattformen produktiv entwickeln will. Auch Uni-Studierende und „alte Hasen“ können in diesem Kurs noch wichtiges Praxiswissen mitnehmen. Der erste Teil bespricht das Prinzip der „Komplexität“ von Algorithmen und erklärt die mathematischen Basics (wirklich nur Basics).

Collections – Part I

– Algorithms
– Algorithmic Complexity
– Analysis of Algorithms’ Costs
– Analysis of Sorting Algorithms
– Selection-sort and Insertion-sort
– Mergesort and Quicksort
– Divide and Conquer
– Complexity and O-Notation

Von dort aus wird in den Folgeveranstaltungen das was man unter „Datenstrukturen“ versteht von simpel zu komplex weiter besprochen, und dabei auch auf versch. Plattformen und Programmiersprachen verglichen.

Die Slides des Kurses stehen in englischer Sprache zur Verfügung, der Kurs wird aber in deutscher Sprache vorgetragen. Diskutieren und Fragen stellen ist ausdrücklich erwünscht, manche Antworten finden wir vielleicht nur gemeinsam.

Zum Schluss sollen die Teilnehmer in die Lage versetzt werden, zu verstehen, was eine bestimmte Komplexität einer Operation bedeutet und ggf. Alternativen dazu finden zu können. Außerdem sollten sie ein Verständnis für die Werkzeuge entwickeln, so dass sie z.B. auf einer neuen Plattform (z.B. Rust) eine Frage stellen können wie „Ah! Hier brauche ich sowas wie ein ‚TreeSet‘ in Java, wie heißt das in Rust und wie benutzt man das dort?“ Idealerweise haben die Teilnehmer verstanden, dass es noch mächtigere, aber auch komplexere Konzepte gibt, mit denen vormals Collection-basierter Code noch präziser und einfacher wartbar formuliert werden kann: Set-Builder, Pattern-Matching, Funktionale Programmierung, Lambda/Closure/Block/Funktor.

Vom Feedback der Veranstaltung machen wir die Organisation aufbauender Themenabende abhängig, z.B. für die Vertiefung der theoretischen Informatik hinter den Algorithmen.


Keep this field blank:
Nachname*:
Pflichtfeld
Vorname*:
Pflichtfeld
E-Mail-Adresse*:
Pflichtfeld
Plätze*:
Kommentar: