信息学奥林匹克竞赛(信奥)作为培养拔尖人才的重要途径之一,正受到越来越多的关注和重视。它不仅考验参赛者的算法设计和编程能力,更锻炼他们的逻辑思维、创新思维和团队协作能力。通过参与信奥竞赛,青少年可以在实践中学习最前沿的技术和知识,为未来打下坚实的基础。
小码王成立8年来,利用多年来积累的高质量信息学竞赛教学资源和丰富的竞赛培训经验,依托小码王专业、科学、体系化的课程产品,为全国各地众多青少年提供高品质的信息学培训服务,并连续多年在信息学竞赛领域创下丰硕战果。小码王的信奥产品涵盖了从基础到进阶的全方位课程内容,包括但不限于编程语言基础、数据结构、算法设计与分析、编程实践等。课程采用小班授课模式,确保每位学生都能获得充分的关注和指导。同时,小码王还定期举办各种竞赛和C++训练营,帮助学生检验和提升自己的竞赛水平。
![](http://www.cctime.com/upLoadFile/2024/7/26/2024726163826734.png)
小码王分层课程体系
近日,小码王有幸邀请到上海交通大学计算机系博士、华东理工大学计算机系教师罗勇军做客直播间,就信息学竞赛的价值、青少年如何学习编程等话题进行了深入探讨。
罗勇军,上海交通大学计算机系博士毕业,现为华东理工大学计算机系教师。担任华东理工大学程序设计竞赛主教练17年,指导学生参加世界大学生程序设计竞赛ICPC、中国大学生程序设计竞赛CCPC、蓝桥杯大赛,成绩优异,曾两次带队参加ICPC世界总决赛。2019年出版《算法竞赛入门到进阶》,荣获清华大学出版社2019、2020、2021年度畅销书。2022年出版《算法竞赛》,荣获清华大学出版社2022年度十佳图书,CSDN2022年度十大图书。2023年出版《程序设计竞赛专题挑战教程》,蓝桥杯大赛官方备赛书,人民邮电出版社2023年度畅销新书奖。
![](http://www.cctime.com/upLoadFile/2024/7/26/2024726163826580.png)
小码王:算法的起源是什么?算法竞赛又有哪些价值呢?
罗勇军:计算机科学作为一门相对新兴的学科,起源于上世纪六七十年代的美国。1970年,由美国计算机协会发起组织了名为ICPC(International Collegiate Programming Contest)的国际大学生程序设计竞赛,实际上当时计算机理论算法也都处于启蒙时代。随后,80年代开始,中国的NOI(National Olympiad in Informatics,即全国青少年信息学奥林匹克竞赛)等算法竞赛也逐渐兴起,并与ICPC的内容保持一致。
经过多年的发展,中国在算法竞赛方面已成为全球领先,这在我准备撰写相关书籍时,查阅大量资料得到了验证,这得益于中国庞大的人才基数和对计算机发展的重视。计算机行业与算法的重要性日益凸显,除了大学的计算机专业持续火爆之外,更重要的是算法思维与逻辑更是计算机领域的核心。算法竞赛对于培养程序员的核心能力至关重要,缺乏相关培训和知识的程序员,其能力难以大幅提升。
小码王:能为我们整体介绍一下信息学竞赛的大赛体系,以及它是如何助力拔尖人才培养的?
罗勇军:针对中小学生的信息学赛事,CSP是我们在中学甚至小学就开始学习的一个算法竞赛。 NOI(全国青少年信息学奥林匹克竞赛)知识大纲中将知识点分为三个等级:入门级、提高级和NOI级。
(小编整理:
入门级:CSP-J(Junior普及组),主要涉及计算机基础、编程语言、数据结构与算法等方面;
提高级:CSP-S(Senior提高组),主要包括算法策略、数据结构、算法设计与分析、编程实践等;
NOI级:包括IOI\CTS等,主要涉及高级算法、复杂问题分析与解决、竞赛技巧等。)
这就是我们一般的小初学生第一次考是入门级,考过普及组之后再考提高组,那么考生一般就初三的年纪了,而NOI竞赛是高中生参加的。
针对大学生的信奥竞赛,主要是ICPC,实际上中国的NOI的起源也是受ICPC的启发形成的,所以在考试范围,甚至形式几乎和NOI差不多。还有一个竞赛非常普及——CCPC(China collegiate programming contest,即中国大学生程序设计竞赛),相当于ICPC的中国版本。参赛人数较多的还有一个“蓝桥杯”竞赛。这是大学生主要参加人数最多的三大赛事。此外,还有一些具有全国性影响的大型竞赛,如浙江省的“天梯赛”。
小码王:对于想要入门编程的青少年,您有哪些好的建议?如何引导他们走向拔尖人才之路?
罗勇军:我最近在编写一本蓝桥杯入门的书,其中整理了一位华东理工大学竞赛队的队员相关经历,正好符合青少年奥赛的学习历程。
胡同学是华东理工计算机系2021级的,今年正好读大三,他从小学开始就搞信奥竞赛,一直到高中获得了NOI的银牌。大家都知道NOI的金、银奖项含金量非常高,可以获得直接保送清华、北大的资格。
他为什么可以信奥赛搞得这么成功?我认为其中一个很大的原因是对数学有着浓厚的兴趣和学习能力。NOI的大纲中,你会发现里面有很大一部分考点,直接考的就是数学知识,而这些知识实际上就和中小学数学奥赛的考点是完全一样。事实上好多信奥赛的队员是从搞数学奥赛转过来的。计算机算法实际上就是逻辑思维和数学思维的问题。在此基础上,不断地查阅资料,通过大量的练习熟悉编程代码,逐渐掌握算法的核心原理和实际应用。
算法竞赛是一个长期且具有难度的学习过程,不是一蹴而就的,需要好几年的持续学习和实践。正如胡同学,他要参加更多的竞赛,参加更多的训练,以赛促学,不断克服难题,用不同的方法解决问题,通过竞争获得荣誉,然后激励自己。他说:“我们在提升过程中不断克服新的难题,就像爬山一样,一步一步台阶地往上走,遇到难题,就投入大量时间来分析优化算法,然后用不同的方法来解决问题”。
这一方面和赛制有很大的关系,算法得分标准是:用简单方法得30%的分数,用中等方法得70%的分数,用很难的方法得到100%的分数。所以,要学会用不同的方法来解决一个问题。
随着胡同学对算法和数据结构的掌握加深,他开始参加更高级别的竞赛,不断的磨砺自己学习编码,参加竞赛,这样才能够不断提升,最后他在高中获得了NOI的银牌。进入大学后,他迅速成为学校竞赛队的主力,并获得多项荣誉。
总的来说,数学是信息学竞赛的核心能力,此外还需要投入大量时间学习,不断做题、与同学互相促进,并持续参加竞赛来检验和提升自己的水平。总之,坚持和克服困难是取得好成绩的关键。
小码王:我们应该怎么看待孩子的整个信息学学习进程?
罗勇军:信息学奥赛和数学、物理等学科竞赛很不一样,这些学科是直接和高考挂钩,而信奥赛实际和高考没有很大的关系。但是它火爆的原因,很大程度上是因为这是社会需要的,计算机毕业生工作相对好找,所以它热度很高。
我认为,学习任何一个竞赛的学习过程都是逐步的,从基础到中级,再到高级。所以,建议家长为孩子制定一个长期的计划,逐步实现目标,以减少焦虑。比如说,我个人建议早点开始,从小学5、6年纪就可以开始,甚至更早一点,经过1-2年的语言学习基础训练,参加普及组的比赛,然后提高组可以规划3-4年的学习。只要一步一步,脚踏实地的准备,就会出成绩。
说到升学,我不是专业的专家,但是说到信奥赛对孩子的帮助,我从一个大学计算机系教师的角度看,信奥赛获奖者在社会上有更多成功的机会。首先,经历过信奥竞赛并获奖的人,他们对自己的能力非常自信,会成为很多网络公司或者新兴的人工智能公司的创始人或者技术负责人。其次,他们对待困难的心态是得到多长期训练的,抗压能力很强,所以他们创业或者在工作中更容易成功。
小码王:从入门到进阶,我们青少年应该怎样去学习编程,以更好地走向拔尖人才之路呢?
罗勇军:第一个就是要发挥主动性。经过好几年学习,觉得自己有一些编程能力了,并且喜欢上了编程了,所以你会更加主动的去学习,靠别人逼是逼不出来的。
第二是通过大量的练习来维持学习状态,提高编程能力。算法竞赛也是一个竞赛竞技的东西,一定要维持状态,天天要大量的练习。
此外,提升编写代码的速度。竞赛时间是非常短的,所以编码速度一定要非常快才。平时我们做题不要慢悠悠,比赛就几个小时,所以平时在编码的时候一定要掐表,每做一题要清晰地知道是在多长时间内之前做完的。我甚至还跟同学们建议,敲键盘时候一定要把指甲剪干净,不要留长指甲,影响敲键盘的速度。
最后,我想说,把最好的状态、最好的精力都花在备赛的工作,我相信只要你付出了,后面肯定会有所收获。
小码王:对于孩子来说,他遇到困难了怎么办?他自己怎么去度过这个难关?
罗勇军:对于未成年人,家长、教练和老师有不可推卸的责任。一个学生在学习过程中肯定会遇到大大小小的困难,那种极度自律的学生很少,和大学生不一样,未成年人需要更多的外界约束。所以需要教练、父母、老师他们的鼓励和正确的引导。
学习是一个过程,从简单到难,遇到困难是必然的。但只要按部就班地做,克服困难总是可以的。初学者可能会感到更难,但学习时间越长,克服困难的能力就越强。只要肯花时间去克服,后面的路反而可能更好走。
小码王:能系统地谈一谈《算法竞赛》这本书以及学生们该如何借助这本书进行学习吗?
罗勇军: 实际上,我已经写了好几本关于“算法介绍”的书,后面我还是会继续写。2019年写的第一本书叫《算法竞赛入门到进阶》,当时是试水之作,但是写的很认真,出版之后收到了很多反馈。而后我发现中国市面上还缺少一本能全面包含信奥所有知识,所以我希望能够尽可能写出可以囊括几乎所有知识点的书,当然实际上不可能囊括所有,但是涵盖80%-90%已经非常不容易了。当时恰好在疫情期间,正好有时间、精力全身心投入到这本书的撰写之中。
![](http://www.cctime.com/upLoadFile/2024/7/26/2024726163826621.png)
图片来源于网络
另外一个原因是学生在学习算法时,遇到不会做的题回去网上搜索,但是网上的信息良莠不齐,很多信息是不具备很好的参考价值的。所以我当时就想写一本书,细解释每个知识点,包括其理论、原理、复杂度,以及典型的经典例题。
这本书很大的一个亮点在于我对于每个知识点都做了“追踪溯源”。特别说明一下,中国的算法竞赛因为经过了很长时间已经变得非常厉害,甚至有很多的算法知识是中国参加竞赛的学生发明总结的。为了确保内容的权威性,我联系了算法竞赛界的权威人士和第一创作人,如曾经的IOI国际金牌获得者杜瑜皓等,他们至今活跃在各大竞赛之中,请他们审阅并提出意见。
除了知识点外,我还注重代码的风格和整洁性,为每个经典例题提供了精心总结的代码。代码怎么写更加简洁,能更加容易看明白,写得更快,这个代码风格是非常关键的。所以我在书中每个代码我是仔细总结过的,当然不一定所有都是我的原创,我把很多代码揉在一起,提取方案,选出其中最好的部分搞成一个经典代码。
这本书得到了很多教练和读者的认可,他们认为代码的风格很有价值。未来几年,我将重点放在教材编写上,继续推出新的算法方面教材。
小码王:讲一讲您身边一些学生的故事给大家鼓劲
罗勇军:我自2005年起在华东理工大学担任教师,并开始带领学校的竞赛队。在早期的几年里,我其实并不太懂竞赛的相关内容,反而是跟队员们一起学习,他们成为了我的老师。后来,这些队员中有很多人成功创业,尤其是在2010年左右,那时候在中国创业相对容易。他们中的许多人,如刘同学和周同学,都取得了显著的成就。
刘同学是一个生动的例子。他原本是生物专业,但在接触算法竞赛后,发现了自己对编程的热爱。他开始全身心地投入到竞赛中,甚至一度差点耽误了专业课程,好在他及时补上了专业课程顺利毕业。然而,他的努力最终得到了回报。毕业后,他放弃了生物专业,一心扑在了IT上面。他在腾讯工作了一段时间,然后勇敢地选择创业。虽然他的第一次创业尝试并不算成功,但他从中汲取了经验,最终在阿里工作几年后,再次创业并取得了巨大的成功。
周同学也是竞赛队的杰出成员,也是我们竞赛队队长,他去参加大学生世界编程设计总决赛那年也正好是我第一次带队参加世界总决赛,他不负众望得到了金牌。他在毕业后加入了微软,工作几年后,在李开复的创新工场开始工作。后来,他也成功地孵化、创办了自己的公司,为淘宝的数百万商家提供服务。他的成功证明了他在技术领域的深厚实力和热情。值得一提的是,他在去年以30+的高龄参加了ICPC杭州区域赛,再次获得了金牌。即使现在已经成为了一位成功的老板,他仍然保持着对技术的热爱和追求。
尽管现在的创业环境比过去更为艰难,但IT行业的创业机会仍然相对其他专业来说较多。华东理工大学以及其他高校都培养了许多在IT界取得杰出成就的学生,他们的成功故事激励着更多的人投身于这个充满挑战和机遇的领域。
小码王:送给学生们一些受益终生的寄语
罗勇军:对于中小学生而言,选择新奥赛这个方向是非常有前景的。进入大学后,专业往往决定了未来的职业方向,换行业难度较大。而当前全球竞争主要集中在中美之间,关键领域包括人工智能、计算机、芯片等,都与IT行业紧密相关。如果个人在中小学期间就对新奥赛表现出兴趣,并能坚持学习并取得成绩,那么这个方向不仅与世界上最热门之一的行业相吻合,也决定了将来中美竞争的关键行业。个人兴趣、社会需求与国家发展方向的高度一致,将带来人生的幸福和完美。因此,能够静下心来学习信奥赛,并取得好成绩,同时真正喜欢IT,将来选择计算机或相关专业的学生,其个人发展将与国家社会需求高度匹配,实现完美人生。