Support programmers to modify their own tools.

Berlin I am a post-doc researcher at the Hasso Plattner Institute at the University of Potsdam. I am part of the Software Architecture group led by Prof. Dr. Robert Hirschfeld. In early 2020, I received a doctorate degree for my work on Data-driven tool construction in exploratory programming environments. From 2014 to 2022, I participated in the Design Thinking Research Program to investigate interactions between Design Thinking and exploratory programming practices.

My research activities include the area of building graphical tools for programmers, especially data-driven ones for program comprehension tasks. For this, direct manipulation concepts, dynamic analysis, and cooperation of distributed teams in agile processes play an important role. Additionally, I investigate modularity concepts with respect to critical software quality "metrics" such as extensibility and maintainability while reasoning about interdependencies between languages and tools.

Projects

I like programming in the Squeak/Smalltalk live and exploratory programming environment, where run-time information is omnipresent and feedback loops can be very short. I have experience with C++ and the Qt framework; I am still inspired by its ideas and patterns when I design recent projects in Smalltalk. I am interesting in building tools for programmers that can be adapted to concrete domains, tasks or personal preferences on the fly. More recent experiences cover contributions to the Windows platform code of the OpenSmalltalk VM, which is written in Slang (a Smalltalk subset) and C.

OpenSmalltalk VM

project is active · started in 01/2020 · written in C, Smalltalk

For more information visit the repository on GitHub.

My focus is on the Windows platform support and the Threaded FFI plugin. For my projects, the VM's main application is the Squeak/Smalltalk image (or system). FFI-related projects include an updated OpenGL/GLFW interface for Squeak.

Squeak 6.0 Release

project is finished · started in 11/2021 · written in Squeak/Smalltalk

squeak-balloon-logo I am an active developer for the Squeak programming system. For the 6.0 release, I contributed better support for TrueType fonts and high-resolution displays. The release can be found here. The release notes are here.

Squeak 5.3 Release

project is finished · started in 12/2019 · written in Squeak/Smalltalk

I am an active developer for the Squeak programming system. For the 5.3 release, I actively supported the release manager Hannes Hirzel. The release can be found here. Notable contributions include writing release notes and refactoring the enumeration of code literals in preparation of SistaV1.

Squeak 5.1 Release

project is finished · started in 06/2015 · written in Squeak/Smalltalk

I was the release manager for the 5.1 release, which can be found here. Notable contributions reside in several refactorings in the Morphic GUI framework, the project architecture, and the introduction of user interface themes for all programming tools in the environment.

The Squeak Shell

project is active · started in 02/2016 · written in Squeak/Smalltalk

squeak-shell There is a mechanism in Squeak that supports having multiple graphics frameworks running. At the time of writing, there was the older Model-View-Controller (MVC) framework and the new Morphic. That mechanism is called Projects. I used it to create a minimal command-line interface: the Squeak Shell. It can be used to replace Morphic or MVC when debugging self-inflicting bugs or when developing native Squeak/Smalltalk applications.

We published a paper about the process of bootstrapping new GUI frameworks in such self-supporting programming environments.

You can install the Squeak Shell in Squeak 5.1 by evaluating the following code snippet in a workspace: Installer swa project: 'SqueakShell'; install: 'SqueakShell'.

Maintenance of Squeak's Morphic Framework

project is active · started in 06/2014 · written in Squeak/Smalltalk

I do like the way of programming in Squeak with Smalltalk. This includes the interactive means of Morphic to compose and debug graphical applications. Yet, there have been many deficiencies accumulated in the source code, especially when comparing it with frameworks for other programming languages.

I started to look into the code with the goal to make the programming interface more consistent while fixing (serious) bugs along the way. New features that turned out to be valuable, even for the programming experience in Smalltalk, are on my list as well.

In Squeak 5.1, for example, I traced down a severe bug in Morphic's layouting code. I also refactored the input event dispatching code and introduced event filters to improve the implementation of cross-platform keyboard shortcuts. Unfortunately, Morphic's code base is poorly tested and there is much room for improvement. In this process, the Squeak community is really valuable to collect feedback and further improve the code. The latest efforts include user interface themes and hence the option to make tools fit your colorful programming needs.

The VIVIDE Programming Environment

project is active · started in 03/2011 · written in Squeak/Smalltalk

vivide-logo We created a framework in Squeak/Smalltalk that promotes low-effort construction of graphical tools. Given a data-driven perspective on programming environments, we encourage programmers to script domain-specific software artifacts to create and modify interactive, graphical content.

We published this project on GitHub and shared some screencasts on vimeo. We envision that every tool user can be a tool builder given some basic programming knowledge.

Squeak Community Projects

project is pending · started in 12/2010 · written in Squeak/Smalltalk

I am an active developer in several projects that extend the traditional Squeak programming environment and that aim to support programmers' productivity as well as their creativity. Projects range from educational use to professional programming activities.

The projects' original website is hosted here at the Hasso Plattner Institute. More recent updates on the projects and the source code can be found at GitHub.

ProjectTalk

project is finished · started in 06/2009 · written in Squeak/Smalltalk

In this project, we want to support distributed teams using agile software engineering methods such as Extreme Programming or Scrum. Basically, a huge tape manages user stories in chronological order grouped by iterations (sprints). The idea was that developers can log in to the system, take stories, work on them, finish them, track time, a.s.o. All collected data, e.g. time spent and completion state, can be shared among all developers of the distributed team.

There is a screencast on vimeo. This project is finished but more details can be found here.

CodeTalk

project is pending · started in 10/2008 · written in Squeak/Smalltalk

codetalk CodeTalk allows developers to have conversations about source code artifacts. They can mark code sections they are concerned about and annotate them. These annotations provide entry points for an informal discourse about the strengths and weaknesses of these sections and developers can work towards a conclusion on how to proceed on the raised issues.

We published the project's sources here. More details about the underlying story can be found here and here.

UltraStar Manager

project is finished · started in 03/2008 · written in C++, Qt

Official Qt Ambassador This tools supports managing songs for UltraStar, a free karaoke game. It can be downloaded via SourceForge. Its features include lyrics editing, batch renaming, cover art downloading, interactive preview, report generation, and many more.

It is quite accepted by the community. Before Nokia decided to shutdown the program, I was an Official Qt Ambassador with this project. ;-) Watch a screencast about its main features on vimeo.

yaiiit! Issue Tracker

project is finished · started in 2008 · written in Squeak/Smalltalk, HTML, CSS

This application is a web-based bug tracker written in Squeak/Smalltalk with Seaside by Alan Bränzel, Michael Grünewald, Alexander Kuscher, Max Plauth, and myself in 2008. Visually, it resembles the Trac project a little bit.

Watch a screencast about its main features on vimeo. The source code is here.

Sokobänban

project is finished · started in 2007 · written in Squeak/Smalltalk

sokobänban This game is a simple Sokoban clone for Squeak that was created during the Software Architctures lecture in 2007 by Alan Bränzel, Felix Elliger, Ralf Gehrer, Michael Grünewald, Alexander Kuscher, Christina Schwendy, and myself. It was used to be named Sokobänle according to the Swabian dialect of one of the team members. ;-)

An OLPC XO Squeak port available here.

Posters

poster1 poster2 poster3

poster4 poster5 poster6

Publications

This material is presented to ensure timely dissemination of scholarly and technical work. Copyright and all rights therein are retained by authors or by other copyright holders. All persons copying this information are expected to adhere to the terms and constraints invoked by each author's copyright. In most cases, these works may not be reposted without the explicit permission of the copyright holder.

2024

2023

2022

2021

2020

2019

2018

2017

2016

2015

2014

2013 and earlier

Talks

2024

2023

2022

2021

2020

2019

2018

2017

2016

2015

2014

2013

2012

2011

Curriculum Vitae

There is a one-pager as PDF from June 28, 2021.

Professional Preparation

PeriodInstitutionDegree
2011‑2020Hasso Plattner Institute
University of Potsdam
Dr. rer. nat. (dissertation)
2006‑2011Hasso Plattner Institute
University of Potsdam
B.Sc. / M.Sc. Software Engineering

Professional Appointments

PeriodEmployerJob TitleActivities
Since 2020Hasso Plattner InstitutePost-doc ResearcherResearch and teaching on Exploratory Programming Practices
2011‑2020Hasso Plattner InstituteResearch AssistantResearch and teaching on Programming Languages, Tools, and Environments
2009‑2011Hasso Plattner InstituteStudent Research AssistantDesign and development of research prototypes for Design Thinking, Agile Development, and Collaboration

Other Appointments

Teaching

2024/25 Software Design MA seminar
Software engineering 1 BA course (topics: refactoring, refactoring to patterns)
2023/24 Future of Programming MA seminar
Software architectures BA course (topics: modularity)
·
Programming Experience MA seminar
2022/23 Advanced Programming Tools MA seminar
Software architectures BA course (topics: modularity)
·
Reverse Engineering MA seminar
Software engineering 1 BA course (topics: refactoring, refactoring to patterns)
2021/22 Software architectures BA course (topics: modularity)
·
Live Programming MA seminar
Software engineering 1 BA course (topics: refactoring, refactoring to patterns)
2020/21 Programming Languages: Concepts, Tools, and Environments MA seminar
Software architectures BA course (topics: modularity)
·
Hardware Acceleration for Interactive, High-quality Graphics in Live Programming Environments MA project
Software engineering 1 BA course (topics: refactoring, refactoring to patterns)
2019/20 Software architectures BA course (topics: modularity)
·
Software engineering 1 BA course (topics: refactoring, refactoring to patterns)
2018/19 Introduction to Programming Techniques 1 BA course (topics: Java, Eclipse)
Software architectures BA course (topics: modularity)
·
Software engineering 1 BA course (topics: refactoring, refactoring to patterns)
2017/18 Software architectures BA course (topics: modularity)
·
Programming Languages, Concepts, Tools, Environments MA seminar
Software engineering 1 BA course (topics: refactoring, refactoring to patterns)
2016/17 Software modularity BA seminar
Software architectures BA course (topics: modularity)
·
History of programming languages BA seminar
Software engineering 1 BA course (topics: refactoring)
2015/16 Programming language concepts, tools, and environments MA seminar
Introduction to Programming Techniques 1 BA course (topics: Java, Eclipse)
Software architectures BA course (topics: modularity, design patterns)
·
Module systems MA seminar
Aspect-oriented programming BA seminar
Software engineering 1 BA course (topics: refactoring)
2014/15 Context-oriented Programming MA seminar
Programming language concepts BA seminar
Software architectures BA course (topics: modularity, design patterns)
·
Self-sustaining systems MA seminar
Software engineering 1 BA course (topics: refactoring)
2013/14 Interactive Representations of Data Structures and Algorithms MA seminar
Introduction to Programming Techniques 1 BA course (topics: Java, Eclipse)
Software architectures BA course (topics: modularity, design patterns)
·
Software engineering 1 BA course (topics: refactoring)
2012/13 Recognizing Cross-cutting Concerns by Revealing Task Contexts MA project
Advanced modularity MA seminar
Module systems MA seminar
Software architectures BA course (topics: modularity, design patterns)
·
Programming language concepts, tools, and environments MA seminar
Acceptability-oriented programming MA seminar
Software engineering 1 BA course (topics: refactoring)
2011/12 Aspect-oriented programming BA seminar
Software architectures BA course (topics: modularity, design patterns)

Co-supervised Bachelor Theses

Co-supervised Master Theses

Scientific Community Participation

2024 PC chair for Onward! Essays 2024 @ SPLASH 2024 (Systems, Programming, Languages and Applications: Software for Humanity)
Program committee member for PX/24 (Programming Experience)
2023 Reviewer for VL/HCC 2023 (Visual Languages and Human-Centric Computing)
Reviewer for SLE 2023 (Software Language Engineering)
Program committee member for Onward! Essays 2023 @ SPLASH 2023 (Systems, Programming, Languages and Applications: Software for Humanity)
Program committee member for PX/23 (Programming Experience)
2022 Reviewer for VL/HCC 2022 (Visual Languages and Human-Centric Computing)
Program committee member for PX/22 (Programming Experience)
2021 Reviewer for VL/HCC 2021 (Visual Languages and Human-Centric Computing)
Program committee member for PX/21 (Programming Experience)
2020 Reviewer for OOPSLA @ SPLASH 2020 (Systems, Programming, Languages and Applications: Software for Humanity)
Program committee member for PX/20 (Programming Experience)
2019 Reviewer for Onward! Papers 2019 @ SPLASH 2019 (Systems, Programming, Languages and Applications: Software for Humanity)
Program committee member for PX/19 (Programming Experience)
2018 Reviewer for ECOOP 2018 (European Conference on Object-oriented Programming)
Program committee member for PX/18 (Programming Experience)
2017 Program committee member for PX/17.2 (Programming Experience)
Reviewer for INTERACT 2017 (Human-Computer Interaction)
Reviewer for Programming 2017 (Art, Science, and Engineering of Programming)
Program committee member for PX/17 (Programming Experience)
2016 Program committee member for PX/16 (Programming Experience)
Reviewer for OpenSym 2016 (Open Collaboration)
Reviewer for LASSY 2016 (Live Adaptation of Software Systems)
Reviewer for ENASE 2016 (Evaluation of Novel Approaches to Software Engineering)
2015 Reviewer for OOPS @ SAC 2015 (Symposium on Applied Comuting)
Reviewer for DLS 2015 (Dynamic Languages Symposium)
Reviewer for GI-DEC 2015 (Gesellschaft für Informatik - Digital Enterprise Computing)
Reviewer for MODULARITY 2015 (Modularity Visions Track)
2014 Reviewer for DLS 2014 (Dynamic Languages Symposium)
Reviewer for Onward! Essays 2014 @ SPLASH 2014 (Systems, Programming, Languages and Applications: Software for Humanity)
Reviewer for EST 2014 (Experimental Software and Toolkits in Elsevier Journal Science in Computer Programming)
Reviewer for GI-IT 2014 (Gesellschaft für Informatik - Informatiktage)
Reviewer for SEI 2014 (Software Engineering Ideen)
Reviewer for CSMR-WCRE 2014 (Conference on Software Maintenance and Reengineering, Working Conference on Reverse Engineering)
2013 Reviewer for CSC 2013 (International Conference on Cloud and Service Computing)
Reviewer for DLS 2013 (Dynamic Languages Symposium)
Reviewer for WASDeTT 2013 (International Workshop on Academic Software Development Tools and Techniques)
Reviewer for OOPSLA @ SPLASH 2013 (Systems, Programming, Languages and Applications: Software for Humanity)
Reviewer for ECOOP 2013 (European Conference on Object-oriented Programming)
Reviewer for AOSD 2013 (MODULARITY: aosd'13)
2012 Reviewer for DLS 2012 (Dynamic Languages Symposium)
Reviewer for Coordination 2012 (International Conference on Coordination Models and Languages)
Designer of the Conference Guide for AOSD 2012 (MODULARITY: aosd'12)
Reviewer for ECOOP 2012 (European Conference on Object-oriented Programming)

Collaborations and Other Affiliations

Publications (more)

Talks (more)

Site Notice (Impressum)

Marcel Taeumel
Wollestraße 44, 14482 Potsdam, Germany
marcel dot taeumel at hpi dot de
+49-331-5509-151