Refresher Programmieren 2

Freiwilliger Wiederholungskurs im Bachelorstudiengang Wirtschaftsinformatik an der Hochschule Rosenheim.

Organisatorisches

Termin: Dienstags um 17:15 Uhr im B0.11

Modus: seminaristischer Unterricht; BYOD empfohlen.

Kommunikation: via Mattermost (einschreiben)

Die Teilnahme ist freiwillig und unverbindlich, es gibt keine Prüfung.

Inhalt

Es werden die wichtigsten Inhalte von Programmieren 2 in verkürzter Form wiederholt und an Beispielen vertieft. Wichtig: Dies ist eine Ergänzung aber kein Ersatz zur ursprünglichen Vorlesung, und hat keinen Anspruch auf Vollständigkeit.

  • Datenstrukturen: Liste, Set und Map (assoziatives Array), und deren Realisierung als Array, verkettete Liste oder Baumstruktur.
  • Algorithmen: Binäre Suche, sortieren.
  • Sprachfeatures: Interfaces, Vererbung, abstrakte Klassen und Generics.
  • Datenverarbeitung: Traversierung mit Iteratoren und filter-map-reduce.
  • Parallele Verarbeitung mit Threads.

Terminplan

  • Vererbung und abstrakte Klassen (14.11.2017, Folien, Aufgabe)

    Abstrakten Klassen erklärt am Beispiel der Implementierung eines Zustandsautomaten.

  • Listen und Generics (28.11.2017, Aufgabe)

    Die Liste ist eine der wichtigsten Datenstrukturen der Informatik. Mit Generics können wir diese unabhängig vom Datentyp implementieren.

  • Set als Binärbaum (5.12.2017, Aufgabe)

    Ein Set ist definiert als eine (ungeordnete) Menge von Elementen ohne Duplikate. Die Interfaces Comparable<T> und Comparator<T> helfen uns beim Aufbau von Binärbäumen, welche Sets effizient modellieren können.

  • Iterator und Factory (12.12.2017, Aufgabe)

    Ein Iterator<T> ist ein Objekt, welches die Traversierung einer Datenstruktur ermöglicht, ohne deren innere Struktur zu kennen. Eine Factory stellt Objekte her, welche einem Interface genügen.

  • Rekursion (19.12.2017, Aufgabe)

    Rekursive Funktionen rufen sich selbst wieder auf. Wir betrachten als Beispiele die toString() Methoden von Listen und Bäumen, die binäre Suche contains(T t), sowie das Sortieren am Beispiel von merge-sort.

  • Parallele Verarbeitung (9.1.2017, Aufgabe)

    Threads helfen bei der parallelen Verarbeitung von Daten. Gibt es sowohl Produzenten als auch Konsumenten, so kann es zu Deadlocks kommen.

Weitere Anregungen zum Selbststudium

  • Iteratoren: vorwärts, rückwärts, sortiert, sortiert mit Comparator.
  • Baumtraversierung: Rekursiver Links- und Rechtsabstieg; iterativ mit Agenda
  • Erweiterte Datenstrukturen: doppelt verkette Liste, n-ärer Baum, Hashset, Hashmap
  • Sortieren: insertion, selection, merge, quick

Abboniere das https://github.com/hsro-wif-prg2/refresher/ Repository um bei Updates benachrichtigt zu werden.