信息学奥赛(NOIP)入门指南(新家长必读)
NOIP是个什么?
全国青少年信息学奥林匹克联赛,National Olympiad in Informatics in Provinces简称NOIP,由中国计算机学会主办,每年的10月初赛,11月复赛,联赛分普及(初中组)和提高(高中组)两个组别,没有年龄限制(浙江省不能参加复试),只要有能力都可以参加。是NOI其他所有赛事的基础。
NOIP学什么?
首先要学习一门编程语言 C++,然后学基础算法和数据结构,用以解决实际问题。目的是锻炼学生的思维和逻辑,提高能力。说简单点就是用编程来解决数学和物理问题。
为什么要学竞赛、打竞赛?
中学阶段的学习目标离不开高考(当然出国党例外),通过高考进入一所好的大学有哪些途径呢?
第一个途径是高考分。考多少分决定了你能进哪个档次的大学。北大清华等一类名牌院校的学生大部分来自全国一流的高中,如果没进入这些一流的高中,想进入一流的大学难度跟成为全国首富差不多。所以,要想一想,你高考到底能考出多少分,就知道你能上什么样的大学了。当然特例年年有,但哪年都不太多。
第二个途径是自主招生。自主招生初审的前提条件是需要有竞赛的奖项,或有发明专利、学术论文等,当然成绩在省级示范高中的前5%也可以。竞赛奖项主要是指五大学科竞赛。初审之后通过测试可以拿到10分—一本线的降分优惠。也就是说,如果你的成绩正好能去东北大学,但自招你拿了60分降分,就可以去上海交大了。自主招生广义还包括各大学的学科营,高一就开始签降分的协议了。
第三个途径,有人说可以找关系,这个我不太清楚,暂略,谁有案例可以补充。
为什么学竞赛、打竞赛?就为这个。长远的益处就不说了,说了你也不一定在意。
为什么要学信息学奥赛(NOIP)?
并不是在五大学科里只有信息学竞赛最好。比较而言,信息学奥赛有自己的特点。
首先,信息学竞赛学习的内容是计算机编程,和文化课关联不大,所以可以随时开始学习,并不要求其他学科一定要学到什么程度。所以,小学开始学习的有,初中开始的有,高中开始的也有。有的学生初中就拿了高中组的一等奖,小学就拿了初中组的一等奖。其他学科就不行了,高中竞赛必须学完高中本学科的必修课程才能开始学习竞赛,所以一般来说,其他学科竞赛的首次参赛一般在高二。
其次,竞争压力略小于其他学科。比如数学,作为考试科目和竞赛科目,参加的人数非常多,高手云集。而信息学竞赛因为是非考试科目,参加学习和参赛的人数比较少,较容易脱颖而出。当然并不是说这个学科内容肤浅,其实内容也很深。
总结一下:参加信息学竞赛学习开始早,首次参赛早,可参赛次数多,竞争压力略小,这是它的优势。获奖之后的益处请复习第一条内容。所以,学信息学奥赛是不是挺好?
小学生可以学信息学奥赛吗?
可以学,但要看年龄和学习内容。信息学奥赛分小学组、普及组和提高组。辽宁不承办小学组,所以不管你几年级都是从普及组(初中组)开始打。
信息学奥赛参赛语言C++比较主流,此外也可以选C、PASCAL、JAVA等。这些编程语言如果年龄太小,在有些问题的理解和使用上会有些困难。所以,我们建议5年级以下的学生可以从可视化编程语言开始学习,比如SCRATCH,先通过这些比较直观有趣的编程语言学习编程的基本思想。5年级以上,最好6年级以上开始学习C++,这样对相对复杂的数学和逻辑问题能理解得相对顺利一点,编程的操作能力也更强一点。当然也有少数5年级以下的学生也能学好C++.
只有高中获奖才对自主招生有效,为什么小学/初中就开始学?
高中三年中的竞赛成绩在自主招生中有效,高中之前的获奖无效。但是,对于难度比较高的学科竞赛而言,可能至少需要两次以上的竞赛才能获得好成绩。一般来说,小学/初一开始学习,如果初中初次参赛获得普及组一等奖,则次年参加提高组竞赛,可能获得二等奖,少数可以获得一等奖。这样有机会获得高中特长生资格,甚至初中阶段获得清北的青睐,高一就有机会参加国赛。提前学习提前参赛的目的都是为了在高中阶段尽早获得一等奖并且有机会参加国赛。
如果从暑假开始或者高一开始学习,当年基本参加不了竞赛或拿不到什么成绩。
NOI竞赛课程得学多少课时?
这是很多初学家长经常问的问题。之所以这样问,是因为大家对竞赛的内容构成不是很了解。
NOI竞赛分省级联赛(NOIP)和国赛(NOIP)两个级别,当然还有国际竞赛,我们在这不介绍。省级联赛分小学组、普及组和提高组,有些省份不举办小学组竞赛(比如浙江),竞赛虽然分组,但不必按选手的年级参赛,可以跨组别参赛。
NOI竞赛主要考察的是算法和数据结构,当然不是考察概念,而是考察能运用算法和数据结构知识进行编程的能力。C++作为基础语言,只是编程的一个工具。这样说我们就清楚了,NOI竞赛课程的内容包含基础语言和算法及数据结构两大部分,主要是后一部分。对应你的参赛级别,学习内容的范围不同,题目的难度不同。
至于学时并不好确定。因为这个课程不是了解知识和概念就可以了,而是需要能够实际编写程序解决问题,这个过程每个学生的差异都很大。
一般来说,C++基础语言要15-20课时,快的也有10个课时完成的,慢的也有30个课时完成的。算法和数据结构是一个较庞大的体系,可以多学也可以少学,主要看目标。目标是省一,学习基础算法就可以,但需要能够熟练应用。目标是省选和国赛,则需要学习中高级算法,也要根据学生情况确定学多少。
所以,对于竞赛我们建议根据目标规划,是一年的规划还是两年的规划。不要试图通过突击一个月就获奖,那不是竞赛,是神话。
--end--
声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com