NOIP 信息网开通近半年以来,得到了对“信息学”学科有兴趣的同学、家长和老师们的广泛关注。在新的一轮 NOI 系列竞赛准备开始之际,本着更好地进行“信息学”科普的想法,我们在这里对信息学相关的信息进行一些汇总,让大家能更有方向感地学习信息学。

什么是信息学

信息学(Informatics)一词在很多场合是计算机科学(Computer Science)的代称。在中国大陆地区,特别是中学阶段主要指计算机科学中关注“计算机理论与算法(Theory and Algorithms)”的子领域。

信息学竞赛

对于很多同学来说,在中小学阶段提到“信息学”这个词,第一反应就是在后面再加上“竞赛”、“奥赛”、“奥林匹克”这样的字眼。

其实在国内与信息学相关的奥赛的标准名词是 “全国青少年信息学奥林匹克竞赛(National Olympiad in Informatics)”,简称 NOI。各省、自治区、直辖市及特别行政区会派出代表队参赛。期间,举办同步夏令营和网上同步赛,更多信息学爱好者和高手提供锻炼机会。

与信息学相关的其他主流竞赛还包括:

  • 全国青少年信息学奥林匹克联赛(National Olympiad in Informatics in Provinces),简称 NOIP。每年在秋季学期举办。由中国计算机学会进行全国统一命题,以省为单位在同一时间、不同地点由各省特派员组织考试。分为普及组、提高组两个组别。提高组的选手将有机会参与省队选拔获得进入之后全国性比赛的机会。
  • 全国青少年信息学奥林匹克竞赛冬令营(National Olympiad in Informatics, Winter Camp),简称 WC。由中国计算机学会每年在寒假期间开展的为期一周的培训活动。冬令营共 8 天,包括授课、讲座、讨论、测试等。其中 50 名前一年 NOI 诞生的国家集训队成员中将产生 15 名作为中国国家队候选队员。非国家集训队成员也可以自愿参加,获取比赛经验。
  • 国际信息学奥林匹克竞赛中国国家队选拔赛暨全国信息学奥林匹克精英赛(International Olympiad in Informatics, China Team Selection Contest),简称 CSTC。由中国计算机学会每年春季举办,从 15 名中国国家队候选队员中选出 4 名国家队成员。非国家队候选队员也可以自愿参加,获取比赛经验。
  • 亚洲与太平洋地区信息学奥赛(Asia Pacific Informatics Olympiad),简称(APIO),该竞赛为区域性的网上准同步赛,是亚洲和太平洋地区每年一次的国际性赛事。中国赛区由中国计算机学会承办,中国赛区前六名会计入亚太地区总榜和其他参赛国家一起进行排名,其他选手可在中国赛区内获得排名与奖项。
  • 国际信息学奥林匹克竞赛(International Olympiad in Informatics),简称 IOI。每年由不同主办国轮流举办。中国代表队 4 名队员由中国科协和国家自然科学基金委资助,中国计算机学会带队出赛。

信息学竞赛之路

参与信息学竞赛一般分为两个阶段“非主线选手”、“主线选手”阶段。

  • 对于“非主线选手”,参与的多是非上一部分介绍到的主流信息学赛事或没有晋级机制的 NOIP 普及组竞赛。
  • 对于“主线选手”,参与的则是“NOIP 提高组-省选-NOI-WC-CTSC-IOI” 这条竞赛主线。

·非主线选手之路

非主线选手一般是小学生或初中低年级学生,对于这些选手来说,最重要的事情是要确认自己是否有兴趣、有信心学信息学,在学信息学的过程中是否能产生强烈的成就感。在确认之后,转入主线选手的学习道路。

非主线选手往往会参加地方举办的区赛、市赛、省赛。不同地区的政策有较大差异。有的地方区赛、市赛、省赛是分层晋级,下一级组织代表队参加上一级比赛;有的地方的区赛、市赛、省赛则是互相独立,报名没有资格限制。

非主线选手一般也会参加 NOIP 普及组的竞赛。但就实际情况来看,有一些客观因素会导致部分选手无法参加这一比赛:

  • 往年有小学生获 NOIP 普及组奖的地区:安徽、北京、广西、湖南、山东、上海、四川、新疆、福建、广东、黑龙江、辽宁、山西、河北、天津
  • 往年初中生、小学生均无法参加 NOIP 普及组的地区:陕西、内蒙古、青海、西藏

有一些地区会将上述这些非主线选手参加的比赛所获成绩与小升初阶段的超常学生实验培养、初中升高中的“科技特长生”、“信息学特长生”等挂钩。

·主线选手之路

主线选手的参赛路径就比较清晰了,只要按照“NOIP 提高组-省选-NOI-WC-CTSC-IOI”进行“打怪升级”即可。

在上图中:

  • 深蓝色展示的是如果一切顺利情况下,一轮比赛就全部晋级的路径;
  • 红色是展示的是如果第一轮中折在某一环后,第二轮回继续参加时的情况(如果第二轮折了,有可能还会有第三轮,以此类推即可);
  • 灰色展示的是可选择参加的对晋级没有直接帮助的一些相关活动或比赛。

信息学竞赛相关政策

除了我们在之前已经提及的“非主线选手参加的比赛所获成绩与小升初阶段的超长学生实验培养、初中升高中的‘科技特长生’、‘信息学特长生’等挂钩”的政策。主线选手在参赛过程中的信息学成绩也挂钩了不少政策,我们接下来从搞到低依次进行一下列举:

  • 代表中国队出战 IOI 的选手除可以获得保送外,在申请海外名校的时候也可谓是顺风顺水,过往有多名放弃清华、北大保送的选手获得 MIT 的 Offer 和全额奖学金。
  • 在 NOI 中获得前 50 名,进入国家集训队可以获得大学保送资格,自主选择通过保送进入清华大学或北京大学。
  • 在 NOI 系列赛事中获得较为优异成绩的学生将有机会参加清华大学、北京大学组织的体验营(冬季、春夏之交各有一次),获取签约降线录取的机会。
  • 在 NOI、NOIP 赛事中获得奖项,将得到双一流高校在相关专业自主招生录取方面的普遍认可,获得降线录取的机会。
  • 在部分信息学普及程度较高的地区,初中升入高中的“科技特长生”、“信息学特长生”认定也会参考 NOIP 提高组的奖项和成绩。

信息学常见问题

Q:学信息学需要奥数基础吗?

学过奥数的孩子在刚开始学的阶段可能会有一些优势,但是即使没有奥数基础的高年级的孩子,也是可以直接学习信息学的,在后期学习算法时,有无奥数基础的孩子的接受能力差别不大。

Q:孩子爱玩电脑,就让他学信息学当玩了靠谱吗?

爱玩是孩子的天性,但是并不是所有的孩子都能把信息学当成玩一样去热爱的。信息学作为一个学科,还是需要认真对待的,只有认真学并且真正喜欢上的孩子才会觉得做信息学的题目比玩游戏还有意思。

Q:孩子今年二年级适不适合开始学 C++,为搞信息学做准备?

总的来说,四年级前的语文、数学基础还不足以支撑孩子开始严肃学习信息学这一学科;非天赋异禀的孩子也最好不要在四年级前尝试用 C++。可以考虑让孩子先强化数学基础,适当学习一些奥数的基本内容;如果还学有余力,可以尝试一些拖拽式编程的学习内容,培养逻辑思维。

Q:怎么平衡信息学和传统学科的关系呢?

如果是高中才开始学信息学,但是还希望能在竞赛中获得好的成绩,那可能的确要在信息学和传统学科之间做一个选择——要么下狠心学好信息学,要么就不要轻易偏科放弃传统学科。对于高中之前开始学习信息学的同学,参加比赛的机会还较多,注意把握好节奏,和其他学信息学的同学做朋友,每年 NOIP 都能进步 100 分,你的传统学科一般也不会出现问题,(就经验来看往往学信息学能稳定进步的孩子,学信息学期间,数学、物理的学习还会被促进,语文、英语也会有所提升)。

Q:学信息学是不是就是打游戏、做游戏?

当然不是!有些机构可能会以这种方式引导家长形成错误的认知,然后把披着“教育外壳”的游戏卖给高年级的孩子。实际上,信息学有趣的地方并不是因为它直接看起来像是游戏,而更多是因为它能让孩子通过编程解决大量生活中的实际问题,产生极强的成就感。

Q:信息学是不是每天都要做很多卷子?一天做个几十题够不够?

对于学习信息学的同学来说,刷题不能单纯看“量”,更要看“质”。平时信息学的练习需要上机写程序,但是更好的习惯是在上机前在草稿纸上大致确定思路,然后再开始写程序。越往后期题目需要思考的时间往往越长,但是上机写的时间可能差不多。一天需要做的题目不多,每天能在 1 ~ 2 类题目上有所收获,比反复做同类型的题目收获要大很多。

Q:为什么做了很多的题目,而且越做越快,但是考试分数上不去?

善于总结的同学在同类问题上会越做越快,需要注意的是跳出舒适区,不要总做同一类的题目,而应该学习新的知识点。遇到某一类不会的题目时,不要逃避、绕开,这时候需要想办法总结,并且看一看其他人在这类题上的经验,举一反三后再加强这一类题目的练习。

Q:孩子很聪明,突击两个月拿个 NOIP 提高组一等奖,行吗?

除非是参赛人数特别少的省份,否则不太现实。大部分的省份的分数线还没有低到适合突击的程度,对于普通孩子稳扎稳打、保持兴趣、年年进步才是更正确的做法(在老师和其他家长眼中都公认天赋异禀的另当别论)。

Q:未来希望孩子走出国的路,学信息学有必要吗?

对于规划让孩子出国的情况,学信息学也是有价值的。在海外高校的录取中,更看重孩子是否持之以恒的在学习和他申请专业相关的内容。如果未来希望孩子学习理工科专业(特别是计算机相关专业),良好的计算机程序设计基础将是极大的加分项,能有一些奖项作为佐证将有效助力学校申请。

Q:学信息学是不是未来只能当“码农”?

首先,在信息产业发展迅速的背景下,“码农”其实也不是什么需要鄙视的就业方向,很多信息学选手热爱计算机专业,的确会倾向于向这个方向发展。同时,近几年的国内提出的“新工科”、海外提出的“CS+X”都在讲计算机专业领域的内容与传统的物理、化学、人类学、语言学、教育学等专业内容的融合,良好的计算机专业基础在未来对几乎所有专业来说都将是一个优势。

信息学习资源

学习信息学的资源很多,在这里小编们整理了一些和大家分享:

·书籍与教材

  • 《信息学奥赛一本通》:董永建、宋新波等著,适合面向竞赛竞赛入门的同学使用的一套书籍。
  • 《算法竞赛入门经典》系列丛书:刘汝佳,陈锋著,适合面向竞赛的算法新手使用的一套书籍。
  • 《中学生计算机程序设计 入门篇》:中国计算机学会官方出的书。为数不对的针对中学生的程序语言类书籍。
  •  《中学生计算机程序设计 基础篇》:中国计算机学会官方出的书。为数不对的针对中学生的程序语言+算法类书籍。
  •  《算法导论》:Thomas H.Cormen,Charles E.Leiserson,Ronald L.Rivest,Clifford Stein 等人著,适合竞赛上已经有一定积累的同学学习,能帮助大家进一步理解已经熟练使用的算法,不推荐初学者使用。另外该书中文版翻译一般,对于有能力的同学,推荐阅读英文原版书籍。

·在线教程

  • 演算法笔记(繁体):一个台湾老师整理的在线算法教材,深入浅出,适合初学者入门。 http://www.csie.ntnu.edu.tw/~u91029/index.html
  • USACO(英文):在基本学过 C++ 后,一步步在线通过练习方式学习信息学内容的网站之一,从入门级的训练到各类的专题训练均有包含。 http://train.usaco.org/usacogate
  • 计蒜客模块练习:涵盖 C++ 程序语言到竞赛各类算法模块练习,还配有老师答疑,适合初入学者自学的在线模块练习。 https://www.jisuanke.com/plan/noip

·在线题库

  • CodeVS:一个不错的刷题平台,近年的真题较多,适合想刷新题的同学。 http://www.codevs.cn/
  • Vijos:一个不错的刷题平台,老题目较多。适合想刷老题的同学。 https://www.vijos.org/
  • 洛谷:一个不错的刷题平台,其中“大牛题库”版块题目质量较高,有较多的学生讨论和题解,适合有一定能力基础且自觉(不轻易看题解)的学生练习使用。 https://www.luogu.org/
  • 计蒜客题库:免费题库里面题目不少,但是和它的模块练习和直播课一比,少了数据提醒和老师回答,对于希望不花钱学习的同学来说,不是一个好的选择。 https://nanti.jisuanke.com/
  • OpenJudge:北大一些学生做的分阶段的刷题列表,但是内容还没有完全稳定,有的时候会增删题目,如果希望长期使用有一定风险。 http://noi.openjudge.cn/