返学费网 > 培训机构 > 少儿编程培训中心

13081913316

全国统一学习专线 8:30-21:00

近年来关注java 信息学奥赛的用户越来越多,小编整理了关于【洛谷日报#101】信息学竞赛全攻略3:信息学竞赛考什么,信息学奥赛的误区,信息学奥赛获奖学生去了哪?清华、北大、MIT!,如何准备信息学程序竞赛?——我是如何赢得美国信息学奥林匹克竞赛3届金牌的??,供您参考

1.【洛谷日报#101】信息学竞赛全攻略3:信息学竞赛考什么

系列文章分为六部分,本文为第三部分。欢迎关注作者了解相关资讯。学习信息学竞赛的好处是什么?谁说出来就教他!上回我们说到了学习信息学竞赛的原因。但是很多不明真相的家长和老师看到选手一直坐在电脑前,于是认为“玩电脑”,这其实是因为不理解信息学竞赛的考察形式和内容造成的误解。这回作者让大家理解一下这样一个竞赛到底是考察什么东西。信息学竞赛的考察形式分为笔试和上机两种形式。不仅是信息学竞赛,包括计算机考级、生程序设计比赛、信息技术高考等相关考试竞赛的形式也无外乎这两种。信息学竞赛以上机测试为主,但是笔试也是重要的组成部分。信息学竞赛的笔试信息学竞赛无论普及组还是提高组,初赛的形式是笔试,在固定的时间内完成一份试卷,原则上不允许使用计算器但是因考场而异(信息学竞赛比赛流程管理混乱不是一日两日的事情了)。批改是按照市级赛区统一批改然后统一划线决定复赛名单(当然也有城市是将参赛名额分到学校,学校校内进行批改决定名额,虽然这么做是违规的)。信息学竞赛除了初赛是笔试以外,NOI决赛也有100分的笔试环节,全部都是选择题。不过这个题库是提前公布的,选手可以记忆题目通过笔试,所以如果不是因为个别选手手滑太严重,这一部分并不会有什么区分度。信息学竞赛的上机测试复赛、省选以及冬令营、APIO、CTSC等竞赛,以及NOI的主要比赛,都是上机测试,上机测试是信息学竞赛的重头戏,能直接决定你能获得什么奖。根据比赛的不同,每场上机测试限时3-5小时,需要完成3-4个题目。NOIP提高组、NOI和某些省选会分2天进行两次上机测试。上机测试的题型有多种形式,但是无论是什么形式,本质上都是要求你编写程序,可以将给定的输入数据按照题目要求处理成符合要求的输出。最常见的试题形式叫做“传统题”。传统题是指给你一个题目描述、输入输出格式、输入输出样例(有时会给你样例解释帮助你更好的理解题意)以及数据范围,你需要根据这些信息编写出一个程序,能够将给定的输入进行处理,然后输出答案。这边是一个例子(洛谷P1001 A+B problem):选手按照要求编写完程序后需要自己进行测试、保证程序符合题目要求。赛后统一提交并进行评测。出题人会生成构造多组测试数据,向选手编写的程序编译后的可执行文件输入,得到的选手输出和标准输出进行比对;如果选手输出和标准输出一致(或者通过特殊判断认为选手输出是合法的)就能够获得这部分的分数。如果输出了错误的答案或者运行时间过久、运行时错误等问题则不能得分。在省选或者更高级别的竞赛中还会有“提交答案题”。依然会给你一个题目描述,并且给你所有的输入文件。你可以根据不同的输入文件特性来编写相应的程序来处理,甚至不编写程序通过人工方式进行处理(仅限输入规模不大的情况,俗称“手玩”),反正只要你给出一个处理后的答案并且提交就行了。一般来说提交的答案是不唯一的,而且答案可能有优劣之分,优秀的答案会获得高分。这种题目每次比赛最多也就出现一次,而且可能还不一定出。前几年的NOI还会出现一种叫做“交互题”的题型。交互题是给你一个库,要求你编写程序调用这些库,根据库返回的信息进行处理,然后再给这些库返回结果。这种题型现在已经很久没有在NOI出现过了。各种比赛的评测方法也会有一些区别。NOIP、NOI和多数省选是离线测试,选手需要编写程序,等待比赛结束后统一收取程序,然后统一评测给出结果。而APIO和IOI是在线评测,也就是说选手写完程序后就可以立刻提交评测并且获得结果。在信息学竞赛中,出题人往往会在每个题目中分配子任务。通俗来说,对于一道题目,选手可以比较容易的写出一种“比较差的方法”,而水平更高的选手可以写出“比较好的算法”而获得更高分数。区分“算法好坏”的标准就是是否能够通过更多的子任务,这就保证了竞赛难度有一定的区分度。国内的比赛多按测试点给分,但是APIO和很多国外的信息学竞赛会进行捆绑测试,也就是说一个子任务中的一组测试点全部正确才能获得这个子任务的分数。但是据说现行的比赛的形式也有这个方向发展的趋势。一言以蔽之,选手需要根据题目要求完成程序,这些程序有优劣之分,根据通过的测试点分数来区分程序的质量,从而区分出选手的水平。信息学竞赛的语言说到编程,很多人就会想出Java、C++、Python、PHP等常见的工程语言(下图给出了工程中排名靠前的语言)。但是实际上在信息学竞赛中,并不能使用所有的语言。现在(2021年)国内的信息学竞赛只能使用C语言、C++和Pascal。早期的信息学竞赛还能使用BASIC。但是因为一些原因,从2023年开始NOIP将不再允许使用Pascal和C语言。而在国外以及IOI可能还能使用Java等语言,至于国内是否能够解禁新的语言现在不知道。所以说想用Python来参加信息学竞赛的话可能就会让你失望啦。因此如果想问需要学习什么语言,那么唯一的标准答案就是:C++。但是,语言之间并不是互斥的。很多选手能够掌握两门甚至更多种类的语言;实际上只要学好其中一门语言,在学习新的语言就会容易很多。即使初期可能会有一些混淆的习惯但是并不用太担心,写多了后自然就能信手拈来。说到底,在信息学竞赛中,语言本身只是为了解决算法问题而使用的工具,即使是我们钦点的C++,实际上我们能用到的语言特性也只是C++中的一部分(我们经常笑称我们学的实际上是C with STL)。所以虽然需要学习C++语言,但是我们并不需要精通它(实际上也做不到)。因此学习算法竞赛的错误入门姿势是阅读砖头厚的《C++ Primer Plus》等大而全的书籍,因为我们只需要学习最基础的一些语言特性就足以使用了。需要了解计算机本身除了语言,我们会稍微涉猎计算机构造原理的知识。我们需要知道数据在计算机中是怎么表示、储存、运算、演示的。这不仅是信息学竞赛初赛的考点,也会让你更加了解计算机的结构,并且优化算法。至于写游戏写网站这种应用程序倒不是信息学竞赛涉及的内容(虽然初赛的确考过HTML语言,但是非常久了)。只不过了解语言和计算机原理本身的话,对于学习编写“实用”程序,了解软件工程,还是有好处的(见本系列上一篇文章)最重要的部分是数据结构与算法信息学竞赛的核心就是数据结构和算法了。通俗的来讲就是通过编写程序,将输入数据进行自动化处理的方式,可以解决一类确定的问题。数据结构和算法知识相当广泛,也有难易之分。一些算法和数据结构是前辈(可能是数学家、计算科学家、甚至是算法竞赛的选手)创造和优化的。我们会合理利用这些算法知识来编写程序解决问题,甚至自己创造一些算法。学习这些算法是训练竞赛的最重要的部分,需要耗费大量的时间和精力。对于初中普及组来说,需要掌握排序、简单图论、简单贪心、简单动态规划等算法。而对于提高组选手来说不仅需要掌握普及组的要求,而且从深度和广度还要更深,必须需要学习更多种类的动态规划,了解更多的数据结构(线段树、二叉堆等),对思维的要求也更高。至于省选级别的,需要掌握的知识也就更多了。很多选手关心竞赛官方是否存在“考纲”。那我在这边把最新的考纲放出来(source: 信息学竞赛全攻略(五):零基础学生如何入门 信息学竞赛全攻略(六):如何进一步提升算法能力原文地址: 信息学竞赛全攻略3:信息学竞赛考什么欢迎向洛谷日报投稿: 洛谷日报征稿中未经许可,严禁转载!

2.信息学奥赛的误区

信息学奥赛是一个个性化的课程,它的目标性也很强。所以学好信息学奥赛有几个条件:一是学有余力二是孩子喜欢并且适合三是能够坚持并且肯于付出现在很多家长都很关注周围的孩子在学什么,唯恐信息不灵让孩子落在人后。对于竞赛也一样,一些家长是因为听到或看到周围有人在学习竞赛,于是也加入到学习的队伍中来。至于竞赛是什么、学什么、孩子是否适合学并没有清楚的认识。这样的结果是,孩子可能不喜欢或者学习有困难,家长也在学与不学之间摇摆。结果花了一些时间和精力,最后要么中途放弃,要么拿不到很好的成绩。所以,是否让孩子学习竞赛,一定要对竞赛、对课程有个清楚的了解,对孩子有个冷静地评估,并且要有一个长期的规划。因为孩子差异很大,并不是学不了竞赛就没实力,他也可能写作文很出色、也可能跑百米很超常,条条大路通罗马,关键是要给孩子选定正确的路线。那么,下面我们来一起聊聊信息学奥赛学习的误区。A、别人学,咱也学一些家长听到有的同学学习竞赛,最后并没有拿到什么成绩或者在高考中并没有受益,或者政策上有什么调整,马上就动摇了决心,要放弃竞赛的学习。要知道,那个孩子和你的孩子是不同的,他的成功与失败都是有原因的。而你的孩子和他并不一样,怎么会有相同的结果呢?一个典型的例子是,2013年取消了奥赛省级一等奖的保送,很多家长认为奥赛对升学已经没什么用了,所以放弃了学习很多年的竞赛。结果在2014年的自主招生中,各对竞赛获奖的要求更具体、优惠幅度更大、机会更多了。只有那些坚持的学生在2014年、2015年获得了降分的机会,而那些有机会获奖但中途放弃的学生追悔莫及。所以,我们说学与不学都不能盲目。B、拿出几个月,实现个“一等奖”的小目标这是很常见的一种心态,也是家长不了解竞赛并且对孩子的能力过度自信的一种表现。信息学竞赛和其他各科竞赛一样,考察内容大都是程度的内容,而且几万甚至更多的人参加竞赛,其难度远远高于高中阶段的任何考试。所以,一般来说,参加竞赛都必须做一个一年至三年的计划。以信息学奥赛来说,至少要10个月的时间才能保证参赛能力,如果要参加省选、国赛等高级别的赛事,需要更长的学习时间。这些时间除了上课,大部分是通过写题来消化课程内容。用几个月时间拿到一等奖不是没有,但这样的例子并不具有普遍性。对于绝大部分中学生来说,都不具备这样的天资和能力。如果你一定认为可以,那就要在具体的课程中去检验。如果课程进度神速,刷题成绩超高,或许可以。如果只是课程进度神速,刷题成绩一般或者较差,那说明你对孩子的能力估计高了,必须停止“大跃进”式的学习方法。想在几个月内拿到一等奖的家长,还有一个想法是怕耽误文化课学习,几个月拿个一等奖就全身而退,专心搞文化课。这种炒短线的成功率比股票都低。C、我孩子老聪明了,老师您快点讲现在家长大都上过,有文化,这是好事。但也有不好的一面。一些有文化的家长对自己的文化和阅历很自信,所以对孩子学习的课程亲自安排,今天学什么内容,明天做什么习题,都作出很详细的计划,然后让老师去执行他的教学计划。而实际上,家长的主观性很强,作出的计划往往并不适合孩子的学习状况。因为在具体的学习过程中,课程如何安排最有利,执教的老师最清楚。一个是老师的课程安排是基于多年的教学和竞赛经验得出的,二是学生实际的接受情况老师比家长更清楚。这样的家长一听说让自己的孩子在做练习,就觉得老师低估了孩子的能力,就要求老师加快内容的进度。这样的结果,通常都会适得其反。孩子学了很多东西,但解决问题的能力不高,竞赛很难拿到理想的成绩。所以,如果你对授课老师有信心,就把孩子交给老师去安排,你的任务是督促孩子完成老师布置的任务,而不是催促老师“快点讲”。D、有个集训,咱得去如今关于竞赛的各种集训很多,以信息学奥赛为例,就有“联赛集训”、“省选集训”、“冬令营”等等。集训大部分是短期课程,做一些专题的讲座。我们很多家长一听说那有集训,情绪就高涨,马上就报名参加。我见过一个假期参加过两到三个集训的。集训有没有必要参加呢?当然有!但是要看自己的当前能力是不是和集训课程相匹配。集训课程的内容是固定的,但是听课的学生可能有国赛的铜奖选手,还有普及组二等奖的选手,结果怎样可想而知。所以,对集训课程要仔细甄别。通常集训课程都会预告课程内容,如果5-7天的课程要讲15种算法和数据结构知识,那建议您这样的课程可以pass掉。因为把半年的内容放到5天里讲,效果怎样就不必说了;如果5-7天的课程讲几个专题,是靠谱的,那你就要看这个内容是不是适合你的孩子。有些课程是针对省选或国赛的,其内容可能只适合国赛选手和省一里的高分选手,对于大部分学生来说可能完全听不懂。听不懂就只能去见见“大神”们励励志了。对于一些高分段的选手或者参加过国赛甚至拿到过奖牌的选手,集训课的效果会更好,因为他们的知识储备已经到了一定阶段,集训课能听得懂用得上。就像“降龙十八掌集训课”、“打狗棒集训课”、“武功基础集训课”,总得看看孩子练到什么程度了再选课,不能因为“降龙十八掌”是洪七公授课,就一定去先学降龙十八掌吧?E、没拿一等奖,不学了每年竞赛之后,都会遇到这样的家长,孩子没拿一等奖,就很懊恼,愤然放弃竞赛的学习。实际上,孩子是否继续学习竞赛,并不能依据一次竞赛的成绩而定,要分析一下竞赛没有拿到一等奖的原因。有的孩子学了3、4个月,第一次参加提高组竞赛,如果拿到二等奖,其实是一个比较正常的成绩。3-4个月能拿到一等奖的只是极少数的学生。因为在一个年度的竞赛里,参赛的学生有的已经打过国赛,有的上一年度已经拿到了一等奖或二等奖,他们学习的时间可能有2年、3年或者更长。你和这样一批选手竞争,拿到一等奖是你的实力和幸运,拿到二等奖也是一个很不错的成绩。如果想胜出这些选手,除非你有过人的智力和过人的勤奋,否则可能性并不大,除非这一年度往年的选手都弃赛了。一般来说,对于高中生而言,我们建议省赛一等奖至少要做10个月到一年的计划,拿一等奖才是现实的。如果初三或高一拿到二等,到了次年的竞赛,拿省一是很有把握的,如果孩子综合条件不错,高二应该有实力竞争省选。所以,一方面是坚持学习,另一方面是把高年级的强手考退役,你的机会自然就来了。当然,如果家长和孩子都没有信心和计划冲击次年的竞赛,那弃赛也总比三天打鱼两天筛网要好,毕竟高中的时间很宝贵。F、拿出这么多时间学竞赛,太心疼了一切付出都是有回报的。学习竞赛要占据一定学习文化课的时间和精力,这是需要规划和勇气的。尤其打到国赛阶段,很多同学都会阶段性的停课刷题。一些家长担心竞赛不成,文化课又不好,两头耽误。这是个现实的问题。但也要具体分析。1.如果文化课很紧张,平时的时间文化课补习安排的很满,成绩仍然很吃紧,那其实是不适合学竞赛的。这一类同学应该把精力好好放在文化课上;2.还有一类学生,文化课成绩不占优势,但学习也不很紧张,补课不多,那么家长应该清楚,他富裕的时间即使不学习竞赛,也不过是闲置了,还不如利用起来。3.再有一类学生,文化课成绩好,补课也不少,家长神经紧张生怕孩子的排名掉下来,所以有一点时间都会安排孩子学习。这样的学生,家长最应该好好取舍。所以说,所有的付出都会有回报。参加竞赛的目的短期是为了高考能够进入高于自己成绩的,长期来说,到了,竞赛获奖选手的路比其他同学要宽很多。当然就高考来说,有能力拼裸分上北大清华,也是一条出路。G、我孩子文化课老好了,不学那些没用的高考能拼裸分也是一条出路。我们知道,北大和清华高考录取分数奇高,一个考生裸分考入这两所院校十分难得。北大清华每年录取的考生,通过竞赛提前录取的、通过学科营提前录取和降分的、通过自主招生降分的,占有相当的比例。如果单拼裸分,会有相当一批学生上不了北大清华。但是自主招生中各院校之所以愿意给竞赛生降分或免试,是因为竞赛生的专业学习能力要远远超过大部分裸分录取的学生,所以会有大批的学生愿意牺牲一部分文化课来提高自己的专业能力。拼裸分,适合两种学生。1.一种是学霸,裸分就能高出清华录取线30分。当然学霸要保证高考不失误。2.另一种是“学渣”,咋学也考不上一本院校。对于学霸和学渣之间的学生,竞赛是给自己上一道保险,也是让自己锦上添花。H、这次考试没考好,把竞赛停了这种想法,都是因为缺少规划。成绩好了,排名上来了,就来上一段竞赛课,成绩不好了马上把竞赛课停掉。如果成绩的确很吃力,确实应该停掉竞赛,毕竟文化课是主导。但成绩的波动也许和学习竞赛无关啊,比如冲劲没了,学习很松懈,比如谈恋爱了,心思散乱了,比如阶段性的学习瓶颈期到了等等。这些和学习竞赛并无关系,重要的是找出成绩下降的症结,再去好好调整。I、老师,下节课给孩子讲“图论”吧如果你是竞赛的专家,并且亲自给孩子上课或辅导,这种建议是靠谱的,如果只是觉得自己有文化有思想有能力安排孩子具体的课程内容和进度,那一定要洗把脸冷静一下,可能你的要求很不靠谱。我们经常见到这样的家长,很想让孩子快点学快点出成绩,然后通过对课程的研究,给孩子做课程规划,规划的细致程度都可以自己上课了。其实,信息学竞赛是一个注重实践的课程,也就是学生最终要通过上机编程来表达自己对课程的理解。相关知识很重要,但学了就必须能够实际应用到自己的实践中。我们见过的比较失败的例子是,学生在赛前短期内通过各种培训学习了大部分算法和数据结构知识,结果在竞赛中拿到很低的分数,而且丢了不该丢的分,是因为学了拿来用,用了就错,反倒不如那些按部就班学习和刷题的学生。所以,家长如果非专业(竞赛),一定不要做这种不靠谱的要求。J、参赛!参赛!信息学奥赛分几个阶段:一是省级联赛,包含普及组和提高组;二是省选,也就是竞赛省内选拔;三是国赛;省级联赛是赛事,同一张卷,同一时间考试,但奖项是在省内产生,也就是通过测算每个省会给定一等和二等的名额,获奖人是在省内竞争这些奖项。省选也是通过测算给定每个省的名额,然后省内通过考试竞争这些名额,入选的可以参加国赛。各省名额不同,少的3、4个,多的20几个;国赛是省选入选的选手参加,奖项分金牌、银牌、铜牌,是各省的省队选手一起竞争。国赛有个特殊的地方,就是参赛选手除了省队队员,每个省还会分配一定的非正式参赛选手,这个是收费的。非正式选手不参与评奖,但会发成绩证书。关于国赛的非正式选手,每年都有很多人参与,虽然收费不菲,但家长也仍然很踊跃。非正式选手如果成绩达到相应奖牌的分数,其待遇和正式选手是一样的,也能够现场和签约。但是是否以非正式选手的身份参赛,要参考自己的实力。如果已经正常获得省级一等奖,并且分数较高,但因为名额有限没有入选省队,或者往年已经参加过国赛当年没有进入省队,那么去参与一下可能有机会获得好成绩。但是如果在省内排名很低,竞赛又没有偶然性失误,其实是没有必要参加的。当然如果不差钱,又想去参与一下获得经验,也未尝不可。

3.信息学奥赛获奖学生去了哪?清华、北大、MIT!

01信息学奥赛获奖学生去了哪?在了解这个问题之前,我们先来看看究竟什么是信息学奥赛。信息学奥赛:青少年信息学(计算机)奥林匹克竞赛(早期称为青少年计算机程序设计竞赛)是指在广大青少年中普及计算机教育,推广计算机应用的一项学科性竞赛活动。如果想走编程的这条竞赛路子,那就逃不过信奥赛。从难度和规模排序来说,分为以下4个阶段(从易到难):1. CSP-J/S全称是非专业级别的能力认证,每年的3、6、9、12月考试。2. NOI,级比赛NOI是青少年信息学奥林匹克竞赛,是面向中学生的性质的编程最高级别比赛。3. IOI,国际级中学生比赛IOI是国际信息学奥林匹克竞赛,是面向全世界中学生的一年一度的信息学学科竞赛,每个最多可选派4名选手参加。4.ACM,国际级生比赛 主要是指ACM-ICPC,即国际生程序设计竞赛,包括全球总决赛和各大洲的区域赛。IOI 2021 中国籍选手去向统计图表接下来让我们一起看一看2021年信息学竞赛界最牛气的五个孩子,他们都去了哪里呢?01、毛啸曾就读于长沙市雅礼中学,高一获得清华保送资格,高三被世界顶级学府麻省理工录取,成为该校在中国内地录取的五名学生之一,并获得该校提供的5万-6万美元奖学金。被录取:清华、麻省理工最终去向:麻省理工毛啸的成绩也不是与生俱来的,毛啸在一次采访中曾回忆:“信息学竞赛是我小学的时候就开始接触的,小时候有人给爸妈说英语好、数学好的话非常适合去搞信息学竞赛,那时候还叫电脑奥数,我爸妈发现我数学英语还不错,于是就走上了信息学之路。当时我们初学的还是 Pascal 语言,刚学的时候看了一些书,那时候什么都不懂只会对着书抄,甚至还把注释原封不动地抄了上去,有时还忘了打分号。虽然刚开始学的时候很难,但是凭着对编程的兴趣,我还是咬着牙往下学。”2、徐明宽曾就读于北京师范附属实验学校,师从世界冠军胡伟栋老师,高二获得清华保送资格。现就读于清华计算机科学实验班(姚班)。在第29届国际信息学奥林匹克竞赛中以总分第二的成绩获得金牌。最终去向:清华,计算机科学实验班(姚班)在徐明宽的教练胡伟栋看来,他能获得如此好的成绩很大程度上得益于徐明宽扎实的积累和优秀的发挥:“本次(IOI)竞赛试题很难,题型也与以往有些差别,对选手是一个挑战。徐明宽在这次比赛中比赛节奏控制得很好,拼搏也很顽强,抓住了每个得分的机会,最终取得了优异的成绩。这次比赛体现了徐明宽扎实的计算机科学功底和良好的心理素质,我为他的表现感到骄傲!”3、杨家齐曾就读于中山纪念中学。现就读于清华计算机科学实验班(姚班)。高二获得NOI金牌和清华的免试保送资格。在指导教练宋新波眼中,他是一个聪明且勤奋的学生,高中期间已经学完高等数学,计算机和编程能力比很多本科或硕士研究生还强。被录取:清华最终去向:清华,计算机科学实验班(姚班)虽然获得了好成绩,但是从幼儿园到高中杨家齐从未上过校外补习班,三年级之前就是“疯玩”,三年级开始参加学校的信息学奥赛,此后便将信息学作为爱好发展至今。因为家在东莞,杨家齐每隔两三个月才回去一次,他将放假时间都用起来学习。在他看来,要想出好成绩,必须勤奋。除了勤奋,杨家齐还很专注,长期与外界高手保持交流也是他成长迅速的原因之一。“外面的人能让你看到不一样的东西。”杨家齐说。4、钟知闲曾就读于福州一中,十五岁考取福州一中,高一时就摘取 NOI 金牌并入选集训队,保送清华。高二时代表队出战第29届国际信息学奥林匹克竞赛,是今年队唯一的非应届生。被录取:清华 最终去向:已获得保送资格,当前为高中三年级,未进入作为一个畲族的零零后少年,钟知闲很小就与电脑结缘,并深深地被电脑的奇特世界吸引。7岁那年,他开始迷上电脑游戏,8岁顺利拿到计算机二级考试合格证书;10岁参加计算机三级考试,只花了5分钟就“秒杀了”上机考试。然而,最终在高中时获得突出的成绩也不只是靠更早的起点,而更是依赖于钟知闲的努力。据钟知闲爸爸介绍,“知闲做事情经常慢半拍,无论什么考试,他常常最后一波交卷。他做的题也比别人少。别人想不出来,就去看题解,他不,非要自己想办法搞,直到竭尽全力才会去扫一下提示,然后继续自己搞。”5、罗哲正曾就读于安徽师范附中,先就读于麻省理工。高一获得NOI金牌和清华的免试保送资格,高二再次获得 NOI 金牌。2016年,他正在美国马萨诸塞州纪念碑山地区高中当交换生学习,未能回国参赛。最终他以美国学校的在校生身份参加美国当地选拔,在线上赛中,四场全获满分,六场线下赛获得五场满分,入选美国队,并出战国际信息学奥林匹克竞赛获得世界第三的好成绩。2021年,被世界顶级学府麻省理工录取。被录取:清华、麻省理工最终去向:麻省理工据罗哲正自己介绍,他小学四、五年级接触编程。在初中开始学习 C++,初三开始正式参与信息学训练和竞赛并在当年入选安徽省信息学奥林匹克竞赛省队。在平时,他看起来罗哲正不那么像一个典型的理科生,更多给人一种开朗活泼又兴趣广的感觉。他热爱运动,静心阅读,享受旅行。对于未来是否会回国的问题,他表示:“未来回国是当然的,理由很简单,除了是中国人,还因为现在的中国是一片热土,与世界接轨的中国也会有更多的机遇。”02、少儿编程究竟在学什么?一、信息素养和表达能力1. 信息素养和媒体素养( and Media Literacy Skills)对信息素养的简单理解就是:“怎样找到需要的信息?”,“在什么地方用什么方法找到信息?”,“哪些信息是需要的?”,从过程上来看就是:界定所需要的信息→寻找搜索信息的方法→收集信息→运用信息→表达信息→评价信息。信息素养是个人综合素质极其重要的组成部分,它是开拓创新的前提,也是终身教育、学习和不断更新知识的基础,是信息时代人们所必须具备的基本素养。只有具备了一定信息素养的小朋友才有可能将他们的学习延伸到课堂教学环境之外,也才能在步入复杂的社会舞台后进行独立的开拓、研究与发展。媒体素养(Media Literacy)就是一个人认识、评判、运用传媒的态度与能力,是指人们面对传媒各种信息时的选择能力、理解能力、质疑能力、评估能力、创造能力、思辨性反应能力等。培养媒体素养的目标是具备思辨与创建信息的能力,能够用批判性的角度去解读媒体信息, 而不是盲从与媒体信息的指引,也就是在信息化时代面对海量信息时的独立思考能力。许多如英国、加拿大、澳洲等,早已把信息素养和媒体素养纳入正规教育体系中:日本文部科学省于2001年在中小学与高中设立“综合教育”科目,也纳入了媒体素养。新西兰英语课程纲要,他们的小朋友在五年级时就已加入媒体素养的培训。香港从1997年教育改革时开始推动媒体教育, 而自2005年推行的英语新课程及2007年推行的中文新课程,也纳入了媒体素养。各个媒体素养的进程在通过编程工具完成一个具体创作(project)的过程中,小朋友们要学习选择、创建和如何使用不同形式的素材(media),包括了图像、动画、文字和录音等,伴随着项目过程的重复开展,小朋友们能够不断丰富对信息、媒体的认知和使用经验,进而在面对周围环境的大量信息时, 能够具备更强的理解能力和判断能力。"2. 交流能力( Skills)有效地表达和交流需要具备使用媒体素材的能力,例如读写文字、制作图像、视频等等。通过编程工具完成项目,需要反复选择、制作和集成大量的媒体素材,小朋友们要通过对媒体素材的运用来展示项目的创意和目的,也就是要明确、清晰地阐述自己的设想。因此编程有助于培养表达和交流能力。二、思辨和求解能力3. 推理和系统性思考能力(Critical Thinking and )通过编程工具完成创作的时候,小朋友需要调整不同“角色”之间的交互方式和时间顺序,以达到预期的设计效果,例如两个“人物角色”什么时间在什么位置相遇等等。整个过程本质上就是对“侦测”、“反馈”、“运算”和“逻辑判断”等多种基础化的系统概念的反复运用, 从而能够锻炼和提升小朋友的推理和系统性思考能力。4. 界定问题和相应的解决方案(Problem & Solution)完成一个编程项目作品首先需要小朋友规划、构思项目创意(预期的效果),然后确定需要解决的问题以及如何把这些问题分解为若干步骤,最后通过编程工具的“编程积木”拼接来完成这些步骤。编程工具根据“编程积木”的排列,实时、动态地改变效果,也就是当该改变积木的拼接顺序和拼接关系之后,通过鼠标点击积木就可以立刻看到结果,所以能够帮助小朋友们即时发现问题和调整解决问题的思路。通过这样一个互动的、直观的设计和实现过程,可以让小朋友们沉浸在“发现问题、调整思路、获得经验“的反复迭代过程之中,直接锻炼他们的逻辑和推理能力。"5. 创意和求知欲( and Curiosity)在这个不断快速变化的时代,创造性思维是越来越重要的能力。编程能够培养创新能力,因为代码的世界是可以任意发挥创意的世界。编程工具提供能力强大的编程积木(完全符合面向对象编程概念的积木),丰富的各类编程资源,真正模拟了一个实际的编程环境,所以能够引导和鼓励小朋友们不断地求解未知问题,也就是说小朋友除了学习如何解决预定义的问题,在面对未知问题时依然有意愿、有能力去探索新的思路和方法。对未知问题的求解会关联到新的知识领域,需要不断学习。所以培养创造性思维的过程同时也会激发求知欲和培养持续学习的习惯。"三、人际关系和自我指导能力6. 协作和协同能力( and Skills )编程工具是通过拼接图形化”编程积木“的方式完成项目,实现”软件效果“,同时项目中所使用的各种资源(包括角色、积木等等)完全可视化,易于理解和认知,因此小朋友们无需了解编程语言的语法知识就能够学习编程概念。另外编程项目本身以及项目中的资源都可以导出共享, 所以小朋友们可以合作完成一个项目,同时也可以彼此交换、共享各自创作的资源。在合作开发过程中,大家需要对编程项目所包含的任务进行分解、分配,同时还需要把各自创建的“角色”、拼接好的积木进行合并、测试等等,而且整个过程中上述事项还需要重复几次,最终实现最初的项目设计目标。因此合作开发本质上就是一个分工协作的过程,从而能够培养小朋友的协作和协同能力。"7. 自我指导(自我学习为中心)(Self-Direction)使用编程工具完成项目时,需要反复构思项目的目标和如何实现这个目标。项目目标源自于小朋友自己的设想,无论是简单或是复杂,对他们而言都极具意义。因此在实现项目目标的过程中,小朋友们就具备了内在动力去克服各种挑战、困难。被自身的意愿驱动实现一个目标的过程就是一个典型的自我指导过程。8. 责任感和适应能力( and )小朋友使用编程工具完成项目时,存在特定的受众,也就是项目作品展示给谁看,让谁来体验。同时小朋友们还要考虑其他人对项目作品的评价和反应。面对不同的评价,自身的反应、态度和举措其实就是责任感和适应能力的一种体现。因为编程工具可以很便捷地调整项目,小朋友们能够根据其他人的意见和反馈,不断地修改自己的项目作品,使其更加合理、完善,也就是针对项目作品的评价和意见,如果小朋友能够有积极的响应态度,那么编程工具可以帮助其快速改进。因此,在培养责任感和适应能力的过程中,编程可以给予直接的帮助。"

4.如何准备信息学程序竞赛?——我是如何赢得美国信息学奥林匹克竞赛3届金牌的

作者:Andrei Margeloiu,2021 Google HashCode竞赛金牌获得者高中第一年,我从0开始学习了C++。一开始我对编程、算法和数据结构一无所知,几个月之后我才开始写代码,当时计算机信息学奥林匹克竞赛来了,正好我可以试试我的学习方法是否有效。经过2天的比赛,我赢得了金牌。我很震惊,因为我超过了有5年经验的参赛人员,我知道我很努力,但是这个成绩超出了我的期望。这个比赛很适合我,我也因此全心参与其中。我知道是什么让我如此成功,现在也在此将经验分享与你。我需要学习什么语言?C++ 强烈推荐,非常快,由于可以使用STL,可以很方便的实现不同的算法。任何比赛都支持C++,我一开始就是使用这个语言。C语言 —— 如果你懂得C,你也可以使用C++。Java —— 比较慢,但是Java有大整数,不过只有少数题目需要使用。如果题目的时间卡的比较紧,容易造成time limit exceeded。一般比赛都没有Java。你能去哪里练习?推荐SPOJ,上面有大量优质题目,并且有解答。也有对应的支持网站SPOJ.pl。首先,你需要掌握基础知识当你学会基础语法后,你就可以开始解题了。从简单的题目开始,在这个阶段,你的目标是锻炼自己的代码风格。你可能喜欢写代码的时候用很多空格,或者喜欢将大括号放在if的同一行。你需要找到你自己的风格,因为这是你的。在提高你的编码风格时记住如下两点1、实现简单。你应该习惯于对你自己的解题思路,为啥?因为比赛的时候,你最不想发生的事情是迷失在自己的代码中。多思考5分钟,比动手写10分钟要有效的多。2、简单易读。这意味着调试简单。必须承认的是,bugs总是经常出现,你知道当你只有10分钟的时候你却不知道bug在哪里的感受?相信你肯定印象深刻。为了解决这个问题,代码必须易读,这样容易跟踪和调试。如果提高实现的速度?练习、练习还是练习。我建议你先练习SPOJ上解决最多的前250个题目。逐个顺序的解决这些问题,并且思考一个小时以上。不要说“这个问题对我来说太困难了,我想试试下一题。”这是失败者的思维习惯。拿一支笔和一张纸,然后开始思考。这样,你才有可能找到答案,也因此你才能够提高算法思维,如果你思考超过了一个小时,你可以查看参考答案。这个方法的结果是:你能够快速实现算法代码,并且能够学会经典的题目和算法问题。第二点:你必须熟练掌握算法和数据结构通过循序渐进的方式前进。如果不会走路你觉得你会跑步?当然不现实。如果地基不好,你能在上面建造摩天楼吗?当然也不现实。这意味着你不能够把步子跨大了,如果你这样做,你会漏掉很多细节,随着时间的推移会造成越来越大的知识缺口。从基础算法和数据结构开始开始的时候很困难,因为你不知道要怎样开始,我创建了一个算法和数据结构的视频课程,这个课程是按照我的想法来设计的,结果在开始的一个月,竟然有超过来自100多个的3000+的学生加入这个课程。如果你只做简单题,你永远也得不到进步。有效的解决你不懂的问题的唯一办法是找到这些题目然后解决掉。我就是这么做的。通过选择解决一些难题,我学会了很多我从没听过的新技术。你每解决3个新问题,就能学会一些新的知识。如果没有,那么更慎重的选择题目吧,一定要选择难的题目。当你完成了SPOJ上的250道题,你会对算法竞赛有一个大致的了解,通过对基础算法的深入理解,高难度的算法题也会变得更加容易理解,以此你能够快速的运用你的知识。现在开始在各个算法专题上更加深入的学习吧。SPOJ上有很多资源,每个主题都有Top 10的算法和数据结构。除了那250道题,你可以从列表中获得更多题目。也有一些你从没听过的题目,从简单的题目开始学习。如果你不强化你的知识,你就会忘记它。当你学习一个新的算法知识点时,在SPOJ上搜索相同tag的题目,用这个算法做2到3题。理解好DP算法,这是你赢得比赛的必要条件,以我的经验来看,每次比赛至少有一道DP题,许多人会很头疼DP题型。如果你真的掌握了DP算法,你就离成功不远了。我很喜欢DP题型,DP的秘诀是:考虑全局优化,而不仅仅是局部优化。你需要将问题分解成简单的子问题,每次解决一个子问题,最好将这些子问题组合起来形成解决方案。与DP相对的是贪心算法,因为这个算法每一步只考虑局部优化,而局部优化可能导致得不到最优解。当学习新的概念时,可以看一下TopCoder的入门教程,因为这些教程很容易学,我就是看这些才真正弄明白二分索引树的。努力学习你听说过哪个奥林匹克冠军是没有经过数年的刻苦训练才赢得比赛的吗?美国信息学算法竞赛每一年的比赛在九月开始次年四月结束。这中间的八个月时间,我每天练习五个小时。这五个小时我只练习算法题,有些日子我也会花8到10个小时,为什么我能做到这些,主要还是兴趣和热情所在,每天从学校回家我就直接回卧室做题,或者学习这些题里面新的算法。如果你也想拿奖牌,也必须刻苦起来,做题然后坚持,日常生活中也需要多思考,比如你在去超市的路上,或者开车的时候。当你睡觉的时候,你的大脑会重新组织你当天所学的,就像将书本按照字母顺序放到书架上一样,基本上你的大脑会思考每一个你遇到的问题。你可以通过这个特点,在睡觉之前看一道难题,记住这道题需要的知识点,你并不需要解决这道题,然后入睡,你的大脑可以自动开始处理这道题,当你醒了的时候,你会惊奇的发现你已经可以解决这道题了。试试看,你会发现这像黑魔法一样。用vlog记录这一段和竞赛无关,我只是想让你知道,如果你也是20岁左右,你对我看待这个世界的方式比较感兴趣,我在YouTube上有一个vlog,我在这上面发布了我对这个世界、人生和计算机科学的一些看法。更聪明的工作,这是成功的诀窍,你需要一个目标。我们都容易产生拖延症,看美剧总比刷DP容易,但是,你得慢慢纠正这种习惯。如何战胜拖延症?通过制定目标,你总能找到感兴趣的问题,因此才能学到新的知识(上面有很多资料可以参考)。因为上面推荐的SPOJ题目都是必做的,而不仅仅是看看。我就是通过制定目标来克服拖延症的,我用一张纸做了一个日历,上面会标注每天要解决的问题。每次都提前设置好2天的问题,这样我就能知道接下来如何安排时间。通过这种方式,我能够比较积极的完成问题,并且找到新的问题来填充后面的日历,每次完成目标,就会感觉很有成就感,希望你也能喜欢这样。采用纸质日历,不要使用手机上的checklist之类的app,因为到第二天你可能就忘了app上的事情。如何有效的debug?你想变得更加专业?如果是,那么你需要练习通过大脑来debug。这是到目前为止我所能知道的最有效的debugging技术。这种方式完全不需要调试器。你的大脑需要同时处理多个分支的情况,这样你对代码的运行情况会非常清楚,如果你只是局限在调试器,那么你可能很难掌握算法全局的运行状态。这有点类似于大师级的棋手,每次都会往前考虑3步。我把这种技术作为首要调试,最次才会考虑使用调试器。在大脑中调试这种做法需要你不断地练习,当你提交一个问题报错的时候,不要用调试器,而是去阅读代码,思考这一行到底发生了什么,这个if语句会如何影响程序?如果是在循环中,这个iterator的值会是多少?这样你一直独立自己去思考,你后面在写代码的时候其实就是在实时调试。如果你觉得这篇文章对你有帮助,轻点下面的小星星哦。关于作者Andrei Margeloiu是一名热血程序员,爱好创业和自然,你可以在LinkedIn上联系他。更多信息请关注公众号:ACM算法日常

如果以上内容没有帮到您,欢迎电话联系我们,或者联系在线客服咨询

温馨提示:为不影响您的学业,来校区前请先电话咨询,方便我校安排相关的专业老师为您解答
  • 作者最新文章
  • 在线报名
申请试听课程

只要一个电话
我们免费为您回电

姓名不能为空
手机号格式错误