浅谈程序设计竞赛

发表时间:2020/9/3   来源:《科学与技术》2020年3月9期   作者:张惠晴
[导读] 纵观计算机专业业内各项比赛,国际大学生程序设计竞赛(ACM-ICPC)独占鳌头
        纵观计算机专业业内各项比赛,国际大学生程序设计竞赛(ACM-ICPC)独占鳌头,备受互联网行业用人单位青睐。与其相类似的比赛例如由工业和信息化部人才交流中心主办的蓝桥杯全国软件专业人才设计与创业大赛、教育部高等学校计算机类专业教学指导委员会和浙江大学主办的团体程序设计天梯赛等程序设计竞赛也备受关注,这些以独立思考、合作解决问题的程序设计竞赛从较浅层次来讲可以锻炼作为一名程序员所需要的编程能力,因此很多计算机相关专业的学生在大学期间都会参加一些相关的程序设计竞赛以提高自己的专业能力。诚然此类竞赛远非人们所觉得的那么遥不可及,很多人从高中开始便有着信息学竞赛基础,他们思维敏捷,平时勤于训练,以造就了未来能够成为高级程序员的基本素质。
        然而对于一个专业的信息学竞赛选手来说仅仅有编程能力是远远不够的,因为在解答每一道竞赛题的过程中,我们不仅要思考这个问题应该用什么样的算法,什么样的思路去解决,有哪些算法可以用来实现,所选算法有着怎么样的时空复杂度等,我们更要知道这个算法如何去进行优化,如何去提高自己所写程序的效率,毕竟所有问题的求解都是效率至上。同时,我们在解决每一个题目时都可能会出现超出时间限制,内存超出限制,格式错误等等,要成为一名合格的信息学竞赛选手,要的不仅仅是思维敏捷的头脑,也应该有一个细心严谨且慎重的心,要既能顾全大局又能谨小慎微,在各种现场比赛中又要足够冷静,即使泰山压顶也要能时刻保持从容平淡的心态。
        程序设计竞赛的基础主要是高级语言程序设计、数据结构、算法分析与设计。作为计算机专业的同学,高级语言的学习是必不可少的。但很多知名高校的计算机专业在低年级就要求学生接触程序设计竞赛,把数据结构和算法分析与设计作为基础课程,以用来加强他们代码能力的培养以及引导他们创新思维的形成。掌握良好的数据结构基础能够帮助计算机专业学习者更好的理解计算机内各种信息在物理和逻辑上的存储方式,能够使得学习者不断对自己的程序实现进行优化处理。数据结构之于算法是至关重要的,精通数据结构方可徜徉算法的知识海洋,没有数据结构的基础计算机程序的设计可以说是一场空。
        程序设计竞赛能够有效的激发我们学习的主动性、思考的创造性和团队的合作性,有利于培养计算机类创新型人才。众所周知,学习之中没有什么是可以一蹴而就的,这一点在程序设计竞赛方面更是如此。要想在信息学竞赛中取得好成绩,不论是高中时的全国青少年信息学奥林匹克竞赛,还是大学里的国际大学生程序设计竞赛,都需要付出两至三年日复一日的艰苦集训,而这种集训大概和备战高考前的三轮复习一样,不断的学习新知识,巩固新知识,不断的刷题。每一个奖项,都一定是万千题目堆砌而成的。

而这种训练通常很难从老师处得到精确的指导,因此信息学竞赛选手的自学能力和自律能力就显得尤为重要了。一个好的信息学竞赛选手一定会具备突出的自学能力和动手能力,在后续的工作或研究生活中一定会比大多数人突出。国际大学生程序设计竞赛(ICPC)是一个三人组队式的比赛,通常需要队内三人分工学习分工合作,良好融洽的契合能力能够使得整个团队在比赛中发挥得更出色,而这种默契需要在年复一年的艰苦训练中培养而成。参与过此类训练培养的学生,通常能够具备较好的团队协作能力。
        计算机科学与技术专业是一个飞速发展的学科领域,其源动力来自于不断创新。因而,创新能力是高质量人才的灵魂。而程序设计竞赛即是培养创新发展思维的强大助推力,思维能力能在程序设计竞赛中得到很好的体现。若想成功的在一场程序设计竞赛中崭露头角,其思维的跳跃性,灵动性必不可少。然而所有程序设计竞赛打的好的并非全是天才,我们不否认天赋异禀的人的存在,但作为一名普通人也是可以通过自己不懈的努力和学习去锻炼自己的创新思维,强化自己的创造力。在研究每一个要求解的问题的过程中,我们的创新思维能够不断地得到锻炼和提升,我们不仅要思考为什么已有算法不能通过判题,还要研究在已有算法的基础上应该做出何种优化才能使得解题效率更高,在这种训练下,一个人的创新能力能够得到极大的培养。一旦这种创新思维形成,将不仅于我们的专业有益,再更多的专业之外的活动,如创新创业等方面也将有积极影响。
        程序设计竞赛是永不过时的话题,因为它几乎可以凝结一个优秀者最优良的品质:吃苦耐劳,刻苦钻研,临危不乱,谨小慎微,灵活机变等等。总要尝试一次编程竞赛,才能体会到在高压之下仍然要坚持不懈,不到最后一秒决不放弃的感受。曾经在赛场上多次看见过在最后一分钟通过一道题,实现了从铜牌到银牌的跨越或从无奖到铜牌的跨越时,那些团队的喜极而泣,大概就是程序设计精神的最好体现。在经历的几场比赛中,也深感“细节决定成败”之道理所在,因为任何一个被你忽视的简单的小细节都将导致你整个程序无法通过判定。算法说难不难,说易不易,修行在个人,要看个人深入钻研的程度,努力和成就总是成正比的。
    程序设计竞赛的核心是算法的应用,而算法的应用之于现代信息科学技术的发展也是至关重要的。算法的每一种优秀的创新创时代优化方法的诞生都必将引起信息科学技术的变革,它所影响的就不仅仅是编程竞赛答题方面了,而未来也可广泛应用于人工智能、深度学习、计算机视觉等方面。算法是基础,对于我们未来升学,就业的影响之大是为大众所公认的,所以我认为,每个计算机专业的同学都应该掌握夯实的算法基础,并不一定要求每个人都去参加程序设计竞赛,但至少在算法的学习过程中总是能得到意想不到的收获和不同寻常的体验。
         
参考文献

1.《以ACM-ICPC为核心的学生培养体系实践》张仕,吴闻,严宣辉
投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: