APP下载

敏捷软件开发模式在计算机语言课程设计中的应用

2016-07-08冯爱祥罗雄麟中国石油大学自动化系北京102249

中国现代教育装备 2016年7期
关键词:团队合作

冯爱祥 罗雄麟中国石油大学自动化系 北京 102249



敏捷软件开发模式在计算机语言课程设计中的应用

冯爱祥 罗雄麟
中国石油大学自动化系 北京 102249

摘 要:计算机语言课程设计是自动化及相关专业的一门重要的实践课,旨在培养学生的创新能力和软件开发能力。针对该实践环节在教学过程中存在的问题,借鉴敏捷软件开发模式的思路,在教学方法中引入突出团队合作的结队编程实训新模式。实践证明,该编程模式既调动了学生的积极性,又培养了学生的软技能。

关键词:敏捷软件开发;计算机语言课程设计;团队合作

计算机语言课程设计是各大工科院校自动化及相关专业的必修实践环节,一般安排在计算机语言类课程之后开设。学生通过2~3周的编程集训,完成一个小规模的软件设计,体验软件的开发周期,从而获得软件开发综合能力的提高,为后续专业课程的学习奠定编程基础。

近年来,企业对本科毕业生的要求越来越高,毕业生不仅要有扎实的专业功底,而且要具备较强的计算机应用、软件开发、创新和团队合作等综合能力。而且,团队合作能力越来越受到企业的重视。因此,高校应根据现代企业和社会的需求进行人才的全面培养。作为计算机语言课程设计的带队教师,应在教学过程中不断探索新的教学方法,寻求新的编程训练模式。

1 计算机语言课程设计的教学现状

目前,我校开设的计算机语言课程设计实践课历时两周,主要训练学生进行Windows程序的开发,编程语言由学生根据自己的情况自选。课程设计的题目分为两类:一类由带队教师自己拟定;另一类由学生自己拟定。教师拟定的题目大多结合生活实际,且带有难度系数,最终以题目库的形式呈现给学生,学生可根据自己的情况进行选题;考虑到有的学生对题目库中的设计题目都不感兴趣,影响编程的积极性,允许学生根据自己的兴趣取向自拟题目,但是要得到教师的许可。这样,学生才能真正体验到开发程序带来的快乐,计算机综合能力也会得到相应的提高。经过多年的教学实践探索,计算机语言课程设计实践虽然取得了一定的成绩,也得到了学生的认可,但是还存在一些不足之处需要进一步改进。

(1)每个设计题目均指定单个学生独立完成,学生从查阅资料到完成程序设计的整个实践过程中同学间的交流、合作机会少。

(2)带队教师很重视计算机编程能力的培养,但是忽视了社会实践、团队合作之类的软技能[1]培养。

分析上述的不足之处,可以看出以往的教学模式不利于学生团队合作综合能力的提高。因此,为了进一步提高教学质量,令学生既能体验最流行的编程模式,同时又能在实践过程中培养创新探索能力、团队合作能力,在本课程设计的教学方法改革中引入敏捷软件开发模式[2],给学生创造沟通的机会,增强学生的团队意识,让学生在团队互动的实践过程中得到最好的编程锻炼,使得软件开发能力和软技能综合能力得到最大的提升。

2 敏捷软件开发模式

2.1 敏捷软件开发模式

敏捷软件开发模式[2]是从2001年2月开始兴起的软件开发模式,属于轻载软件模式。因为它的开发效率高于重载软件开发模式,已成为全球流行的软件开发模式。2010年12月10日,中国敏捷软件开发联盟正式成立[3],从此,国内的软件界也加入了敏捷软件开发模式的行列。

敏捷开发模式有一个突出的优点——非常重视团队合作。该开发模式有很多子方法[2]:如极限编程(Extreme Programmin)、特性驱动开发(Feature Driven Developmen)、水晶方(Crystal Methodologie)、Scrum方法、动态系统开发(Dynamic Systems Development Methodolog)等,每个子方法中都内含了团队编程。和传统的软件开发方法不同,敏捷软件开发的团队成员在每天开始工作前,都要进行一次集体的面对面的讨论与交流[2]。所以,为了保证整个开发过程的顺利进行,团队的每个成员必须要学会主动和他人交流。

2.2 敏捷软件开发子模式的选择

在所有敏捷开发的子模式中,开发团队一般为5~6人。如果在计算机语言课程设计中规定5~6名学生组建一个编程团队,那么肯定有些学生会变得不主动。

仔细研究敏捷开发的子模式,发现极限编程中的结对编程方法非常适合小规模团队的编程训练。这种编程模式通常由两个学生组成一个编程小组,在同一台计算机前共同完成一个软件的开发。具体分工是:一个学生负责写代码,另一个学生负责检查代码的正确性。在开发过程中, 负责输入代码和检查代码的角色可以根据需要灵活地调换。在整个编程过程中,一旦发现语法和运行错误,须及时讨论并调试。

在计算机语言课程设计的实践过程中采用结对编程这种敏捷方法,相对于以往的训练方式,是一种新的教学方法。这种结对方式既可以提高程序的开发效率、缩短代码的开发周期,又有利于建立起良好的团队合作和学习氛围。这也符合现在的以CDIO(Conceive Design Implement Operat)理念[4]培养工程技术人员的要求。

3 敏捷软件模式在计算机语言课程设计的实践应用

3.1 组建团队

在课程设计开始之前,首先要进行团队组建,即结对。敏捷宣言的原则中提到[3]:“最好的架构、需求和设计出于自组织团队”。所以,组建团队时,教师从不强行指定,而是让学生本着自愿结对的原则,这样形成的小团队才是最有潜力的团队。在接下来的两周时间内,结对的学生将在整个课程设计过程共同完成软件的前期调研、设计开发、调试和成果答辩汇报等。学生将在所选项目的开发过程中通过亲身体验团队合作学会如何发现问题、共同分析问题和解决问题,同时提高自身的项目分析能力、创新思维能力和合作交流能力。

3.2 选题与构思

结对以后,小组成员要通过初步讨论进行选题和方案构思。如果对题目库中的题目不太感兴趣,允许学生根据自己的兴趣自拟题目。待题目确定后,继续进行查阅资料、调研,并设计出初步的方案。如果两个人对设计方案意见不一致,需要进一步进行沟通交流。必要时请老师参与讨论,最终的设计方案必须是通过结对的两人讨论一致好方案。在整个选题构思过程中,学生都处于主动地位。

3.3 具体实践

这一阶段,结对的学生要根据第二步的设计方案开始编程。按照经典的结对编程流程,两个学生须在同一台计算机前一起编程。由于在本课程设计开设之前学生从没有经过系统的软件开发训练,所以在课程设计的过程中,不能照搬经典的结对编程流程。我们为每个结对组配备两台计算机,结对的双方要合理地利用两台计算机:一台用来显示资料和代码实例;另一台主要用来结对编程实现。这样整个代码的开发仍在一台计算机上完成,负责输入代码的学生要保证代码输入的快速性,负责校验代码的学生要保证代码的正确性。编程中如果遇到了不懂的地方,可以利用另外一台计算机随时进行资料查阅和代码实例的比照。在整个编程实现的过程中,结对编程的两个人要相互信任、互相督促,共同学习编程的技能,这样编程能力弱的学生也能在结对过程中学到编程的方法,共同完成团队的任务。

在整个实践阶段,为了掌握学生编程的进度,带队教师将以客户的身份全程参与到每个结对小组的实训中。建议每个小组在开始一天的工作前,必须开会决定当天的任务,并做成计划文档;每天的工作完成后,需将当天的编程结果给带队教师看,教师会根据每天的进展对每个结对小组当天的结果提出反馈的意见和改进的要求。

3.4 检查与提交

具体实践完成后,结对小组邀请教师来检查已完成的软件。通常,带队教师先检查代码的正确性,保证程序能顺利运行;然后,从使用者的角度来检查软件是否符合设计要求。如果发现问题,则再次讨论修改,直到通过教师的认可方可提交代码。

3.5 考核

作为一门实践课,成绩考核是非常重要的,不能光靠最后提交的程序评定成绩,这样就会造成成绩的不公平。采用了敏捷软件的结对开发模式后,由于带队教师全程参与了各个小团队的开发过程,掌握了每个团队成员的平时表现,设计成绩由程序运行情况(40%)、答辩情况(10%)、平时表现(30%)和报告文档(20%)四部分组成,每一部分又分为五个等级,具体评分标准见表1。

表1 计算机语言课程设计评分表

表1(续)

4 结束语

面对用人单位对人才的高要求,高校对程序设计之类的实训课应不断探索新的教学方法。将敏捷软件开发模式应用到计算机语言课程设计的教学中,已在我校自动化12级、13级的学生中进行了两年的实践。从两年的教学效果来看,在新的教学模式要求下,学生学会了相互间的交流、相互间的合作,学会和别人一起分享成功。从小团队的组建到课题的选择,从方案的设计再到实现,均通过结对的两人合作完成,给学生提供了很大的自主空间。相对于以前的教学模式,学生在课程实践中获得计算编程能力的极速提升,软技能也得到了培养,极大地提高了学生的积极性和创新性。后续专业课的任课教师也反馈:学生经过本教学模式的编程训练,在专业课需要编程的实验环节表现出了很强的程序开发能力和组织能力。

参考文献

[1] 袁华,张凌.网络工程设计实践课程能力培养初探[J].计算机工程与科学,2014,36(A2):242-245.

[2] [美]Robert C.Martin.敏捷软件开发:原则、模式与实践[M].北京:清华大学出版社,2003.

[3] 张志丽.软件开发生命周期法比较之敏捷与传统[J].电脑开发与应用,2013,26(12):32-37.

[4] 顾佩华,包能胜,康全礼.CDIO在中国[J]. 高等工程教育研究.2012(3):24-40.

[5] 钟扬,刘业政,马向辉.小团队结对编程实践研究和重构[J].计算机技术与发展,2007,17(11):160-163.

Application of Agile Software Development Mode in Course Exercise of Computer Programming

Feng Aixiang, Luo Xionglin
Department of Automation,China University of Petroleum, Beijing, 102249, China

Abstract:The course exercise of computer programming is an important pratical training of automation and other similar fields.It aims at to cultivate students’ innovation ability and software development capabilities.According to the problems existing in the practical teaching,after using the idea of agile software development,the mode of pair-programming which outstands team cooperation in training is introduced.The results show that the teaching mode can not only mobilize the enthusiasm of the students' programming, but also cultivate the students' soft skills.

Key words:agile software development; course exercise of computer programming; team cooperation

收稿日期:2015-10-16

作者简介:冯爱祥,博士,讲师。罗雄麟,博导,教授。

基金项目:中国石油大学(北京)校级教改项目“计算机语言课程设计实践教学方法研究”。

猜你喜欢

团队合作
基于技师研修复合能力培养的探索
以团队合作为本的包装设计项目化实践研究
“企业工作岗位法”在电子一体化教学中的应用
基于“四位一体”的土木工程实验教学改革与实践
浅析企业实现团队合作的益处及面临的现实困难
大厦之成,非一木之材也
团队合作在初中学校管理中的应用
浅谈职业院校技能大赛对职业教育的影响
浅析《病理生理学》在护理专业课程体系中的重要性