由于需要做过程性代码评估,所以首先找了一些代码评估软件。总结如下
CourseMarker
论文:The CourseMarker CBA System: Improvements over Ceilidh
网址:https://coursemarker.software.informer.com
没有公开
Marmoset
网址:http://marmoset.cs.umd.edu/index.shtml
只能下载到源码,没法用
UMD:university of Maryland
GitHub上有一个帮助滑铁卢大学计算机科学学院的同学提交作业的插件,用Python写的,网址:https://github.com/hkpeprah/marmoset
论文:Spacco J , Hovemeyer D , Pugh W , et al. Experiences with marmoset: designing and using an advanced submission and testing system for programming courses[J]. ACM SIGCSE Bulletin, 2006, 38(3):13-17.
A review of static analysis approaches for programming exercises
Webcat
网址:https://web-cat.cs.vt.edu/Web-CAT/WebObjects/Web-CAT.woa
论文:web-cat
http://www.web-cat.org/group/web-cat网站上还有很多其他软件
正在尝试部署:webcat是Java web程序,为找到合适的tomcat版本,已下载了三版tomcat。还在尝试
已正确部署,且开创了课程,并布置了作业,可以支持c++、Java、Python
能正常运行,但是经过测试发现:评估是通过测试样例评估的,无法评估过程性代码。
按说,提交完代码后,应该出现界面,要求提交测试用例,但是没有。
跟sourceforge上的页面内容也不一样,从谷歌搜索都没有搜出使用手册之类的,只有一个2008年的论文(104页的英文论文)可以看,但是界面已经改变很多了。
重新安装后,学生方面,提交代码后可以自动评分了,但还是没有上传测试用例的按钮,并且教师方面没有可以上传示例代码的按钮。
每次删除一个任务都会出现错误。
Virtual Programming Lab是Moodle的一个插件,Moodle是用于制作网络课程或网站的软件包。
网址:https://moodle.org/plugins/mod_vpl
http://vpl.dis.ulpgc.es/ 显示的是errors
https://github.com/jcrodriguez-dis
Grading Tool(Magdeburg University)
不支持Java语言
PMD
网址:http://pmd.github.io/
可以分析原代码,但不能给出评分。找出只声明但没有使用过变量、空catch等。PMD使用手册。
Findbugs
网址:http://findbugs.sourceforge.net
可以分析原代码,但不能给出评分。
Checkstyle
网址:http://checkstyle.sourceforge.net
可以分析原代码,但不能给出评分。
JavaBrat
论文:Automatic Grading of Programming Assignments
不支持静态分析,也就是无法给出过程性得分
Petcha找不到
Jassess
网址:https://github.com/jaibuu/jAssess
论文:Java Programming Assessment Tool for Assignment Module in Moodle E-learning System
RoboLIFT
论文:ROBOLIFT: a vision guided autonomous fork-lift for pallet handling
上述工具来自论文:programming assignments automatic grading: review of tools and implementations
除该论文外,还有论文:towards a systematic review of automated feedback generation for programming exercises(尚未读)。
AutoLEP: 哈工大软件学院,苏小红实验室于2007年01月01日提出,2009年12月31日完成。原理:首先将学生程序和模板程序转换成中间表示形式- - 系统依赖图;然后建立一系列程序标准化规则,并按照该规则对系统依赖图进行语义等价的转换,消除程序表达方式的多样性;最后在语义级别上匹配标准化的学生程序系统依赖图和模板程序系统依赖图,并根据匹配结果给出学生程序的评分。但是目前尚未公开。
AGG 分析抽象语法图
网址:http://www.user.tu-berlin.de/o.runge/agg/down_V21_java8/index.html
已下载,并不能给出代码评分。
安装时出现问题:
解决方法:下载源码,找到AGGAppl.java,但仍然解决不了错误。修改了.bat文件后,安装成功了。研究除如何生成ggx图像,结果发现:与所需要的功能不一样,得出的图应该说是数据依赖图,并不包含结构依赖。
Vs也可以自动生成程序依赖图,但是所谓的程序依赖图如图,每一个节点都可以点开,查看详细内容,可惜vs2017上已经没有了这项功能。2015上也没有,可能是因为我
https://blogs.msdn.microsoft.com/jasonz/2010/02/02/favorite-vs2010-features-dependency-graphs-and-dgml/
CodeLab一个根据代码给出提示的软件,并不是评分软件。
Autograder需要自己训练,当然也有已经训练好的模型,但尚未验证是否支持java。Autograder使用python写的,是2012年nlp比赛的冠军。简书上有人对Autograder的评价:https://www.jianshu.com/p/f37b29a29e5b
Galah_master
Slithice https://github.com/juqian/Slithice
论文Slithice:一个基于系统依赖图的 Java程序切片工具
Indus 已下载 网址:https://forge.cs.ksu.edu/frs/?group_id=12
Autogradr,网址https://app.autogradr.com/,经测试只能评估是否能通过测试样例。
CodeCheck根据测试用例给出分数,如果未通过,则不得分。
网址http://horstmann.com/codecheck/
Repl.it不支持java
CodeHS 也是通过测试用例给出分数
网址:https://codehs.com/teacher/resources
上述软件大部分可以根据代码和测试用例,给出是否能通过测试用例,而并没有找到可以根据代码(无论是否能够通过编译)给出分数。