TY - BOOK A1 - Berov, Leonid A1 - Henning, Johannes A1 - Mattis, Toni A1 - Rein, Patrick A1 - Schreiber, Robin A1 - Seckler, Eric A1 - Steinert, Bastian A1 - Hirschfeld, Robert T1 - Vereinfachung der Entwicklung von Geschäftsanwendungen durch Konsolidierung von Programmierkonzepten und -technologien N2 - Die Komplexität heutiger Geschäftsabläufe und die Menge der zu verwaltenden Daten stellen hohe Anforderungen an die Entwicklung und Wartung von Geschäftsanwendungen. Ihr Umfang entsteht unter anderem aus der Vielzahl von Modellentitäten und zugehörigen Nutzeroberflächen zur Bearbeitung und Analyse der Daten. Dieser Bericht präsentiert neuartige Konzepte und deren Umsetzung zur Vereinfachung der Entwicklung solcher umfangreichen Geschäftsanwendungen. Erstens: Wir schlagen vor, die Datenbank und die Laufzeitumgebung einer dynamischen objektorientierten Programmiersprache zu vereinen. Hierzu organisieren wir die Speicherstruktur von Objekten auf die Weise einer spaltenorientierten Hauptspeicherdatenbank und integrieren darauf aufbauend Transaktionen sowie eine deklarative Anfragesprache nahtlos in dieselbe Laufzeitumgebung. Somit können transaktionale und analytische Anfragen in derselben objektorientierten Hochsprache implementiert werden, und dennoch nah an den Daten ausgeführt werden. Zweitens: Wir beschreiben Programmiersprachkonstrukte, welche es erlauben, Nutzeroberflächen sowie Nutzerinteraktionen generisch und unabhängig von konkreten Modellentitäten zu beschreiben. Um diese abstrakte Beschreibung nutzen zu können, reichert man die Domänenmodelle um vormals implizite Informationen an. Neue Modelle müssen nur um einige Informationen erweitert werden um bereits vorhandene Nutzeroberflächen und -interaktionen auch für sie verwenden zu können. Anpassungen, die nur für ein Modell gelten sollen, können unabhängig vom Standardverhalten, inkrementell, definiert werden. Drittens: Wir ermöglichen mit einem weiteren Programmiersprachkonstrukt die zusammenhängende Beschreibung von Abläufen der Anwendung, wie z.B. Bestellprozesse. Unser Programmierkonzept kapselt Nutzerinteraktionen in synchrone Funktionsaufrufe und macht somit Prozesse als zusammenhängende Folge von Berechnungen und Interaktionen darstellbar. Viertens: Wir demonstrieren ein Konzept, wie Endnutzer komplexe analytische Anfragen intuitiver formulieren können. Es basiert auf der Idee, dass Endnutzer Anfragen als Konfiguration eines Diagramms sehen. Entsprechend beschreibt ein Nutzer eine Anfrage, indem er beschreibt, was sein Diagramm darstellen soll. Nach diesem Konzept beschriebene Diagramme enthalten ausreichend Informationen, um daraus eine Anfrage generieren zu können. Hinsichtlich der Ausführungsdauer sind die generierten Anfragen äquivalent zu Anfragen, die mit konventionellen Anfragesprachen formuliert sind. Das Anfragemodell setzen wir in einem Prototypen um, der auf den zuvor eingeführten Konzepten aufsetzt. T3 - Technische Berichte des Hasso-Plattner-Instituts für Digital Engineering an der Universität Potsdam - 71 KW - Geschäftsanwendungen KW - Programmierkonzepte KW - Datenbank KW - Hauptspeicherdatenbank KW - Python KW - Spaltenlayout KW - Nebenläufigkeit KW - Transaktionen KW - Anfragesprache Y1 - 2013 U6 - http://nbn-resolving.de/urn/resolver.pl?urn:nbn:de:kobv:517-opus-64045 SN - 978-3-86956-231-5 PB - Universitätsverlag Potsdam CY - Potsdam ER - TY - BOOK A1 - Niephaus, Fabio A1 - Felgentreff, Tim A1 - Hirschfeld, Robert T1 - Squimera BT - a live, Smalltalk-based IDE for dynamic programming languages N2 - Programmierwerkzeuge, die verschiedene Programmiersprachen unterstützen und sich konsistent bedienen lassen, sind hilfreich für Softwareentwickler, weil diese sich nicht erst mit neuen Werkzeugen vertraut machen müssen, wenn sie in einer neuen Sprache entwickeln wollen. Außerdem ist es nützlich, verschiedene Programmiersprachen in einer Anwendung kombinieren zu können, da Entwickler dann Softwareframeworks und -bibliotheken nicht in der jeweiligen Sprache nachbauen müssen und stattdessen bestehende Software wiederverwenden können. Dennoch haben Entwickler eine sehr große Auswahl, wenn sie nach Werkzeugen suchen, die teilweise zudem speziell nur für eine Sprache ausgelegt sind. Einige integrierte Entwicklungsumgebungen unterstützen verschiedene Programmiersprachen, können aber häufig keine konsistente Bedienung ihrer Werkzeuge gewährleisten, da die jeweiligen Ausführungsumgebungen der Sprachen zu verschieden sind. Darüber hinaus gibt es bereits Mechansimen, die es erlauben, Programme aus anderen Sprachen in einem Programm wiederzuverwenden. Dazu werden häufig das Betriebssystem oder eine Netzwerkverbindung verwendet. Programmierwerkzeuge unterstützen jedoch häufig eine solche Indirektion nicht und sind deshalb nur eingeschränkt nutzbar bei beispielsweise Debugging Szenarien. In dieser Arbeit stellen wir einen neuartigen Ansatz vor, der das Programmiererlebnis in Bezug auf das Arbeiten mit mehreren dynamischen Programmiersprachen verbessern soll. Dazu verwenden wir die Werkzeuge einer Smalltalk Programmierumgebung wieder und entwickeln eine virtuelle Ausführungsumgebung, die verschiedene Sprachen gleichermaßen unterstützt. Der auf unserem Ansatz basierende Prototyp Squimera demonstriert, dass es möglich ist, Programmierwerkzeuge in der Art wiederzuverwenden, sodass sie sich für verschiedene Programmiersprachen gleich verhalten und somit die Arbeit für Entwickler vereinfachen. Außerdem ermöglicht Squimera einfaches Wiederverwenden und darüber hinaus das Verschmischen von in unterschiedlichen Sprachen geschriebenen Softwarebibliotheken und -frameworks und erlaubt dabei zusätzlich Debugging über mehrere Sprachen hinweg. N2 - Software development tools that work and behave consistently across different programming languages are helpful for developers, because they do not have to familiarize themselves with new tooling whenever they decide to use a new language. Also, being able to combine multiple programming languages in a program increases reusability, as developers do not have to recreate software frameworks and libraries in the language they develop in and can reuse existing software instead. However, developers often have a broad choice with regard to tools, some of which are designed for only one specific programming language. Various Integrated Development Environments have support for multiple languages, but are usually unable to provide a consistent programming experience due to different features of language runtimes. Furthermore, common mechanisms that allow reuse of software written in other languages usually use the operating system or a network connection as the abstract layer. Tools, however, often cannot support such indirections well and are therefore less useful in debugging scenarios for example. In this report, we present a novel approach that aims to improve the programming experience with regard to working with multiple high-level programming languages. As part of this approach, we reuse the tools of a Smalltalk programming environment for other languages and build a multi-language virtual execution environment which is able to provide the same runtime capabilities for all languages. The prototype system Squimera is an implementation of our approach and demonstrates that it is possible to reuse development tools, so that they behave in the same way across all supported programming languages. In addition, it provides convenient means to reuse and even mix software libraries and frameworks written in different languages without breaking the debugging experience. T3 - Technische Berichte des Hasso-Plattner-Instituts für Digital Engineering an der Universität Potsdam - 120 KW - Programmiererlebnis KW - integrierte Entwicklungsumgebungen KW - mehrsprachige Ausführungsumgebungen KW - Interpreter KW - Debugging KW - Smalltalk KW - Python KW - Ruby KW - programming experience KW - integrated development environments KW - polyglot execution environments KW - interpreters KW - debugging KW - small talk KW - Python KW - Ruby Y1 - 2017 U6 - http://nbn-resolving.de/urn/resolver.pl?urn:nbn:de:kobv:517-opus4-403387 SN - 978-3-86956-422-7 IS - 120 PB - Universitätsverlag Potsdam CY - Potsdam ER - TY - GEN A1 - Staubitz, Thomas A1 - Teusner, Ralf A1 - Meinel, Christoph T1 - MOOCs in Secondary Education BT - Experiments and Observations from German Classrooms T2 - 2019 IEEE Global Engineering Education Conference (EDUCON) N2 - Computer science education in German schools is often less than optimal. It is only mandatory in a few of the federal states and there is a lack of qualified teachers. As a MOOC (Massive Open Online Course) provider with a German background, we developed the idea to implement a MOOC addressing pupils in secondary schools to fill this gap. The course targeted high school pupils and enabled them to learn the Python programming language. In 2014, we successfully conducted the first iteration of this MOOC with more than 7000 participants. However, the share of pupils in the course was not quite satisfactory. So we conducted several workshops with teachers to find out why they had not used the course to the extent that we had imagined. The paper at hand explores and discusses the steps we have taken in the following years as a result of these workshops. KW - MOOC KW - Secondary Education KW - School KW - Teamwork KW - K-12 KW - Programming course KW - Java KW - Python Y1 - 2019 SN - 978-1-5386-9506-7 U6 - https://doi.org/10.1109/EDUCON.2019.8725138 SN - 2165-9567 SP - 173 EP - 182 PB - IEEE CY - New York ER - TY - JOUR A1 - Hake, Tim A1 - Bodenberger, Bernhard A1 - Groth, Detlef T1 - In Python available: St. Nicolas House Algorithm (SNHA) with bootstrap support for improved performance in dense networks JF - Human biology and public health N2 - The St. Nicolas House Algorithm (SNHA) finds association chains of direct dependent variables in a data set. The dependency is based on the correlation coefficient, which is visualized as an undirected graph. The network prediction is improved by a bootstrap routine. It enables the computation of the empirical p-value, which is used to evaluate the significance of the predicted edges. Synthetic data generated with the Monte Carlo method were used to firstly compare the Python package with the original R package, and secondly to evaluate the predicted network using the sensitivity, specificity, balanced classification rate and the Matthew's correlation coefficient (MCC). The Python implementation yields the same results as the R package. Hence, the algorithm was correctly ported into Python. The SNHA scores high specificity values for all tested graphs. For graphs with high edge densities, the other evaluation metrics decrease due to lower sensitivity, which could be partially improved by using bootstrap,while for graphs with low edge densities the algorithm achieves high evaluation scores. The empirical p-values indicated that the predicted edges indeed are significant. KW - Python KW - correlation KW - network reconstruction KW - bootstrap KW - St. Nicolas House Algorithm Y1 - 2023 U6 - https://doi.org/10.52905/hbph2023.1.63 SN - 2748-9957 VL - 1 PB - Universitätsverlag Potsdam CY - Potsdam ER - TY - JOUR A1 - Krause, Florian A1 - Lindemann, Oliver T1 - Expyriment: A Python library for cognitive and neuroscientific experiments JF - Behavior research methods : a journal of the Psychonomic Society N2 - Expyriment is an open-source and platform-independent lightweight Python library for designing and conducting timing-critical behavioral and neuroimaging experiments. The major goal is to provide a well-structured Python library for script-based experiment development, with a high priority being the readability of the resulting program code. Expyriment has been tested extensively under Linux and Windows and is an all-in-one solution, as it handles stimulus presentation, the recording of input/output events, communication with other devices, and the collection and preprocessing of data. Furthermore, it offers a hierarchical design structure, which allows for an intuitive transition from the experimental design to a running program. It is therefore also suited for students, as well as for experimental psychologists and neuro-scientists with little programming experience. KW - Software KW - Programming library KW - Python KW - Experimental design KW - Stimulus presentation Y1 - 2014 U6 - https://doi.org/10.3758/s13428-013-0390-6 SN - 1554-351X SN - 1554-3528 VL - 46 IS - 2 SP - 416 EP - 428 PB - Springer CY - New York ER - TY - JOUR A1 - Mani, Deepak A1 - Kupsch, Andreas A1 - Müller, Bernd R. A1 - Bruno, Giovanni T1 - Diffraction Enhanced Imaging Analysis with Pseudo-Voigt Fit Function JF - Journal of imaging : open access journal N2 - Diffraction enhanced imaging (DEI) is an advanced digital radiographic imaging technique employing the refraction of X-rays to contrast internal interfaces. This study aims to qualitatively and quantitatively evaluate images acquired using this technique and to assess how different fitting functions to the typical rocking curves (RCs) influence the quality of the images. RCs are obtained for every image pixel. This allows the separate determination of the absorption and the refraction properties of the material in a position-sensitive manner. Comparison of various types of fitting functions reveals that the Pseudo-Voigt (PsdV) function is best suited to fit typical RCs. A robust algorithm was developed in the Python programming language, which reliably extracts the physically meaningful information from each pixel of the image. We demonstrate the potential of the algorithm with two specimens: a silicone gel specimen that has well-defined interfaces, and an additively manufactured polycarbonate specimen. KW - diffraction enhanced imaging KW - analyzer-based imaging KW - X-ray refraction; KW - non-destructive evaluation KW - Pseudo-Voigt fit function KW - Python Y1 - 2022 U6 - https://doi.org/10.3390/jimaging8080206 SN - 2313-433X VL - 8 IS - 8 PB - MDPI CY - Basel ER -