疫情下在线评测系统远程教学与机考实践
2022-01-07刘思然吴维刚吴岚岚
万 海,吴 迪,刘思然,陆 勇,吴维刚,江 颖,吴岚岚,李 湄
(中山大学 计算机学院,广东 广州 510006)
0 引言
目前我国已有550 多所高校开设了计算机专业,选修计算机专业的高校学生更是多达上百万。然而,各高校计算机教学质量良莠不齐,教育资源配备不充分、不完善,使学生无法得到充足的实例练习。学校未将足够的教学资源向计算机专业倾斜,因此缺乏便捷、有效的工具辅助智能化教学工作的开展。
中山大学计算机学院团队致力于为计算机相关专业的学生搭建集学习、练习、实验于一体的一站式程序在线自动评测平台Matrix(以下简称Matrix 平台),提供优质、稳定、可靠的计算机类人才培养服务,营造良好的计算机教育生态。乔海燕等[1]基于Matrix 平台提出在线评测代码提交接受率的三步法。国内已有一些高校提出使用在线评测系统辅助计算机类课程教学,主要分为以下四类:①文献[2-5]将信息学奥林匹克竞赛或ACM 竞赛所采用的在线评测系统应用于计算机类课程教学:王国英等[2]提出类似于ACM 竞赛,以学生在评测系统的提交次数和提交正确率等指标检查学生的学习效果;任长安等[4]介绍了湖南工学院的ACM 评测系统在辅助程序设计类课程上的实现;②以课程训练为主的教学类在线评测系统。冯丽露等[6]设计了一个用于数据结构课程的在线系统,该系统内设添加题目、查看答题记录、导出成绩等课程辅助功能;张美娟等[7]则结合所在学校的具体情况设计了一套提升学生编程能力的在线评测系统WITOJ;③介绍面向竞赛或基于慕课平台应用的在线评测系统[8-12]。张雨薇等[8]通过对ACM 在线评测系统进行改良和优化,实现了系统在竞赛与教学方面的一体化;夏敏捷等[9]则将慕课平台和在线评测系统相结合建立教学评价体系和学习成绩考核机制;④应用于联合机考和面试的研究生招生复试与考评系统。苏小红等[13]提出采用联合机试和面试的方法应用于研究生招生复试中,通过合理分配机试和面试分数的比例,建立研究生招生复试的选拔和考评体系。经过实践研究表明,通过在线评测系统的课程智能化实践具有重要意义[14-15]。
目前尚缺乏将课程教学和机考相联合的在线评测系统,且现有教学类的在线评测系统中多为编程类题目,类型过于单一。Matrix 平台始创于2015 年,目前已经稳定地为中山大学计算机学院提供课程和考试系统相关服务。面对突如其来的新冠肺炎疫情,利用互联网保障教师在线教学及学生在线学习,便成为了新的教学挑战[16]。通过Matrix 平台探索在疫情下保障程序设计类远程教学和本科生、研究生远程机考的经验,为教学与考试的有序进行提供了有力的保障。
具体而言,Matrix 平台在远程教学与机考实践中具有以下创新点:①适用于C、C++、Python、数据结构等计算机类课程的实验教学,涵盖课程作业、课程成员、课程讨论等模块,支持包括编程题、文件上传题、选择题、简答题、报告题在内的五种题型,同时支持在线评测、抄袭检查、数据统计、批量导出等教学功能。②集成了远程机考功能,使得在疫情的影响下,仍能保障程序设计类课程的远程教学和本科生、研究生的远程机考。
1 中山大学程序在线评测系统
经过近6 年的建设,Matrix 平台相继开发了课程、考试、竞赛系统等项目,为保证计算机学院程序设计课程教学与考试的稳定进行,提供了多项重要业务的技术与环境支持。如程序设计课程日常教学、阶段性考试、转专业机考、研究生机考等。截至2021 年5 月,系统已提供240 余个课程的管理服务并承担了170 余场考试,成功应用于C、C++、Python、数据结构等课程的教学中。其中,涵盖课程作业、课程成员、课程讨论等模块,支持包括编程题、文件上传题、选择题、简答题、报告题在内的5 种题型从出题到做题、做题到改题的所有基本功能;支持C、C++在线评测、抄袭检查、数据统计及批量导出;支持在线编程考试和在线理论考试,并可选择实时评测或定时评测。
1.1 课程系统
Matrix 平台为教师提供课程管理、课程资源发布、作业发布等功能,对学生作业进行科学、高效、自动化的评测,极大减轻了教师的劳动强度。同时,平台会自动保存学生提交的程序和评测结果,以便于后期查询成绩、排名和统计数据。系统目前支持编程题、报告题、文件上传题、选择题、简答题等多种常见题目类型,允许在题目中添加公式、图片等素材,使题库更加灵活丰富。同时支持抄袭检查、数据统计及批量导出功能,为作业的管理提供高效、便捷的服务。平台支持理论题、编程题等多种题型,实现了对学生编程水平的考察,为高校组织考试、竞赛提供了技术支撑,可按需求选择定时或实时评测。平台实现了程序评判过程的全自动化和测试结果的标准化,将来会向智能化分析学生数据方面迭代。
学生端如图1 所示(彩图扫OSID 码可见,下同):学生可查看课程列表、自定义搜索课程、查询课程进程。通过点击单个题目,进入做题页面,页面左侧包含题目的具体描述,主要包括查看提交记录、成绩报告、排名情况、标准答案等功能。右侧为学生的答题区域。
Fig.1 Student-side course list and online programming interface图1 学生端课程列表与在线答题页面
教师端如图2 所示:教师通过图形化页面方便快捷的对后台题库进行管理,支持一键导入题目、一键修改发布、一键查重、一键学员管理等功能。
Fig.2 Teacher-side course management图2 教师端课程管理界面
1.2 考试与竞赛系统
Matrix 平台提供了考试系统,教师端支持一键导入考试题目,一键管理考试时间,一键统筹考试学习,自动计算学生的分数和排名。在学生端统一配置编程环境,全自动实施评测和代码查重。考试系统支持大规模、高并发的程序设计类上机考试。目前,已承担170 余次考试,包括程序设计期末考试、转专业机考、研究生复试等。
如图3 所示,除课程系统和考试系统功能外,基于Matrix 平台开发的在线评测系统MOJ,内置各类算法、工程题目,支持学生使用C、C++、Python、Haskell 等多种语言进行算法、程序编写。具体而言,有以下突出优点:
(1)庞大、优质的题库。截至2021 年6 月,Matrix 平台题库中共有2 000+道题目,涵盖程序设计基础的全部知识点。将题目难度分为“简单”、“中等”、“困难”等不同等级,可供各阶段编程学习者选择,并且题目还提供了标准答案,便于学生自查、纠错。下一步,Matrix 平台还会不断添加题目,丰富题库,优化编程学习体验。
Fig.3 Online evaluation OJ system -matrix图3 在线评测OJ 系统
(2)稳定、良好的代码评测体验。Matrix 平台提供自动化、智能化的评测系统,可评测学生提交代码的效率与正确性等方面,并且评测速度快、效率高、报错信息详细。平台支持编译检查、静态检查、内存检查等,提供标准测试和随机测试两种方式。同时,平台将保存代码和评测结果,以供其他服务(知识点推荐、代码推荐等)使用或进行后续分析。
(3)个性化测评系统,帮助用户高效创建专属题库。一次考试和作业只能显示成绩的表象,难以分析深层问题。Matrix 平台将在不断迭代中推出个性化测评系统,通过平台现存的前期学员练习试题和考试数据,利用大数据动态分析技术,全面分析学生的考试结果和作业情况,精准、快速地发现学生的学习漏洞,给出具体的知识体系、知识点分析报告。系统还可为用户定制个性化专属题集,根据每个学生的知识特点,针对性的匹配相关知识点题型,制定最符合每一位学生实际情况的专属训练集。
为激发学生的编程热情,提高学生的编程能力,促进计算机技术人才成长。平台与企业达成合作,Matrix 平台利用OJ 系统定期组织线上编程大赛,学生只需提交程序源代码便可在服务器上远程执行,只有在指定时间和内存限制下运行通过并输出正确结果的程序,则被认定为有效程序。大赛通常会设置奖品、现金奖励、校招直通车等奖励。
通过此方式,培养了大量在算法设计领域具有突出表现的优秀人才,中山大学计算机学院在ACM-ICPC 国际程序设计大赛中连续多年获得多项金牌。获奖情况如表1所示。
Table 1 Awards of Asian regional competition of ACM International Undergraduate programming competition of Sun Yat sen University from 2015 to 2020表1 2015-2020 年中山大学ACM 国际大学生程序设计竞赛亚洲区域赛获奖情况(由于疫情2020 年部分赛站比赛在整理数据时尚未举办)
2 翻转课堂,疫情下在线评测系统远程教学
2020 年初疫情防控期间,为响应“停课不停学”的号召,进一步增强学生的计算机能力。中山大学计算机学院在Matrix 平台的辅助支持下,面向中山大学计算机学院全体2019级约600多名同学组织开展程序设计在线竞赛与辅导。
2.1 远程教学应用
为了让同学们尽快适应网络学习,以赛代练、以练促学,我院成立了由专任教师、《程序设计》任课教师和辅导员组成的竞赛辅导团队。从中山大学计算机学院ACM 集训队员和课程助理中选拔多位同学担任竞赛助教,组成竞赛辅导团队,建立面向全体同学的QQ 群运营团队,利用学院自主开发的Matrix 平台,有序地开展程序设计在线竞赛与直播辅导。
学院ACM 竞赛队在历年ACM 国际大学生程序设计竞赛中都取得了优秀成绩,在组织区域赛、新手选拔赛的组织、命题、培训等环节中积累了丰富的经验。竞赛辅导团队在每天早上发布具有针对性的竞赛试题,参赛同学通过Matrix 平台进行在线编程与评测,每天晚上由竞赛辅导团队进行在线直播讲解。参赛同学的竞赛成绩将自动积分作为程序设计的平时成绩,成绩优秀者将被选拔为我院ACM 竞赛队队员。在疫情防控期间,约有600 多名同学通过Matrix 系统进行远程教学,取得了良好的学习效果。
2.2 远程教学效果
如图4 所示,程序设计线上远程教学实现了翻转课堂的教学效果。参训同学学习热情高涨,纷纷表示会充分利用这段集中学习的时间向ACM 竞赛队请教,切实提高自己的编程能力。竞赛辅导团队也同步根据同学们的反馈情况,增加新的知识点,拓展原有程序设计的教学深度与广度,有序开展在线教学与直播辅导工作。
3 有序组织,疫情下在线评测系统远程机考
从2016 年至今,中山大学计算机学院基于Matrix 平台开展了程序设计I、程序设计II、数据结构等核心专业课程和2017-2019 级研究生复试的机考。
Fig.4 During the epidemic,the remote course of program design has achieved remarkable effect图4 疫情期间《程序设计》远程教学工作效果显著
但是,受2020 年新冠肺炎疫情影响,原线下机考的方式受到了新的挑战:
(1)如何防止考生在机考过程中作弊?
(2)采用腾讯会议等形式进行视频监考时如何对考生进行引导?
(3)对于大量考生参加的机考,如何保证网络顺畅?
3.1 远程机考角色分工
受疫情影响,中山大学计算机学院2021 年转专业机考(约50 人)和研究生夏令营机考(约600 人)都采用了远程机考。中山大学计算机学院通过科学分析和梳理远程机考存在的各种风险,紧张、有序地统筹、部署各项工作。为网络机考创造公平、公正、公开的选拔环境。
由于部分考生从未参与过远程机考,为了有序引导考生,缓解考生的焦虑。如图5 所示,以考生来我院面试为线索作为典型的管道模型,明确考生将接触的角色。其中包括远程联络助理、侯场秘书、记录秘书、技术助理、监考员、主考官等。通过为各角色设计工作流程清单、风险自查表,压实责任。选拔优秀的教师和学生助理参与机考工作,并提前进行岗位培训和演练。最终,全院共有近100 多名同学、近20 名教师参与研究生机考工作中。
Fig.5 During the epidemic,the remote test monitor is guiding,identifying,and checking according to the pipeline model图5 疫情期间远程机考前按管道模型对考生进行引导、核验身份、测试机位
由于学院复试考生众多,为了提高工作效率,便于各工作岗位掌握考生信息、对接考生情况、追溯考生与学院联系的详细情况,在Matrix 平台上专门开发了机考辅助系统,用于记录每个角色岗位对接考生的情况。
3.2 各校区集中远程机考
2021 年6 月,中山大学计算机学院开设了面向全校学生的转专业考试。由于中山大学设有三校区五校园,在广州疫情防控期间,部分考生无法前往指定校区参加转专业程序设计上机考试,为确保考试的公平性,计算机学院使用Matrix 平台针对不同专业考生在三个校区开展了线上统一机考。
针对来自各个校区的50 余名考生,计算机学院采取线上主辅双机位监考+Matrix 统一编译环境的方式进行监考。具体为:
(1)每位考生考试前在电脑上提前安装腾讯会议,进入监考人员通知的腾讯会议中,根据监考人员指示调整主机位摄像头和后侧方辅机位摄像头。如图6 所示,监考人员通过辅机位查看考生有无同时连接多个屏幕,考试机桌面是否全部清空等前期工作。完成候考检查后,考生打开腾讯会议,同享全部桌面后准备开始考试。
(2)机考考试开始后,考生远程登入Matrix 平台,进入转专业考试页面,在Matrix 平台提供的统一IDE 环境下进行调试、提交代码等操作,不得切换至其他界面,直到考试结束。
(3)监考员远程监考。设置1 位监考员负责3~5 名考生的监考工作。监考员时刻监视考生是否离开Matrix 系统、有无与他人通过聊天工具交流等情况,确保考试无作弊情况的发生。
Fig.6 During the epidemic,the remote online program test was monitored by the shared screen and auxiliary computer monitoring using Tencent conference图6 疫情期间远程机考通过腾讯会议共享屏幕和辅机位进行监考
Matrix 平台为全体考生提供了方便快捷的在线编辑器,保证了考试的公平性,并且支持对考生代码的一键查重和成绩的一键导出。考试过程中,Matrix 平台实现了程序评判过程的全自动化,为每一位考生提供了自动化、标准化、高速化的稳定服务,得到了全体考生的一致好评。
3.3 考生分散远程机考
2021 年7 月,中山大学计算机学院面向全国举办优秀大学生夏令营(线上)。为了更好地选拔人才,学院有针对性地组织研究生夏令营机考。
针对全国近600 名考生,学院动员100 多名学生助理和10 多名专任教师在考前对全体考生进行身份核验、考试流程引导和考试双机位测试。由于考生人数众多且不集中,为了防止意外,要求每位考生准备一个备用手机,仅用于接听监考人员的电话。由于每位考生在远程监考现场都有一台计算机作为监考设备,可同时接收考生共享的桌面视频、主机位摄像头视频和辅机位摄像头视频,对网络带宽的要求很高。因此在考试前,学院特别向网络中心申请增加带宽,在经过多次测试后,确定既能保证图像精度,又尽量少占用带宽的上传输率。此外,在Matrix 平台也同步开启抄袭检查等防作弊功能。通过实践证明,研究生夏令营远程机考基本上达到了预期效果,实现了公平、公正、公开选拔优秀人才的目的。
4 结语
历经近6 年的建设,由中山大学计算机学院自主研发的Matrix 平台为程序设计类课程提供了教学、机考、在线评测等功能。在新冠肺炎疫情影响下,中山大学计算机学院通过创新翻转课堂的教学方式,对学院全体2019 级约600多名学生开展程序设计课程的远程教学与在线竞赛辅导。特别在2021 年6 月广州地区疫情反复的情况下,通过建立面向考生的管道模型,有序地开展考生身份核验、主辅机位引导与测试工作,顺利的举办了远程机考。
随后,对学院700 多名考生(50 多名转专业考生和600多名优秀大学生夏令营考生)实施远程机考,取得了良好的成效。尽管在远程教学和远程机考实践中取得了良好的效果,但也存在着人力资源的浪费和成本过大的问题,后续将继续提高远程教学与机考在身份核验、远程监考的自动化程度,同时也进一步推进远程教学与机考有序实施与推广。