Hasso-Plattner-Institut
Hasso-Plattner-Institut
  
Login
  • de
 

Interactive Representations of Data Structures and Algorithms (Sommersemester 2013)

Dozent: Prof. Dr. Robert Hirschfeld (Software-Architekturen) , Jens Lincke (Software-Architekturen) , Marcel Taeumel (Software-Architekturen) , Tim Felgentreff (Software-Architekturen)

Beschreibung

Angehende Software-Ingenieure, die große Softwaresysteme erschaffen und warten wollen, müssen zunächst die grundlegenden Bausteine solcher Systeme beherrschen: Datentypen (z.B. Arrays, verkettete Listen, Bags, Iteratoren) und darauf operierende Algorithmen (z.B. suchen, sortieren). Es gibt mehrere, sich ergänzende Wege, dieses Wissen zu erlangen: Vorlesungen von Experten besuchen (z.B. Programmiertechnik II am HPI), Literatur studieren (z.B. Algorithms von Robert Sedgewick) oder Materialien im Web ergründen (z.B. QuickSort auf Wikipedia). Dabei spielen vor allem praktische Erfahrungen eine zentrale Rolle für den Lernerfolg: Algorithmen selbst in der bevorzugten Programmiersprache schreiben, interaktive Darstellungen benutzen (z.B. für QuickSort) oder sich anderen Herausforderungen stellen (z.B. Koans).

Das allgemeine Ziel dieses Projektseminars ist es, eine interaktive Lernumgebung zu schaffen, welche es Anfängern und Fortgeschrittenen ermöglicht, Datentypen und Algorithmen im Detail zu verstehen. In der Umgebung sollen die Studenten in der Lage sein, sich eigene Lektionen aus einer Vorauswahl zu erstellen (z.B. Vergleiche QuickSort mit RadixSort hinsichtlich Speicherplatzkomplexität), ihre Lernerfolge zu protokollieren und ggf. sogar mit einer anderen Gruppe von Studenten auszutauschen, um den Lernprozess interessanter zu gestalten.

Zu den Themen zählen u.a.:

  • abstrakte Datentypen
  • manuelle Speicherverwaltung
  • automatische Speicherverwaltung
  • Sortieren
  • Suchen

Während des Seminars werden die Teilnehmer ihre Kenntnisse in Squeak/Smalltalk vertiefen, eine erweiterbare Software-Architektur entwerfen, Aspekte des interaktiven Lernens und der Gamification ergründen, ihr Wissen über Datentypen und Algorithmen auffrischen, sowie mit einem Forschungsprototypen arbeiten (VIVIDE).

Voraussetzungen

  • abgeschlossenes Bachelor-Studium
  • vertiefte Programmierkenntnisse
  • von Vorteil sind Kenntnisse in:

    • Squeak/Smalltalk
    • Informationsvisualisierung
       

Literatur

Lern- und Lehrformen

Projektseminar

Leistungserfassung

Die Leistung wird durch die erfolgreiche Bearbeitung eines gewählten Themas in Gruppen von 2 Personen erbracht; je nach Teilnehmerzahl auch 3er Gruppen. Zur Erlangung der sechs benoteten Leistungspunkte sind die folgenden Anforderungen zu erfüllen:

  • Erarbeitung theoretischer Grundlagen des jeweiligen Themas (15%)
  • Umsetzung selbstgewählter interaktiver Repräsentationen der relevanten Algorithmen in Squeak/Smalltalk (40%)
  • Entwurf von Aufgaben/Herausforderungen mit dem Ziel der Erlernung und Vertiefung des jeweiligen Themas (40%)
  • Evaluierung der Repräsentationen & Herausforderungen (5%)
  • Abschlusspräsentation der Projektergebnisse

Eine Woche vor der jeweiligen Abschlusspräsentation bespricht jede Gruppe die Vorversion der Vortragsunterlagen mit einem der Betreuer. Die Vortragsunterlagen sind einen Tag vor dem Vortrag per Email oder auf einer CD-ROM einzureichen. Sie bestehen aus:

  • den Dokumentquellen der im Vortrag verwendeten Folien,
  • einer PDF-Version derselben,
  • dem in der Demo verwendeten Quellcode,
  • einer Installationsbeschreibung und
  • einem Demo-Script

Alle im Rahmen der Veranstaltung erstellten Quelltexte sollen unter der MIT-Lizenz und, falls notwendig, mit einer den verwendeten Systemen kompatiblen Lizenz bereitgestellt werden.

Termine

Erste Veranstaltung & Themenstellung:

  • Do, 11.04.13, 11:00 Uhr

Themenvergabe:

  • Do, 18.04.13, 11:00 Uhr

Allgemeine Information

  • Semesterwochenstunden : 4
  • ECTS : 6
  • Benotet : Ja
  • Einschreibefrist : 10.2.2013 - 30.4.2013
  • Programm : IT-Systems Engineering MA
  • Lehrform : SP
  • Belegungsart : Wahlpflicht

Module

  • Human Computer Interaction & Computer Graphics Technology
  • IT-Systems Engineering A
  • IT-Systems Engineering B
  • IT-Systems Engineering C
  • IT-Systems Engineering D
  • Software Architecture & Modeling Technology

Zurück