Programmiersprachen: Konzepte, Werkzeuge und Umgebungen (Wintersemester 2020/2021)
Lecturer:
Prof. Dr. Robert Hirschfeld
(Software-Architekturen)
,
Marcel Taeumel
(Software-Architekturen)
,
Dr. Jens Lincke
(Software-Architekturen)
,
Stefan Ramson
(Software-Architekturen)
,
Patrick Rein
(Software-Architekturen)
,
Toni Mattis
(Software-Architekturen)
,
Fabio Niephaus
(Software-Architekturen)
,
Tom Beckmann
(Software-Architekturen)
General Information
- Weekly Hours: 4
- Credits: 6
- Graded:
yes
- Enrolment Deadline: 01.10.2020 -20.11.2020
- Teaching Form: Project / Seminar
- Enrolment Type: Compulsory Elective Module
- Course Language: German
Programs, Module Groups & Modules
- OSIS: Operating Systems & Information Systems Technology
- HPI-OSIS-K Konzepte und Methoden
- OSIS: Operating Systems & Information Systems Technology
- HPI-OSIS-S Spezialisierung
- OSIS: Operating Systems & Information Systems Technology
- HPI-OSIS-T Techniken und Werkzeuge
- SAMT: Software Architecture & Modeling Technology
- HPI-SAMT-K Konzepte und Methoden
- SAMT: Software Architecture & Modeling Technology
- HPI-SAMT-S Spezialisierung
- SAMT: Software Architecture & Modeling Technology
- HPI-SAMT-T Techniken und Werkzeuge
- CODS: Complex Data Systems
- HPI-CODS-K Konzepte und Methoden
- CODS: Complex Data Systems
- HPI-CODS-T Techniken und Werkzeuge
- CODS: Complex Data Systems
- HPI-CODS-S Spezialisierung
- SCAL: Scalable Data Systems
- HPI-SCAL-K Konzepte und Methode
- SCAL: Scalable Data Systems
- HPI-SCAL-T echniken und Werkzeuge
- SCAL: Scalable Data Systems
- HPI-SCAL-S Spezialisierung
Description
Werkzeuge sind ein entscheidender Faktor in der Softwareentwicklung. Sie haben häufig einen starken Einfluss auf die Möglichkeiten im Entwicklungsprozess. (Werkzeuge stehen in starker Wechselwirkung mit dem Vorgehen.) So bestimmen Werkzeuge und Entwicklungsumgebungen, welche Tätigkeiten effizient durchgeführt werden können und welche Tätigkeiten oder Vorgehensweisen lieber gemieden werden. Zum Beispiel kann die Fehlersuche mit aktuellen Werkzeugen mühsam sein, so dass Entwickler regelmäßig Tests ausführen, um neu eingeführte Fehler schneller zu erkennen und somit die Ortung der Ursache zu erleichtern. Die Teilnehmer werden sich intensiv mit aktuellen Forschungsfragestellung im Bereich der Werkzeugunterstützung für programmierzentrierte Entwicklungsansätze beschäftigen.
Das Projektseminar verfolgt u.a. die Lernziele:
- Anwendung von Techniken im Bereich Metaprogrammierung und Reflexion
- Einarbeitung und Erweiterung von "fremden" Systemen
- Lesen, Verstehen, Aufbereiten und Wiedergeben von Forschungsergebnissen
- Umgang und Bearbeitung von unstrukturierten Problemen
- (Möglichkeit zur) Entwicklung und Umsetzung eigener Ideen auf Basis von existierenden Arbeiten
- Auseinandersetzung mit aktuellen Forschungsthemen in verschiedenen Bereichen der Werkzeugunterstützung für programmier-zentrierte Entwicklungsansätze
Die Projektthemen werden voraussichtlich in den Umgebungen Squeak/Smalltalk, Lively4, TruffleSqueak oder VS Code bearbeitet.
Requirements
- vertiefte Programmierkenntnisse
- von Vorteil sind (je nach Thema): Kenntnisse in Smalltalk, JavaScript, TypeScript, Java, C sowie Kenntnisse im Bereich Metaprogrammierung und Reflection
Literature
Examination
Die Leistung wird durch die erfolgreiche Bearbeitung eines gewählten Themas in Gruppen von bis zu 2 Personen erbracht. Zur Erlangung der sechs benoteten Leistungspunkte sind die folgenden Anforderungen zu erfüllen:
- Programmierleistung (50%), d.h. Qualität des Codes, Relevanz bzgl. Problemstellung, Dokumentation
- Kommunikationsleistung (30%), d.h. regelmäßige Treffen, ein Vortrag mit Demo, Feedback annehmen und einarbeiten
- Dokumentationsleistung (20%), d.h. ein kurzes Paper schreiben, 4-8 Seiten, zweilspaltiger ACM-Stil
Eine Woche vor dem jeweiligen Vortrag bespricht jede Gruppe die Vorversion der Vortragsunterlagen mit einem der Betreuer. Die Vortragsunterlagen sind einen Tag vor dem Vortrag per Email einzureichen. Sie bestehen aus:
- den Dokumentquellen der im Vortrag verwendeten Folien (z.B. PPTX),
- einer PDF-Version derselben,
- dem in der Demo verwendeten Quelltext,
- einem Screencast (z.B. MP4)
Alle im Rahmen der Veranstaltung erstellten Quelltexte sollten unter der MIT-Lizenz stehen.
Dates
Hinweis: Es werden keine Aufzeichnungen der digitalen Meetings erstellt. Siehe auch: Code of Conduct
Themenvorstellung
- 3. November 2020 um 15:15 Uhr
Themenauswahl
- Bis 6. November 2020 um 23:59 Uhr (E-Mail)
Themenvergabe
- 9. November 2020 (E-Mail / Slack)
Zurück