QUICK REVIEW
[论文解读] Computing with CodeRunner at Coventry University: Automated summative assessment of Python and C++ code
David Croft, Matthew England|arXiv (Cornell University)|Nov 25, 2019
Teaching and Learning Programming参考文献 5被引用 4
一句话总结
本论文评估了CodeRunner这一开源Moodle插件在考文垂大学首年计算机课程中对Python和C++代码进行自动化总结性评估的应用。通过用可执行代码测试替代选择题测验,研究显示评估的真实性得到提升,学生对反馈的满意度提高了7%,对编程能力的衡量也更为准确;尽管在C++评估中需借助基于SFINAE的内省技术,才能对语法正确但逻辑有误的代码授予部分分数。
ABSTRACT
CodeRunner is a free open-source Moodle plugin for automatically marking student code. We describe our experience using CodeRunner for summative assessment in our first year undergraduate programming curriculum at Coventry University. We use it to assess both Python3 and C++14 code (CodeRunner supports other languages also). We give examples of our questions and report on how key metrics have changed following its use at Coventry.
研究动机与目标
- 解决选择题评估在衡量首年计算机专业学生真实编程能力方面的局限性。
- 实施并评估CodeRunner在总结性情境下对Python和C++代码进行自动化、可执行评估的效果。
- 通过使用真实代码执行替代低保真度评估,提升反馈质量与学生满意度。
- 解决在C++评估中因编译失败导致测试无法执行而难以授予部分分数的挑战。
- 开发并部署一个基于SFINAE的内省库,以在存在轻微语法错误的情况下检测正确的代码结构。
提出的方法
- 采用CodeRunner作为Moodle插件,通过单元测试自动评估学生提交的Python和C++代码。
- 设计包含多个测试用例(包括隐藏用例)的评估题目,以检验正确性与鲁棒性。
- 使用SFINAE和预处理器宏实现自定义C++内省库,以检测函数签名和类结构。
- 利用内省库在因小错误导致编译失败时,仍能识别正确的代码结构并授予部分分数。
- 在两个首年模块中,用可执行代码评估替代传统的选择题期中测验。
- 收集并分析两年内的学生表现数据、反馈满意度评分及评估结果。
实验结果
研究问题
- RQ1通过CodeRunner将选择题评估替换为可执行代码测试,是否能更准确地衡量学生的编程能力?
- RQ2使用CodeRunner进行自动化评估,对学生的反馈与评估过程满意度有何影响?
- RQ3在使用CodeRunner进行C++评估时,特别是因编译失败导致测试无法执行的情况下,会遇到哪些挑战?
- RQ4基于SFINAE的内省技术是否能有效识别正确的代码结构,并在存在编译错误时授予部分分数?
- RQ5与传统评估方法相比,自动化评估对通过率和平均分有何影响?
主要发现
- CodeRunner评估的平均分低于以往的选择题测试,表明CodeRunner更能准确反映真实的编程能力。
- 引入CodeRunner后,学生对评估和反馈的满意度提升了7个百分点,达到90%。
- 在4000CEM的期末笔试中,接受过CodeRunner评估的学生平均分高出7%,通过率高出10%,表明学习成效有所提升。
- 在4003CEM中,初始分数和满意度的下降促使开发了基于SFINAE的内省库,以更好地处理C++编译错误并授予部分分数。
- 基于SFINAE的内省库成功实现了对正确代码结构的检测,并提供了有意义的错误信息,降低了因轻微语法错误导致零分的风险。
- 使用CodeRunner营造了更具真实感的评估环境,贴近实际编程场景,具备语法检查与迭代测试功能。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。