Ten Million Users and Ten Years Later: Python Tutor's Design Guidelines for Building Scalable and Sustainable Research Software in Academia
Best PaperDocument 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.
- The authors introduce Python Tutor (a widely-used code execution visualization tool) and derive ten specific design guidelines across three core design domains:
- 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:
- Build the infrastructure using lightweight technologies (e.g., older versions of JavaScript, CGI).
- Implement a stateless architecture, storing all states in the user's browser.
- Provide URL-sharing links to allow users to embed and distribute visualization content.
- 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.
Research Questions / Practical Problems
Question signals indexed for this paper.
Research Questions
3- How can scalable and sustainable research software be developed in academic environments?Category: Hardware Maintenance and Asynchronous Problem-Solving SupportSimilar questionsarrow_forward
- What general design guidance can Python Tutor development practices provide for similar projects?Category: Hardware Maintenance and Asynchronous Problem-Solving SupportSimilar questionsarrow_forward
- In resource-constrained academic settings, which software design principles maximize user scale and impact?Category: Hardware Maintenance and Asynchronous Problem-Solving SupportSimilar questionsarrow_forward
Practical Problems
1- Academic software is often abandoned due to lack of maintenance and fails to achieve long-term impact.Category: Hardware Maintenance and Asynchronous Problem-Solving SupportSimilar questionsarrow_forward
- 60%
Computational Interaction: Theory and Practice
CHI '18· Programming Education & Computational Thinking +1
- 60%
Developing a Community of Practice to Support Global HCI Education
CHI '18· Programming Education & Computational Thinking +1
- 60%
How to Write CHI Papers -- Second Edition
CHI '18· User Research Methods (Interviews, Surveys, Observation) +1
- 60%
How to Write CHI Papers -- Second Edition
CHI '18· User Research Methods (Interviews, Surveys, Observation) +1
- 60%
Empirical Research Methods for Human-Computer Interaction
CHI '18· User Research Methods (Interviews, Surveys, Observation) +1
- 60%
Crowdsourcing vs Laboratory-Style Social Acceptability Studies? Examining the Social Acceptability of Spatial User Interactions for Head-Worn Displays
CHI '18· User Research Methods (Interviews, Surveys, Observation) +1
- 60%
Introduction to Human-Computer Interaction
CHI '18· User Research Methods (Interviews, Surveys, Observation) +1
- 60%
Unwind: Interactive Fish Straightening
CHI '20· Data Physicalization +1
- 60%
Avoiding the Turing Tarpit: Learning Conversational Programming by Starting from Code's Purpose
CHI '21· Programming Education & Computational Thinking +1
- 60%
How to Evaluate Object Selection and Manipulation in VR? Guidelines from 20 Years of Studies
CHI '21· Immersion & Presence Research +1
Based on Jaccard similarity of research subtopics & professions (≥60%)