依托大学生计算机程序设计竞赛,探索信息学科创新型人才培养新模式

2009-06-18 05:05李玲芝徐俊易险峰
计算机教育 2009年12期
关键词:程序设计竞赛算法

李玲芝 徐俊 易险峰

摘要:大学生计算机程序设计竞赛旨在培养大学生的团队合作精神,提升大学生的创造力以及在软件开发过程中的创新意识。本文在分析当前高等院校计算机教育现状的基础上,探索了信息学科创新型人才培养的新举措,新模式,有着重要的意义。

关键词:大学生计算机程序设计竞赛;信息学科;人才培养;创新

中图分类号:G642文献标识码:B

高等学校是知识创新的基地、人才培养的摇篮,高等教育是培养创新人才的重要途径。在我国发布的2006—2020年《国家中长期科学和技术发展规划纲要》中,进一步明确提出了推进国家创新体系建设的宏伟蓝图和具体规划。创新的关键是人才,人才的成长在教育。中共中央国务院《关于深化教育改革全面推行素质教育的决定》中明确指出:“高等教育要重视培养大学生的创新能力、实践能力和创业精神”。《高等教育法》明确指出:“高等教育的任务是培养具有创新精神和实践能力的专门人才。”因此,培养具有创新精神的综合高素质人才越来越受到社会和高校的重视。

1现状分析

尽管近年来国内大学计算机实践教育得到重视并与以前相比有很大的改善,但仍存在很多的不足。首先是没有形成一个有利于培养信息学科高素质创新型人才的培养体系;其次当前教育形式重于实质,在人才培养过程中没有从根本上进行教学方法和技术的改革;再次很多学校重视理论教学和课堂教学,轻视实践环节和工程训练过程,缺乏有利于学生开展科技创新活动的实践平台;最后计算机专业主要的专业基础课程,如程序设计、数据结构与算法、人工智能、算法分析与设计等只强调从理论上对知识点的掌握,对程序的实现重视不够,造成有相当数量的本科生程序实现和调试能力很差。加上作业布置量严重不足,实验检查只注重程序能否运行,作业检查只注重书面的标准答案等,束缚了学生的创新能力。而且大作业(或课程设计)过多采用小组形式考核,造成小组其他成员滥竽充数,动手能力差。以笔试为主的考试形式,对计算机这种操作性较强的学科来说,很难考核到学生真正的水平和能力。

计算机专业的本科生在大学四年中,课程内要求完成的编程量太少,专科层次的情况更糟糕。一个考试成绩很好的学生可以为考试将经典的算法死记硬背下来,他可以对经典的算法讲得头头是道,然而就是不会写程序,不能实现自己的想法,这种现象并不罕见。以湖南省四届大学生程序设计竞赛为例,前面几名基本上被国防科技大学、中南大学、湖南大学等少数几个学校包办,很多学校甚至多次出现“0”解题情况,这都说明在大学生中提升程序设计能力亟待加强。

2信息学科创新型人才培养新模式的探索

当前,大学计算机专业教学中主要存在基础教学与实践运用的矛盾。一方面,基础教学远离实践运用。数学等基础学科与计算机学科的实践应用相差太远,理解起来很困难;程序设计、数据结构、算法等课程还是采用卷面考试的方式来考核学生的知识掌握能力,很难考察出学生的真正应用能力和水平;学完高级语言程序设计、数据结构课程后,拿了高分可是不会编程的学生还大有人在。另一方面,学生太注重实践运用而忽略基础学习。学生往往比较容易被眼前流行的计算机技术吸引,愿意学习最新的计算机技术和技能,而对相对较为枯燥的基础学科尤其是数学类课程很反感、排斥。这样,学生在初期虽然能够学好一些计算机应用开发技术,可在更高层次的开发中却显后劲不足,缺少基础学科的知识支撑。

一方面大学生程序设计竞赛及其相关的培训在一定程度上能够将基础学科很好地运用于程序设计当中,帮助学生加强学习和理解。竞赛题目融入了数学、物理学、逻辑学及其它相关学科知识,仅仅依靠大学课程中的计算机算法和数据结构课程的学习是远远不够的。大学生程序设计竞赛通过各类竞赛试题,让各级参赛选手发掘和深入学习相关学科知识,如离散数学、图论、概率论、计算几何等,锻炼出全面的程序设计和算法思维,提高今后在计算机学科领域更强的科研能力和创新能力。这也是现在程序设计类竞赛选手非常受微软、Google、IBM以及中软国际等IT巨头青睐的原因,像Google、Baidu等在国内某些高校招收毕业生就只招参加过这类竞赛的学生,从这种角度上来说,依托程序设计竞赛,构建创新型人才培养新模式有着重要的意义,同时这对促进大学生的就业也有着指导性的意义。

另一方面大学生程序设计竞赛旨在培养各级参赛选手的创造力、团队合作精神以及在软件开发过程中的创新意识。与ACM/ICPC类似,竞赛题目难度大,强调算法的高效性,不仅要解答一个指定的命题,而且要以几乎最佳的方式解决此命题;它涉及知识面广,与大学计算机系课程如程序设计、离散数学、数据结构、人工智能、算法分析与设计等相关课程直接关联,对数学要求很高。在参加程序设计竞赛的过程中,学生获得的除了关于对应题目的解决方法、思维方法以及提升自身的洞察力和解决问题的能力外,程序设计比赛同样也提高了学生包括创新能力在内的其它各个方面的能力。在实际的解题过程中,需要学生博览群书,掌握各种不同的知识,这其中有日常教学中所涉及的知识,但更多的是教学内容外的知识,这就要求学生有能力从各种渠道获取相关的信息资料,进行了解、学习、分析,并把相关的知识转化为解决问题的钥匙。这与大学教育的主要教育内容“培养学生的自主学习和思维的能力、创新能力”是相同的。此外,大学生程序设计竞赛中一般包含了部分英文题目,英语在当今国际交流越趋紧密的环境下已经成为一个必备的工具,这对学生综合素质的提高也有积极的作用。不仅如此,良好的团队协作和心理素质同样是获胜的关键。参加了程序设计比赛之后,压力下正常发挥水平以及团队协作能力都会有长足的进步。从实际情况来看,参加竞赛的学生在程序设计竞赛之外的其它学科都表现优秀,相对于其他同学有更加强的科研能力、创新能力和学术水平。很多参数队员,不仅在现场赛取得了很好的成绩,而且还撰写、发表了较高水平的学术论文。

第三方面大学生程序设计竞赛采用5小时全封闭式竞赛,没有任何的作弊成分,真实反映了学生的实际能力;同时大学生程序设计竞赛又是一种“开卷考试”,可以带任何书籍类纸质资料,不需要死背算法,更强调算法的灵活运用和创造;并且竞赛有严格的数据测试,完全由机器来评判,排除了因评委的主观因素而造成评审不公平的现象。正是这个原因,使得大学生程序设计竞赛在很大程度上给人一种积极向上、公平、公正的感觉,大部分参赛的同学赛后反映,总觉得自己还可以做得更好,令他们产生一种要继续学习的动力。由于产生了兴趣,参加大学生程序设计竞赛就变成一种发自内心的热爱,一种对梦想的追求,一种推动前进的动力。

实践证明,积极组织开展大学生程序设计竞赛活动,能弥补目前大学计算机实践教育存在的不足。各个高校相应地组织校内比赛,同学们在准备竞赛的过程中,自学大量的算法知识,并在国内外网站的OJ系统(Online Judge System)上完成大量的题目练习,一个好的程序设计竞赛选手一年完成的编程量至少是他同学大学4年完成的平均编程量数倍甚至更多。

3结语

总之,依托大学生程序设计竞赛,大力开展科技创新活动,构建信息学科创新型人才培养实践新模式,这对于提高大学生的创新意思与创新能力、提升大学生的整体综合素质将有着非凡的意义。

参考文献:

[1] 施荣华,雷日告. 中南大学信息科学与工程学院计算机科学与技术专业培养方案[Z].湖南:中南大学.2008.

[2] 赵辉.大学生创新素质培养的思考[J].大连大学学报,2006,27(3):108-109.

[3] 李鸿雁.知识经济时代大学生创新能力培养[J].社会科学论坛,2007(6):115-117.

[4] 朱蓉.依托程序设计竞赛,探索创新素质教育新模式[J].嘉兴学院学报,2007(5):117-119.

[5] 王宏,吴文虎.清华实践教学“赛课结合”新思路[J].计算机教育,2006(7):10-12.

猜你喜欢
程序设计竞赛算法
基于OBE的Java程序设计个性化教学研究
项目化教学在Python程序设计课程中的应用
C++程序设计课程教学改革研究
医学专业“Python程序设计”课程教学改革总结与思考
数学潜能知识竞赛
Travellng thg World Full—time for Rree
创新思维竞赛(3)
学习算法的“三种境界”
算法框图的补全
算法初步知识盘点