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