TY - THES A1 - Taeumel, Marcel T1 - Data-driven tool construction in exploratory programming environments T1 - Datengetriebener Werkzeugbau in explorativen Programmierumgebungen N2 - This work presents a new design for programming environments that promote the exploration of domain-specific software artifacts and the construction of graphical tools for such program comprehension tasks. In complex software projects, tool building is essential because domain- or task-specific tools can support decision making by representing concerns concisely with low cognitive effort. In contrast, generic tools can only support anticipated scenarios, which usually align with programming language concepts or well-known project domains. However, the creation and modification of interactive tools is expensive because the glue that connects data to graphics is hard to find, change, and test. Even if valuable data is available in a common format and even if promising visualizations could be populated, programmers have to invest many resources to make changes in the programming environment. Consequently, only ideas of predictably high value will be implemented. In the non-graphical, command-line world, the situation looks different and inspiring: programmers can easily build their own tools as shell scripts by configuring and combining filter programs to process data. We propose a new perspective on graphical tools and provide a concept to build and modify such tools with a focus on high quality, low effort, and continuous adaptability. That is, (1) we propose an object-oriented, data-driven, declarative scripting language that reduces the amount of and governs the effects of glue code for view-model specifications, and (2) we propose a scalable UI-design language that promotes short feedback loops in an interactive, graphical environment such as Morphic known from Self or Squeak/Smalltalk systems. We implemented our concept as a tool building environment, which we call VIVIDE, on top of Squeak/Smalltalk and Morphic. We replaced existing code browsing and debugging tools to iterate within our solution more quickly. In several case studies with undergraduate and graduate students, we observed that VIVIDE can be applied to many domains such as live language development, source-code versioning, modular code browsing, and multi-language debugging. Then, we designed a controlled experiment to measure the effect on the time to build tools. Several pilot runs showed that training is crucial and, presumably, takes days or weeks, which implies a need for further research. As a result, programmers as users can directly work with tangible representations of their software artifacts in the VIVIDE environment. Tool builders can write domain-specific scripts to populate views to approach comprehension tasks from different angles. Our novel perspective on graphical tools can inspire the creation of new trade-offs in modularity for both data providers and view designers. N2 - Diese Arbeit schlägt einen neuartigen Entwurf für Programmierumgebungen vor, welche den Umgang mit domänenspezifischen Software-Artefakten erleichtern und die Konstruktion von unterstützenden, grafischen Werkzeugen fördern. Werkzeugbau ist in komplexen Software-Projekten ein essentieller Bestandteil, weil spezifische, auf Domäne und Aufgabe angepasste, Werkzeuge relevante Themen und Konzepte klar darstellen und somit effizient zur Entscheidungsfindung beitragen können. Im Gegensatz dazu sind vorhandene, traditionelle Werkzeuge nur an allgemeinen, wiederkehrenden Anforderungen ausgerichtet, welche im Spezialfall Gedankengänge nur unzureichend abbilden können. Leider sind das Erstellen und Anpassen von interaktiven Werkzeugen teuer, weil die Beschreibungen zwischen Information und Repräsentation nur schwer auffindbar, änderbar und prüfbar sind. Selbst wenn relevante Daten verfügbar und vielversprechende Visualisierungen konfigurierbar sind, müssten Programmierer viele Ressourcen für das Verändern ihrer Programmierumgeben investieren. Folglich können nur Ideen von hohem Wert umgesetzt werden, um diese Kosten zu rechtfertigen. Dabei sieht die Situation in der textuellen Welt der Kommandozeile sehr vielversprechend aus. Dort können Programmierer einfach ihre Werkzeuge in Form von Skripten anpassen und kleine Filterprogramme kombinieren, um Daten zu verarbeiten. Wir stellen eine neuartige Perspektive auf grafische Werkzeuge vor und vermitteln dafür ein Konzept, um diese Werkzeuge mit geringem Aufwand und in hoher Qualität zu konstruieren. Im Detail beinhaltet das, erstens, eine objekt-orientierte, daten-getriebene, deklarative Skriptsprache, um die Programmierschnittstelle zwischen Information und Repräsentation zu vereinfachen. Zweitens ist dies eine skalierbare Entwurfssprache für Nutzerschnitt-stellen, welche kurze Feedback-Schleifen und Interaktivität kombiniert, wie es in den Umgebungen Self oder Squeak/Smalltalk typisch ist. Wir haben unser Konzept in Form einer neuartigen Umgebung für Werkzeugbau mit Hilfe von Squeak/Smalltalk und Morphic umgesetzt. Die Umgebung trägt den Namen VIVIDE. Damit konnten wir die bestehenden Werkzeuge von Squeak für Quelltextexploration und ausführung ersetzen, um unsere Lösung kontinuierlich zu verbessern. In mehreren Fallstudien mit Studenten konnten wir beobachten, dass sich VIVIDE in vielen Domänen anwenden lässt: interaktive Entwicklung von Programmiersprachen, modulare Versionierung und Exploration von Quelltext und Fehleranalyse von mehrsprachigen Systemen. Mit Blick auf zukünftige Forschung haben wir ebenfalls ein kontrolliertes Experiment entworfen. Nach einigen Testläufen stellte sich die Trainingsphase von VIVIDE als größte, und somit offene, Herausforderung heraus. Im Ergebnis sind wir davon überzeugt, dass Programmierer in VIVIDE direkt mit greifbaren, interaktiven Darstellungen relevanter Software-Artefakte arbeiten können. Im Rahmen des Werkzeugbaus können Programmierer kompakte, angepasste Skripte schreiben, die Visualisierungen konfigurieren, um Programmieraufgaben spezifisch aus mehreren Blickwinkeln zu betrachten. Unsere neuartige Perspektive auf grafische Werkzeuge kann damit sowohl das Bereitstellen von Informationen, als auch den Entwurf interaktiver Grafik positiv beeinflussen. KW - programming KW - tool building KW - user interaction KW - exploration KW - liveness KW - immediacy KW - direct manipulation KW - scripting languages KW - Squeak/Smalltalk KW - Programmieren KW - Werkzeugbau KW - Nutzerinteraktion KW - Exploration KW - Lebendigkeit KW - Direkte Manipulation KW - Skriptsprachen KW - Squeak/Smalltalk Y1 - 2020 U6 - http://nbn-resolving.de/urn/resolver.pl?urn:nbn:de:kobv:517-opus4-444289 ER - TY - THES A1 - Teusner, Ralf T1 - Situational interventions and peer feedback in massive open online courses T1 - Situationsabhängige Interventionen und Peer-Feedback in Massive Open Online Courses BT - narrowing the gap between learners and instructors in online programming education N2 - Massive Open Online Courses (MOOCs) open up new opportunities to learn a wide variety of skills online and are thus well suited for individual education, especially where proffcient teachers are not available locally. At the same time, modern society is undergoing a digital transformation, requiring the training of large numbers of current and future employees. Abstract thinking, logical reasoning, and the need to formulate instructions for computers are becoming increasingly relevant. A holistic way to train these skills is to learn how to program. Programming, in addition to being a mental discipline, is also considered a craft, and practical training is required to achieve mastery. In order to effectively convey programming skills in MOOCs, practical exercises are incorporated into the course curriculum to offer students the necessary hands-on experience to reach an in-depth understanding of the programming concepts presented. Our preliminary analysis showed that while being an integral and rewarding part of courses, practical exercises bear the risk of overburdening students who are struggling with conceptual misunderstandings and unknown syntax. In this thesis, we develop, implement, and evaluate different interventions with the aim to improve the learning experience, sustainability, and success of online programming courses. Data from four programming MOOCs, with a total of over 60,000 participants, are employed to determine criteria for practical programming exercises best suited for a given audience. Based on over five million executions and scoring runs from students' task submissions, we deduce exercise difficulties, students' patterns in approaching the exercises, and potential flaws in exercise descriptions as well as preparatory videos. The primary issue in online learning is that students face a social gap caused by their isolated physical situation. Each individual student usually learns alone in front of a computer and suffers from the absence of a pre-determined time structure as provided in traditional school classes. Furthermore, online learning usually presses students into a one-size-fits-all curriculum, which presents the same content to all students, regardless of their individual needs and learning styles. Any means of a personalization of content or individual feedback regarding problems they encounter are mostly ruled out by the discrepancy between the number of learners and the number of instructors. This results in a high demand for self-motivation and determination of MOOC participants. Social distance exists between individual students as well as between students and course instructors. It decreases engagement and poses a threat to learning success. Within this research, we approach the identified issues within MOOCs and suggest scalable technical solutions, improving social interaction and balancing content difficulty. Our contributions include situational interventions, approaches for personalizing educational content as well as concepts for fostering collaborative problem-solving. With these approaches, we reduce counterproductive struggles and create a universal improvement for future programming MOOCs. We evaluate our approaches and methods in detail to improve programming courses for students as well as instructors and to advance the state of knowledge in online education. Data gathered from our experiments show that receiving peer feedback on one's programming problems improves overall course scores by up to 17%. Merely the act of phrasing a question about one's problem improved overall scores by about 14%. The rate of students reaching out for help was significantly improved by situational just-in-time interventions. Request for Comment interventions increased the share of students asking for help by up to 158%. Data from our four MOOCs further provide detailed insight into the learning behavior of students. We outline additional significant findings with regard to student behavior and demographic factors. Our approaches, the technical infrastructure, the numerous educational resources developed, and the data collected provide a solid foundation for future research. N2 - MOOCs (Massive Open Online Courses) ermöglichen es jedem Interessierten sich in verschiedenen Fachrichtungen online weiterzubilden. Sie fördern die persönliche individuelle Entwicklung und ermöglichen lebenslanges Lernen auch dort, wo geeignete Lehrer nicht verfügbar sind. Unsere Gesellschaft befindet sich derzeit in der sogenannten "digitalen Transformation". Von vielen Arbeitnehmern werden in diesem Zusammenhang zunehmend Fähigkeiten wie abstraktes Denken und logisches Schlussfolgern erwartet. Das Erlernen einer Programmiersprache ist eine geeignete Möglichkeit, diese Fähigkeiten zu erlangen. Obwohl Programmieren als geistige Disziplin angesehen wird, ist es zu einem gewissen Grad auch ein Handwerk, bei dem sich das individuelle Können insbesondere durch stetige praktische Anwendung entwickelt. Um Programmierkenntnisse effektiv in einem MOOC zu vermitteln, sollten daher praktische Aufgaben von vornherein in den Lehrstoff des Kurses integriert werden, um die vorgestellten Konzepte geeignet zu vertiefen und zu festigen. Neben den positiven Aspekten für die Lernenden weisen praktische Programmieraufgaben jedoch auch ein erhöhtes Frustpotential auf. Kryptische Fehlermeldungen und teils unbekannte Syntax überfordern insbesondere diejenigen Teilnehmer, welche zusätzlich mit konzeptionellen Missverständnissen zu kämpfen haben. Im Rahmen dieser Arbeit entwickeln und analysieren wir mehrere Interventionsmöglichkeiten um die Lernerfahrung und den Lernerfolg von Teilnehmern in Programmier-MOOCs zu verbessern. Daten von über 60.000 Teilnehmern aus vier Programmier-MOOCs bilden die Grundlage für eine Analyse von Kriterien für geeignete Programmieraufgaben für spezifische Teilnehmergruppen. Auf Basis von 5 Millionen Codeausführungen von Teilnehmern leiten wir Schwachstellen in Aufgaben und typische Herangehensweisen der Teilnehmer ab. Die Hauptschwierigkeit beim Lernen in einer virtuellen Umgebung ist die durch physische Isolation hervorgerufene soziale Entkopplung. Jeder Teilnehmer lernt alleine vor einem Bildschirm, ein gemeinsamer Stundenplan wie im klassischen Schulunterricht fehlt. Weiterhin präsentieren bestehende online Kurse den Teilnehmern in der Regel lediglich universell einsetzbare Lerninhalte, welche in keiner Weise auf die jeweiligen Bedürfnisse und Vorerfahrungen der individuellen Teilnehmer angepasst sind. Personalisierte Lerninhalte bzw. individuelles Feedback sind in MOOCs aufgrund der großen Anzahl an Teilnehmern und der nur kleinen Anzahl an Lehrenden oft nur schwer bzw. gar nicht zu realisieren. Daraus resultieren wiederum hohe Anforderungen an das individuelle Durchhaltevermögen und die Selbstmotivation der MOOC-Teilnehmer. Die soziale Entkopplung manifestiert sich sowohl zwischen den Teilnehmern untereinander als auch zwischen den Lehrenden und den Teilnehmern. Negative Folgen sind ein häufig verringertes Engagement und damit eine Gefährdung des Lernerfolgs. In dieser Arbeit schlagen wir als Gegenmaßnahme skalierbare technische Lösungen vor, um die soziale Interaktion zu verbessern und inhaltliche Schwierigkeiten zu überwinden. Unsere wissenschaftlichen Beiträge umfassen situationsabhängige Interventionen, Ansätze zur Personalisierung von Lerninhalten, sowie Konzepte und Anreize zur Verbesserung der Kollaboration der Teilnehmer untereinander. Mit diesen Maßnahmen schaffen wir es, kontraproduktive Blockaden beim Lernen zu lösen und stellen damit einen universell einsetzbaren Ansatz zur Verbesserung von zukünftigen Progammier-MOOCs bereit. Die aus unseren Experimenten gesammelten Daten zeigen, dass bei Programmierproblemen gewährtes Feedback von anderen Teilnehmern die Gesamtpunktzahl innerhalb des Teilnehmerfeldes durchschnittlich um bis zu 17% verbessert. Bereits das Formulieren des jeweiligen individuellen Problems verbesserte die Gesamtpunktzahl um etwa 14%. Durch situative Interventionen konnte weiterhin der Anteil der Teilnehmer, die nach Hilfe fragen, um bis zu 158% gesteigert werden. Die gesammelten Daten aus unseren vier MOOCs ermöglichen darüber hinaus detaillierte Einblicke in das Lernverhalten der Teilnehmer. Wir zeigen zusätzlich Erkenntnisse in Bezug auf das Verhalten der Teilnehmer und zu demografischen Faktoren auf. Die in dieser Arbeit beschriebenen Ansätze, die geschaffene technische Infrastruktur, das entworfene Lehrmaterial, sowie der umfangreiche gesammelte Datenbestand bilden darüber hinaus eine vielversprechende Grundlage für weitere zukünftige Forschung. KW - programming KW - MOOC KW - intervention KW - collaboration KW - peer feedback KW - Programmierung KW - MOOC KW - Interventionen KW - Kollaboration KW - Peer-feedback Y1 - 2021 U6 - http://nbn-resolving.de/urn/resolver.pl?urn:nbn:de:kobv:517-opus4-507587 ER -