中文

基于模块的机器人程序中的常见模式

软件工程 2022-08-30 v1

摘要

可编程机器人富有吸引力且好玩,能与现实世界交互,因此非常适合向年轻学习者介绍编程。入门级机器人编程语言常扩展现有的基于模块的语言如 Scratch。尽管使用此类语言教授编程已十分成熟,机器人程序中对现实世界的交互带来了特定挑战,学习者和教育者可能需要协助与反馈。提供此类反馈的一种实用方法是识别并指出代码中指示优良或不良解决方案的模式。尽管此类模式已为常规基于模块的程序所定义,机器人特定的编程方面迄今尚未被考虑。因此,本文旨在为基于 Scratch 的 mBlock 编程语言识别机器人编程特有模式,该语言用于流行的 mBot 和 Codey Rocky 机器人。我们识别出:(1) 26 个缺陷模式,指示错误代码;(2) 三种代码异味,指示可能运行但编写方式令人困惑或难以理解的代码;(3) 18 种代码清香,指示代码中可能优良之处。我们扩展 LitterBox 分析框架以自动识别 mBlock 程序中的这些模式。在包含 3,540 个 mBlock 程序的数据集上评估,我们发现共计 6,129 个缺陷模式实例、592 个代码异味和 14,495 个代码清香。这展示了我们的方法为学习者和教育者的 mBlock 机器人程序提供反馈与协助的潜力。

关键词

引用

@article{arxiv.2208.13451,
  title  = {Common Patterns in Block-Based Robot Programs},
  author = {Florian Obermüller and Robert Pernerstorfer and Lisa Bailey and Ute Heuer and Gordon Fraser},
  journal= {arXiv preprint arXiv:2208.13451},
  year   = {2022}
}

备注

To be published in the Proceedings of the 17th Workshop in Primary and Secondary Computing Education (WIPSCE'22)