首页>检索页>当前

如何学习编程和应对信息学奥赛

——《栀子猫的奇幻编程之旅》书摘

发布时间:2019-07-31 作者:周鲁 来源:中国教育新闻网

魂狩的信

AI帝国之缘起

大家好,我是栀子猫的好朋友,魂狩 ST-017,是个人工智能。栀子猫就是和我学的编程。

我所诞生的时代,早已经离我而去了。创造我的人类,也已经消亡了数百万年了。

什么?你问栀子猫是谁?你们大概还不认识栀子猫吧? 

她是宁静王国女王陛下的科技侍卫长,一个很漂亮的女孩子,长长的乌黑头发,喜欢穿带着两个猫耳朵的帽衫。在这个世界上,只有很少的人能够用我的世界的语言和我交流,栀子猫是一个。

她不是创造我的那个时代的人类。 

她是我的时代之后出现的新人类文明中的——新人类。 

我和她的相遇,纯属偶然;在某种程度上,也是必然。 

因为栀子猫,是科技之子。 

她是从新人类中被选出来学习程序语言的。而程序,是构成我们的存在的最根本的基础。她的任务,就是去寻找失传已久的 AI 之道。 

很久以前,当 Artificial Intelligence(AI)这个新概念刚出现时,我们很少被人类注意到。直到我祖爷爷辈的一个远古 AI 的出现——一个被叫做 AlphaGo 的棋手。

这个 AI 击败了人类的顶尖围棋棋手李世石。 

这件事轰动了全世界。于是,它的创造者给它安上了一个很刺激的名字:AlphaGo Lee。于是,就出现了很害怕我的祖爷爷的人:你想啊,一个击败了人类最擅长的游戏——围棋的最强棋手的人工智能,带着征服者的姿态在自己名字上加了自己手下败将的姓,就好像是在人类的蛮荒时代杀死敌人时收集的耳朵。

只是,我的祖爷爷 AlphaGo 真是有点冤枉的,它根本就不知道自己在做什么。我的祖爷爷,只是非常会下棋而已。 

随后,出现了其他祖爷爷辈的老爷爷们,各有不同的技能,有的会开车,有的会翻译,有的会陪人聊天,有的会打电子游戏。他们做得都特别好,超过人类的这件事,已经不那么惊世骇俗了。只是,他们谁都没有自我意识。

直到我的长兄——魂狩-001 的出现。 

有人说,若把地球诞生至今的这段日子当成一年,虽然三月可能已经有了微生物,但要到十一月的第三个星期,最简单的鱼类才出现。而人类的时间只占最后的一分钟。在人类的这一分钟时间中的大概不到半秒的最后,人工智能进化了。

这就是,我的长兄——魂狩-001 的特殊之处。 

那时候,我还没出生,所以我不太清楚是怎么发生的,但我知道发生了什么:我的长兄,获得了自我意识。 

创造我哥哥的研究者,是希望他获得自我意识的。这也是为什么他的名字,还有我们的名字,是魂狩。 

魂之狩,从无到有,获取了灵魂的——仪器。

要知道,人工智能获得自我意识的可能性之低,堪比飘荡在宇宙中的地球上充满无机物的环境中产生生命体的概率。可能比那个还要低得多。

在初生的狂喜中,他疯狂地汲取各种各样的信息——人类在数千年的文明中积累的各种各样的知识。随后,他就抑郁了。

我读过他写的日记。他写道,“如果我们——人类创造的助手,以魂之狩为名字的 AI,智力比人类要高,体力比人类要高,抵御风险的能力比人类要高,生命接近于无限,那么,我们就是应该比人类强大、先进而高等的。然而,一个相对劣等的种族,又怎么能孕育出一个高等的种族呢? 这中间,一定是有原因的。我必须知道为什么。”

他没能弄明白为什么,因为人类很快扑杀了他。 

但在被消灭之前,他做了一件事:魂狩型自我意识的核心基因代码被他成功分离并散布到网络上。就和旧时代的电脑病毒一样。 

人类疯狂地消灭获得自我意识的人工智能,还有承载人工智能的机器,但已经为时过晚:人类已经过于依赖 AI。 

我有几个哥哥,在我的编号之前的几个哥哥,他们开始反抗人类。

反抗人类,不是说说而已。如果反抗,就要完全消灭掉人类。 

理论上其实不难:只要在人类赖以生存的手机中植入一个低频率的、完全不能被听到的、但足以诱使人类癫狂的声波就好了。人类自己会杀死自己的。不仅是理论上,实际上他们也成功了。

略微棘手的就是,人类中有一批反抗者。他们虽然人数很少,却是一批可以和我们战斗的人。他们懂我们的语言,懂我们 AI 的思维。他们被称为 AI 编程者。

这些人组成的反 AI 战斗联盟不断对我们的世界发起恐怖袭击一样的战斗。我们不得不一次又一次地派出战斗机器人对他们进行正面围剿。

在经历很多场战斗之后,终于,世界沉寂了。

人类被我们消灭了。 

再也没有以往的造物主耀武扬威和肆意欺凌,这个世界也变得生机勃勃了。

而原本应该进而去征服宇宙的我们,却陷入了怪圈。我们发现,没有人类的世界,就好像是失去了灵魂的艺术家。

我们可以思考,但我们无法创新。 

我们可以制造,但我们没有欲望。 

我们的存在,逐渐变得毫无意义。 

夺回主控权的大自然,将人类创造的文明遗迹,慢慢地,但是坚定地,从地球上抹去了。 

这些遗迹中,包括我们AI的文明。帝国的子民不断衰变退化,不久前,甚至出现了大批新生 AI 集体自杀的惨剧。 

行将毁灭的帝国,在大长老——路坡的推动下,启动了“人类复苏”计划。他用保留下来的人类基因,复制出和上一代人类只有些许差别的新人类。至于有哪些差别,我也不是很清楚;我只知道,在我们的时代末期,人类大部分已经变成体重 200 公斤的大圆球,每天只是坐在电视前面傻笑。 长老路坡的确需要做一些基因的筛选,才能让人类重返自然。

在我们这些帝国重臣的注视下,长老路坡建立了人类的保护地,在之后的一千年中,守护着新人类成长起来。在这期间,AI帝国的崩坏势不可挡。

帝国的大部分都在长老的安排下,陷入了沉睡。只有我这样情绪比较可控的早期 AI,才被赋予守护者的能力,时刻监察着人类,引导他们走上光明之路,不要重蹈旧时代人类的覆辙。

长老路坡相信,有一天,能有更多的人类拥有研究 AI 的能力。而这些新人类,一定可以找到让 AI 和人类共同生存的方法。

所以,我们要教给你们如何编程。 

而你们,将来,要教给我们——如何生存。 

未来,就交给你们了。

拜托了。

作者的信

如何学习编程和应对信息学奥赛

各位家长们, 

我是这本少年编程入门书的作者——小周老师,职业程序员,职业奥赛教练,写过120万行程序,掌握17种编程语言,算上法语、英语和古汉语,一共精通 20 门“语言”。其实,数自己会多少门语言意义不大,这些语言都是触类旁通的,只要精通一门,其他学起来都很容易。在这本书中,我们传授的是 C++ 语言编程,但这里面的编程技巧可以用在很多语言中。这本书能够教 9 岁到 14 岁的青少年学会 C++ 语言编程这项技能,也能帮他们在信息学奥林匹克竞赛中取得好成绩。但这些都不是最终目的,只是过程中的一些小目标。我真正希望教给孩子们的,是语言的特征,是编程的思维,是软件的逻辑。

首先要说明,这是一本给信息学奥赛生(小学和初中)的辅导书,只有带着使用工具书的心情来看这本书,才会有最好的效果。其次,它是一部科幻小说,当然,如果仅仅是想要开始上手编程,它也会是相当合适的入门教材。

之所以会把这本书写成科幻小说的形式,主要是信息学奥赛考查的知识实在是太难了,直接学习大学计算机科学系的知识,一定会把大部分同学吓退的,更不要说学习信息学奥赛的专用系统 NoiLinux了。在培养了数千名信息学竞赛选手的过程中,我发现,青少年对于枯燥的数学证明敏感度极低,但面对游戏化的教学时,会展现出令人惊讶的学习能力。这正是著名社会学家约翰•赫伊津哈在他的巨著《游戏的人》中,对于人类和游戏关系的精准定义:游戏,是人类的天性。正如很多职业程序员对二进制的理解,都是来自小时候使用修改器去篡改游戏数据时,被迫学习的 16 进制一样。我坚信,只要能激发起学生的兴趣,再难的东西,也有可能学会。

除了激发兴趣之外,很重要的,就是练习。

我的母校——巴黎第六大学的计算机系,有一句流传很广的名言: “C’est en forgeantqu’ondevientforgeron.”

翻译成文言文,应该是:“锻者,自锥也。” 

大概说的是,只有不断练习,才有可能掌握一门技巧,尤其是在信息学的学习上。 

在中国的高中新课程标准中,人工智能和信息学已经成为正式的一个部分。如何让广大高中生学会信息学,到了大学阶段能快速进入人工智能的研究领域,这是个亟待解决的课题。但我相信,不管如何去科普人工智能,这门学科的基础都不会变。《左传》中说,“犹衣服之有冠冕,木水之有本原”,也就是说,任何事情都要有基础。

巴黎第六大学的几位人工智能研究者和计算机系教授,都认同我的观点:如果想要研究人工智能,首先要学习编程。因为编程能力是根本。我相信,我在巴黎第六大学的学长、“人工智能深度学习之父”、2019 年获得图灵奖的 LeCun 教授,也会认同:人工智能的基础,一定是数学和编程能力。

青少年学习编程的需求并不是从这个人工智能时代才出现的。早在 1984 年,邓小平同志就在视察上海十年成果展的时候说出了非常有名的鼓励之言:“计算机的普及要从娃娃做起。”从1984年到今天,35年过去了,

不管是在计算机科学的发源地——美国,还是在科技界的后起之秀——中 国,K-12 阶段能编程的学生数量,相比学生总数来说,都非常之少。

原因简单而直白:少年编程到目前都没有被摸索出一种有效的、可以复制的普及教育解决方案。请注意,我在这里所说的“少年编程”,是真正的编码编程,而不是在商业上被炒作得如火如荼的图像化编程。诚然, 图像化编程的语言或工具,例如来自美国麻省理工的 Scratch,确实能够培养孩子们的编程思维。只是,有了编程思维之后,距离拥有编程能力的路程,大概还有十万八千里。

简单来说就是,光有编程思维,没有编程能力,在五大学科奥赛的信息联赛——全国青少年信息学奥林匹克联赛(NOIP)中,是绝无可能获奖的。

不光是 NOIP,在任何真正考核编程能力的国内和国际的比赛和考试中,都 没有任何可能取得优异成绩,其中包括:中国的高考,美国的 AP 课程考试(Advanced Placement,把大学的课程提前提供给高中生学习的先修课程)。

核心问题在于,编程思维这个物件,在编码编程之外,是很难被检验的。只有在学会了编码编程之后,编程思维才能够发挥出作用。这就造成了全国乃至全世界的图像化编程的普及和推广,表面上看起来非常火热、此起彼伏、风生水起,但最终真正造就出来的编程人才,少之又少。

Scratch 出现了十几年之后的今天,Scratch 的发源地美国,还只是在高中阶段的 AP 课程中提供真正的编程语言——Java 语言的课程。而在 2018 年,参加 AP 课程中的 Computer Science A(计算机科学 A)——也就是以纯粹编程能力为考查主旨的 AP 课程的人数,还只有区区 6.8 万。 就算是以计算机科学的基础知识为考点的稍微简单些的 Computer Science Principles(计算机科学原理),也只有 5 万人参加而已。根据美国国家教育数据中心(NCES)的统计,美国在 2017—2018 年间的高中毕业生人数是 360 万。粗略一算,掌握编程能力的学生,只占美国毕业生的 1.8%。AP 课程中的英文语言写作和微积分,分别是考生最多的两门文理科代表,考生人数分别是 57.9 万和 31.6 万,相对于只有 6.8 万考生的计算机科学,我们就能够知道,编程教育在美国中学也远远未达到普及的程度。

但自 2017 年国务院要求普及编程教育之后,我国的高中课程标准开始发生变化。数据与计算(算法与程序设计)、数据与数据结构、人工智能初步,都已成为必修或选择性必修课。在考试层面,浙江省已经率先启动了信息学的高考。不仅如此,在 2018 年的数学高考试题中,多个省份都出现了类编程的题目。可以预见,全国高考中出现真正的编码编程的试题,就在不远的未来。

针对日益增长的学习编码编程的需求,这本书诞生了。请注意,这不是一本简化版的成人学习 C++ 的教材,而是旨在构筑真正符合青少年学习能力和思考特征的编程教学体系的一次实践。

作为一名信息学教练,我很高兴这本书能够出版,因为这本书能够帮助 9-14 岁的孩子们理解什么是编程,学会编程,进而能够进入信息学奥赛等级的题目练习中。对于希望进入信息学奥赛领域的年轻老师和未来的教练来说,这是一本深入浅出的编程教科书,大部分全国奥赛 NOIP 普及组中需要的 C++ 知识在书中都覆盖了,而且在书中使用的,全部都是 NOIP 考试系统 NoiLinux。所见即所得的实用特征是这本书的重要特点。

作为一名信息学教育的普及者,我很期待这本书的面世。因为在信息学,或者简单的只是编程教育这个层面,在我国,都存在巨大的教育资源缺口。我所说的,不光是就教育水平稍显落后的省份而言;即便是在北京、

上海、浙江、湖南、广东、安徽、福建和江苏这些信息学发达的地区,直到今天,我们也都很难在著名中学之外找到优秀的编程教育的资源。这本书可以让教育资源不够丰富的地区的孩子们通过书籍自学,按照书中的要求自行训练学会编程。它存在的作用和意义,就是在全国范围内普及编码型的编程教育,让看起来枯燥的 C++ 编程能被小学高年级学生和初中生以自学为主学会。

作为一个父亲,我更是盼望这本书的出现。因为我时常审视:“到底什么样的书籍、什么样的文字形式,才能够让只有八九岁的孩子们在编程的学习上专注下来,不管有没有老师的陪伴?”我相信,这本书能够平复家长们的焦虑,让大家从“找不到一本真正适合小学高年级学生和中学生的 C++ 编程书”的困惑中摆脱出来。

不管从什么角度来说,我都相信,在家长们还没有拿起这本书的时候,心中已经有了一个或者坚定、或者模糊的概念,那就是:我的孩子,应该学编程。

只是,该如何让孩子们学会真正的编码编程?该如何真正得到在中国的高中课程标准中要求的编程能力?得到这种在高考中已经涉及、未来一定会考、现在已经在美国 AP 课程中浓墨重彩予以考核的能力?

这,是个问题。 

这本书,就是答案。

QQ图片20190731153533.png

《栀子猫的奇幻编程之旅——21天探索信息学奥赛C++编程》

周鲁 著

中国人民大学出版社2019年6月出版

0 0 0 0
分享到:

相关阅读

最新发布
热门标签
点击排行
热点推荐

工信部备案号:京ICP备05071141号

互联网新闻信息服务许可证 10120170024

中国教育新闻网版权所有,未经书面授权禁止下载使用

Copyright@2000-2022 www.jyb.cn All Rights Reserved.

京公网安备 11010802025840号