感受ACM-ICPC竞赛的教育意义
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
感受ACM-ICPC竞赛的教育意义
ACM-ICPC竞赛和培训模式在一定程度上将基础学科很好地运用于程序设计当中,帮助学生加强学习和理解;其竞赛题目需要融入很多相关学科知识;选手通过培训和学习,能够更好地掌握更多的基础学科知识,提高思维能力。
我是从高中开始接触程序设计类竞赛的,当时程序设计竞赛叫做信息学奥林匹克竞赛。
对于我来说,三年的竞赛生涯有些枯燥,我牺牲了很多假期时间待在机房和竞赛小组的伙伴们一起学算法、做程序题,并于2001年、2002年获得全国信息学奥林匹克分区联赛一等奖(相当于学科竞赛的省赛一等奖)。
尽管我们当时没能更进一步入选省队参加全国赛,但我却因此被保送到心目中理想的大学,并学习软件工程专业。
高中的我对于程序设计类竞赛的意义有些置疑:似乎花了那么多的时间,只是学了一些算法,会编一些没什么实际意义的程序,拿了几个奖被保送读大学而已,好像还没有学习计算机应用开发技术来得实在。
所以,那时我并没有太多关注ACM-ICPC。
后来,当经历了一年多的大学生活后,我发现竞赛带给我很多知识、技能以外的东西。
比如我觉得大学里每天听老师授课的效率不如看书自学的高,比如自己在学习计算机相关基础课程时感觉比别人更轻松,而这些都与我高中的竞赛学习生活密切相关。
在高中的竞赛培训中,老师很少通过上课的方式给我们灌输知识,而是安排我们学习,告诉我们去看哪些书、做哪些程序题,并且组织我们进行交流讨论。
如果我们发现自己的知识存在缺陷,再翻阅相关资料进行学习。
这样的模式能够锻炼我们的自学能力,让我们知道应当如何去获取知识、提高能力。
可以说,这时我才深切感受到这些程序设计竞赛的内涵,它教给我们的是计算机科学的基本思想和内涵,教给我们的是学习计算机科学的方法,是真正的授之以“渔”,而不是授之以“鱼”。
2005年9月,软件学院代表学校参加ACM-ICPC竞赛,这时我才真正有了接触这个竞赛的机会,并做起了小教练,负责组织培训、参赛工作。
其实当时我对ACM-ICPC竞赛了解得也不是很透彻,而且当时离各赛区的比赛开始只有一个月的时间。
等到我们完成队员选拔、组好参赛队时,已经错过了国内杭州赛区和成都赛区的报名时间。
缺乏教练经验的我组织队员匆匆培训、练习了不到一个月,就参加了北京赛区网上预赛,并获得了出线资格,让北航在近年来第一次顺利晋级,并且组织了一支全部由大一学生组成的队伍参加北京区的决赛。
在决赛期间,我有幸与北大的李文新老师、浙大的陈越老师、中山大学的郭嵩山老师以及国内其他各高校的教练老师进行一些交流和讨论,更深刻地体会到该竞赛的意义与内涵。
现今大学计算机学科教学中主要存在着基础教学与实践运用的矛盾。
一方面,基础教学远离实践运用。
数学等基础教学科目与计算机学科的实践应用相差太远,理解起来很困难;程序设计、数据结构、算法等课程还是采用卷面考试的方式来考核学生的知识掌握能力,很难考察出学生的真正应用能力;学完高级语言程序设计、数据结构课程后,拿了高分可还是不会编程的学生大有人在。
另一方面,学生太注重实践运用而忽略基础学习。
往往,学生比较容易被眼前流行的计算机技术吸引,愿意学习最新的计算机技术和技能,而对相对较为枯燥的基础学科尤其是数学类课程很反感、排斥,因此忽略了这方面的学习。
这样学生在初期虽然能够学好一些计算机应用开发技术,可在更高层次的开发中却显得后劲不足,缺少基础学科的知识支撑。
而ACM-ICPC竞赛和培训模式在一定程度上将基础学科很好地运用于程序设计当中,帮助学生加强学习和理解;其竞赛题目需要融入很多相关学科知识;选手通过培训和学习,能够更好地掌握更多的基础学科知识,提高思维能力。
如果只靠大学课程里算法和数据结构的基础知识来提高程序设计水平和竞赛能力,是远远不够的。
参加ACM-ICPC竞赛的选手,只有通过各类竞赛试题,发掘和深入学习相关的学科知识,如离散数学、图论、概率论、计算几何学等知识,锻炼出全面的程序设计和算法思维,才可能成为赛场上的顶尖选手,具备今后在计算机科学研究领域更强的实力。
我想,这也是现在程序设计类竞赛选手非常受微软、Google、IBM等IT巨头青睐的原因。
ACM-ICPC竞赛不仅在知识层次上高于中学信息学竞赛,它在参赛形式上也有更高层的含义。
中学竞赛是个人参赛,而ACM-ICPC竞赛是以队伍形式参赛,三名选手需要分工协调、互相配合,而这也是取胜的关键所在。
在组织竞赛培训时,重要的不是老师的水平和能力,而是如何很好地安排选手去发掘式地学习和提高。
而团队在更多意义上是能够创造出一个良好的氛围,最大程度地激发选手之间学习的积极性和创造力。
为了组织好北航的参赛工作,2005年我没能真正上场比赛,多少有些遗憾。
但两个月ACM竞赛的组织工作,让我完成了由高中信息学竞赛选手到ACM大学生程序设计竞赛小教练的转变,我从中体会到了这个赛事及其培训对计算机专业学生学习计算机科学的重要意义。
2006年,除了要更好地组织好学校的参赛及培训组织工作,带动北航的竞赛学习氛围外,我自己也要作为选手,与其他选手一同在竞赛中学习,去赛场上好好拼搏一番。