Hasso-Plattner-Institut25 Jahre HPI
Hasso-Plattner-Institut25 Jahre HPI
 

Live Programming Systems (Wintersemester 2016/2017)

Lecturer: Prof. Dr. Robert Hirschfeld (Software-Architekturen) , Stefan Ramson (Software-Architekturen) , Tim Felgentreff (Software-Architekturen) , Patrick Rein (Software-Architekturen)

General Information

  • Weekly Hours: 4
  • Credits: 6
  • Graded: yes
  • Enrolment Deadline: 28.10.2016
  • Teaching Form: SP
  • Enrolment Type: Compulsory Elective Module

Programs, Module Groups & Modules

IT-Systems Engineering BA

Description

"Live Programming" Systeme ermöglichen es Programmierern das Verhalten eines Systems zu verändern während es ausgeführt wird. Diese Möglichkeit ein laufendes System anzupassen ermöglicht es Programmieren die Auswirkungen ihrer Änderungen schneller und detailierter abzuschätzen, Fehler einfacher zu finden, und sich interkativ und damit schneller und umfassender in ein System einzuarbeiten. Viele verschiedene Systeme setzen "Live Programming" um. Dazu gehören:

  • Read-Eval-Print Loops (REPLs)
  • Automatische Testausführungswerkzeuge
  • Entwicklungsumgebungen: Swift, Chrome DevTools, Firebug
  • Holistische Livesysteme: Smalltalk, Lisp, Self, Lively Kernel
  • Endnutzerprogrammierwerkzeuge: Excel
  • Systeme für Performanceart: Fluxus, Max

All diese Systeme setzen ihre "Liveness" auf unterschiedlichen Ebenen des Systems und durch unterschiedliche Implementierungsstrategien um. Im Rahmen dieser Veranstaltung setzen wir uns mit der gesamten Bandbreite von existierenden "Live Programming" Systemen auseinander. Wir vergleichen dabei sowohl die "Programming Experience" als auch die konzeptionellen Eigenschaften und Implementierungsstrategien der Umgebungen.

Literature

  • Hancock, C. M. Real-Time Programming and the Big Ideas of Computational Literacy Massachusetts Institute of Technology, Massachusetts Institute of Technology, 2003
  • McDirmid, S. Usable Live Programming Proceedings of the Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software (Onward!) 2013, ACM, 2013, 53-62
  • Tanimoto, S. L. A perspective on the evolution of live programming Proceedings of the 1st International Workshop on Live Programming, LIVE 2013, 2013, 31-34
  • Karumuri, S. Challenges in building live programming environments for general-purpose programming Proceedings of the 1st International Workshop on Live Programming, LIVE 2013, 2013
  • Czaplicki, E. & Chong, S. Asynchronous Functional Reactive Programming for GUIs Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation, ACM, 2013, 411-422
  • Burckhardt, S.; Fähndrich, M.; de Halleux, P.; McDirmid, S.; Moskal, M.; Tillmann, N. & Kato, J. It's alive! continuous feedback in UI programming ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI '13, Seattle, WA, USA, June 16-19, 2013, 2013, 95-104

Examination

Vortrag, Diskussion und schriftliche Ausarbeitung werden mit sechs benoteten Leistungspunkten angerechnet. Jeder Seminarteilnehmer bearbeitet eines der gestellten Seminarthemen. Die Arbeit wird in einem Vortrag von 30 Minuten Dauer präsentiert, an den sich eine Diskussion anschließt. Der Vortrag soll technische Aspekte der durchgeführten Arbeit als Demonstration beinhalten.

Ferner ist eine schriftliche Dokumentation der Recherche und Analyse der behandelten System auf Deutsch oder Englisch abzuliefern. Diese beinhaltet die Einordnung des Systems in vorgegebene Dimensionen, typische Anwendungsbeispiele, Benchmarkergebnisse, technische Details inklusive Codedokumentation, sowie Installationsanleitungen. Auf die korrekte Angabe aller verwendeten Quellen sowie sprachliche Korrektheit ist besondere Sorgfalt zu legen.

Eine Eigenleistung muss erkennbar sein. Die Entdeckung von Plagiaten führt zu jedem Zeitpunkt zum sofortigen Nichtbestehen der jeweiligen Leistung.

Spätestens eine Woche vor dem jeweiligen Vortragstermin bespricht jeder Teilnehmer eine Vorversion seiner Vortragsunterlagen mit einem der Betreuer. Um einen Termin für diese Vorbesprechung kümmern sich die Teilnehmer selbstängig. Die Vortragsunterlagen sind spätestens einen Tag vor dem Vortrag per Email einzureichen. Sie bestehen aus:

  • den Dokumentquellen der im Vortrag verwendeten Präsentation,
  • einer PDF-Version derselben,
  • dem vollständigen in der Demonstration verwendeten Quellcode einschließlich der benötigten Ressourcen,
  • einer Installationsbeschreibung,
  • einem Demo-Script, und
  • einem Demo-Videoclip (screen cast).

Eine Vorversion der schriftlichen Ausarbeitung ist vier Wochen vor der finalen Abgabe bei einem der Betreuer als PDF-Dokument einzureichen. Sie soll Elemente der sich an den Vortrag anschließenden Diskussion aufgreifen und behandeln. Die Vorversion wird innerhalb einer Woche begutachtet und zur Endausfertigung an die Gruppe zurückgegeben. Die Kommentare des Gutachters sind bei der Anfertigung der Endfassung zu berücksichtigen. Die Endfassung ist am Ende der Vorlesungszeit per Email abzugeben. Sie besteht aus:

  • den Dokumentquellen der Ausarbeitung,
  • eventuell benötigtem Quelltext oder Installationsdateien und
  • einer PDF-Version derselben.

Alle im Rahmen der Veranstaltung erstellten Dokumente und Quelltexte sollen unter der MIT-Lizenz oder, falls notwendig, mit einer den verwendeten Systemen kompatiblen Lizenz bereitgestellt werden. Wird das Einreichen verlangter Dokumente bis zum jeweils angegebenen Datum versäumt, so gelten diese als nicht eingereicht, was zur Abwertung der Gesamtleistung führt.

Zurück