APP下载

基于程序设计竞赛的计算机创新型人才培养新模式

2013-03-27向德生廖俊国陈燕晖吴海波

当代教育理论与实践 2013年5期
关键词:评测程序设计竞赛

向德生,廖俊国,陈燕晖,吴海波

(湖南科技大学 计算机学院,湖南 湘潭411201)

为了适应科技与经济日新月异的发展,用人单位越来越关注大学毕业生的综合素质。在此形势下,学校应有效地加强大学生综合素质的培养,提高大学毕业生的就业竞争力。而将程序设计竞赛与计算机专业的课程教学体系进行有效的融合,是一种能够提高学习主动性、拓宽知识面、提升创新能力的有效途径。本文就如何依托程序设计竞赛,对计算机创新型人才的培养模式进行了有益的探索。

一 现状分析

近年来,计算机专业的教育得到了普遍重视与发展,学生的实际操作能力得到了很大提高,但仍存在一些不足,主要表现在:学生的自主参与积极性不高,很多学生课程学习的目标仅仅是为了通过考试;在课时有限的课内要求完成的编程量太少,缺乏一种机制激励学生在课外自主训练;对学生的实践能力培养不足,传统的偏重理论教学的课堂教学模式禁锢了学生的创新能力,难以培养学生独立解决问题的能力;传统的作业检查及实验检查都是由老师人工进行,受限于老师的经验及认真程度,欠缺严格的数据测试,大大弱化了训练效果,束缚了学生的创新能力。另外,由于目前国内高校大多不是实行真正的完全学分制,考试这一评价环节要考虑绝大部分学生能够通过,所以考试对能力的评价也严重失真。一个学生可以通过死记硬背考得高分,但一遇到实际问题却不能灵活运用编程实现自己的想法[1]。

二 依托程序设计竞赛,建立创新人才培养新模式

借鉴程序设计竞赛相关的一些好的方法,将其融入计算机创新型人才的培养过程,恰恰能弥补前面提到的人才培养存在的不足。

(一)将竞赛训练平台引入课程实验教学

搭建基于校园网的程序设计在线评测系统,为学生提供完善的实践练习平台和严格的测试检验平台。传统的编程作业或实验,随意性很大,题意描述模糊,解答也可以很模糊。而在线评测系统则异常严格,题意描述要清楚,解答要准确。这种评测方式虽然要求程序运行的结果要与题意的要求完全一致,但其最大好处是并不限制程序实现的算法,这样学生可以自由尝试各种实现算法。另外,通过限制程序运行时间和内存空间,或加强测试数据,可以对一些没有经过优化的算法加以限制,充分锻炼学生的实践能力和创新能力。

(二)将竞赛评价机制引入课程考核与评价体系

象C 语言程序设计、数据结构等操作性强的课程应该注重动手能力的培养,因此对传统的以笔试为主的课程考核体系进行改革,引入竞赛评价机制。通过在线评测系统组织考试,考试过程中根据答题情况即时进行动态排名,并以考试结束后的最终排名等客观数据为主,以老师的经验为辅进行评价。这样促使学生在平时的作业或实验训练时,随时都有程序优化的创新意识和争排名的竞争意识,激发他们在课外还能主动训练的积极性。

(三)建立四级竞赛机制,以赛促学

第一级是基础课程的学习训练赛。作业布置、实验组织都仿照竞赛组织作业赛或实验赛,定期举行课程学习比赛,激发学生对计算机程序设计的兴趣,培养学生独立解决问题的能力。第二级是定期举行全校性的选拔比赛和程序设计竞赛,扩大影响,吸引更多的学生参与竞技比赛并从中选拔一些优秀学生组成程序设计集训队,利用业余时间进行系统的训练。这样既可以利用优秀学生带动周围学生整体编程水平的提高,又可以让他们代表学校参加各种竞赛。第三级是积极参加每年举办的市赛、省赛和ACM/ICPC 国际大学生程序设计竞赛亚洲区域赛。让学生走出去和各大强校展开竞争,对所获成果加强宣传,让优秀同学树立榜样,扩大影响,以点带面,吸引更多的同学积极参与。第四级是积极参加企业组织的各种比赛。很多知名IT 企业都举办了程序设计人才选拔比赛,如百度公司主办的百度之星程序设计大赛、网易公司主办的有道难题创新大赛、Google 公司主办的Android 应用开发中国大学生挑战赛以及NVIDIA 中国公司主办的CUDA 校园程序设计大赛等。积极参加企业主办的竞赛,可以让学生的学习更加适应企业的需求,提高大学生的就业竞争力。有些参赛同学甚至还能直接获得企业提供的实习机会或就业机会。

(四)建立人才培养与学科竞赛互利共赢的长效机制

只有优质的人才培养模式才能造就优秀的人才去参加竞赛,而只有不断取得成果的竞赛才具备榜样示范作用激励更多的人才变得优秀。因此要建立一种长效机制,推动人才培养与学科竞赛的互利共赢。具体的举措包括:通过学校网站、电子屏、海报和专题讲座等多种形式进行宣传,扩大学生的参与面,让更多的学生受益;建立学生创新实验中心,给学生提供训练或研究的交流场所;成立计算机协会或ACM 协会,通过协会来推动学生的参与兴趣;注意学生梯队的建设,营造互帮互学、互相赶超的学习氛围;健全学科竞赛评价激励机制,对获奖的学生,按获奖级别相应给予现金奖励、学分减免或评优保研;对教师给予工作量的补助和现金奖励,或在评优评职称时给予政策倾斜;对组织竞赛比较出色的学院授予学科竞赛先进单位或其它奖励[2]。总之,要充分调动各方的积极性,使人才培养与学科竞赛互利共赢并可持续发展。

三 依托程序设计竞赛,全面提升创新型人才的综合素质

依托程序设计竞赛建立的创新人才培养新模式,主要从以下几个方面全面提升创新型人才的综合素质。

(一)通过比赛营造积极氛围,激发自主学习的积极性

在四级竞赛机制中,无论是作业赛、实验赛,还是市赛、省赛、亚洲区域赛,由于比赛过程中采用的都是动态排名机制,公平公开公正,因此可以激发争上游的热情,而班中部分人的向上精神又会影响周围的另一部分人,以点带面,长此以往则可以慢慢形成较为浓厚的积极向上氛围。通过在线评测系统提交程序,随着评测通过率的不断提高,学生品尝到了无以言表的快乐和成就感,自信心倍增,从而激发出学习兴趣和自主学习的积极性。

(二)拓宽知识面,强化一题多解的创新思维

竞赛模式的题目涉及的知识面是非常广的,几乎涉及除纯硬件之外的所有课程。参与练习或参与比赛越多的同学,其知识面越会得到拓宽与强化。通过精心设计赛题,可以强化一题多解的创新思维。对于程序的运行时间与空间,以及测试数据都要精心设计,让没有经过优化的算法不能顺利通过,以充分锻炼学生的实践能力和创新能力。另外,程序运行的结果要与题意要求的高度一致,培养学生的执行力。

(三)使教师和学生的角色定位与参与更加有利于创新

目前对学生程序设计的评价大多以教师阅读学生程序给出评分为主,但不同学生的编程风格和解题思路各不相同,使得教师的评阅工作量很大,且不能做到精确评价,甚至可能对原本一题多解的创新解答做出错误的评价[3]。而采用竞赛模式的评测机制后,在线评测系统对学生的各种创新解答都可以做到精确评价,这样教师便有更多的精力去指导学生进行解题思路的创新和程序错误的调试。

构建了基于校园网的程序设计在线评测系统后,由于可以通过校园网在校园内的任何地点随时用电脑或手机登陆,在线提交程序,系统自动返回评测结果,因此学生的参与地点不再局限在实验室,参与时间也不再局限在课内,非常有利于学生的自主学习与创新。

(四)锻炼学生的竞争能力和抗压能力,培养良好的心理素质

在四级竞赛机制中,无论是练习赛还是真正的竞赛,参赛队之间都能互相看见对手的做题情况,而且根据答题情况即时进行动态排名,给学生带来了因竞争而产生的巨大心理压力,在压力下能否正常发挥或当答题陷入困境时能否及时调整,良好的心理素质将会起到至关重要的作用。通过平时大大小小不同级别的比赛,可充分锻炼学生的竞争能力和抗压能力,为毕业后能适应工作和社会的压力打下良好的基础。

(五)通过组队训练培养学生的团队协作能力

为了适应软件企业按照软件工程方法进行开发的需求,要尽早地培养学生的团队开发能力。而按照竞赛模式进行组队训练能很好地锻炼这方面能力,因为按ACM/ICPC 规则组织的程序设计竞赛都是3 人一组共用一部机器来比赛,对小组成员的分工协作、默契配合提出了较高的要求,需要具备良好的心理素质和现场应变能力。

(六)培养学生的逻辑思维能力和科研能力

经过竞赛培养的学生具有比一般学生更好的逻辑思维能力和科研能力。因为要想在竞赛中获得好成绩,训练的一个重要目标就是要对解题思路不断创新,对算法不断进行优化。例如,解决同一个问题,没经过训练的同学可能需要花1 个小时编写100 多行代码解决,但经过训练的同学恐怕就只要花几分钟编写几行代码就能快速解决。经过训练的同学其科研能力也相对较强,当然教师还可有针对性地设立研究课题来进一步提高其科研能力。

(七)提升学生的英语应用能力

由于计算机科学中大多数资料都是英文资料,且按ACM/ICPC 规则组织的竞赛大多是英文题目,这让参与其中的学生长期、持续地进行英语学习,提升了英语应用能力。

四 我校的应用效果

2011年9月,我们将前面提出的人才培养模式逐步应用到2011 级学生的课程教学以及程序设计集训队的训练当中,取得了不错的效果。首先,从各种作业赛、实验赛的情况可以明显地看出学生整体的编程水平有了很大提高,而之前用传统的写作业的模式连纠正程序的书写风格都很费劲。其次,从2012年湖南省程序设计竞赛中的表现来看,2011 级学生组成的2 个队都获得了省级二等奖,而在之前参加的3 届省赛中,入学刚满一年的学生组成的队伍连三等奖都从未获过。第三,从竞赛的整体情况来看,我校在2012年的各级程序设计竞赛中获得了很多突破,比如首次获得湘潭市程序设计竞赛一等奖(以前都是湘潭大学包揽一等奖的2 个名额),首次获得湖南省程序设计竞赛团体第四名(以前从未进过前八),首次在ACM/ICPC 国际大学生程序设计竞赛亚洲区域赛中获奖并获银奖(以前连参加现场赛的资格都未获得)。这些成绩足以说明本文提出的人才培养新模式是成效显著的。

五 结 语

将程序设计竞赛引入计算机专业的课程教学体系,可以激发学生自主学习的积极性,锻炼学生的创新能力与团队协作能力,促进综合素质的全面提升,对培养能适应竞赛需求、特别是能适应用人单位需求的计算机创新型人才具有非常积极的意义。

[1]郭嵩山,王 磊,张子臻.ACM/ICPC 与创新型IT 人才的培养[J].实验室研究与探索,2007,26(12):181-189.

[2]瞿绍军.以学科竞赛为载体,培养大学生创新能力— —以大学生程序设计竞赛为例[J].电脑知识与技术,2010,6(15):3980 -3981.

[3]常子楠.基于ACM 模式的程序设计类课程实践教学探索[J].计算机教育,2010(16):144 -146.

猜你喜欢

评测程序设计竞赛
2020丝绸之路数学竞赛
次时代主机微软XSX全方位评测(下)
次时代主机微软XSX全方位评测(上)
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
攻坡新利器,TOKEN VENTOUS评测
我看竞赛
创新思维竞赛(3)
Canyon Ultimate CF SLX 8.0 DI2评测
高职高专院校C语言程序设计教学改革探索