arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2103.08261cs.SE
收藏

基于Scratch的异常检测

Anomaly Detection in Scratch Assignments

Nina Körber

摘要:

对于教师来说,用于调试和评估学生编程作业的自动化工具支持在他们的日常业务中有很大的帮助。对于通常用于向年轻学习者介绍编程的基于块的程序设计语言,存在测试框架和其他软件分析工具,但需要手动工作,例如编写测试套件或正式规范。然而,大多数使用Scratch等语言的教师都没有接受过此类任务的培训或经验。Linter不需要手工操作,但仅限于一般的错误,因此在学生解决方案中错过了潜在的特定于任务的错误。在以前的工作中,我们提出了使用异常检测来自动查找学生编程作业中的特定于项目的错误,而不需要教师方面的任何额外的手工劳动。对典型编程作业的学生解决方案的评估表明,异常检测是一种可靠的方法来定位错误的数据集的学生程序。在本文中,我们通过降低抽象级别来增强我们的初始方法。结果表明,较低的抽象级别可以集中异常检测的相关部分的程序。

英文摘要:

For teachers, automated tool support for debugging and assessing their students' programming assignments is a great help in their everyday business. For block-based programming languages which are commonly used to introduce younger learners to programming, testing frameworks and other software analysis tools exist, but require manual work such as writing test suites or formal specifications. However, most of the teachers using languages like Scratch are not trained for or experienced in this kind of task. Linters do not require manual work but are limited to generic bugs and therefore miss potential task-specific bugs in student solutions. In prior work, we proposed the use of anomaly detection to find project-specific bugs in sets of student programming assignments automatically, without any additional manual labour required from the teachers' side. Evaluation on student solutions for typical programming assignments showed that anomaly detection is a reliable way to locate bugs in a data set of student programs. In this paper, we enhance our initial approach by lowering the abstraction level. The results suggest that the lower abstraction level can focus anomaly detection on the relevant parts of the programs.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑