Table of Contents
Fetching ...

WebTigerPython -- A Low-Floor High-Ceiling Python IDE for the Browser

Clemens Bachmann, Alexandra Maximova, Tobias Kohn, Dennis Komm

TL;DR

WebTigerPython demonstrates that a fully client-side Python IDE can run mature CPython libraries in the browser by executing Pyodide within a web worker, preserving UI responsiveness. It delivers a rich educational environment with enhanced Turtle graphics, multimedia support, and optional robotics via WebUSB, while maintaining a high ceiling through NumPy and Matplotlib support. Benchmark results show compute performance within roughly a factor of $3$ of CPython for non-UI tasks and strong graphics capabilities thanks to PixiJS, enabling practical classroom use without server backends. The work offers a significant step toward accessible, scalable, browser-based education that accommodates BYOD scenarios, though it acknowledges current WebUSB limitations and the need for broader module support and classroom integration.

Abstract

With the large diversity of platforms and devices used by students, web applications increasingly suggest themselves as the solution of choice. Developing adequate educational programming environments in the browser, however, remains a challenge and often involves trade-offs between desired functionalities and navigating the limitations of web applications, in particular the blocking single-threaded execution model. We introduce a fully browser-based Python programming environment that explores the possibilities and demonstrates that a web application can indeed support a rich and mature set of features, ranging from Turtle graphics over educational robotics to data processing.

WebTigerPython -- A Low-Floor High-Ceiling Python IDE for the Browser

TL;DR

WebTigerPython demonstrates that a fully client-side Python IDE can run mature CPython libraries in the browser by executing Pyodide within a web worker, preserving UI responsiveness. It delivers a rich educational environment with enhanced Turtle graphics, multimedia support, and optional robotics via WebUSB, while maintaining a high ceiling through NumPy and Matplotlib support. Benchmark results show compute performance within roughly a factor of of CPython for non-UI tasks and strong graphics capabilities thanks to PixiJS, enabling practical classroom use without server backends. The work offers a significant step toward accessible, scalable, browser-based education that accommodates BYOD scenarios, though it acknowledges current WebUSB limitations and the need for broader module support and classroom integration.

Abstract

With the large diversity of platforms and devices used by students, web applications increasingly suggest themselves as the solution of choice. Developing adequate educational programming environments in the browser, however, remains a challenge and often involves trade-offs between desired functionalities and navigating the limitations of web applications, in particular the blocking single-threaded execution model. We introduce a fully browser-based Python programming environment that explores the possibilities and demonstrates that a web application can indeed support a rich and mature set of features, ranging from Turtle graphics over educational robotics to data processing.

Paper Structure

This paper contains 19 sections, 5 figures, 1 table.

Figures (5)

  • Figure 1: Different screenshots of WebTigerPython
  • Figure 2: Programming a Maqueen robot via tablet
  • Figure 3: System overview of WebTigerPython
  • Figure 4: Benchmarks with animated objects
  • Figure 5: Accumulated answers of each item of the System Usability Scale questionnaire