paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Can guided decomposition help end-users write larger block-based programs? a mobile robot experiment

引导式分解能帮助终端用户编写更大的块基程序吗?一项移动机器人实验
OOPSLA 6(OOPSLA2)2022匹配度 0/10 · 该论文研究面向终端用户的块编程环境与引导式程序分解,属于教育/终端用户编程可用性领域,与静态分析、LLM/Agent、浮点程序分析或贝叶斯程序分析等研究方向没有直接关联。引用 10 inbox
Nico Ritschel, Felipe Fronchetti, Reid Holmes, Ronald Garcia, David C. Shepherd
crossref: 2026-09-10

AI 速览

一句话:提出引导式程序分解的块编程系统,用户实验表明它显著提升终端用户应对大规模任务的成功率。

块编程环境已广泛用于计算机教育,并让机器人、移动应用等领域的终端用户也能编程。然而已有研究多聚焦于单屏内的小程序,而真实程序往往规模庞大,编辑大型块程序很快变得难以驾驭。传统语言特性如函数可支持程序分解,但先前工作与本文作者的观察都表明,终端用户极少使用这些特性,从而产生难以理解的大型单体代码块。本文提出一种块编程系统,为用户提供分层的、领域特定的程序结构,并强制用户据此分解程序,作者称之为“引导式程序分解”。作者通过一项 92 人参与的用户研究,将该方法与支持函数但不强制分解的传统系统进行对比。结果显示:在较小任务上几乎所有用户都能成功完成;但随着任务规模增大,进行了程序分解的用户成功率显著更高;未受引导分解的大多数用户并未分解程序,在大问题上表现不佳。该研究仅覆盖单一领域的有限任务,但表明引导式分解能够惠及终端用户编程。作者认为,虽然不存在通用的分解策略,但其他应用领域也可找到类似的领域特定子层级结构,从而提升终端用户可创建与理解的代码规模。

问题
块编程环境中终端用户很少使用函数等分解机制,导致程序膨胀为难以理解的大型单体代码块,难以支撑真实规模的程序开发。
方法
设计并实现一种块编程系统,为用户提供领域特定的分层程序结构并强制要求按此分解程序,即“引导式程序分解”;与支持函数但不强制分解的传统块编程系统对照。
评估
通过 92 名用户参与的用户研究,比较两种系统在不同规模任务上的完成成功率。结果显示小任务上两者差异不大,而任务规模增大时进行引导式分解的用户成功率显著更高。
原文摘要(Abstract)

Block-based programming environments, already popular in computer science education, have been successfully used to make programming accessible to end-users in domains like robotics, mobile apps, and even DevOps. Most studies of these applications have examined small programs that fit within a single screen, yet real-world programs often grow large, and editing these large block-based programs quickly becomes unwieldy. Traditional programming language features, like functions, allow programmers to decompose their programs. Unfortunately, both previous work, and our own findings, suggest that end-users rarely use these features, resulting in large monolithic code blocks that are hard to understand. In this work, we introduce a block-based system that provides users with a hierarchical, domain-specific program structure and requires them to decompose their programs accordingly. Through a user study with 92 users, we compared this approach, which we call guided program decomposition, to a traditional system that supports functions, but does not require decomposition. We found that while almost all users could successfully complete smaller tasks, those who decomposed their programs were significantly more successful as the tasks grew larger. As expected, most users without guided decomposition did not decompose their programs, resulting in poor performance on larger problems. In comparison, users of guided decomposition performed significantly better on the same tasks. Though this study investigated only a limited selection of tasks in one specific domain, it suggests that guided decomposition can benefit end-user programmers. While no single decomposition strategy fits all domains, we believe that similar domain-specific sub-hierarchies could be found for other application areas, increasing the scale of code end-users can create and understand.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@article{paperbot1418,
  title = {Can guided decomposition help end-users write larger block-based programs? a mobile robot experiment},
  author = {Nico Ritschel and Felipe Fronchetti and Reid Holmes and Ronald Garcia and David C. Shepherd},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {6},
  number = {OOPSLA2},
  year = {2022},
  doi = {10.1145/3563296}
}