结对编程方法在C语言教学中的应用
2016-11-14涂小琴张春红商伟
涂小琴,张春红,商伟
(云南师范大学文理学院,云南 650222)
结对编程方法在C语言教学中的应用
涂小琴,张春红,商伟
(云南师范大学文理学院,云南650222)
针对计算机专业基础必修课程《C语言程序设计》,根据教学实践经验,提出在课程的教学过程中引入结对编程方法来提高学生的编程能力以及学生的编程兴趣。分析结对编程的组合原则,以及针对大一新生的项目设计原则,并与传统教学方法的教学效果进行比较。
C语言程序设计;结对编程法;传统法
0 引言
《C语言程序设计》是计算机相关专业的一门重点必修课程,也是学生学习编程的基础。该课程学习的好坏直接影响到高年级一些重点专业课的学习,如《数据结构》、《C#程序设计》、以及C版的《操作系统》、《Java程序设计》等。所以对于大一的新生来讲,学习好《C语言程序设计》这门课程至关重要,通过在教学过程中引入结对编程方法可以有效地提高教学效果。
1 结对编程方法介绍
结对编程方法的提高是在20世纪90年代中期,到目前已经经过了近30年的发展。结对编程技术概念被提出来时是指两位程序员坐在同一台电脑前进行编程,如图1所示。与两位程序员各自独立工作相比,结对编程能编写出质量更高的代码。
图1 结对编程样例图
结对编程方法在企业中经过了一段时间的实践,得出了较高质量的代码,但因投入的人力比较多,所以目前的企业采用结对编程的比较少,采用团队编程的比较多。但对于高校来讲,不需要考虑投入的人力问题,反而能节省教学中的计算机资源。通过结对编程可以提高学生的编程兴趣,更能突出教学质量及教学效果,同时也能够培养学生的团队合作精神。
结对编程包含了以下四个步骤:讨论、设计、编码和测试[1]。讨论:以交流为基础,讨论设计方案;设计:设计出有效的结构,共同设计算法;编码:写出具体的代码实现;测试:对代码进行完整性测试。在结对编程中,有人充当“驾驶员”,有人充当“导航员”,“驾驶员”负责代码的输入,“导航员”负责整体方案的设计以及及时发现程序中的错误。当然“驾驶员”和“导航员”的角色可以随时互换[2]。同时也允许也其他结对小组中的成员进行交换。
结对编程有着近30年的使用及发展经验。根据国外的权威数据表明,在教学过程中有效的使用结对编程方法,对提高学生的编程兴趣,提高学生的记忆力,有很大的帮助。同时也能提高学生写出的代码的质量以及学生的整体成绩。同时,国内的研究也表明,使用结对编程方法编出程序的成功率明显高于独立学习同学的成功率。根据教学实践也表明,在教学上采用结对编程方法的班级整体水平也高于传统的实践教学班级。
2 教学设计中的结对原则
对于结对编程方法的使用,在教学过程中须遵循以下原则:
(1)男女搭配优先
在实际的教学过程中,让学生自主地选择结对编程的对象,以男女搭配优先。通过国内外的实验研究证明,男女搭配的工作效率是最高的。从心理学中来讲,异性相吸,而大一的学生又处于相互比较陌生的阶段,不少学生会为取得他人的良好印象而努力。在实践的过程中,男同学在这方面的积极性特别的高,也对此教学方法充满了兴趣,为以后的学习建立了一个良好的开端。由于在实际的教学班级中,男生往往比女生数量多,所以还会存在一部分的学生是男男搭配。也正好检测男女搭配与同性搭配的效果。
(2)开学初期以“高水平+低水平”优先,开学中期以“同水平+同水平”优先
随着全国计算机基础知识的普及,有的学生在上大学之前,已经接触过计算机,并对计算机操作非常熟悉,有的学生在高中时就已经学过一些编程语言,如“VB”;但还有一些是偏远山区的学生,他们在高中时甚至没有摸过计算机。我们还设计了一份问卷调查报告,来收集学生的背景数据,以此来评估学生的编程水平。为了满足未接触过计算机的学生的需要,让他们也能快速跟上班级的平均水平,让一个水平相对较高的学生带着,以达到“高手”培养“新手”目的。所以在以下组合中:“高水平+高水平”、“高水平+中水平”、“高水平+低水平”、“中水平+中水平”、“中水平+低水平”、“低水平+低水平”,在开学初期,“高水平+低水平”的模式是相对较好的。这样能带动整个班级的集体水平。
随着教学知识的越来越深入,为了避免“低水平”的学生形成对“高水平”学生的依赖,在开学中期,进行一次组合与组合之间的调整,让相同水平的学生进行结对,以达到相互促进的目的。
(3)性格互补优先
如果两个学生性格能够互补的话,经过一段时间的磨合,结对编程的效果会越来越好。随着教学的深入,学生对于自己的结对对象已经有了相当的了解,在一些小组中会出现两个都不善于表达的学生,或者两个性格都比较外向甚至是比较强硬的学生,这样在结对编程的过程中,就会存在不发言或者是争执不下的现象,所以要在教学中进行相应的调整。
3 教学中项目设计原则
《C语言程序设计》课程分为实验课与理论课,理论课中,以教师讲授知识为主,实验课中,以学生完成实验为主,教师给出实验题目,学生通过结对编程实现,并在规定时间内完成实验报告。除了实验课中应用结对编程方法外,在课外的程序设计上也主张学生进行结对编程,这样可以充分利用学生的计算机资源。
由于大部分的学生才开始学习程序设计,所以在项目设计中,不宜以工程量大,代码量多的作为实践项目,这样会打击一大部分的学生的学习积极性,宜以工程量小,代码量相低较少的项目作为实践,在课程的设计中要围绕课程的重难知识点,以达到学习基础知识的目的,这样能给高年级的学习打下扎实的基础。
4 实践效果对比
在我所教的班级中,有一个班级采用传统的实验方法,“一人一机”模式,另外一个班级中采用结对编程方法,“二人一机”模式,两个班级人数分别为42人。其中班级中男女生人数及性格如表1所示:
表1 实验班级人数分配对比
经过一个学期的测试,以期末考试成绩为例,得出了两个班级的成绩对比表,如表2所示:
将每个班的学生期末成绩按升序排序后,再进行对比,得出如图2所示的线性图形。
图2 结对法—传统法教学实践效果对比图
表2 实验班级期末成绩对比
在时间上,结对编程在开始初期没有多大的优势,因为需要对其成员进行熟悉,但在熟悉了之后,结对编程就显示了它的优势,以期初、期中、期末练习时间为例。得出两个班级的实验练习花费时间表,如表3所示。
表3 实验班级练习花费时间对比
根据图2所示的线性图,以及表3的花费时间表,可以看出,结对编程方法在时间上要优于传统的单打独斗的教学方法。教学成绩也要明显要高于传统法的教学成绩。
5 结对编程在教学中的优点
(1)充分利用学生的电脑资源
这门课程开设在大一学年,经过统计,在该学年中,班级中仅有一半的学生拥有个人计算机。结对编程可以让学生充分利用现有资源。
(2)学习效果更佳
经过实践发现,在教学中使用结对编程的教学效果更佳。在应用结对编程方法中,男女搭配要比男男搭配及女女搭配的学习效果要好,也更能激发学生的学习积极性。
(3)建立学生的团队意识,写出更高质量的代码
结对编程方法,可以及时的发现程序中的错误,并进行改正。在结对编程中两个人频繁地变换角色,在思想的碰撞中,更容易培养学生的创新精神,也能够培养学生的团队意识及责任意识。
(4)相互学习
在结对编程,学生能学习同伴的优点,促进知识的传递,使学生自身编程能力得到提高,并相互促进。
(5)能取到相互监督的效果
两人结对,在规定时间内需上交实验报告,相当于两位学生相互监督,这样可以有效的避免学生上实验课时,进行玩游戏、聊天等现象。
(6)学生动手能力加强
在结对过程中不断地变换“驾驶员”与“导航员”的角色。使每个学生都具有自己动手操作的机会。
(7)提高学生的交流能力及表达能力
在合作中,需要不断的与对方交流自己的思想,久而久之,可以锻炼学生的交流能力与表达能力。更能促进学生之间的情感。
6 结语
结对编程是一种比较好的编程思想,虽然该方法不被大的企业所采纳,但是将该方法应用在教学中却取到了良好的教学效果。能够提高学生的编程能力,也能加强学生的交流及表达能力;同时还能提高代码的质量,加强学生的团队合作精神。
事物都具有两面性,有一小部分的学生喜欢独立编程,还有一部分“低水平”的学生形成了依赖心理,如何能让这些“低水平”的学生参与编程,也是我们在下一步的教学过程中需要考虑的问题。
[1]陈斐.结对编程技术[M].北京:机械工业出版社,2004:1-3.
[2]刘峰.结对编程软件方法的研究与应用[J].电子设计工程,2010,18(7):204-205.
[3]张猛.结对编程的研究与扩展[J].计算机系统应用,2008(4):62-65.
[4]袁红照,关涌涛.程序设计教学中结对编程的实践和效能分析[J].安阳师范学院学报,2014(5):79-81.
[5]詹英,王黎征.结对编程在程序设计课程实践教学中的应用[J].南阳理工学院学报,2013(3):123-125.
C Language Program Design;Pair Programming;Traditional Teaching Method
Pair Programming method in C Language Teaching
TU Xiao-qin,ZHANG Chun-hong,SHANG Wei
(College of Arts and Sciences,Yunnan Normal University,Kunming 650222)
In view of the computer specialized compulsory course for C Language Program Design,according to the teaching practice and experience,proposes introduction of pair programming method to improve the students'programming ability and students'interest in programming in the teaching process.Analyzes the combination principle of pair programming,the design principles for the freshmen of the project and with the traditional teaching method,compared the pair programming method and traditional teaching method in the teaching effect.
1007-1423(2016)28-0028-04
10.3969/j.issn.1007-1423.2016.28.008
涂小琴(1981-),女,江西九江人,硕士,研究方向为计算机软件与理论张春红(1977-),女,云南昆明人,教授,研究生,研究方向为图像处理多媒体应用商伟(1979-),男,山东济宁人,讲师,研究生,研究方向为美术应用
2016-08-03
2016-09-20