没有合适的资源?快使用搜索试试~ 我知道了~
软件X 18(2022)101079原始软件出版物Drop Project:一个自动评估编程作业的工具Bruno Pereira CiprianoNoun,Nuno Fachada,Pedro Alves葡萄牙里斯本市Campo Grande,376,ar t i cl e i nf o文章历史记录:2021年7月24日收到收到修订版,2022年3月10日接受,2022年保留字:计算机科学教育编程教育单元测试a b st ra ct自动评估工具(AAT)是用于教学环境中的软件系统,用于自动评估学生执行的计算机程序。这些工具可以用来激发计算机科学专业的学生对编程课程的兴趣,通过提供对他们工作的快速反馈和突出他们的错误。尽管有大量这样的工具,但它们中的大多数都是为特定课程开发的,并不是生产就绪的。另一些缺乏某些教学目标所需的高级功能(例如Git集成)和/或不够灵活,无法与具有不同计算机素养水平的学生(例如一年级和二年级学生)一起使用。在本文中,我们介绍了Drop Project(DP),这是一个建立在Maven构建自动化软件之上的自动化评估工具。自2018年以来,我们一直在教学活动中使用DP,在项目,课堂练习,测试和家庭作业之间收到了超过五万份提交。该工具的自动反馈使我们能够提高难度课程的项目水平,而评分过程已变得更加有效和不同的教师之间的一致性。DP是一个经过广泛测试的生产就绪工具。该软件©2022作者(S)。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前代码版本v0.9.4用于此代码版本的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX-D-21-00136法律代码许可证Apache许可证2.0使用Git的代码版本控制系统使用的软件代码语言、工具和服务Java、Kotlin、Maven、Spring、MySQL编译要求、操作环境依赖性JDK 11或更新版本如果可用,链接到开发人员文档/手册https://drop-project-edu.github.io/drop-project/问题支持电子邮件dropproject@ulusofona.pt软件元数据当前软件版本v0.9.4此版本可执行文件的永久链接https://github.com/drop-project-edu/drop-project/releases/tag/v0.9.4法律软件许可证Apache许可证2.0计算平台/操作系统Linux,Microsoft Windows和macOS安装要求依赖项JDK 11或更高版本如果可用,请链接到用户手册-如果正式出版,请包括参考参考文献列表中的出版物https://drop-project-edu.github.io/drop-project/wiki/问题支持电子邮件dropproject@ulusofona.pt*通讯作者。电子邮件地址:bcipriano@ulusofona.pt(Bruno PereiraCipriano).https://doi.org/10.1016/j.softx.2022.1010791. 动机和意义在本文中,我们提出了下降项目(DP),自动评估工具(AAT),解决了一些问题,发现2352-7110/©2022作者。 由Elsevier B.V.出版。这是一篇开放获取的文章,使用CC BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softxBruno Pereira Cipriano、Nuno Fachada和Pedro Alves软件X 18(2022)1010792在现有的系统中,学生可以提交项目并获得有关其质量的详细反馈。我们首先在第1.1节中回顾了现有工具,并在此讨论的基础上,在第1.2节中详细阐述了我们提出DP作为AAT领域有效替代方案的动机。第2节详细介绍了该软件,第3节提供了一些示例,第4节重点介绍了该工具DP对我们的教学实践的影响在第5节中讨论。第6节结束本文,提出一些结论。1.1. 背景AAT是一种教育软件系统,可以自动评估(或评价)学生开发的计算机程序。AAT至少从1960年开始就存在了[1]。这些工具允许学生检查他们的代码解决方案是否满足任务的这通常是通过在受限环境中自动编译和执行学生代码,并通过输出匹配、单元测试或其他技术验证其正确性来实现的根据工具的不同,学生可能会也可能不会收到关于他们提交任务失败的丰富反馈。通过提供快速反馈和突出错误,这些工具可以用来促进计算机科学专业的学生最后,这些工具中的大多数会自动对学生的解决方案进行评分。AAT的使用在计算机科学课程中很常见[5],并且有各种商业和学术系统。然而,其中许多是封闭源代码和/或未打包的以生产准备的方式,使其在其他机构的采用不切实际。这一点在一定程度上得到了先前研究的证实,该研究表明,其中一些AAT是在作为论文的一部分或用于特定课程[3]。 他们的成就足以研究某个研究问题或支持但一般不适合广泛部署。然而,有一些工具可以部分克服这些问题,在尝试采用AAT时应加以考虑。第一个例子是repl.it,这是一个专有的在线工具,教师可以在其中创建作业,这些作业可以通过单元测试或输入/输出匹配进行评估,这取决于编程语言[6]。学生使用基于Web的IDE与此平台进行交互。一些大学使用开源系统,这些系统最初是为了举办编程竞赛而开发的。这是一个典型的例子[7,8]。学生通过上传代码文件与Mooshak进行交互,然后使用输入/输出匹配进行测试。Mooshak是面向验证可以用单个源文件解决的任务,因此更适合简单的练习。Web-CAT [9]是一个开源的自动评分系统,解决方案可以通过浏览器上传或使用NetBeans IDE的插件提交它能够评估学生创建分配意味着使用Web表单手动上传单元测试Web-CAT2然而,应当指出,WAR文件最近一次更新是在2008年。GitHub的1 WAR文件-2 https://Web-CAT.org/projects/Web-CAT/InstallWebCat.html网站。repositories3包含在该日期之后的提交,因此WAR文件似乎没有最新的更改。另一个相关的工具是check50 [10],一个开源的命令行工具,用于使用自定义语言编写的测试来评估学生代码的正确性。同一作者开发了一组单独的配套工具,用于检查代码风格指南的遵守情况,执行实际提交和剽窃检测。Canary Framework是一套基于真实工作场所工具的六个独立程序,如GitHub,Jenkins,Checkstyle和Jacoco [11]。像Web-CAT一样,Canary能够测量学生测试代码的覆盖率。Canary框架只支持Git提 交 , 这 可 能 是 一 年 级 学 生 的 一 个 限 制 因 素 。 尽 管 CanaryFrameworkavailable. 4最后,一些AAT与学习管理系统(如Moodle)集成在一起。一个例子是CodeRunner,它允许学生直接从浏览器编写和提交代码。该工具的一个显著特点是它能够评估OpenGL代码[14]。1.2. 动机DP自2018年以来在Lusófona大学的计算工程学士学位5(BSc)中投入生产使用第一个是增长年复一年,入学学生的人数不断增加,这导致评分过程越来越困难,越来越耗时。尤其难以确保所有学生的项目都受到不同教师的公平和同等评价。因此,我们决定使用、调整或实施这样一个系统。提交的灵活性是一个重要的软件选择标准,即,理想情况下,该工具应该接受初学者友好的Web上传提交和通过Git存储库提交不幸的是,当时AAT并没有提供一个具有这种灵活性的免费开源、生产就绪的解决方案,这促使了DP的最初开发。DP基于大多数持续集成服务器的基本原理和技术它依赖于Maven [15],这是在Java虚拟机(JVM)上运行的语言(如Java,Kotlin或Scala)最流行的构建自动化工具。在DP中,赋值必须符合Maven标准格式。因此,它们很容易在几门课程中共享和重复使用,消除了AAT中的一个常见问题:缺乏统一的格式或结构,便于作业和提交的可移植性(例如,教师和学校之间的分配)。在DP中,反馈基于多种类型的验证。举例来说:单元测试,用于验证功能需求。代码质量,例如,检查所有变量是否使用预期的大小写,以及代码是否遵守缩进标准。执行时间和内存使用情况,对于计算效率相关的课程非常有用有了这个工具,学生可以完全自主地检查他们的工作是否满足为作业定义的要求。这使他们有机会在截止日期前改进他们的工作,而不是更传统的方法,学生只会在工作完成后收到反馈,通常以成绩的形式。3 https://github.com/Web-CAT网站。4 https://sos-cer.github.io/projects/auto-grading网站。5 https://www.ulusofona.pt/en/undergraduate/computing-engineering网站。···Bruno Pereira Cipriano、Nuno Fachada和Pedro Alves软件X 18(2022)1010793Fig. 1. 作业文件夹结构。2. 软件描述2.1. 提交的材料DP中最重要的两个概念是作业和提交。这些问题是由教师创建的,代表一个问题(例如,(例如,练习、项目等)由学生来解决。作业包含学生必须遵循的一组指令,以及评估学生作业所需的任何代码或配置,例如单元测试。提交任务由学生根据作业指导书执行,主要目标是通过所有单元测试。2.2. 工作流教师将作业创建为标准的Maven项目,如图所示。1.一、xml文件定义了项目对象模型,它包含了关于项目的信息,以及Maven在构建过程中使用的任何配置细节。 这包括来自第三方库的依赖项和项目的构建生命周期。 在最简单的形式中,构建生命周期获取依赖项,编译和打包项目。尽管如此,根据pom.xml文件中配置的插件,构建周期可以执行数十项其他任务,例如检查是否符合编码指南,单元测试,集成测试,计算质量指标,确定测试覆盖率,部署到云等等。 某些插件需要额外的配置文件。例如,Checkstyle [17]插件-例如,它可以检查 所 有 变 量 名 是 否 至 少 有 3 个 字 符 长 - 需 要checkstyle.xml文件。 作业必须至少包括/src/test文件夹中的一个JUnit [18]测试类和一个包含引用实现的Main类,并且必须通过所有测试。这很重要,因为它降低了测试用例中错误的可能性,错误发生的频率比预期的要高[5]。数据库存储在私有Git存储库中,DP必须使用存储库提供商提供的标准访问密钥连接到该存储库。通过一个简单的刷新按钮,可以在DP中轻松更新从教师和学生的角度来看,工作流程的视频演示可在https://www.example.com上www.youtube.com/watch?v=65IwIBuMDlE。2.3. 软件构架该应用程序是在Kotlin中开发的,并使用Spring Boot框架[19]。该框架处理应用程序的多个方面,如请求调度、身份验证、表单验证、HTML渲染、错误处理、异步执行和集成测试。DP 的 体 系 结 构 , 在 图 。 2 、 基 于 MVC ( Model ViewController)设计模式并与Spring Boot集成学生和教师通过Web应用程序与系统进行交互。HTTP(S)请求由一组控制器类和相应的方法处理。例如,转让-控制器管理分配的创建和编辑。服务使用自动注入的Repository类,DLE模仿数据库表的所有数据库操作和模型类(即,对于每个表 , 存 在 对 应 的 模 型 类 ) 。 服 务 的 相 关 示 例 是AssignmentValidator,其检查分配的一致性和校正(例如,参 考 实现 是 否 通 过 了作 业 的 测 试 ? ) ,以 及GitClient 和ZipSer-vice,分别支持Git和Upload提交方法。JUnitResultsParser处理学生测试覆盖率结果的解析,JUnitResultsParser管理每个提交的JUnit测试结果的解析。有些服务直接与文件系统交互,例如MavenResultsParser和JUnitResultsParser,它们读取由MavenResultsker类生成的文件。后者与Maven Repliker开源库交互[20],允许编程执行Maven构建。这个库作为一个服务运行,如图所示。2、是核心部件DP如上所述,模型组件模仿数据库并表示领域概念,如作业,提交和作者(即学生或教师)。数据持久化是通过Java Persistence API(JPA)实现的。图3显示了DP之后的评估管道。Maven在其自己的JVM中执行,并由在Java API级别(例如,检查未授权的文件访问或系统调用)。这种沙箱的优点是将学生的代码与教师的代码隔离开来此外,DP提供了一个Web界面,在那里(1)学生可以通过上传ZIP文件或连接到Git仓库,(2)学生可以看到相应的构建报告,如图所示。4(a)和(3)教师可以通过连接到包含Maven“master "项目的Git存储库来创建和配置作业。教师还可以访问几份报告,如给定作业的提交情况, 给定组的提交历史DP2.4. 软件功能DP为教师和学生提供以下功能:标准分配格式(Standard assignment format)是带有Maven项目的Git存储库,遵循标准(即,不特定于DP)配置。个人和团体提交除了标准的个人提交外,DP还支持团体提交。编程语言Java和Kotlin是开箱即用的。由于Maven运行在JVM上,因此与其他JVM语言(如Clojure和Scala)的集成是微不足道的。冷静期教师可以在提交之间定义一个可选的等待期,以尽量减少DP支持(可选)每个作业的访问控制列表,以确保只有授权的学生才能访问特定的作业。Bruno Pereira Cipriano、Nuno Fachada和Pedro Alves软件X 18(2022)1010794图二、 DP的 高 层 架 构 , 基 于 M V C 模 式 , 并 与 S p r i n g B o o t 集 成 。只显示最相关的类图三. DP的评估管道。学生提交的文件与作业的文件合并,然后由构建管道进行处理。最后生成评估报告DP支持Git的多种提交方式(例如, GitHub)和ZIP文件提交,允许教师根据学生的经验水平调整作业提交程序公共测试用于评估提交的单元测试,为学生提供完整的反馈。注意,只有反馈是公开的,即,测试代码本身是不公开的。私人/隐藏测试用于评估提交的单元测试,这些测试不向学生提供反馈或部分反馈学生提交超时检测DP能够在学生的提交执行时间过长时检测并中止评估过程,这允许中断具有无限循环或未优化的解决方案的解决方案。多种测试方法教师可以使用JUnit中所有可用的策略来定义作业测试,例如单元测试、输入/输出匹配测试等。由于测试是通过代码实现的,因此教师可以完全控制给学生的反馈水平。代码风格评估DP能够使用教师定义的风格规则检查学生的代码。样式验证还可以配置为禁止某些关键字并对学生的代码应用限制代码覆盖率评估DP可以根据各个代码的覆盖率来评估学生执行时间DP测量提交运行所花费的时间量,从而允许代码效率评估。Bruno Pereira Cipriano、Nuno Fachada和Pedro Alves软件X 18(2022)1010795Submission signaling(提交信号)发送“有趣”提交信号的能力。例如,报告未通过相同测试的组或通过大多数测试的组,提交的数量相对较少,便于发现欺诈。排行榜教师可以配置一个排行榜,其中列出学生的项目和各自的结果。DP支持三种类型的排行榜,它们在项目排序方面有所不同:通过的公共测试数量,测试覆盖率和执行时间。测试矩阵DP显示了一个矩阵/表格,教师可以检查哪些学生通过了每个单元测试,无论是公共的还是私人的。例如,这对于检测太难的测试或由于可能不正确而应该检查的测试很有用。提交下载教师可以下载学生提交的标准Maven格式的任务。然后只需单击一下就可以将提交导入到任何IDE中,从而可以轻松调试学生数据导出器DP可以将学生的成绩导出作业输出文件和提交文件可以被导出,允许它们被移植到其他DP安装或教师自己的计算机上进行进一步分析。这对于DP的开发人员测试他们对工具的添加也很有用将提交标记为最终教师可以标记学生提交的哪些这给了一些额外的灵活性,在决定哪些提交将被评分,因为最后提交可能不是最好的一个。重建提交DP能够重建提交考虑到最新的测试代码。当学生上次提交作业后发现并修复作业中的错误时,这对于重建学生的提交很有用3. 说明性实例图4中显示了几个DP报告。图4(a)从学生的角度呈现了提交报告在这个例子中,提交是由Checkstyle验证的,所有学生自己的测试都通过了,但24个教师测试中只有20个请注意,这24个测试是公开的。图4(b)还示出了提交报告,这次是从教师的角度。它包含比学生版本更多的信息学生和教师还可以访问详细的JUnit报告,其中包含任何潜在故障的原因(图1)。4(c))。教师在定义作业的测试时可以充分利用JUnit的API来控制显示的信息。反馈的范围可以从标准的JUnit输出,例如:as注意输入文件中的重复条目清单1显示了一个示例JUnit测试,它与我们定义的验证学生提交的测试类似6 CSV(逗号分隔值)文件是纯文本文件,其中包含由逗号分隔的信息,并且在大多数电子表格应用程序中可以轻松导入。Java7和Kotlin8的介绍性编程练习的示例作业可从DP的GitHub帐户获得4. 部署DP的GitHub存储库包含一个“Deploy to Heroku”按钮,它基于master分支构建一个WAR文件,并将其部署到Heroku,一个云提供商。9、这个过程的结果在包含内存数据库的可执行演示中,伪造/测试数据(教师、学生和提交),从而允许以最少的时间投入进行系统的实验。Heroku提供免费帐户,可用于执行此实验。该仓库还包含一个Docker镜像,可用于在本地运行演示或在服务器上安装DP的生产就绪版本。5. 影响在2018/19年版的算法和数据结构中,进行了一项匿名学生调查,以了解学生对使用该工具的看法,考虑到可用性,动机和公平性等方面。该调查是可选的,由22名学生在主项目结束后完成 已经被评分了。学生被要求使用5分制的李克特量表(1=非常不同意,5=非常同意)说明他们对表1所列陈述的同意程度。 总的来说,大多数学生同意这些陈述,表明DP对他们的学习体验有积极的影响。这在最后一个问题中,这一点尤其明显,大多数学生都非常同意再次使用Drop ProjectDP目前被用于上述理学士的四个课程单元:编程基础(第一年,第一学期),算法和数据结构(第一年,第二学期),编程语言II(第二年,第一学期)和移动计算(第三年,第二学期)。DP是前三门课程的核心教学工具,这三门课程都建立在DP的基础上它已成功地用于支持多种类型的教学活动,如课堂练习,家庭作业,短期课堂评估,项目(通常跨越数周或数月的大型评估)和项目防御(学生必须显示掌握自己项目代码的小型评估例如,在2020/21版的算法和数据结构中, 设计了40个任务。表2列出了过去两个学年在课程主要作业/项目背景下提交的统计资料。这些数字清楚地表明了DP对这些课程的影响,从而对我们的教学和评估实践产生了影响。该工具这使我们能够逐步增加课程项目的难度此外,不同教师之间的评分过程变得更加有效和一致。另外,学生和DP之间的每一次互动都有完整的记录。因此,DP的提交数据库包含可以挖掘的数据,以研究学生使用该系统的方式。这些数据有可能被用于多种研究途径,例如识别教师测试中的错误[247 https://github.com/drop-project-edu/sampleJavaAssignment网站。8 https://github.com/drop-project-edu/sampleKotlinAssignment网站。9 https://www.heroku.com网站。Bruno Pereira Cipriano、Nuno Fachada和Pedro Alves软件X 18(2022)1010796见图4。 DP的几个示例报告。左边是从学生的角度看的两份报告教师的观点清单1:一个学生实现棋盘游戏的项目的JUnit测试示例。仅当相应的断言失败时才显示消息。@测试public static voidtestMovePlayer001(){GameManager=new GameManager(“game-001.txt”);assertEquals(“函数getCreatures()返回了一个大小不正确的列表”,2,manager.getCreatures().size()); assertFalse(“无法将生物移动到棋盘外部!“,manager.movePlayer(0,0,-1,0));assertTrue(“海龟应该能够从0,0移动到0,1”,manager.movePlayer(0,0,0,1));}表1使用Likert量表(1-强烈反对,5-强烈同意)评估学生对Drop Project的体验的调查结果评价的报表平均响应1. 我对自己的编程能力更有信心了3.362. 我觉得评分很公平3.643. 我3.774. 它增加了我对编程的喜爱4.095. 我期待着再次使用这个工具4.826. 结论在本文中,我们介绍了DP,一个开源的AAT具有广泛的功能,可用于支持不同复杂度的编程课程和学生不同的背景。DP的使用使我们能够减少评估工作量,提高评分的一致性和增加项目在未来,我们的目标是通过支持除Maven之外的其他构建系统来增加该工具可以评估的项目范围,从而扩展可以与DP一起使用的语言数量。Bruno Pereira Cipriano、Nuno Fachada和Pedro Alves软件X 18(2022)1010797表2围绕DP设计的每门课程的项目的分配和提交指标,在“影响”部分中描述,考虑到最近两个学年。目前的课程是编程基础(PF),算法和数据结构(ADS)和编程语言II(PL2)。只有课程的主要专题/作业的提交材料学年公制课程单位PF ADS PL22019/20学年学生115 72 71意见书4188 1901 1544测试. 28 - 13 24冷却时间(分钟)5 45 602020/21学年学生112 108 88来文3810 2935 2705试验28 - 24 25冷却时间(分钟)0 30 30竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作确认这项研究得到了科学基金会的资助e a葡萄牙Tecnologia,批准号:UIDB/04111/2020(COPELABS)。引用[1] Douce C,Livingstone D,Orwell J.,《基于测试的自动编程评估:一个综述 》 。 J Educ Resour Comput 2005;5 ( 3 ) : 4-es. 得 双 曲 正 切 值 .doi.org/10.1145/1163405.1163409 , URL http://portal.acm.org/citation.cfm?doid=1163405.1163409。[2] 放大图片作者:J.为电子评估提供通用和灵活的网络服务。ACM SIGCSE Bull2008;40:5.[3] Ihantola P,Ahoniemi T,Karavirta V,Seppälä O.对最近的编程作业自动评估系统的审查。 在:第10届科利呼叫计算教育研究国际会议的会议记录-科利呼 叫 '10 。Berlin , Germany : ACMPress;2010 , p. 86-93.http://dx.doi.org/10.1145/1930464.1930480,URLhttp://portal.acm.org/citation.cfm?doid=1930464.1930480。[4] 莱赫托宁湖javala-上瘾的Java编程语言的电子学习。在:科林kolistelut/Koli呼叫第五届年度波罗的海会议计算机科学教育的会议记录。芬兰:Koli; 2005,p.41比8[5] Insa D,Silva J. Semi-automatic assessment of unrestricted Java code:一个库、一个DSL和一个评估考试和练习的工作台。2015年ACM计算机科学教育创新与技术会议论文集。2015年,p.39比44[6] Škorić I,Orehovački T,Ivašić-Kos M.探索在入门编程课程中接受基于Web的编 码工具: 试点 研究 。在: 人类互 动和新 兴技术国 际会议。 Springer;2020,p. 42比8[7] Leal JP,Silva F. Mooshak:一个基于Web的多站点编程竞赛系统。Softw-PractExp 2003;33(6):567-81. http://dx.doi.org/10.1002/spe.522.[8]Guerreiro P,Georgouli K.在人口众多的CS1和CS2课程中打击匿名。ACMSIGCSE Bull 2006;38(3):5.[9]Edwards SH,Perez-Quinones MA. Web-CAT:自动评分编程作业。SIGCSEBull 2008;40(3):328. http://dx.doi.org/10的网站。1145/1597849.1384371。[10]Sharp C,van Assema J,Yu B,Zidane K,Malan DJ.一个基于API的开源2020年ACM计算机科学教育创新与技术会议论文集。 New York, NY,USA : AssociationforComputingMachinery;2020 , p.487-92.http://dx.doi.org/10.1145/3341525.3387417网站。[11]Heckman S,King J.使用真实工具开发软件工程技能以实现自动评分。第49届ACM计算机科学教育技术研讨会论文集。巴尔的摩,马里兰州,美国:ACM出版社; 2018年,第794-9页。http://dx.doi.org/10.1145/3159450.3159595,URL http://dl.acm.org/citation.cfm? doid=3159450.3159595。[12]Martín-Blas T,Serrano-Fernández A.新技术在学习过程中的作用:Moodle作为物理教学工具。Comput Educ2009;52(1):35-44.[13]Lobb R , Harlow J. Coderunner : 评 估 计 算 机 编 程 技 能 的 工 具 。 ACMInroads2016;7(1):47-51.[14]Wünsche BC,Chen Z,Shaw L,Suselo T,Leung K-C,Dimalen D,MarkWvd,Luxton-Reilly A,Lobb R. OpenGL计算机图形作业的自动评估。第23届ACM计算机科学教育创新与技术年会论文集。 2018年,第81比6[15] Apache 软 件 基 金 会 。 Apache Maven 项 目 。 2021年 , https : //maven.apache.org/。[在线;最后访问2021年2月17日[16]Edwards SH,Börstler J,Cassel LN,Hall MS,Hollingsworth J.开发共享编程任务的通用格式。ACM SIGCSE Bull2008;40(4):167-82.[17] Ivanov R,et al. Checkstyle. 2021年,https://checkstyle.org/。[在线;最后访问2021年2月17日]。[18]加西亚湾使用JUnit 5掌握软件测试:综合指南开发高质量的 Java应用程序。Packt Publishing Ltd; 2017.[19] 春天的团队短跑靴。2021年,https://spring.io/projects/spring-boot。[在线;最后访问2021年2月17日[20]ScholteR,etal.ApacheMavenMackerker.2022,https://maven.apache.org/shared/maven-invoker/. [在线;最后访问日期:2022年3月9日]。[21]克拉茨克河像狐狸一样聪明:聪明的学生如何欺骗愚蠢的自动编程作业评估系统。In:Lane HC,Zvacek S,Uhomoibhi J,editors. 第11届计算机支持教育 国 际 会 议 论 文 集 , 第 2 卷 。 SciTePress;2019 , p.15-26.http://dx.doi.org/10.5220/0007424800150026网站。[22]Baniassad E,Zamarno L,Hall B,Holmes R.停止(autograder)疯狂:回归惩罚,以阻止autograder过度依赖。第52届ACM计算机科学教育技术研讨会论文集。2021,p. 1062-8[23]伯蒂格角介绍Docker用于可重复研究。操作系统修订版2015;49(1):71-9。[24]帕伊奇·柳博维奇使用从超细粒度存储库中提取特征的计算机编程中的剽窃检测。IEEE Access2020;8:96505-14.[25][10]张晓刚,张晓刚.使用编程练习数据分析学生作业模式。第46届ACM计算机科学教育技术研讨会论文集。New York,NY,USA:Association forComputingMachinery;2015,p.18-23.http://dx.doi.org/10.1145/2676723.2677297网站。[26][10]李文辉,李文辉. 交互式编程作业中用于实时分析的教师仪表板。第七届国际学习分析知识会议论文集&。2017年,p.272-9
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 最优条件下三次B样条小波边缘检测算子研究
- 深入解析:wav文件格式结构
- JIRA系统配置指南:代理与SSL设置
- 入门必备:电阻电容识别全解析
- U盘制作启动盘:详细教程解决无光驱装系统难题
- Eclipse快捷键大全:提升开发效率的必备秘籍
- C++ Primer Plus中文版:深入学习C++编程必备
- Eclipse常用快捷键汇总与操作指南
- JavaScript作用域解析与面向对象基础
- 软通动力Java笔试题解析
- 自定义标签配置与使用指南
- Android Intent深度解析:组件通信与广播机制
- 增强MyEclipse代码提示功能设置教程
- x86下VMware环境中Openwrt编译与LuCI集成指南
- S3C2440A嵌入式终端电源管理系统设计探讨
- Intel DTCP-IP技术在数字家庭中的内容保护
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功