基于Coderunner的程序设计作业在线评测与实践

2022-05-11 01:49徐兴张智刚孙道宗王卫星蔡坤
创新创业理论研究与实践 2022年7期
关键词:评测测验程序设计

徐兴,张智刚,孙道宗,王卫星,蔡坤

(华南农业大学 电子工程学院/人工智能学院,广州广东 510642)

随着我国人工智能产业和物联网技术的迅猛发展,现代社会对高水平软件人才的需求与日俱增,这对大学生的程序设计能力提出了更高的要求,尤其是电子工程方向的学生,不仅要能熟练掌握硬件知识,还要对C、C++以及Python 程序设计语言熟悉掌握,成为“软硬兼施”的复合型人才,以更好地满足社会需要[1]。

在有限的一学期内,要熟练掌握一门计算机语言,这就要求学生能够将编程学习与实践紧密结合,通过大量的编程练习促进自己编程水平的提高,但是传统的“纸上编程”作业脱离了真实的计算机运行环境,难以达到预期的学习效果。学生在计算机上所做的编程练习,教师无法实时监管,可能会出现抄袭的问题[2-3]。2020 伊始新冠肺炎疫情的突然暴发,导致高校传统的课堂教学工作无法正常进行,采用网上教学,更导致了监督和批改学生作业成为高校教师面临的现实难题[4]。因此,采用在线作业替代传统纸上作业成了高校教师们迫切的教学需求[5-6]。

笔者在腾讯云服务器的基础上搭建了在线SPOC(Small Private Online Course,小规模限制性在线课程)学习平台,其界面如图1所示。在该在线学习平台上,笔者在程序设计课程中进一步搭建了基于Coderunner 的程序设计作业在线评测系统[5],实现了程序设计作业的云布置、云批改和云评测,通过多位教师的共同使用,取得了较好的教学与实践效果,目前学生用户达到了470 多人,涵盖了大一本科生、大四本科生以及研一研究生,有效地促进了学生计算机程序设计能力的巩固和提高。

图1 课程在线学习SPOC 教学云平台

1 Coderunner 介绍

Coderunner 是一款用于Moodle(Modular Object-Oriented Dynamic Learning Environment)课程管理系统的作业插件,可以运行学生提交的程序代码作业,并允许教师运行程序以对学生的答案评分。到目前为止,Coderunner 在坎特伯雷大学已经使用了七年多,以Python,C,JavaScript,PHP,Octave 和Matlab 运行了数百万个学生测验作业。截至目前,Coderunner 在全球600 多个其他站点中被广泛应用。

Coderunner 目前支持Python3,C,C ++,Java,PHP,JavaScript(NodeJS),Octave 和Matlab,并且可以扩展到其他语言,可以充分满足各类程序语言学习的需求。学生在自己的计算机上编完程序后,可以通过Web 浏览器把程序作业提交到Coderunner,而Coderunner 会直接运行程序并立即得到答案正确性的反馈,并允许再次提交作业。Coderunner 提供一种灵活的评分机制,比如:允许一到两次内的作业错误提交不扣分,后续再次提交的话,每错一次,可以设置为扣除10%的分数,从而让学生能够直观地看到哪类题目自己错得比较多、哪里是自己的知识薄弱点。Coderunner 支持的编程题目类型比较广,从简单的程序填空题一直到程序设计题都可以支持。在Moodle平台下,Coderunner 还可以将单项选择题、多项选择题、判断题、简答题混合在一起,可以进行日常教学过程中的小测验甚至期中期末考试,促进学生对各个知识点的有效掌握。

2 Coderunner 在线评测系统工作特点和优势

Coderunner 在线评测系统具有界面直观、简单易用的工作特点:

(1)学生通过点击“检查”按钮获得即时结果反馈,可实时知道程序的运行情况。

(2)结果反馈采用的是勾号,其中绿色的勾号表示程序输出了正确结果,红色的勾号表示程序输出了错误结果。

(3)如果程序运行输出错误结果,则反馈面板为红色。当学生重新提交正确答案时,则整个面板变绿,并获得成绩。由于最终的成绩会扣去前面提交错误答案后的罚分,这会促进学生尽快解决问题,提高他们的学习积极性。

目前,很多高校计算机实验室花费不菲的价格购买了相应的程序设计实验平台,但是,我们基于腾讯云服务器搭建的Moodle/Coderunner 平台具有独特的优势:

(1)Moodle 是一个面向全世界的免费开放源码学习平台,Coderunner 也是一款面向全世界的免费插件,大大减少了高校的教学投入成本,采用腾讯云服务器,可以让学生在任意时间任意地点进行课程学习并完成编程作业,提升了学生的学习效率。

(2)Moodle/Coderunner 组合可以在整个课程的测试、作业甚至期末考试中使用。学习评估、成绩记录和课程材料的分发都统一在同一个平台上,实现了学习资料和教学信息的无缝链接。

(3)Coderunner 广泛支持各大主流编程语言,并且在可以设置的问题类型、使用的罚分方式,甚至反馈的显示形式方面非常灵活。

采用Moodle/Coderunner 组合方法的另一个好处是,学生日常学习和测试的环境保持一致,从而大大减轻了在线测验和考试的压力。

3 基于Coderunner 的程序设计课程考核方法设计

Coderunner 最初应用于C++程序设计课程中,经过一学期的试用,现在它扩展到Java 程序设计、Python 程序设计、物联网概论、程序设计实践等其他几门课程中。虽然Coderunner 最初是作为满足疫情期间学生程序设计在线作业评测需求而引入的,但Coderunner 在线评测系统现在已经成为华南农业大学电子工程学院/人工智能学院程序设计课程教学和评估的重要方式。目前,我们采用的程序设计考核方法有如下方式:

(1)每周进行一次常规编程作业测试,每次测试占课程成绩的1%。把这些放在云服务器上,学生在宿舍编程学习实践的能力大大提高,同时也减轻了学校计算机实验室的压力,而这些编程作业更像是为学生开设的编程学习帮助课程。同时,这些“编程作业测试题库”的维护也容易得多。如果在预定的测试中检测到题目出错,教师只需远程在云服务器进行更正,然后所有学生都会立即看到修改后的版本。

(2)四个大的编程作业测验,取代了我们过去设置的传统单一作业。这些因素加起来占课程评估的20%。常规作业测验和大的编程作业测验都要求学生注意程序编写风格、变量和函数的命名、函数命名方式。教师们会评估最终提交代码的质量,对糟糕代码会施加一个小的风格惩罚扣分。

(3)可选练习测验,对课程成绩没有任何影响,但为学生提供了额外的练习。

(4)期中考试,这项测试占课程成绩的15%,是一个时长为1.5 小时的考试,主要使用题库的问题和测验。问题是随机的,每个问题都是从一个小的选项库中选出的,这样每个学生都会得到不同的测试,但是问题的分布和总体难度对所有人来说都非常相似。

(5)期末考试,占总成绩的55%,时长为2.5 小时,在学校计算机实验室进行。在学校计算机实验室考试不仅可以在时间上统一进行测试,方便教师监考,而且可以限制学生访问除了Coderunner 在线评测云服务器以外的网络资源,有效防止考试过程中的抄袭。

4 学生和教师对Coderunner 的使用反馈

在两个学期的使用过程中,特别是在疫情期间,学生对Coderunner 的使用均非常积极。他们尤其推崇程序设计作业的在线评测功能。在云服务器环境下,远程在线评测有助于学生及时纠正作业中的问题。学生会很努力地让作业打上绿色勾号,在被标为红色勾号作业题目变绿色之前,他们都会花时间把作业改好,然后再继续下一道作业。在疫情期间,Coderunner 能够及时指出编程作业中出现的各种错误,在教师不在场的情况下,大大提高了学生的知识掌握程度。

Coderunner 还大大减轻了教师的日常教学批改工作量,教师能随时随地地访问在线学习平台,实时跟踪学生的完成情况,如图2所示,为教师通过手机访问第三章“C++的流程控制”作业完成情况,在这里不仅可以看到总体作业完成情况,还可以下载完整报告,看到每一道题目的完成情况,教师可以有针对性地进行备课,从而有效地提高了学生的学习效率。

图2 编程作业完成情况(手机界面)

5 结语

本文在Moodle 平台上搭建基于Coderunner 的程序设计在线作业评测系统。通过两个学期的试用,已由最初的C++程序设计扩展到华南农业大学电子工程学院多个相关课程。目前有8 个教学班共约200 名本科生、140 名研究生和5 位教师使用,绝大多数学生较为推崇这种远程在线学习、作业在线评测模式,他们可自由支配学习时间,随时随地进行学习,提高了学习效率;教师则能全程监督学生的学习活动,自动获取各种统计成绩,极大地减轻了日常作业批改工作量。在疫情期间,在线作业评测系统也提供了一个良好的监督机制,督促学生网课后及时完成作业,促进了学生们对于知识的掌握。本文搭建的在线学习平台不仅构筑了学生和教师沟通的桥梁,还积累了大量的日常教学数据,为指导教师教学以及教育大数据挖掘研究提供了原始的数据积累。

猜你喜欢
评测测验程序设计
次时代主机微软XSX全方位评测(下)
次时代主机微软XSX全方位评测(上)
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
攻坡新利器,TOKEN VENTOUS评测
《新年大测验》大揭榜
Canyon Ultimate CF SLX 8.0 DI2评测
高职高专院校C语言程序设计教学改革探索
两个处理t测验与F测验的数学关系
PLC梯形图程序设计技巧及应用