刘利
摘要:针对如何在《程序设计基础》课程教学过程激发学生的专业兴趣,促使学生掌握编程能力的问题进行研究。分析了传统实践教学存在的问题,提出基于OJ平台的实验教学方法,该方法在教学实践中取得了较好的教学效果。
关键词:OJ平台;程序设计;实践教学;学科竞赛
中图分类号:G642 文献标识码:A 文章编号:1009-3044(2015)21-0104-02
Practice Teaching Method of Program Design Based on OJ Platform
LIU Li
(Department of Computer Science, Huizhou University, Huizhou 516007, China)
Abstract: This paper researched on how to stimulate the professional interests of students in Program Design course, and encourage students to master programming skills. Then this paper analysis of the problems in traditional practice teaching, and proposed practice teaching methods of based on OJ platform. This method achieved better teaching results in practice teaching.
Key words: OJ platform; programming; experimental teaching; subject contest
《程序设计基础》是大都高校计算机专业学生在第一学期都会开设的一门课程。由于通过此门课程可以激发学生对计算机专业的学习兴趣,同时此门课程是后续课程的基础,如果此门课程学好,学生对后续课程也会更容易入门。因此此门课程在学生的第一学期中便显得尤为重要[1,2]。
然而,就目前我国的教育现状来看,大部分学生入校时都毫无编程基础。因此,针对多数零基础的学生,采用什么方法教学才能达到此门课程教学目的成为教师们不断研究的一个问题。本文提出一种基于OJ平台的实验教学方法,实践表明该方法可以更好的激发学生的学习兴趣,营造良好的学习氛围,从而提高他们的编程能力。
1 传统实践教学存在问题
《程序设计基础》课程最重要的目标之一是让学生学会编程,体会到编程就是对自己思想的表达,能做到有算法就能有代码,因此学习的窍门就是让学生多上机再多上机[3,4]。因此,实验教学显得尤为重要。目前的时间教学基本都是按照实验书布置实验题目,学生完成实验,书写实验报告,最后提交实验报告和学生源代码。这种实验教学方法存在如下问题:
1)实验内容题目单一限制了学生编程思维
目前的实验教材的实验题目都是针对不同的教学知识点设计,因此多数题目的解题思路基本都比较局限,不利于学生变成思维的建立。如果由教师根据教学设置能满足班级所有学生的趣味性的题目,题量也有限。而学生思维的提升是需要完成一定量的题目才能达成。
2)实验结果检查难以面对面检查
实验完成之后,如何检查学生实验才能更好地将意见反馈给学生,从而进一步提高学生编程能力。如果每个学生当面检查,并指出问题,方法是最好的,但是实施起来也是最困难的。如果不能在学生完成实验之后,及时给出反馈意见,学生的成就感会明显降低。
3)学生遇到问题无法及时解决导致学习积极性降低
由于课程总课时有限,而且教学内容较多,因此实验课时相对就会减少。以本校《程序设计基础》为例,课程理论40学时,实验16学时。若学生仅利用实验课编程学习,那么很难对课程教学内容深入理解。因此,需要学生额外花大量时间上机编程学习。在完成上机学习的硬件条件上不存在什么问题,现在学生基本都有自己的电脑。问题在于学生课余编程遇到问题时,如果及时的指导和解决会导致一部分人的学习积极性明显降低,甚至让一些学习编程入门都难。
2 OJ平台介绍
OJ(Online Jughe,在线提交系统), 里面有大量题目,从简单到困难,各类题目都有。有的甚至含有一些教材的课后题目。注册ID登录之后,可以选择自己感兴趣的题目,编写完成之后,提交源代码,会获得实时返回的信息,表明结果是否正确。如果自己学校有OJ平台最好,如果没有可以使用其他高校的OJ平台,下面是一些高校的OJ平台简介。
1) 北京大学(http://acm.pku.edu.cn/JudgeOnline/)。北京大学的OJ系统,目前题目数约有4000多道,同时有本名为《程序设计导引及在线实践》的教材与此系统紧密结果,可以作为学习的参考书目。与此同时,还提供免费的OJ系统下载,用于自己搭建OJ。
2) 浙江大学(http://acm.zju.edu.cn/)。是国内起步最早的几个OJ之一,目前题目数量也接近4000道。
3) 杭州电子(http://acm.hdu.edu.cn)。中英文题目都有,目前已有5000多道题。可以根据题目的难易分值,由易到难直接刷题。
3 基于OJ平台的实验教学方法
3.1 具体实验教学方法
首先建立自己学校的OJ平台,上传一些适合《程序设计基础》课程的题目。或者选用一个适合的OJ平台。为了更好地利用OJ平台,建议建立学习小组,具体方法/步骤如下:
1) 学生入学时,以ACM等学科竞赛作为入学教育的一部分,以此激励学生。并将相关的练习平台推荐给学生;
2) 教师开始上课时逐渐物色学习拔尖的学生,建立学习小组,每个组有个组长和副组长。他们统一归一个总组长管理。每个学习小组建立学习群,解答所在组成员学习过程中遇到的问题;
3) 学习小组组长督促学生去OJ平台做题,每做一题会有相应积分。规定此分数作为期末平时成绩的参考,便可激发学生的做题兴趣;
4) 在学习小组成立之前实验课时完成老师布置的任务,学习小组成立后由组长和老师讨论布置OJ平台的题目。目的是督促学生在此平台不停地做题。同时老师布置的实验内容课后完成;
5) 学习小组每周都布置做题的任务量。
表1是之前教学过程期末时学生汇总的每个人的练习积分情况,最高分已经有268分,一般题目是0.5分,1分的题目就已经有一定的难度,可以看出学生还是挺愿意在OJ平台作题,并获益匪浅。
3.2教学效果分析
3.2.1 考试成绩纵向对比分析
表2班级A是采用本文教学方法的考试成绩分析,表3班级B是本文作者上一年级教学班级没有采用此教学方法的考试成绩分析。需说明的是两个年级学生的试卷题型不同,班级A的期末试卷更侧重考核学生的编程能力,相对较难。从考试结果看,班级A的70分以下,尤其60分以下的成绩明显减少。所以可以看出本文的教学方法确实可以带动更多的学生认真努力地学习,掌握编程基础。
3.2.2考试成绩横向对比分析
表3 班级B考试成绩
[百分制\&人数\&百分比\&统计\&人数\&90分以上\&4\&9.09%\&应考\&44\&80—89分\&10\&22.73%\&实考\&44\&70—79分\&11\&25.00%\&缓考\&0\&60—69分\&10\&22.73%\&作弊\&0\&40—59分\&7\&15.91%\&旷考\&0\&]
表4和表5是与班级A同年级的其他班级没有采用本文教学方法的学生。对比可以明显看出班级A的成绩明显优于班级C和D,无论是高分学生,还是成绩低分的学生。直接从平均成绩看,班级A比班级C和D高出10分之多。班级C和D考试成绩在60分以下的达30%~40%,而班级A仅10%。由此可以看出善于使用练习平台,以及激发学生上机实践,确实可以很好地激发学生的学习兴趣和更快地找到编程感觉。
4 总结
学期结束后,学生对于本学期的教学也提供了一些反馈信息。信息反馈有相当一部分学生都是通过OJ平台学习找到了学习本门课程的乐趣。有的学生反馈提交后看到评价是正确时特别有成就感。有的学生反馈当看到自己刚提交的代码评论结果一下子就排到页面底端,就知道同时有好多同学都在这里学习,自己便更有学习的劲头。有的学生反馈看到他人提交记录是凌晨一两点,别人那么努力自己怎能不努力。因此练习平台不光简单地给他们提交的代码评分,还能带给他们学习的动力和压力。再结合学习小组形式,让他们在遇到问题时可以及时通过群里的其他学生找到解决问题的方法,由此更能锦上添花地达到更好的效果。
参考文献:
[1] 王先超, 王春生, 胡业刚, 等. 以培养计算思维为核心的C 程序设计探讨[J]. 计算机教育,2013(13):44-47.
[2] 林勇. 计算机程序设计类课程教学的研究[J].电脑知识与技术,2014,10(4):778-779.
[3] 石俊萍,李必云,刘守珍. 案例教学在C语言课程中的实践[J].福建电脑,2014(2):207-208.
[4] 张玉林, 张媛.C程序设计案例式教学方法研究与实践——指导大学生参加全国软件设计大赛的启示[J]. 计算机光盘软件与应用,2013(8):288-289.