十年后千万用户:Python Tutor构建可扩展可持续学术研究软件的设计指南
最佳论文编程教育与计算思维原型设计与用户测试大学教授与研究人员HCI 研究员
文献标题
十年后,千万用户的故事:Python Tutor关于在学术界构建可扩展和可持续研究软件的设计指导原则
文献信息
- 主题领域: 人机交互(HCI)、软件工程、编程教育工具
- 关键词: 研究软件, 可持续性, Python Tutor, 代码可视化, 用户体验, 软件架构, 学术软件, 编程教学工具, 程序可视化, 软件设计原则
研究背景与问题
- 作者发现的问题或挑战:
- 许多学术研究软件只作为概念验证工具开发,即使它们可能有广泛应用潜力,但因为缺乏维护而逐渐被遗弃。
- 当前学术环境的资源限制(例如岗位不稳定的开发者、缺乏长期资金支持)使得构建可持续的研究软件变得尤为困难。
- 为什么这个问题很重要:
- 可持续研究软件能够实现更广泛的用户转化,帮助学术研究产生长期影响。
- 软件可以为其他研究群体提供平台与资源,支持后续研究工作。
- 研究动机与相关工作:
- 作者通过对十年来开发和维护Python Tutor的经验进行深度反思,旨在提炼出一套可指导学术界开发具有规模和可持续性的软件的通用设计原则。
- 相关工作提到程序可视化工具和大型学术在线实验(例如LabintheWild),但作者在技术设计及可持续性方面的贡献是首次系统总结。
解决方案
- 作者提出的解决方案:
- 作者介绍了被广泛使用的Python Tutor(一个代码运行可视化工具),并提炼出三个核心设计领域下的十条具体设计指导原则:
- 用户体验设计的原则: 确保工具易用、无需安装、不要求用户登录等。
- 软件架构设计的原则: 例如保持无状态、使用老技术、减少外部依赖。
- 软件开发工作流程的原则: 例如由单一开发者负责、以具体需求为出发点、忽略大部分用户建议来防止功能膨胀。
- 作者介绍了被广泛使用的Python Tutor(一个代码运行可视化工具),并提炼出三个核心设计领域下的十条具体设计指导原则:
- 解决方案的创新之处:
- 重点关注学术软件的独特限制(缺少资源和开发人员的限制)以及与行业内最佳实践的区别。
- 提出避免“登录墙”、推广“无存储内容”政策等策略以最大限度地减少用户流失并减轻长期维护负担。
- 实施步骤与关键技术:
- 利用轻量级技术(例如旧版JavaScript、CGI)构建基础架构。
- 实施无存储架构,将所有状态存放于用户的浏览器中。
- 提供URL共享链接,允许用户嵌入和分发可视化内容。
- 通过Docker容器化实现环境的可复现性。
研究成果
- 取得的具体成果:
- Python Tutor已被超过180个国家的1000万用户使用,在教育界和在线社区中发挥了作用。
- 到目前为止工具对55篇学术出版物产生支持,这些出版物有助于推广编程教育研究。
- 与现有解决方案相比的优势:
- 与许多学术软件在短暂使用后被遗弃不同,Python Tutor能够持续支持用户超过10年。
- 作者成功避免了内容审核压力(例如通过让可视化内容在其他网站上被嵌入和分享),显示了“共享而非存储”策略的成功。
- 实验或评估结果:
- 作者通过Google Scholar调研估算了Python Tutor的学术影响,发现其代码被多个研究组复用,并支持了多项用户行为研究。
- 完成的用户调查表明,该平台的使用体验被广泛认可。
- 局限性与未来方向:
- 局限性: 单开发者模型的“公交车因素”(如果开发者停止维护,项目可能会停滞);由于选择旧技术,可能存在性能限制。
- 未来方向: 探讨如何在更广泛的学术环境中推广作者总结的设计原则,为推动长期研究软件制定更有利的机构支持。
附加总结
这篇文章既是Python Tutor这一工具的详尽回顾,又为学术界提供了一份具有指导意义的实践手册。作者通过十年的开发、维护与推广经验提炼的设计原则可以被其他研究团队参考,以在学术资源有限的条件下实现更广泛的影响。
研究问题 / 现实痛点
这篇论文在当前问题库中对应的问题线索。
help
研究问题
3- 如何在学术环境中开发出可扩展且可持续的研究软件?分类: 硬件维护与异步问题解决支持同类问题arrow_forward
- Python Tutor 的开发实践能为类似项目提供哪些通用设计指导?分类: 硬件维护与异步问题解决支持同类问题arrow_forward
- 在资源受限的学术场景中,哪些软件设计原则能最大化用户规模和影响力?分类: 硬件维护与异步问题解决支持同类问题arrow_forward
lightbulb
现实痛点
1- 学术软件常因缺乏维护而被弃用,无法产生长期影响。分类: 硬件维护与异步问题解决支持同类问题arrow_forward
- 60%
计算交互:理论与实践
CHI '18· 编程教育与计算思维 +1
- 60%
建立实践社区以支持全球人机交互教育
CHI '18· 编程教育与计算思维 +1
- 60%
如何撰写CHI论文--第二版
CHI '18· 用户研究方法(访谈、调查、观察) +1
- 60%
如何撰写CHI论文--第二版
CHI '18· 用户研究方法(访谈、调查、观察) +1
- 60%
人机交互的实证研究方法
CHI '18· 用户研究方法(访谈、调查、观察) +1
- 60%
众包与实验室风格的社会可接受性研究?考察头戴式显示器的空间用户交互的社会可接受性
CHI '18· 用户研究方法(访谈、调查、观察) +1
- 60%
人机交互简介
CHI '18· 用户研究方法(访谈、调查、观察) +1
- 60%
展开:交互式鱼形拉直
CHI '20· 数据物理化(Data Physicalization) +1
- 60%
避开图灵陷阱:通过从代码的目的开始学习对话编程
CHI '21· 编程教育与计算思维 +1
- 60%
如何在VR中评估对象选择和操作?来自20年研究的指南
CHI '21· 沉浸感与临场感研究 +1
基于研究子主题与职业分类的 Jaccard 相似度(≥60%)
快捷操作
广告推荐
学习 AI 编程到 CodeNow
open_in_new打开DOI链接
DOI: https://doi.org/10.1145/3472749.3474819
一眼看懂
fact_check论文快照
dataset
来源
UIST
calendar_month
年份
2021
emoji_events
奖项
最佳论文
group
作者
1 位作者
sell
研究子方向
编程教育与计算思维、原型设计与用户测试
work
职业/产业
大学教授与研究人员、HCI 研究员
article
内容状态
已索引正文
hub
相关论文
10 篇相关论文