Auflistung nach Schlagwort "Python"
1 - 10 von 14
Treffer pro Seite
Sortieroptionen
- ZeitschriftenartikelAnalyzing Code Corpora to Improve the Correctness and Reliability of Programs(Softwaretechnik-Trends Band 42, Heft 2, 2022) Patra, JibeshThe goal of the dissertation summarized here is to use program analysis and novel learning-based techniques to alleviate some of the challenges faced by developers while ensuring the correctness and reliability of programs. We focus on dynamically typed languages such as JavaScript and Python for their popularity and present six approaches that leverages analysis of code corpora in aiding to solve software engineering problems. We use static analysis to generate new programs, to seed bugs in programs, and to obtain data for training neural models. We present an effective technique called Generalized Tree Reduction algorithm (GTR), to reduce arbitrary test inputs that can be represented as a tree, such as program code, PDF files, and XML documents. The efficiency of input reduction is increased by learning transformations from a corpus of example data.
- TextdokumentAutomatisierte Überprüfung von Webauftritten auf Fremdinhalte(INFORMATIK 2022, 2022) Knorr,Konstantin; Müller,DavidDie öffentlichen Webauftritte von Unternehmen und Behörden sind heute oft sehr umfangreich und entwickeln sich dynamisch weiter. In der dazugehörigen Datenschutzerklärung sollte der potentielle Besucher laut Artikel 13 der DS-GVO u.a. über die Einbindung externer Inhalte wie Fonts, Videos oder Werbung sowie über die dahinterstehenden Parteien informiert werden. Meist geschieht dies in Form einer einzigen Datenschutzerklärung für den gesamten Webauftritt. Insbesondere bei rasch wachsenden und sich dynamisch verändernden Webaufritten ist es schwierig, die Datenschutzerklärung aktuell zu halten. Es kommt leicht zu einer Über- oder Unterdeckung bei der Angabe der externen Parteien. Schlimmstenfalls drohen Bußgelder oder Abmahnungen bspw. durch Konkurrenten. Das Papier beschreibt ein Tool, das automatisiert in einer Tiefensuche die externen Verbindungen eines Webauftritts identifiziert und mit den manuell aus der Datenschutzerklärung ausgelesenen Parteien abgleicht. Nicht gelistete Fremdparteien verletzen die Informationspflicht und entbehren einer Rechtsgrundlage. Der ca. 32.000 Seiten umfassende Webauftritt einer Hochschule wurde mit dem Tool getestet. Die Ergebnisse des Tests werden beschrieben und diskutiert. Ferner werden Empfehlungen für das Vorgehen zur Beseitigung von Abweichungen gegeben. Die Autoren hoffen, damit den für die Datenschutzerklärung Verantwortlichen und Datenschutzbeauftragten eine Hilfestellung für die Erstellung und Pflege der Datenschutzerklärung ihres Webauftritts bieten zu können.
- KonferenzbeitragDatenbasierter Vergleich von statistischen Tests mithilfe von Simulationen(SKILL 2019 - Studierendenkonferenz Informatik, 2019) Welter, FelixDie Wahl des richtigen statistischen Verfahrens ist für einen A/B-Test essentiell. Bei Nutzung eines mächtigen Tests kann ein Experiment schneller zu Erkenntnissen führen und es können früher datengetriebene Entscheidungen getroffen werden. In dieser Untersuchung wurden der Permutationstest und der Wilcoxon-Rangsummentest bezüglich Mächtigkeit und Alpharobustheit verglichen. Die Vorgehensweise kann zudem abstrahiert und auf andere Tests oder Anwendungen übertragen werden.
- KonferenzbeitragAn Empirical Study of Flaky Tests in Python(Software Engineering 2022, 2022) Gruber, Martin; Lukasczyk, Stephan; Kroiß, Florian; Fraser, GordonThis is a summary of our work presented at the International Conference on Software Testing 2021 [Gr21b]. Tests that cause spurious failures without code changes, i.e., flaky tests, hamper regression testing and decrease trust in tests. While the prevalence and importance of flakiness is well established, prior research focused on Java projects, raising questions about generalizability. To provide a better understanding of flakiness, we empirically study the prevalence, causes, and degree of flakiness within 22 352 Python projects containing 876 186 tests. We found flakiness to be equally prevalent in Python as in Java. The reasons, however, are different: Order dependency is a dominant problem, causing 59% of the 7 571 flaky tests we found. Another 28% were caused by test infrastructure problems, a previously less considered cause of flakiness. The remaining 13% can mostly be attributed to the use of network and randomness APIs. Unveiling flaky tests also requires more runs than often assumed: A 95% confidence that a passing test is not flaky on average would require 170 reruns. Additionally, through our investigations, we created a large dataset of flaky tests that other researchers already started building on [MM21; Ni21].
- KonferenzbeitragA Grammar and Parameterization-Based Generator for Python Programming Exercises(Proceedings of the Sixth Workshop "Automatische Bewertung von Programmieraufgaben" (ABP 2023), 2023) Peeß, Philipp; Brocker, Annabell; Röpke, René; Schroeder, UlrikAs the importance of programming education grows, the demand for a sufficient number of practical exercises in courses also increases. To accommodate this need without significantly increasing the instructors' workload, a programming exercise generator capable of generating exercises for independent practice is considered. This research mainly focuses on determining suitable generation methods and creating a modular and extensible generator structure. The current generator implementation uses parameterization and a grammar-based generation approach in order to provide generated exercises directly to students in their programming environment. Furthermore, the generator can act as a foundation for further research and be extended with additional generation methods, creating the possibility of exploring artificial intelligence for the generation of programming exercises.
- ZeitschriftenartikelGraphen im Unterricht - Mit Hilfe von Python und Jupyter-Notebooks(Informatische Bildung in Schulen (IBiS): Vol. 2, No. 1, 2024) Bovermann, KlausGraphen spielen eine große Rolle in vielen Alltagssituationen sowie in der wissenschaftlichen Informatik. Sie sind Teil der Informatik-Lehrpläne (mindestens der Leistungskurse) der gymnasialen Oberstufe. Beispielsweise findet man das Thema im schulinternen Lehrplan von NRW: [...] Die im Folgenden aufgeführten Teile dieses Artikels sind entstanden, um Graphen im Unterricht für die Schülerinnen und Schüler erfahrbar zu machen, zum Beispiel unter Nutzung von Python und Jupyter-Notebooks. Dazu wurden entwickelt: • zwei Python-Bibliotheken, mit denen die Verwaltung von ungerichteten Graphen einfach gelingt. • eine für die Schülerinnen und Schüler geeignete sehr kurze Einführung in die Begriffswelt von Graphen. • ein Jupyter-Notebook, das den Schülerinnen und Schülern als Arbeitsmaterial vorgelegt wird.
- TextdokumentHardware Accelerator Framework Approach for Dynamic Partial Reconfigurable Overlays on Xilinx PYNQ(INFORMATIK 2017, 2017) Janßen, Benedikt; Wingender, Tim; Hübner, MichaelReconfigurable System-on-Chips (SoC) combine processor cores with Field-Programmable Gate Array (FPGA) fabric. Thereby, these systems enable to optimize the execution of application to some extend by hardware accelerators in the FPGA fabric. However, hardware accelerator development requires special skills from the developer since hardware development differs substantial from software development. Overlays offer a way to abstract the complexity of FPGA usage by predefined programmable hardware architectures. With Dynamic Partial reconfiguration (DPR) it becomes possible to exchange parts of an overlay’s architecture without affecting the operation of the remaining parts. In this article, we present a first version of our framework to ease the integration of hardware accelerators in Python via DPR overlays. The integration into Python is based on Xilinx PYNQ. The framework approach is based on our Python package ‘pynqpartial’.
- KonferenzbeitragInstrumenting Python with Kieker(Softwaretechnik-Trends Band 43, Heft 1, 2023) Simonov, Serafim; Düllmann, Thomas F.; Jung, Reiner; Gundlach, SvenPython has become a widely used programming language in big data, machine learning, and scientific modeling. In all these domains, performance is a key factor to success and requires the ability to understand the runtime behavior of software. Therefore, we ported Kieker monitoring to Python and evaluated different approaches to introduce probes into code. In this paper, we evaluate these approaches, show their benefits and limitations and provide a perfor mance evaluation of the Kieker 4 Python framework.
- KonferenzbeitragLearning Analytics Bundle(DeLFI 2018 - Die 16. E-Learning Fachtagung Informatik, 2018) Schiffner, Daniel; Ritter, Marcel; Horn, FlorianWe propose and create a new data model for learning specific environments and learning analytics applications. This is motivated from the experience in the Fiber Bundle Data Model used for large - time and space dependent - data. Our proposed data model integrates file or stream-based data structures from capturing devices more easily. Learning analytics algorithms are added directly to the data, and formulation of queries and analytics is done in Python. It is designed to improve collaboration in the field of learning analytics. We leverage a hierarchical data structure, where varying data is located near the leaves. Abstract data types are identified in four distinct pathways, which allow storing most diverse data sources. We compare different implementations regarding its memory footprint and performance. Our tests indicate that LeAn Bundles can be smaller than a naïve xAPI export. The benchmarks show that the performance is comparable to a MongoDB, while having the benefit of being portable and extensible.
- TextdokumentMaschinelles Lernen im Unterricht mit Jupyter Notebook(Informatik für alle, 2019) Schlichtig, Michael; Opel, Simone; Schulte, Carsten; Biehler, Rolf; Frischemeier, Daniel; Podworny, Susanne; Wassong, ThomasData Science und Big Data durchdringt in ihren diversen Facetten unser tägliches Leben– kaum ein Tag, an dem nicht verschiedene Meldungen über technische Innovationen, Einsatzmöglichkeiten von Künstlicher Intelligenz (KI) und Maschinelles Lernen (ML) und ihre ethischen sowie gesellschaftlichen Implikationen in den unterschiedlichen Medien diskutiert werden. Aus diesem Grund erscheint es uns immens wichtig, diese Fragestellungen und Technologien auch in den Unterricht der Sekundarstufe II zu integrieren. Um diesem Anspruch gerecht zu werden, entwickelten wir im Rahmen eines Forschungsprojekts ein Curriculum, welches wir als konkretes Unterrichtskonzept innerhalb eines Projektkurses erprobt, evaluiert weiterentwickelt wird. Bei der Implementierung entschieden wir uns, zur aktiven Umsetzung von Konzepten von ML als Plattform Jupyter Notebook mit Python zu verwenden, da diese Umgebung durch die Verbindung von Code und Hypertext zur Dokumentation und Erklärung Medienbrüche im Lernprozess verringern kann. Zudem ist Python zur Implementierung der Methoden von ML sehr gut geeignet. Im Themenfeld des ML als Teilgebiet der KI legen wir den Fokus auf zwei unterschiedliche Lernverfahren um verschieden Aspekte von ML, u.A. wie Nachvollziehbarkeit unter gesellschaftlichen Gesichtspunkten zu vermitteln. Diese sind Künstliche Neuronale Netze (bei denen die Berechnung und Bedeutung der Kantengewichte zwischen den Neuronen für den Menschen insbesondere bei komplexeren Netzen kaum nachvollziehbar erschienen) und Entscheidungsbäume (strukturierte und gerichtete Bäume zur Darstellung von Entscheidungsregeln, welche auch für Schülerinnen und Schüler meist gut nachvollziehbares und verständliches KI-Modell darstellen). In diesem Workshop stellen wir konkrete Umsetzungsbeispiele inklusive der Programmierung für beide Verfahren mit Jupyter Notebook und Python als Teil einer Unterrichtssequenz vor und diskutieren diese.