编程作业自动评分:工具和实现的审查外文翻译资料

 2023-03-14 18:44:16

编程作业自动评分:工具和实现的审查

摘 要

编程作业的自动评分是学术研究中的一个重要课题。自动评分系统旨在提高学生反馈水平,优化教师时间。一些研究报告了证明这一过程的软件工具的发展。与此同时,这也有助于快速和良好地了解它们的关键特征。这篇论文回顾了为编程作业的自动评分的一套充足的工具。他们被分为两种,分别是最重要的成熟工具,这些工具具有显著的功能;还有那些最近才建成的,带有新功能的工具。审查包括关键特性的定义和描述,例如支持的语言、使用的技术、基础设施等。这两种工具允许进行时间比较分析。这一分析显示了该研究领域的不错的改进,包括在安全性、更多的语言支持、剽窃检测等方面的改进。另一方面,缺乏评分模型被认为是审查工具中的一个重要差距。因此,对编程作业评分的评价指标的界定,是获得模型的第一步。并将最终提出该领域研究的新思路。

关键词: 自动评分(Automatic Grading), 编程作业(Programming Assignments), 评估(Assessment).

  1. 介绍

关于编程自动分级的第一个参考文献来自于1965年的[1]。它的出现已经将近50年了,需要编程技能的学生数量也在增加。这篇文献不仅仅关于计算机科学或信息技术学位,还与拥有许多工程学学位的学生有关。如今,几乎每个工程课程都至少包括一门基本的编程课程。

另一个需要考虑的问题是让学生掌握编程技能的困难性。改进这一问题的主要途径是增加已解决的编程练习。这必须伴随着一个良好的反馈。反馈将由讲师或助教(教员)提供。考虑到工程专业学生的数量和一组好的编程作业,手工评估变成了一项困难甚至不可能完成的任务。教师面临的问题是过度的、可能是重复的工作。

一些研究报告了自动化该过程的软件工具的开发。这些工具将提供反馈,以量化学生的学习,并将解放教师们去做更有成效的工作,例如给予集中的帮助。几乎每个工具都以这些为目标,并尝试额外的基于解决新差距提供的新特性。这些新的差距是指剽窃检测、安全测试环境、受控资源使用评估标准的多样性[2]和教学模型的定义[3]。

在这个领域已经有了一个很好的研究,但现在的问题是有很多工具。如果有一个机构需要实现这种类型的工具或想要开发一个新的工具,就有必要快速和良好地了解技术的现状。对工具的回顾将有助于找到已经构建的工具的重要特性。此外,这类工作将提供新的想法来改进或创造一个可以广泛使用的新的工具。

本文回顾了一系列的成熟的和最新的工具,以自动评估编程任务获得和显示关键信息。后文包括对相关工作的修订,以获得有关该研究领域的演变的信息。接下来,将描述一组重要的工具,并考虑到它们的关键特性。将进行比较和分析来确定这一领域的现状。并且一种对编程作业评分指标的界定方法将被提出。最后将作出总结和对行业的未来进行探讨。

  1. 相关工作

自动评估编程练习的工具第一次出现以来,已经有许多相关的工具被创造出来。以前已经做过一个工具的综述,我们也有必要知道通过这些工具可以得到的主要结论是什么。了解实际的工具是否已经填补了所有的空白。

我们要从中领悟这些工具的发展,有必要从时间的角度来看。Douce等人在[4]中很好且快速地描述这些工具直到2005年以前的演变。它定义了第三代工具。第一代指的是需要操作系统和编程语言处理,只考虑了一个正确或错误的答案的时代。第二代指的是使用操作系统附带的工具来构建新的工具的时代。C语言和Java语言在开发被广泛地中使用。第三代大概就是这项工作完成的时候。这些工具的主要改进是使用基于web技术的技术,这份报告也指明了越来越多的编程语言被支持在这一类工具中使用。

Douce等人在[4]中给出了自动编程作业评估的下一步步骤。在Ihantola等人的[5]研究中涵盖了自2005年以来开发的工具。将它们作对比我们可以发现一些问题。这些问题可以分为技术问题、教学问题和系统采用问题。

关于技术问题,Douce等人在[4]中指出了的一些研究路径,包括GUI(图形用户界面)程序的分级;元测试指应用测试;使用和配置安全系统来测试编程任务,它的目的是保护主机系统不受到有意或无意的恶意代码攻击;集成系统以避免让用户不知所措,通常是将工具与LMS(学习管理系统)集成,可以使用web服务集成;以及支持web编程评分,这是因为在大学里教授web编程,然后评分是十分必要的。

Ihantola 等人在[5]中和Romli等人在[6]中都报告了与LMS集成和主机系统安全方面的改进。而诸如GUI程序的分级、元测试和对web编程的支持等问题仍然亟待研究。

关于教学问题,上述这些报告都缺乏一个普适的评分模式。每个机构,甚至每个老师都有自己的方法。所以一个参考模型可能会有帮助。在2010年的评论中,正确性被认为是为评分的主要指标。有些作品也开始使用静态分析和动态分析,但一般来说,每个作品都有自己的评分指标集。因此,当时还没有一种通用的方法;也许建立模型的第一步就是界定一个度量标准。

关于反馈,有一些含义:快速反馈可能会触发试错实践,自动反馈有多有用,足够的反馈数量是多少。一些工程试图提供灵活的反馈,并允许手动和自动的解决方案[7]。

一些工具已经考虑到了抄袭检测器的实现。通常它们是工具中的一个附加模块,但不会影响评估过程。但很明显剽窃检测将意味着一种制裁。

关于系统的采用,[5]和[6]的工作都表明,已经建立了大量的工具,但它们并没有得到广泛的使用。这是因为每个工具都已经考虑到了特定的需求。提高它的使用率一个重要方法是开发开源项目。一些项目已经做到了这一点,它的接受度已经增长了[7],但尚未成为一个明确被广泛使用的工具。在[6]中提出了建立一个灵活和可参数化的系统,这似乎是能够实现目标的不错的途径。

  1. 工具综述

构建或使用这些工具的共同目标是提高学生的编程技能,特别是对于初学者来说。这些技能将通过解决许多编程练习来提高。学生们只要得到好的反馈,就能尽快解决问题。这将帮助他们理解自己的错误,并提高他们的技能。此外,学生得到了一个真正的好处,即获得一个公平的成绩,而不依赖于学术人员的个人考虑[2]。

考虑到一门普通工程课的学生数量和大量的编程练习,手工评分是不可行的。那么这个想法也不会让学术人员难以接受,所以另一个目标是优化学术人员的时间。节省的时间可以用于更有成效的过程,比如规划和设计讲座,或者只是在集中的问题上给予更多的个人关注。

随着这一领域研究的增加,人们提出了新的目标。因此,在[8]、[9]、[10]和[11]中,一个额外的目标是与LMS进行集成,以提高编程分配评估过程的性能。在[12]中,建议使用服务来实现这一目标。[13]的一个目标是收集详细的信息,深入研究学生的技能提高过程。最近,Allevato和Edwars[14]的目标是吸引使用智能手机和移动应用程序流行的学生的兴趣。

    1. 已分析过的关键特征

考虑到这些特性在部署情况中很重要,已经定义以下关键特性:支持编程语言。当考虑到要快速实现时,它是一个非常重要的特性。它可以定义一个工具的使用与否。用于开发该工具的编程语言。当机构中使用的软件有一系列政策支持时,这个特性具有很大的相关性。在定制或维护的情况下,选择一个工具将是有价值的。逻辑架构。当考虑修改工具时,它是一个重要的特性。该体系结构将显示模块化、可伸缩性和灵活性级别。它可以显示不同的模块如何工作,以及系统如何与其他系统连接。部署架构。它显示了该工具是如何工作的硬件的。了解一个当前的环境是否会支持一个工具的实现是很有帮助的。在最坏的情况下,它将表明所需的资源,因此将有助于确定实施的成本。工作模式指示工具是否可以单独工作,为了易于使用;或者工具是否可以在当它应该与另一个系统一起工作的时候作为插件工作,例如LMS。评估指标。它显示了该工具如何建立一个等级。它考虑在评分过程中正在考虑哪些指标。甚至,我们是如何计算成绩的。该工具所使用的技术。当考虑用于部署或构建一个新的工具时,它是很有用的。在第一种情况下,它将有助于建立工具和遗留系统之间的兼容性和对未来的维护。在第二种情况下,了解哪些技术(标准、协议、库等)可以在面对一个需求时有所帮助。

    1. 工具

3.2.1 CourseMarker是诺丁汉大学开发的一种工具,以避免教师的特殊标准。主要优点是可伸缩性、可维护性和安全性[2]。支持的评分编程语言是Java和C ,它是使用Java构建的。它有7个子系统:登录,它控制所有的认证过程;提交,它精确地接收不同的提交;课程,它存储有关过程的信息;标记,它负责分级过程,以及提交的文件和标记的存储;审核,它有责任记录所有的行为;还有一个子系统来控制彼此之间的通信。作为建立等级的指标,它考虑排版(缩进、评论等),功能通过测试用例,编程结构的使用,并验证在设计和对象之间的关系。它与诸如子系统之间通信的JavaRMI(远程方法调用)、正则表达式验证结果和DATsys[15]验证对象设计等技术一起工作。额外的重要功能包括:与反馈水平一同工作的能力,子系统之间的编排是由配置文件定义,反馈和分数等级可以定制,有剽窃检测器分级,提交数量和CPU数量是可配置的,最后有出于安全的考虑如检测恶意代码以及在沙盒中执行。

3.2.2 Marmoset它是在马里兰大学建造的。其主要目标是收集有关发展过程的信息,以提高学生的技能[13]。它的主要优点是对学生的进步有一个完整的快照,这样就可以详细分析学生的提升;使用不同类型的测试用例(学生、公开、发布、秘密);以及通过评论线程对代码提供个人支持。最初,该论文报告了用Java、C、Ruby和Caml Objective编写的代码的评分。现在,官方网页http://marmoset.cs.umd.edu/ 显示可以使用所有不同的编程语言。该体系结构包括:一个J2EE(Java企业版)web服务器、一个SQL数据库和一个或多个构建服务器。最后用于安全和单独的的环境中,以防止可能的恶意代码的影响。构建服务器的部署有助于提供可伸缩性和安全性。建立一个评分的指标包括动态分析和静态分析。通过测试用例进行了动态分析。

3.2.3 WebCat其主要特性是可扩展性,因为它具有基于插件的架构和基于学生对自己的代码的评分程度的评分方法[7]。架构设计提供了一组重要的特性:安全性,它通过身份验证、错误或危险的代码检测等手段提供;可移植性,因为它是作为Javaservlet构建的;可扩展性和灵活性,它是架构固有的;也支持手动评分,这是因为学术人员可以检查学生提交的内容,并输入评论、建议和分数修改。它是唯一被wiki官方(http://wiki.web-cat.org/WCWiki/WhatIsWebCat)承认集成了所有这些特性的工具。该工具支持Java、C 、Scheme、Prolog、标准ML和Pascal,它提供了支持任何编程语言的灵活性。分数基于代码正确性(通过多少次测试)、测试完整性(实际执行代码的哪一部分)和测试有效性(测试准确-与分配一致)。此外,插件还可以为评估提供更多的度量标准(例如,静态分析)。其他功能包括:有很多用于Eclipse和VisualStudio .NETIDEs的插件,而且它有一个GNU/GPL许可证。

3.2.4 马格德堡大学的评分工具它有一个非常有趣的目

剩余内容已隐藏,支付完成后下载完整资料


英语原文共 10 页,剩余内容已隐藏,支付完成后下载完整资料


资料编号:[596232],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。