Ten Million Users and Ten Years Later: Python Tutor's Design Guidelines for Building Scalable and Sustainable Research Software in Academia
Philip J. Guo
Abstract
Research software is often built as prototypes that never get widespread usage and are left unmaintained after a few papers get published. To counteract this trend, we propose a method for building research software with scale and sustainability in mind so that it can organically grow a large userbase and enable longer-term research. To illustrate this method, we present the design and implementation of Python Tutor (pythontutor.com), a code visualization tool that is, to our knowledge, one of the most widely-used pieces of research software developed within a university lab. Over the past decade, it has been used by over ten million people in over 180 countries. It has also contributed to 55 publications from 35 research groups in 13 countries. We distilled lessons from working on Python Tutor into three sets of design guidelines: 1) user experience design for scale and sustainability, 2) software architecture design for long-term sustainability, and 3) designing a sustainable software development workflow within academia. These guidelines can enable a student to create long-lasting software that reaches many users and facilitates research from many independent groups.
Ask about this paper
Ask your agent about it.
Lune has read the top-tier papers around this one, so every answer names the papers it rests on.
Cited by top-tier papers5
- A Study of Editor Features in a Creative Coding ClassroomAndrew M. McNutt, Anton Outkine, Ravi ChughCHI 2023 · 21 citations
- Matcha: An IDE Plugin for Creating Accurate Privacy Nutrition LabelsTianshi Li, Lorrie Faith Cranor, Yuvraj Agarwal, Jason I. HongUbiComp 2024 · 17 citations
- Log-it: Supporting Programming with Interactive, Contextual, Structured, and Visual LogsPeiling Jiang, Fuling Sun, Haijun XiaCHI 2023 · 16 citations
- Revisiting Piggyback Prototyping: Examining Benefits and Tradeoffs in Extending Existing Social Computing SystemsDaniel A. Epstein, Fannie Liu, Andrés Monroy-Hernández, Dennis WangCSCW 2022 · 14 citations
- Slowness, Politics, and Joy: Values That Guide Technology Choices in Creative Coding ClassroomsAndrew M. McNutt, Sam Cohen, Ravi ChughCHI 2025 · 7 citations
Related papers
- Composing Flexibly-Organized Step-by-Step Tutorials from Linked Source Code, Snippets, and OutputsAndrew Head, Jason Jiang, James Smith, Marti A. Hearst et al.CHI 2020 · 29 citations
- Validating AI-Generated Code with Live ProgrammingKasra Ferdowsi, Ruanqianqian (Lisa) Huang, Michael B. James, Nadia Polikarpova et al.CHI 2024 · 27 citations
- Fixing dependency errors for Python build reproducibilitySuchita Mukherjee, Abigail Almanza, Cindy Rubio-GonzálezISSTA 2021 · 55 citations
- DyPyBench: A Benchmark of Executable Python SoftwareIslem Bouzenia, Bajaj Piyush Krishan, Michael PradelFSE 2024 · 8 citations
- VizSmith: Automated Visualization Synthesis by Mining Data-Science NotebooksRohan Bavishi, Shadaj Laddad, Hiroaki Yoshida, Mukul R. Prasad et al.ASE 2021 · 7 citations
