学术咨询

让论文发表更省时、省事、省心

以OJ系统和学科竞赛为核心的程序设计实践教学

时间:2021年03月03日 分类:教育论文 次数:

摘要:通过分析各高校在线评测系统应用于实践教学的现状,结合北京化工大学在线评测系统应用实际,对九年来的计算机科学与技术专业的编程课程教学实践和程序设计类学科竞赛的培养情况进行数据分析和整理研讨。经验表明,文章分析的以在线评测系统为基础,以

  摘要:通过分析各高校在线评测系统应用于实践教学的现状,结合北京化工大学在线评测系统应用实际,对九年来的计算机科学与技术专业的编程课程教学实践和程序设计类学科竞赛的培养情况进行数据分析和整理研讨。经验表明,文章分析的以在线评测系统为基础,以学科竞赛为目标的实践教学模式有利于培养优秀的计算机科学与技术专业学生。

  关键词:程序在线评测系统;学科竞赛;实践教学

科教导刊

  引言近年来,全国高校对于大学生实践能力的培养越来越重视,而对于计算机相关专业的学生来说,提高自己的动手编程能力也就是提高了实践能力。程序设计类课程具有入门难,两极分化严重、实践性强等特点。对于各大高校,计算机专业的竞赛具有参加人才难挑选,培养难度高等特点。

  所以,如何满足新时期教育发展的需求,如何提高实践教学的成果,如何培养具有更高水平的程序设计类竞赛人才,是高校教师亟待解决的问题。随着我国教育信息化研究的不断深入和进程不断加快,各大高校纷纷将现有的教育技术引入到实践教学中。为此,作者将北京化工大学在线评测系统应用到计算机科学和技术专业的实践教学中,对所收集的大量实践数据进行了合理统计和分析得出,使用新的基于在线评测系统的教学有助于激发学生的学习兴趣,提高学校和学生参加计算机类相关竞赛的积极性并获得优异的成绩。

  一、在线评测系统应用现状

  在线测评(OnlineJudge,OJ)系统,起源于ACM国际大学生程序设计竞赛(ACMInternationalCollegiateProgrammingContest,ACMICPC)[1]。经过ACM竞赛30多年的发展[4],各大高校纷纷开发了属于自己的在线评测系统。其中国内著名的OJ系统包括:北京大学的POJ,该网站有强大的软硬件系统,每天代码提交次数高达3000次;浙江大学的ZOJ,浙江大学通过ZOJ举办浙江大学计算机程序设计能力考试(PAT),PAT的成绩可以作为多家企业招聘和研究生复试的机试成绩。

  此外杭州电子科技大学的HDOJ、电子科技大学的UESTCOJ和华中科技大学的HustOJ都在程序竞赛领域有较高的知名度。国外知名的在线评测系统有西班牙Valladolid大学的OJ(UVA)、俄罗斯Ural立大学OnlineJudge(U-RAL)、Codeforces和atcoder等。近年来各大公司也使用一些针对求职面试的在线评测系统,比如国内知名的牛客网和计蒜客等。这些评测系统,不仅广泛应用于教学、对学科竞赛人员的培训和求职面试中,还对外开放注册,为其他程序爱好者们提供题库和代码评测服务。

  二、基于在线测评系统的实践教学

  目前,在线评测系统广泛应用在各大高校计算机科学和技术专业的教学和竞赛的培养中。在教学方面,各大高校将该系统直接应用于程序设计类课程的上机实验教学中[2]。任课教师根据程序设计类课程的实验内容和具体要求[3],合理布置实验任务,新增题目或者从题库中选择合适的题目供学生上机练习。学生在编写、调试完程序后,将程序提交给评测系统进 行判断。评测系统会在后台进行编译,并结合测试输入样例得出运行结果,与测试输出样例进行比对,给出评判结果。

  教师可以通过系统在网上抽查学生作业,及时发现问题给出指导,该系统的使用大大减轻教师的工作压力。学生课后可以继续登录系统,完成未完成的实验,保证了教学的连续性在一定程度上,提高了教学质量。在课程范围方面,该系统的应用主要集中在C/C++语言、Java语言、Python语言的教学上,对这几门语言的教学质量有很大提高。而对于其他计算机专业相关的课程,例如编译原理、算法分析和设计、计算机组成原理、数据库原理等涉及较少[4]。在计算机类学科竞赛的培养中,各大高校使用在线评测系统选拔参加学科竞赛的学生,进行模拟比赛,提高竞技水平。

  三、本校实例

  (一)北京化工大学在线评测系统

  我校基于开源的HustOJ系统部署了北京化工大学在线评测系统(OnlineJudgesystemofBUCT),主要用于我校程序设计类课程的实践教学、校内周赛、月赛、“蓝桥杯”软件大赛的选拔和集训以及参加ACM竞赛的队员集训[5]。北京化工大学在线测评系统(BUCTOJ)使用php语言开发,后台数据库使用MySQL,采用B/S架构,主要系统模块包括系统维护和管理、题库管理、实时状态、排名、竞赛和作业、ACM竞赛专区、讨论版。

  经过多年不断的丰富和完善,BUCTOJ已经积累了近5000道编程题目,题目类型涵盖了数据结构、算法设计与分析、C/C++语言程序设计、Java语言程序设计、Python语言程序设计、程序设计课程设计、ACM/ICPC程序设计方法与实践[6]等几门课程的主要知识点;题目难度覆盖面也很广,有适合刚入门新手的题目,有适合入门以后需要多加练习的题目,有适合选拔学生竞赛的题目,有适合参加学科竞赛学生训练的题目等多种类型题目。BUCTOJ系统已经有超过70万份代码的提交,这些数据都存储在数据库中,我们可以使用这些数据对学生的学习进度,实践水平进行合理的分析,专业性的进行培养。

  (二)OJ系统在我校的应用

  OJ系统已经在我校程序设计教学和学科竞赛中使用了九年时间,在使用过程中,我们不断总结经验,积累方法,形成一整套基于在线评测系统的课程教学和学科竞赛培养方案。

  1.实时评测教学

  系统管理员在开学初将学生的信息导入OJ中,根据学号生成相应的账号。任课教师可以通过评测系统的状态显示功能,查看学生做题情况,对学生做题过程中遇到的共性问题给予针对性的讲解和及时指导,对排名靠前的同学可以进行重点培养为学科竞赛人员,对排名靠后的学生进行重点辅导。为适应不同层次学生的学习需求,教师可以根据学生的知识掌握情况,及时调整实验任务,进行题目的分级分类,从而达到有效反馈、合理调控、提高课堂教学效果的目的。

  2.更好的教学效能

  教师把例题和课后作业题目挂到在线评测系统上,例题帮助学生进行熟悉练习,课后作业设置好起止时间,学生通过在线评测系统按时间要求进行作业提交,系统会统计出每道题目的提交次数、提交通过的题目数量及所使用的编程语言,对本次作业的完成情况进行排名,并可导出到Excel文件。

  教师可以方便地获取到所有学生每道题目的做题情况,查看是否抄袭,记录总结学生遇到的问题,在课堂教学中进行针对性讲解。在线评测系统的使用,简化作业批改,使教师可以注重教育教学及自身素质的提高,从而提高教学效能。学生提交作业后,系统会快速给出评判结果,及时得知作业完成情况,即可进行后续修改与再次提交,与传统收发作业的模式相比,这种方式科学运用了生物心理学的规律,既缩短了反馈周期,又能激发学生的学习潜能和学习热情。

  3.公平客观的考核评价机制

  使用在线评测系统进行实验课考核,评判结果公正客观。学生通过使用在线评测系统,可实现对每次考核内容的系统化管理,发现当前课程学习的薄弱部分,主动弥补。每次考核都会给出系统排名,可使学生意识到学习差距,从而能对自身提出更高要求,调动学生学习积极性。此外,将该系统直接用于学生程序设计语言类课程的考试上,传统的试卷考试对于程序设计语言类课程有很大的局限性,对老师的批改、学生的创新都有很大的影响。我们可以使用该系统,进行上机考试,规定的时间内完成规定的题目。这一方法更加公平公正。

  四、数据分析

  (一)“蓝桥杯”软件大赛获奖数据和代码提交数我校从第四届(2013年)“蓝桥杯”开始参加软件类大赛,至今已经参加了七届,对第四届(2013年)到第十届(2019年)我校参加“蓝桥杯”软件大赛的获奖情况进行统计。可以看出我校在“蓝桥杯”软件大赛中获奖总数呈上升趋势,图中的水平线对应的为某一项的平均值,平均获奖数为36,这证明我校基于OJ的计算机学科竞赛培养有一定的成绩。

  我校在“蓝桥杯”软件大赛省赛在获奖数量也呈上升趋势由2013年的19项增加到2019年的47项。“蓝桥杯”软件大赛的规则是省赛一等奖选手获得直接进入全国总决赛资格。我们可以看出我校在全国总决赛的获奖情况有波动。与省赛相比,我们会发现国赛的获奖受很多因素的影响,例如我校师生对蓝桥杯的重视程度不如ACM/ICPC,没有投入更多的精力;某一届学生对编程的兴趣感的强弱;某一届学生生源地的影响(部分省份在中学时就会进行编程教育)。

  教育论文投稿刊物:《科教导刊(电子版)》(旬刊)创刊于2009年,是由湖北省科学技术协会主管,湖北科教导刊杂志社主办,面向全国公开发行的省级期刊。国家新闻出版总署批准(新出审字〔2012〕872号)国内统一连续出版物号为:CN42-9001/N,国际标准刊号:ISSN1674-6813。

  五、结束语

  经过九年教学实践证明,基于北京化工大学在线评测系统的教学实践研究,取得了良好的教学成果,为我校培养了一批具备编程能力和参加竞赛的学生,并在各种计算机学科竞赛中获得了优秀的成绩。但是不能过分依赖系统,教师的引导和监督作用不可忽视。如果缺乏教师的引导和监督,容易导致学生流于形式,影响学习。

  参考文献:

  [1]张赫尧,史文静,施尔宁,等.基于OnlineJudge与ACM_ICPC模式的课程探究[J].计算机光盘软件与应用,2014,17(23):212+214.

  [2]范江波,张学辉,张建兵.以OnlineJudge为突破口的程序设计课程全过程学业评价改革实践[J].科教导刊(中旬刊),2019(09):96-97.

  [3]陆国栋,陈临强,何钦铭,等.高校学科竞赛评估:思路、方法和探索[J].中国高教研究,2018(02):63-68+74.

  [4]苗桂君,刘勇,许南山.在线评测系统在程序设计类教学中的应用研究[J].计算机教育,2016(09):157-162.

  [5]李博,孟成博.对HUSTOJ在线评测系统的若干优化与创新[J].现代计算机(专业版),2013(35):47-50+56

  作者:刘勇,田凯,周晓琳,吴佳伟*

NOW!

Take the first step of our cooperation迈出我们合作第一步

符合规范的学术服务 助力您的学术成果走向世界


点击咨询学术顾问