APP下载

程序设计大赛对高校创新人才培养的作用

2011-12-31李尤丰

计算机教育 2011年18期

  摘要:目前,全国各高校计算机类专业一般都会对低年级学生开设一门程序设计语言类课程。此阶段学生还未学习计算机专业其他知识,探索研究该阶段学生参与程序设计大赛,对学生成长为创新型人才的作用有重要意义。以金陵科技学院信息技术学院学生参与各种程序设计大赛的效果为例,文章提出程序设计大赛是高校培养创新型人才培养初期的一种模式,并从多个方面论证程序设计大赛对提高学生综合素质的作用。
  关键词:程序设计大赛 创新型人才 模式
  文章编号:1672-5913(2011)18-0004-04 中图分类号:G642 文献标识码:A
  基金项目:南京市教育科学研究“十一五”规划2009年度立项课题(L09/004);金陵科技学院第一批特色教改课题(2010TSJG-05)。
  当今世界正处在快速发展阶段,世界多极化、经济全球化,科技进步日新月异,全球思想文化交融、交锋并呈现新特点,人才的重要性日益显现。转变传统教育观念,改革人才培养模式,加强创新型人才的培养已成为高校面临的紧迫问题。
  创新的关键在于人才,而创新人才的培养主要靠教育。本文将讨论程序设计大赛对计算机专业低年级学生的培养作用,并讨论它对高校创新型人才培养的作用。
  1 高校计算机专业低年级人才培养的现状
  目前各高校计算机专业学习初期,都开设有C、VB、VFP、Java等各种程序设计语言类课程,且一般都是通过期末考试或者课程设计完成程序设计语言类课程学习效果的检验。这种检验只是对计算机语言课程的基础知识进行一般的检验。这种检验没有拓宽学生的知识面,没有再提高学习能力,没有进一步提高编程能力,更没有进一步提高学生逻辑思维、创新精神能力。人才培养初期缺乏宽度、深度和精度。
  是否有一种模式,能够很好地检验程序设计语言类课程的学习效果,同时快速提高学生编程能力,拓宽学生知识面,培养其超强的逻辑思维能力,并使他们达到一定的创新思维能力。
  程序设计大赛无疑就是解决上述疑问的一种模式。学生利用课余时间,在准备参赛的过程中要学习大量的知识。竞赛涵盖的范围很广,要求有专门的机构或部门负责参赛相关工作。赛前对学生进行相应的培训,拓宽知识面,培养逻辑思维能力。另外参赛都是在计算机上进行,要进行基础知识和各类题目编程,动手能力得到训练和加强。这样的培养过程将有效改善目前高校计算机专业人才培养的现状。
  2 程序设计大赛的特征与优势
  程序设计大赛是一种在计算机专业学习初期采用的培养创新型人才的模式,是工业和信息化部指导的面向大学生的学科竞赛和群众性科技活动。它以语言为依托,以算法设计为重点,立足行业、结合实际、实战演练、促进就业;是政府、企业、协会联手构筑的人才培养、选拔平台。
  目前培养选拔人才的平台的主要合作模式[1]有:
  1) 建立联合实验室。这种模式范围广,受益学生多,深受广大高校欢迎。
  2) 科研项目与技术工程项目联合开发。这种合作模式内容深入,有利于培养高层次创新人才,为企业带来更多实质利益。
  3) 资助大学生的科技创新活动。这种模式对创新人才的培养最有效,但受益学生较少。
  4) 实践教学基地。在企业设立实习岗位,建立毕业设计和毕业论文基地等,这种模式是校企合作的纽带,受益学生颇多。
  程序设计大赛是不同于上述四种模式的另一种平台合作模式,多由政府发起,多个企业和各高校共同参与。由工业和信息化部人才交流中心举办的2010年“全国软件专业人才设计与开发大赛”,就有摩托罗拉等多个知名企业参与。与一般的比赛相比,程序设计大赛有其自身的特点和优势,参与企业都会为成绩优异者提供较好的后续发展机会。例如上述设计与开发大赛为所有参赛选手进行免费职业素质评测,为总决赛获奖选手提供名企招聘机会,并为其提供优先录取北京大学硕士研究生资格等等。又例如,ACM/ICPC(ACM International Collegiate Programming Contest,国际大学生程序设计竞赛)是由国际计算机界历史悠久、颇具权威性的组织ACM(Association for Computing Machinery,国际计算机协会)主办的,世界上公认的规模最大、水平最高的国际大学生程序设计竞赛[2]。该竞赛一直受到国际各知名大学的重视,并受到全世界各著名计算机公司的高度关注。如果参赛选手在省内、国内获奖,将获得去外地参赛、甚至出境去新加坡、韩国、日本参赛的机会。如果在国际比赛上获奖,世界级著名计算机公司将提供该生就业机会。
  获奖能够为学生带来非常多的荣誉(奖励学分、奖学金)和很好的就业机会。获奖当然是有难度的,但学生为获奖付出努力的过程也是高校培养人才的过程。这样的过程有企业的关注和参与,培养的学生就与行业发展紧密结合,自然也就提高了高校毕业生的就业竞争力。这样的培养过程将夯实高校创新型人才培养的基础,加快创新型人才培养速度,切实有效提高创新型人才的实用性。
  金陵科技学院信息技术学院学生已成功参加由工业和信息化部人才交流中心举办的“全国软件专业人才设计与开发大赛”一次,在江苏赛区和全国比赛中获得良好成绩。获得成绩的学生在众多学生中比较耀眼,并且已经成为学弟学妹们的好师长,也已经被有项目的老师看中,进入金陵科技学院软件实验室以及其他某些实验室。这样的学生将来的就业是没有问题的,并且可以选择较好的单位就业。目前我校2010级的大一新生就积极参加我院举办的ACM班,甚至出现全班报名参加的情况,有一部分应归功于获得成绩的学生对于其他学生的激励作用和刺激作用。
  金陵科技学院信息技术学院已组织学生参加过两次ACM大赛。其中2010年进入了中国赛区的决赛。虽然最终没有能够拿到什么名次,但是已经是金陵科技学院信息技术学院以及我院学生不小的成长和进步。总结这些比赛,学生和老师都觉得与老高校和名牌高校的差距还是蛮大的,这也将激励着应用型本科院校的老师和学生继续努力前进。
  3 程序设计大赛的作用
  1) 能够大幅拓宽学生的知识面,促进学生知识的再生。
  程序设计大赛涵盖的范围很广,有简单题、计算几何、数论、组合数学、搜索技术、动态规划、图论等等[3]。涉及问题具有极强的算法性,如八皇后问题、迷宫问题、汉诺塔问题、树的广深度搜索等能够培养算法思维。赛前2~6个月的短期集训能够大幅提高学生的分析、思考、处理及编程等知识能力。赛前大量针对性的专家培训、编程练习、模拟实践、算法思维训练等能够促使学生高效利用课余时间,帮助学生提炼所学知识,引导学生触类旁通,举一反三,使知识再生。例如金陵科技学院信息技术学院从2008级(现在已经大三)计算机信息类专业大一大二新生中选拔,成立程序设计大赛ACM班级,聘请专家对该班进行培训和指导,要求学生定期完成培训作业和训练,支持学生参与各类科研项目。ACM班学
  生无论基础课还是专业课的成绩都是遥遥领先,这就验证了学生各方面知识能力在参加大赛后得到很大提高。
  2) 能够培养学生的学习主动性,激发学生的创造力。
  程序设计大赛的赛前准备,不会占用教学计划涉及学时,要求学生利用课余时间,投入精力,换来更多的“财富”,学生学习主动性得到培养和提高。程序设计大赛覆盖面大,竞争性强,不同高校,层次不同的学生一起比赛,是对学生很有意义的锻炼。对赛题的讨论和钻研有助于培养学生的学习兴趣;通过参加比赛能够促使学生分析自己的不足,认识自己与别人的差距,便于在后继学习中查漏补缺,有助于培养学生的学习主动性,有助于确定学生的学习目标;学校或组织方相关条文的支持有助于推动学生学习、参与的积极性。积极有效的学习,必然激发学生的创造力。
  
  3) 能够培养学生的自信心。
  自信是一种人格魅力,有助于人一生的健康发展,因此培养学生的自信心是高校人才培养环节中的重要一环。程序设计大赛有助于培养学生的自信心,比赛前期的准备就是开设第二课堂,训练解决问题的能力。学生通过学习,学会独立解决某些疑难问题,感觉充实而骄傲,从而获得自信;大赛获奖体现了学生的实力,使其拥有成就感,从而增加自信。点滴成就都将有助于鼓励学生充满信心,继续充实大学生活。如由工业和信息化部人才交流中心举办的2010年“全国软件专业人才设计与开发大赛”。金陵科技学院获得江苏赛区一个一等奖,二个二等奖,若干三等奖和优秀奖。发现很多优秀高校并没有获得一等奖,这给了二类高校学生很大鼓舞。“不比别人差”成为激励二类高校学生学习的动力。
  4) 能够培养学生的团队合作精神,加深师生情谊,促进师生人才队伍建设。
  大赛赛题多为大型实践性问题,只有学生共同参与,积极讨论,集思广益,共同实践才能较好地解决问题,并以高质量的论文方式呈现。这就要求学生能够发挥各自优势,有很好的团队合作精神。另外很多大赛以队或组的参赛方式出现,这也要求各队中各成员优势互补,协调性好,具有良好的团队合作精神。
  师生情谊是一种财富。为圆满地完成程序设计大赛,管理教师组织学生有序参赛;专业教师努力备课突击学生培养,和学生一起探讨研究赛题;实验管理教师尽责维护比赛设备和环境,配合做好后勤工作。期间教师和学生同吃住,紧紧地和学生团结在一起,有助于加深师生情谊。
  在培养学生的过程中,各岗位老师尽职尽责,高校教师队伍的合作能力和人才建设也加快了步伐。
  5) 能够培养学生的适应能力。
  程序设计大赛持续时间一般都较长。例如由工业和信息化部人才交流中心举办的2010年“全国软件专业人才设计与开发大赛”赛时为6小时,中间不能随意离开考场。分秒必争,高效又紧张的长时间投入,能够培养学生的适应能力,使学生具有持久思维的耐力,过硬的身体素质。计算机专业的学生一般以编程作为职业生涯的第一步。由于行业的特点,编程需要程序员经常加班加点,不断思考、解决问题。能否适应艰苦职业的第一步,关键就是看学生的思维、体力等适应能力。
  不同赛事强调不同的知识掌握程度。例如全国软件专业人才设计与开发大赛强调扎实的基础知识,强调对具体问题的分析、思考、处理及编程实现等能力。ACM大赛强调算法实现能力,强调解决问题的速度,提倡独立思考,提出不同意见,同时也要进行团队合作解决问题。参与不同的赛事能够有助于培养学生的高度适应性。
  6) 能促进实用型人才培养,加强与企业互动。
  程序设计大赛的赛题都是源于生活的实际问题,体现了比赛的现实意义,缩短甚至消除了理论与实践的差距。大赛能够培养学生的动手能力,培养学生解决实际问题的思考能力,给以后的学习和工作提供相应的思考方式。例如金陵科技学院信息技术学院条文规定,参加程序设计大赛的学生,有进入专业实验室的机会。进入专业实验室,意味着给学生提供专用的设施,给予学生参与教师科研项目的机会,意味着有更多的实战经验。这样的规定,有助于提高学生参与大赛的积极性,有助于大范围提高学生的动手能力,体现高校人才培养的实用性。
  程序设计大赛有助于直接与企业互动。由于程序设计特殊的平台模式,表现出色的学生能够有机会去大型企业参观、体验、实习甚至就业。例如,参加国际ACM大赛获奖的学生有机会进入IBM公司就职。直接的企业互动有助于学生了解计算机行业最前沿的技术、最热门的话题,有助于学生早期规划职业生涯,减轻学生就业压力。与产业界的直接互动也为学生提供了良好的实训机会,为学院提供良好的产业研究课题。产业界的技术专家更是为教学提供了鲜活的实例和宝贵的经验,实现了高校与企业双赢。
  4 结语
  程序设计大赛基于所学专业知识,以赛促学,为
  推动软件开发技术的发展,促进软件专业技术人才培养起到了积极作用。大赛向软件行业输送了一大批具有创新能力和实践能力的高端人才,提升了高校毕业生的就业竞争力,全面推动了行业发展及人才培养进程。
  程序设计大赛的成功举办,将有力推动学校软件类学科课程体系和课程内容的改革,有助于培养学生的实践创新意识和能力,有助于提高学生工程实践素质以及学生分析和解决实际问题的能力,有助于激发学生在软件开发领域的学习和研究兴趣,提高学生软件编程能力和职业素质,有利于加强我国软件专业人才队伍后备力量的培养,提高我国软件专业技术人才的创新意识和创新精神[4]。因此,程序设计大赛对高校计算机专业的人才培养起着至关重要的作用。
  当然,程序设计大赛对人才培养的作用与其他方式对人才培养的作用比较究竟如何,能否进行相应的量化比较;能否将大赛前的培训纳入教学计划,如何纳入,等等。这些都是值得深入研究的后续课题。
  参考文献:
  [1]