乔亚男 程向前 谢涛(西安交通大学 计算机教学实验中心,陕西 西安 710049)
国内外大学计算机学科竞赛培训模式研究*
乔亚男程向前谢涛
(西安交通大学 计算机教学实验中心,陕西 西安 710049)
为了在课堂教学之外进一步提升大学生的计算机实践技能,计算机学科竞赛越来越得到各个高校的重视,而参赛学生的赛前培训是竞赛准备的最重要环节之一。文章通过对国内外知名高校赛前培训过程的调研,分析了竞赛培训的几种模式,提出了有关规范计算机学科竞赛赛前培训工作的几点建议,以提高学生参赛的积极性和主动性,为取得更好的竞赛成绩打下坚实的基础。
计算机基础教学;实践教学;计算机学科竞赛;培训;国外教育模式
为适应新时期、新技术的发展形势,带动同学们对计算机知识的学习热情,大部分重点高校目前都采用了一定的途径来选拔计算机程序设计能力较强的同学来参与高级别的计算机学科竞赛,为这些优秀的学生提供展示自我的舞台。文章作者对国内外各大高校计算机竞赛培训方式进行了调研,力求探索出一条有特色、有效率、符合国情校情的竞赛培训道路。
计算机学科竞赛是面向大学生开展的科技竞赛活动,旨在提高大学生的计算机学科应用与实践能力,促进计算机学科的课程建设,培养大学生的创新设计能力[1]、综合设计能力、团队协作精神乃至人文素质培养[2]。其意义和重要性主要体现在以下几个方面:
(一)增进学校之间交流,展示和评价自我
计算机学科竞赛是为各高校师生提供了交流的平台。通过参加计算机学科竞赛,参赛选手不仅要在比赛中展现自我能力和水平,而且也要从各个方面看到自己与其他参赛选手之间的差距,正确的认识和评价自己,相互学习、相互提高。
(二)增加学科沟通,提高各方面能力
学生除了学习专业本身的知识理论外,还需要学习现实工作生活中可能遇到的各种问题的解决方法和相应的思维方法,而这些方法的学习并不能只依赖学生本专业的教育,需要从其他学科中汲取知识和经验教训,有日常教学中能涉及到的,但更多的是正常教学内容以外的其他学科知识,这就要求学生能从各种渠道获取相关的信息资料,进行了解、学习、分析,并把相关的知识转化为解决问题的钥匙[3]。
(三)促进教学质量的提高
从报名准备到竞赛结束整个周期内,指导教师通过带队参赛,可以更好地了解学生的学习情况,在以后的教学制定出更加完善的教学计划,提高计算机教学的质量和教师的教学水平;还可以深入了解计算机学科方面的前沿理论、技术和成果,为学校今后开展新的教学方案奠定基础。这样不断地丰富课程教学内容,可以更好地适应信息时代对技能型人才的素质要求,提高人才培养质量[4]。
计算机学科竞赛的组织方式一般分为开放式、半封闭式和相对集中、封闭式四种类型。开放式是指将题目要求公布在指定位置,各个参赛队或者个人自行看题目,并在规定的时间段内完成该题目。半封闭是指比赛期内,各参赛队或者个人必须独立完成竞赛题目,不得与他人商量和交流,任何教师不得介入,但学生可以离开赛场查阅各种有关资料,在规定时间内用餐和休息。相对集中是指参赛学校安排本校所有参赛队集中在几个实验室内完成全部竞赛任务。封闭式指参赛期间,各参赛队或者个人要单独完成,不能和其他人商量和交流,不能查阅资料。大部分竞争性较强的大型学科竞赛的决赛阶段均为封闭式进行。
(一)国内高校的培训方式
国内各大高校为了能在各软件大赛中取得较好的成绩,都会对参赛的同学进行一定时间的相关培训[5,6]。尽管不同高校采取的培训方式和教学内容不尽相同,但是还是存在很多相似之处。
*基金项目:西安交通大学本科教学改革研究青年项目(1502Q-16);西安交通大学基础课程改革校级重点项目(1502Z-19)。
作者简介:乔亚男,男,讲师,研究方向为信息检索与自然语言处理。
1.人员的选拔
软件大赛大致分为两类,一类是以语言和算法为主,属于个人赛;一类是以项目为主,属于团队赛[7]。其实这两类大赛并没有严格的区分,在人员的选拔上也基本相似。不同之处在于,选拔团队赛的选手时不仅要考虑选手个人的长处和优点,还要兼顾考虑到选手的团队协作能力、与他人的沟通交流能力和心理素质。
2.队员分组
由于不同学生的编程能力各有差异,如果培训难度太大,对于基础比较薄弱的学生来说会比较吃力,跟不上进度,也会打击他们的积极性,如果培训难度太小的话,对于水平较高的同学来说又觉得没意思是在浪费时间,因此根据成员的水平的高低进行合理分组是非常有必要的。针对不同水平的分组因材施教,不同组别根据实际情况实行不同程度的培训强度。
3.基础知识的培训
基础知识是解决所有一切难题的基础,而所谓的难题,其实也不过是基础知识的综合运用[8],所以只有把基础知识牢牢的掌握了、吃透了,才有解决难题的能力。对于基础较好的同学基础知识的培训进度可以相对加快,在难点易错点进行重点讲解,不仅要做到”知其然“,还要做到”知其所以然“,而对于基础相对薄弱的同学,进度可以稍微放慢,确保他们能跟得上,能学有所获。
4.实战训练
项目实战是提高编程能力的关键,因此培训过程中的实战训练阶段至关重要,对大赛结果起着决定性的作用。指导老师可以参考和研究一下以往的大赛真题,将其作为实战项目布置给每个小组,并且对项目的进度划分时间轴,根据完成情况给予不同的奖励。这样不仅使参赛同学有了项目实战的机会和经验,并且能将所学的知识学以致用,在用的过程中加深理解和掌握。
(二)国外知名高校的培训方式
通过对斯坦福大学、哈佛大学、加拿大的卡尔加里大学等国外高校相关网站的调研,发现这些国外知名大学一般并没有太严格培训过程,参赛学生大多是基于个人兴趣或者团队共同喜好而自发地参加比赛。大部分的参赛队员是在一个俱乐部(如哈佛大学的hc3俱乐部[9]、卡尔加里大学的Problem Solving Club[10])或者校内社团内选取的,俱乐部或者社团是各个学科汇集的地方,有助于学科的交流与沟通。与国内相比,参赛者的选取更加自由,并不局限于计算机学科人员,其他学科人员也可参加。
国外高校对参赛人员的培训主要是通过在线评测的方式进行的,哈佛大学hc3俱乐部会提供在线题目的练习(如ACM Boston Preliminary Programming Contest)。在线评测系统有很多如Peking Online Judge、UVA、URAL、SPOJ、SGU,让学员可以自发在评测系统上进行练习。遇到解决不了的问题可以去俱乐部网站进行提问交流,也可以在一些论坛请教高手,如piazza[11]、github等。
更为重要的一点是国外更为注重学生更早地接触到计算机编程的相关知识。在高中期间,学生可以进行报名参加一些计算机程序设计大赛。如斯坦福大学的Stanford ProCo就是专门为高中生准备的一种计算机程序设计大赛,让他们组队参加[12]。这样可以更早地培养学生对计算学科的兴趣和爱好,拓展思维,提高团队合作精神。
国内外对于培训方式的区别主要在于:国内是在一定的程序步骤下对参赛人员进行培训,能够集中解决参赛人员的问题,便于管理和培训参赛人员,为参赛人员打下坚实的基础。缺点是学生的自由空间会有所减少,创新思维受限。国外一般没有特定的培训程序和步骤,主要靠个人的兴趣与爱好来学习,自由空间比较充足,可以随时进行时间的安排。缺点则是太过于自由,依赖学生的天赋与自觉性,管理起来较为不方便。总之,要在集中培训的基础上,给学生以适当的空间,尤其是人员选取方面,要广撒网,让不同学科之间的学生多交流心得,以促进学生创新思维的打开。
通过对国内外高校的调研,各其所长,总结如下几点建议来规范计算机学科竞赛赛前培训工作:
(一)专人负责,规范过程
计算机学科竞赛的组织要有专门的人员来负责——竞赛负责人。竞赛负责人主要负责计算机大赛的相关事宜,包括比赛的组织与实施、指导教师队伍的搭建、参赛队员选拔与培训、赛后经验总结、参赛队伍梯队建设等事宜。形成一套系统、有效的竞赛组织与培训程序。由竞赛负责人统一对有意向参赛的学生进行选拔,然后选定培训老师对学生进行统一的培训和组织,有利于集中提高参赛队员的整体水平。
(二)选人不拘一格,提高创新思维
计算机竞赛并非是专门为计算机专业的学子而设置的,各个专业和学科都可以报名参加。每个学科的思维方式、解决问题的办法不尽相同,各有千秋。计算机学科中的数据结构、算法设计等知识固然重要,但解决题目时不乏其他学科的思维,如数学、概率论、物理等基础学科。在参赛队员配队中保持不同专业学科的学生配队会有比较好的效果。计算机竞赛为不同的院系的共同合作与交流提供了机会[7]。
(三)赛前充分准备,保证比赛顺利进行
要准备好竞赛培训和比赛所需的常规耗材,并确保一定余量。不但要确保培训时每位参赛人员都能有自己的一台电脑进行培训,也要确保正式比赛中意外情况的发生(如电脑死机、停电),备足材料以备不时之需,在关键时刻为比赛争取时间,提高效率。
计算机学科竞赛为培养学生的创新能力、实践能力、应用能力、团队合作精神等综合素质提供了一个良好的机会。通过计算机学科竞赛可以增加不同学科和专业之间的交流,促进各个学科之间的合作。不但可以促进不同学科间学生的沟通,而且能够开拓学生的思维方式和视野,有利于学生各方面的提高。
[1]教巍巍,褚治广,李昕.大学生计算机应用创新能力培养的研究与实践[J].中国大学教学,2014(6):42-44.
[2]戴红,于宁,常子冠.计算机竞赛中大学生人文素质培养的研究[J].计算机教育,2014(4):18-21.
[3]陈康民,龙晓莉.程序设计竞赛对教学作用的研究[J].时代教育,2007(6):3-4.
[4]李杰.指导学生参加ACM程序设计大赛的实践总结[J].才智,2015(5):143.
[5]黄小莹,金劲彪.提升大学生科技竞赛能力的途径探析——以浙江树人大学多媒体竞赛为例[J].中国大学教学,2013(6):37-39.
[6]周燕,曾凡智,杨广发.科技竞赛驱动及多知识点融合的计算机学科创新人才培养模式[J].计算机教育,2012(16):19-22.
[7]邱富军.大学生电子设计竞赛培训思考[J].泸州职业技术学院学报,2011(4):17-19.
[8]夏海英.提高竞赛类学生C语言编程能力的对策——以蓝桥杯软件大赛为例[J].广西教育,2015(7):34-35.
[9]Harvard computing contest club[EB/OL].[2016-5-1].http://www.s eas.harvard.edu/hc3/.
[10]Problem Solving Club[EB/OL].[2016-5-5].http://psc.cpsc.ucal gary.ca/.
[11]Piazza:The incredibly easy,completely free Q&A platform [EB/OL].[2016-5-11].https://piazza.com/.
[12]Stanford Announces ProCo for High School Students[EB/OL]. [2015-5-1].http://www.edsynergy.org/stanford-announces-procofor-high-school-students.htm.
To further improve the computer skills of university students in addition to classroom teaching,universities are placing extra emphasis on computer contests and the students training is one of the most important aspects of contest preparations.Through researching the pre-contest training processes of some famous domestic and foreign universities,this paper analyses some training modes and proposes some advice to regulate pre-contest training for computer science contests,which can improve enthusiasm and initiative of students and lay a solid foundation for a better result.
fundamental computer teaching;practical teaching;computer contests;training;education modes of foreign countries
2096-000X(2016)16-0007-03
G642
A