在高中信息技术教学中使用“在线评测系统”的教学实践与研究

2019-12-04 14:34田丰佳木斯市第一中学
数码世界 2019年11期
关键词:评测程序设计编程

田丰 佳木斯市第一中学

一.背景

高中信息技术课在新修订的《普通高中信息技术课程标准(2017 年版)》中,课程结构和课程教学内容都进行了较大的调整修改,在新课程中的《数据与计算》、《数据与数据结构》、《算法初步》等模块都涉及到程序设计,尤其是《算法初步》模块,将对程序语言、算法设计进行较为深入的学习与研究。

程序设计类课程与基础理论类课程不同,其实践性很强,注重学生实际编程能力的培养。

但从目前高中程序设计课程的开设情况来看,程序设计教学还存在着一些问题:

(1)评价方式欠科学,缺乏严谨的检查机制。学生编写完程序后,难以及时、准确的验证程序的正确性,从而不能及时发现程序中存在的问题,长此以往不利于学生程序设计能力的培养。

(2)教师课堂监督能力有限。教师无法及时了解每名学生课堂上任务的完成情况,没有时间和精力对学生提交的作业一一进行上机验证,只能通过抽检的方式检查,无法全面和客观评价学生的学习情况,不利于学生动手操作能力和创新能力的培养。

(3)教师工作量大。每位高中信息技术教师大概要教300 名左右的学生,程序代码作业批改费时又费力,这极大地耗费了教师的精力,教师投入到教学研究的时间就相对较少。

程序在线评测系统(Online Judge,简称OJ),是一种基于 B/S 架构的在线程序检测平台。此评测系统能对学生用网页浏览器提交到服务器的程序源代码进行在线编译,生成可执行文件,并从数据库中调用测试数据,从程序运行的正确性、耗时、耗费内存及返回结果等各方面评测代码,并精确返回各方面的评测结果,学生可根据反馈结果判断程序是否正确或根据错误的原因进行修改。

将程序在线评测系统引入到高中信息技术的编程教学中,以辅助信息教师进行教学,目的就是要改进传统的人工验证程序的方法,建立科学、高效的评价环境,能实时的、准确的验证程序的正确性,从而提高课堂教学效率,促进学生程序设计能力的提升。

二.教学实践探究

经搜集、学习大量资料,笔者学在校内服务器上安装了unbtun 操作系统,在unbtun 操作系统上安装了UOJ 在线评测系统,经反复调试、更改,uoj 在线评测系统已能在校内使用,在实践过程中应用了以下功能。

1.评测功能

学生打开提交页面,然后选择“语言”,便可提交评测。这里我们添加了包括pyton3 在内的7 种程序语言,评测结果可显示程序运行答案是否正确、程序运行的时间、程序运行的空间、编译错误、运行时错误等信息。学生可根据评测结果来改正程序。在此功能的测试中,我发现测评功能不忽略行末空格,明明答案正确,但由于行末多了一个空格显示答案错误,这给初学编程的学生带来很大的麻烦(有些问题去掉行末空格是很不好处理的),经过深入研究修改测评代码,最终实现了忽略行末空格的评测方式。

2.显示提交记录功能

学生打开“提交记录”页面,输入用户名,点击“搜索”即可查询自己以前所有的提交记录,也可以输入用户名和题目编号查询某一道题目的做题记录。

做题记录可以显示学生每一次提交的题目编号、提交时间、分数、用时、内存、代码等程序的相关信息。给学生的复习、自主学习带来了极大的方便。同时教师可以通过查询某个同学的做题记录,了解学生的学习情况。

3.比赛功能

管理员可以在后台添加比赛题目,设置比赛。设置完成后,学生在前台页面报名后即可参加比赛,比赛结束后管理员点击”评测比赛”,系统会评测所有参加比赛选手的程序,评测结束后显示分数与排名,这项功能对于教师检测学生的学习情况非常方便。同时也可作为教师课堂上布置任务使用,教师在后台可以实时观测到每个同学任务的完成情况,可以有针对性的辅导。

4.后台管理相关功能

后台管理现已完成添加编辑题目(题目中可以含有图片)、上传题目测试数据、删除用户、设置用户权限等功能。为了保证评测系统的安全和方便管理,我们还设置了开关功能,对于注册、评论等功能可在后台进行开启和关闭。

三.实践总结

从2019 年3月开始,我选取一个班级进行python 程序设计教学,教学过程中将“在线评测系统”作为教学的辅助工具,收到了良好的效果,相对以往,学生课堂状态和学习效率有了一定的改善,主要体现在以下几个方面。

1.学生的学习欲望得到增强

之前有些学生对于单纯的学习程序语言感觉枯燥乏味,没有成就感。使用“在线评测系统”时学生每完成一道题目就会得到一百分,完成题目数量就增加一个,个人排名就可能上升,学生都很在意自己的排名,想要排名上升,就得多完成任务,这样班级内就形成你追我赶的学习氛围,大大增加了学生的学习欲望。

2.学生编程的正确率得到提高

以往学生编写完程序后,自行验证程序的正确性。由于初学程序设计和个人思维习惯的不同,很多学生自以为正确的程序其实存在着逻辑错误,而课堂上老师精力有限,不可能照顾到所有学生。在线评测系统可以辅助学生检查程序的严谨程度,每一道问题教师都设计了全面严谨的测试数据,基本可以检测出程序的各种逻辑错误,学生评测后可及时发现错误,及时改正,以免下一个任务犯相同的错误,慢慢学生也越来越意识到编程过程中应用注意到哪些问题,编程的正确性和逻辑思维能力得到一定的提高。

3.学生对算法优劣有了更深刻的体会

使用评测系统后学生可清晰的看到程序运行的时间和占用的内存,不同算法运行的时间空间可能有着明显的不同,这在以前学生是无法体会到的。课堂上学生看到程序的运行效率后,也尝试着去优化程序,重新设计算法,这个过程可以加深学生对算法的理解,也锻炼了学生的计算思维。

4.教师的工作量减轻,辅导更有针对性

使用在线评测系统后,学生对于遗忘的内容查可查看做题记录,课堂上问老师问题的学生减少了,课堂上老师查看学生的做题记录很容易发现学生的问题,指导更有针对性。同时在线评测系统可以自动评测,教师批改作业也省时省力,更多的精力可以查看学生错误原因,教学设计更有针对性。

经过一学期的使用,在本学期初对实验班级进行了问卷调查,结果如下:

(1)有94%的学生认为使用“在线评测系统”能够提升编程的兴趣。

(2)有86%的学生认为“在线评测系统”能及时反馈程序的正确性

(3)有72%的学生认为“在线评测系统”可查看程序运行时间和空间,了解算法优劣

(4)有94%的学生认为“在线评测系统”可查看做题记录,方便复习

(5)有34%的学生经常关注“在线评测系统”的排行功能,有58%的学生偶尔关注。

(6)有74%的学生认为使用“在线评测系统”进行程序评测是否更容易发现程序的逻辑错误

(7)有92%的学生认为使用“在线评测系统”进行程序评测能否提高思维的严谨性教学实践过程使用中“在线评测系统”受到了学生的认可,对教学起到了积极的辅助作用,但笔者认为,在学生编程熟练后,不易过度依赖评测系统来检验程序的漏洞,这对于培养学生的思维严谨性是不利的,应更多地将其作为评判工具,恰当合理的应用。

猜你喜欢
评测程序设计编程
热力站设备评测分析
医学专业“Python程序设计”课程教学改革总结与思考
次时代主机微软XSX全方位评测(下)
编程,是一种态度
次时代主机微软XSX全方位评测(上)
元征X-431实测:奔驰发动机编程
编程小能手
基于Visual Studio Code的C语言程序设计实践教学探索
纺织机上诞生的编程
从细节入手,谈PLC程序设计技巧