雨课堂和OJ教学模式在C语言程序设计课程中的应用研究
2021-08-28薛韡王亚丽鹿玉红栾俊华
刘 颖 薛韡 王亚丽 张 震 鹿玉红 栾俊华
(防灾科技学院信息工程学院,河北 三河 065201)
1 引言
C语言程序设计课程的教学目的是使学生在掌握C语言程序设计的基本语法规则、基本概念的基础上,逐步培养学生建立编写程序设计的思维和掌握编写程序的方法。C 语言程序设计课程的特点是语法规则繁多琐碎,基本概念抽象,对部分学生尤其是没有建立编程思维的学生来说难度较大。此外,由于传统理论教学以老师的讲解为主,没有以学生为中心,学生很容易产生厌学心理。实验教学环节,由于实验学时有限,实验课仅能完成基础编程的训练,遇到实际问题,学生往往不知如何下手,容易产生畏难情绪,从而丧失学习的兴趣和自信心。因此,利用当前种类繁多的课程资源平台对该课程开展理论与实验的教学安排能够有效排除这些弊端。
2 研究的意义
(1)有助于提升学生的自主学习能力
学生为了完成相关工作任务,在教师监督下,发挥主观能动性,充分利用雨课堂中和OJ 平台上的线上资源自主学习、动手编程,有助于提升学生的自主和探究能力。
(2)以教师为中心向以学生为中心的教学模式转变
雨课堂的教学模式课堂上强调以学生为中心,学生从被动参与变成主动参与,从以教师为中心向以学生为中心转变。且在教学过程中,学生通过线上预习学习资源的方式,掌握了C语言程序设计的基本语法规则,因而教师有更多的时间在课堂上分析实际案例,通过对实际案例的分析与讲解,既激发了学生学习的兴趣,又提高了学生解决问题的能力。
(3)有利于帮助学生建立编程思维,提高学生的编程水平
C语言程序设计是以培养学生的程序设计能力为目标,平时多练习编写程序能帮助学生建立编程思维,提高编程能力。传统的教学方式,学生做的程序练习题目数量极其有限,而且通过老师评判才知正误。很多情况下教师都不能及时给出评判,由于不能及时得到评判结果,也会使学生逐渐丧失探索的兴趣。OJ网上在线判题系统中有大量的编程题目,通过教师推送给学生,学生做完题目,判题系统马上反馈正误,正确时学生的自信心得到提升,错误时也可以使学生及时得知自己的问题所在并及时纠正。这样的反复实践使学生的编程能力得到了加强,编程水平得到快速提升。
3 基于雨课堂+OJ的教学设计
3.1 基于雨课堂的理论课程设计
雨课堂是清华大学和学堂在线共同推出的新型智慧教学解决方案。学生可以使用电脑和手机登录学习。教师则可下载雨课堂插件安装到电脑,在电脑端PPT 上编辑雨课件,发布课前预习课件或视频资源,在课堂中使用雨课堂进行授课,学生通过弹幕或投稿进行互动;课后教师可以通过雨课堂进行习题作业、试卷的布置等。教师也可以使用手机发布资源、查看课堂情况。雨课堂能实现课前、课中、课后的全覆盖[1]。雨课堂能够把传统课堂和现代网络教学结合起来,教师在教学活动中起引导、启发、监控和管理的作用,强调以学生为中心,激发学生的学习积极性、主动性和参与性,把学生吸引到课堂中来。基于雨课堂的混合式教学模式的构建主要从课前、课中、课后三个步骤对教学进行了设计。如图1所示。
图1 理论课教学活动设计
(1)课前预习环节
课前预习环节可以推送公告、预习的课件、例题案例及预习的视频等;可以通过公告告知学生本周或本节课主要内容、教学重点难点、预习课件或视频的主要内容等。公告内容可以以提问方式或案例引入,引起学生的对本节课的学习兴趣,加深对本节课的印象。预习课件、案例或者视频中可以穿插练习题用于巩固知识点,也可以考查学生们预习的效果,作为教师讲课内容的预判,可以帮助教师有针对性地开展教学。
(2)课中授课环节
在课中授课环节,教师可以开启语音或者视频直播,雨课堂可以录制教师声音和桌面摄像视频,便于学生课后看课程回放。在讲课中可以开启弹幕,学生随时在线提问,也可以用于组织分组讨论,促进学生积极参与交流。在讲解完某个知识点后可以布置互动练习题,及时对教学内容进行训练巩固,学习在线答题完毕,教师及时得到这个题目的正确率,据此了解学生对知识点的掌握情况,有针对性地进行教学调整。
(3)课后复习环节
课后教师给学生推送完整的课堂同步回放、教学课件等,让学生能对学习内容进行复习,同时给学生发布课后习题,对所学内容进行巩固、查缺补漏,而教师通过学生课后习题完成情况的反馈,及时了解学生对教学内容的理解和掌握情况,便于教师在下次教学前做好准备。习题课件还可以实现录音讲解,实现同步答疑解惑。
3.2 基于OJ的实验教学设计
Online Judge系统(简称OJ)是在线的判题系统。系统可以根据事先编辑好的多组测试用例对用户提交的程序源码进行在线编译、执行及评判,并给出评判的结果。目前著名的OJ系统国外有RQNOJ、URAL等,国内有北京大学题库系统、浙江大学题库系统、电子科技大学题库系统、杭州电子科技大学题库系统等[2]。我们选用的是免费的EduCoder 平台(现改名为头歌),EduCoder 是开放的在线实践教学平台,提供多达12000 个教学资源,650 多门在线开放课程,有超过1000 所高校使用,为专业教学提供课堂、实验和实训等全面在线支持与教学服务。头歌界面如图2所示。
图2 头歌实践平台界面图
利用OJ 学习平台,学生可以动手编写大量的程序,通过即时评测,可以及时得到程序的正误反馈,通过反馈信息及时修正,学生可以在这种不断试错不断修正结果的过程中,提高利用计算机分析问题和解决问题的能力,有助于培养编程思维,养成自主学习的良好学习习惯,同时也能激发学生的学习兴趣。教师可以随时查看学生的实践情况,提高了工作效率和准确性[2]。针对平台的教学设计如图3所示。
图3 实验课教学活动设计
(1)课前布置
在开课前先创建实验课程,建立班级,将生成班级的二维码提前发给学生,学生注册后加入班级。在每节实验课前根据实验教学安排,在平台上选择实验内容及项目,可从知识点和难易程度等方面来选择实验内容,也可以自己加入实验项目;然后进行任务发布,发布的时间正好是上实验课时间。每个实验任务都由若干个具体的编程题目构成,根据难易度排列,对选择的实验任务可以分配分数比例。在系统中完成一个编程任务,就称为通过一关,类比游戏中的通关一样。通关后有得分显示。
(2)课中实验
上课前,教师首先讲解本次实验的实验任务、重点实验所有知识点及注意事项;然后学生登录EduCoder网站,完成实验任务关卡。每完成一个编程任务,EduCoder进行在线编译,指出程序语法错误,学生改正后,如果编译通过,还可以根据提前设定的测试集判断程序的逻辑性,测试运行结果是否正确。如果某个测试集错误,学生根据提示检查程序,再次编译验证,直至所有测试集正确,方可进入下一关,直至所有实验任务完成。这种在线编程的评分结果可即时显现,学生可以马上验证程序是否正确,能实时得到评测结果和最新排名,并根据OJ 平台的参与度进行综合评价。教师不但可以在教室中随时辅导,而且可以通过平台在线监测功能,查看同学们是否开始任务及任务完成情况,也可以进行点评,给学生更多的反馈与鼓励。在线监测情况如图4所示。
图4 在线监测界面
(3)课后巩固
在课外教师可以利用平台布置编程作业,通过系统在线评判,学生能很快得到反馈结果,并查看自己各个作业的统计信息,根据完成时间、工作效率及调试的次数了解自己的薄弱环节,再有针对性地复习巩固。如图5所示。
图5 学生查看实验任务完成情况
4 成绩评价
建立以注重过程考核与期末考核并重的成绩评价体系,平时成绩与期末成绩比例为1:1,即平时成绩占50%,期末成绩占50%。平时成绩的一部分来源于雨课堂的预习作业(5%)、课中互动答题(5%)、平时测试(20%)及课外作业成绩(10%),另一部分来源于OJ 平台上的实验成绩(10%),共计50%。平时成绩主要体现在对平时的学习过程的评价,期末考核采用上机操作的考核方式,考察学生的动手能力和编程能力。
5 结语
本文在C语言程序设计教学过程引入雨课堂+OJ的教学模式,理论课教学时使用雨课堂,实验教学引入OJ 系统,能有效实现课前预习课后复习、线上判题线下辅导、理论实践全方位结合的教学方式,成功将编程环节融入学生平时的学习中,有效提高教学效率。