在Scratch中查找异常
Finding Anomalies in Scratch Assignments
摘要:
在编程教育中,教师需要通过调查学生编写的代码来监控和评估学生的进度。用传统程序设计语言编写的程序的代码质量可以通过自动化测试、验证工具或链接器进行自动评估。在许多情况下,这些方法依赖于某种形式的手动编写的正式规范来分析给定的程序。然而,编写这样的规范对教师来说很难,因为他们往往没有接受过这项任务的充分培训。此外,缺乏对流行的基于块的介绍性程序设计语言(如Scratch)的自动化工具支持。异常检测是一种自动识别数据集中常见行为偏差的方法,而无需编写规范。在本文中,我们使用异常检测来自动查找课堂环境中Scratch代码的偏差,其中异常可以代表错误代码、替代解决方案或杰出作品。不同的编程任务的解决方案的评估表明,异常检测可以成功地应用于严格规定以及开放式的编程任务。
英文摘要:
In programming education, teachers need to monitor and assess the progress of their students by investigating the code they write. Code quality of programs written in traditional programming languages can be automatically assessed with automated tests, verification tools, or linters. In many cases these approaches rely on some form of manually written formal specification to analyze the given programs. Writing such specifications, however, is hard for teachers, who are often not adequately trained for this task. Furthermore, automated tool support for popular block-based introductory programming languages like Scratch is lacking. Anomaly detection is an approach to automatically identify deviations of common behavior in datasets without any need for writing a specification. In this paper, we use anomaly detection to automatically find deviations of Scratch code in a classroom setting, where anomalies can represent erroneous code, alternative solutions, or distinguished work. Evaluation on solutions of different programming tasks demonstrates that anomaly detection can successfully be applied to tightly specified as well as open-ended programming tasks.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。