Ten Million Users and Ten Years Later: Python Tutor's Design Guidelines for Building Scalable and Sustainable Research Software in Academia

Best Paper
Programming Education & Computational ThinkingPrototyping & User TestingUniversity Professors & ResearchersHCI Researchers

Document Title

Ten Years Later, the Story of Ten Million Users: Design Guidelines for Building Scalable and Sustainable Research Software in Academia with Python Tutor

Document Information

  • Subject Area: Human-Computer Interaction (HCI), Software Engineering, Programming Education Tools
  • Keywords: Research Software, Sustainability, Python Tutor, Code Visualization, User Experience, Software Architecture, Academic Software, Programming Teaching Tools, Program Visualization, Software Design Principles

Research Background and Problem

  • Problems or Challenges Identified by the Authors:
    • Many academic research software projects are developed as proof-of-concept tools. Despite their potential for widespread application, they are often abandoned due to lack of maintenance.
    • Resource constraints in the current academic environment (e.g., unstable developer positions, lack of long-term funding) make building sustainable research software particularly challenging.
  • Why This Problem Is Important:
    • Sustainable research software can achieve broader user adoption and help academic research generate long-term impact.
    • Software can provide platforms and resources for other research communities, supporting subsequent studies.
  • Research Motivation and Related Work:
    • The authors aim to distill a set of general design principles for developing scalable and sustainable software in academia, based on their decade-long experience in developing and maintaining Python Tutor.
    • Related work has discussed program visualization tools and large-scale academic online experiments (e.g., LabintheWild), but the authors' systematic summary of contributions in technical design and sustainability is novel.

Solution

  • Proposed Solution:
    • The authors introduce Python Tutor (a widely-used code execution visualization tool) and derive ten specific design guidelines across three core design domains:
      • Principles for User Experience Design: Ensure the tool is easy to use, requires no installation, and does not mandate user login.
      • Principles for Software Architecture Design: For example, maintain statelessness, use older technologies, and minimize external dependencies.
      • Principles for Software Development Workflow: For instance, assign a single developer, focus on specific needs, and ignore most user suggestions to prevent feature bloat.
  • Innovative Aspects of the Solution:
    • Emphasis on the unique constraints of academic software (limited resources and developers) and distinctions from industry best practices.
    • Strategies such as avoiding "login walls" and promoting a "no storage content" policy to minimize user attrition and reduce long-term maintenance burdens.
  • Implementation Steps and Key Technologies:
    1. Build the infrastructure using lightweight technologies (e.g., older versions of JavaScript, CGI).
    2. Implement a stateless architecture, storing all states in the user's browser.
    3. Provide URL-sharing links to allow users to embed and distribute visualization content.
    4. Use Docker containerization to achieve reproducible environments.

Research Outcomes

  • Specific Achievements:
    • Python Tutor has been used by over 10 million users across 180 countries, playing a significant role in education and online communities.
    • To date, the tool has supported 55 academic publications, contributing to the advancement of programming education research.
  • Advantages Compared to Existing Solutions:
    • Unlike many academic software projects that are abandoned after brief usage, Python Tutor has successfully supported users for over a decade.
    • The authors avoided content moderation pressures (e.g., by enabling visualization content to be embedded and shared on other websites), demonstrating the success of the "share rather than store" strategy.
  • Experimental or Evaluation Results:
    • The authors estimated Python Tutor's academic impact through Google Scholar, finding its code reused by multiple research groups and supporting various user behavior studies.
    • Completed user surveys indicate widespread recognition of the platform's usability.
  • Limitations and Future Directions:
    • Limitations: The "bus factor" of a single-developer model (if the developer stops maintaining, the project may stagnate); potential performance limitations due to the choice of older technologies.
    • Future Directions: Explore ways to promote the design principles summarized by the authors in broader academic contexts, and advocate for institutional support to drive long-term research software development.

Additional Summary

This article serves as both a comprehensive review of the Python Tutor tool and a practical guide for academia. The design principles distilled from the authors' decade-long experience in development, maintenance, and promotion can be referenced by other research teams to achieve broader impact under limited academic resources.

Quick Actions

Share

Share this page

ios_share

https://hci.top/en/papers/uist/61384/2021

AdRecommended

Learn AI Coding at CodeNow

open_in_newOpen DOI Link
DOI: https://doi.org/10.1145/3472749.3474819
At a Glance

Paper Snapshot

fact_check
dataset
Source
UIST
calendar_month
Year
2021
emoji_events
Award
Best Paper
group
Authors
1 authors
sell
Subtopics
Programming Education & Computational Thinking, Prototyping & User Testing
work
Professions
University Professors & Researchers, HCI Researchers
article
Content Status
Full text indexed
hub
Related Papers
10 related papers