人工智能火了,Python 火了,然后呢?

先来看几条“旧闻”(嗯,世界变化快,资讯满天飞,第二次听到的都算是旧闻):

2017 年 8 月下旬,央视新闻报道了国务院印发《新一代人工智能发展规划》:《规划》提出,实施全民智能教育项目,在中小学设置人工智能相关课程,逐步推广编程教育,鼓励社会力量参与寓教于乐的编程教学软件、游戏的开发和推广。支持开展人工智能竞赛,鼓励进行形式多样的人工智能科普创作。

说今年是人工智能正式上升为国家战略的元年,并不为过。而提到人工智能背后的热门技术和语言,Python 则以其简洁易懂容易上手和强大的数据分析能力成为当红首选。今年碾压各国人类天才棋手的 Alpha Go,其背后的程序,很大一部分也是 Python 写的。

自国务院《新一代人工智能发展规划》提出三步走规划以来,已先后有多个省市出台相应的政策措施。浙江省信息技术课程改革方案已经出台。Python确定进入浙江省信息技术高考,从2018年起浙江省信息技术教材编程语言将会从vb更换为Python。

不止浙江,教育大省北京和山东也确定要把 Python 编程基础纳入信息技术课程和高考的内容体系,山东省最新出版的小学信息技术六年级教材也加入了 Python 内容。

是的,人工智能火了,Python 火了,然后呢?

然后...很多中国家长焦虑了(笑…),恨不得今天晚上就报个班或者至少买本书让娃开始学 Python,明天就能指挥一个机器人来给爸爸妈妈道早安。也有一些西瓜的家长们来问我们,有没有开 Python 的课?想从明天就开始学。

首先答案是:有的,就在西瓜课程体系的 L4中。但是,在我们看来,重要的并不是当下最流行的是什么,而是在来了又去的潮流之中,不变又是些什么。

先讲个有趣的小故事。亚马逊的 CEO 杰夫•贝索斯说,他经常会被人们问到一个问题,那就是“你认为未来十年,世界将会产生哪些变化?” 因为贝索斯一直被认为是一个站在时代潮头,领导着一家体量巨大而且有前瞻性的企业的时代英雄,所以人们普遍会认为他的预言会更为准确。

不过贝索斯本人却说,这实在是个糟糕的问题。因为更重要的问题应该是:“在未来的十年,还有什么是不会改变的。” 因为只有弄清楚了这个问题,我们才能将我们的战略聚焦在那些相对稳定的目标上。

在少儿编程教育领域,西瓜创客一直在迎接变化和拥抱变化,无论是Scratch还是Python,也无论是大数据分析还是人工智能。我们也同样认为,更重要的应该去看清楚背后那些不变的东西,并给予到家长和孩子们这个领域应该具备的常识与理性。

1、算法本身没有变化

实际上,在信息技术的世界,流行的编程语言一直在变化,从C++,到Java,到Python....潮流来了又去,明年不知花落谁家。但不管语言怎么变,但编程的核心思维,却一直没有大的变化而只是在缓慢进化,相比具体的语言,编程背后的思维方式与算法逻辑才是更为稳固的存在。

不同的编程语言,在易用性、可读性、适用场景和执行效率上面都有区别,执行效率其实大家感受并不明显,尤其是在计算机算力已经极大增长的情况下,反倒是简洁易用成为了大家需求的首选。

在这里,西瓜用一个自己课程中的例子,来向大家展示一下分别用 Scratch 、C++和Pyhon 实现的同样一个逻辑都长成什么样子,大家可以有个直观的感受。

西瓜创客 L0 的第四课,是教大家做一个英文绘本。绘本最后一页上,要求孩子们用代码实现一个网球碰到边缘后不断反弹的效果(如下图所示)。

这个运动效果背后的算法逻辑,在 Scratch 中实现是这样的:

如果用 Python 和 C++ 来写的话,分别会长成这个样子:

是的,从算法的层面上来说,这些代码都是一样的,它们执行的是同一套逻辑,完成的也都是同一个功能。

Python 比 C++ 要更简洁,但它再简单,也依然是一门更接近自然语言(英语)和数学公式组合的语言,其代码的可读性和体验性跟 Scratch 色彩丰富的图形化的界面相比,对于孩子们来说少了很多趣味性和吸引力。

所以西瓜的课程设计,采用的是从 Scratch 逐渐过渡到 Python,先引导孩子的兴趣,放缓学习的梯度,来让孩子们先喜欢并习惯用算法的思维去思考。

算法是计算机解决问题的步骤,我们先根据问题来设计算法,然后把算法来转换成计算机能理解并执行的计算机语言,这也就是编程的本质。所以设计算法的能力,才是编程学习中的重点。

2、人类心智成长的规率没有变化

除了少数天赋异禀的早熟少年,我们大多数孩子的心智水平在大概率上都符合正态分布,也就是说,资质一般的孩子占了大多数(但这并不意味着未来不能有杰出成就,因为这并不是决定性的影响因素),人类的认知能力在不同的年龄阶段呈现出不同的水平和,总的来说,心智水平会随着年龄的提升而提升。

近代最具有影响力的瑞士儿童心理学家 让·皮亚杰(1896-1980),把少年儿童的认知发展按照年龄划分为了4个阶段,而这同时,也构成了我们L0-L5课程设计所对应的理论依据:

前运算阶段的标志是符号功能的出现。这个阶段的儿童的语言能力,以及玩耍时把棍子想象成枪的“假装”能力,都是符号功能的体现。但“前运算阶段”的儿童对于守恒和可逆性这样的逻辑运算的理解是有限的。

而在“具体运算阶段”,儿童已经迅速获得了认知操作能力,并能运用这些重要的新技能思考事物。具体运算思维表现为守恒的理解、关系推理的理解运算顺序性的理解。但是,具体运算阶段的儿童思维是有局限的,因为他们只能把运算图式应用到真实的或可以想像得到的事物、情境或者事件上。

因此,在编程教育中,往往最早在“前运算阶段”的后期,也就是6-7岁左右,并不会让儿童直接接触到逻辑和关系推理的概念。而是通过序列(Sequence)来让儿童理解基本的因果关系。

同时,由于“具体运算阶段”的儿童的思维只能映射到具体的事物上,所以高级编程语言中的抽象逻辑、语言和教学方法是很难为这个阶段的儿童所接受。Scratch就很好的解决了这个问题。通过可视化的“积木”形式,儿童可以很轻松的编写自己的游戏或者动画书。在Scratch中,儿童很容易把具象的结果和程序所对应起来,这样就很好的避免了C、C++甚至Python这类语言带来的低反馈效应。

3、孩子热爱游戏的天性没有变化

游戏是人的天性,尤其是孩子。

编程本身是有门槛和难度的,即便对大人也是如此。不然,为什么很多送孩子去学 Python 和 C++ 的家长,自己学起来也同样感觉费劲,甚至还不如孩子呢?

所以在游戏中学习,既是孩子们喜欢和憧憬的,也是西瓜创客们一直致力于在学习这粒苦药外面包裹的一层糖衣。

游戏的设计运用了大量心理学知识,本质上讲,游戏就是接受一个设定并去努力完成一个目标,从回馈中带来的快感。因为当大脑获得奖励机会时,能释放出一种叫做“多巴胺”的神经递质,它会激励我们为了获得快乐而努力付出。 一方面,我们塑造了“孙小弟”这样一个玩伴形象,贯穿在几乎所有的课程里面。整个学习过程,就是孙小弟陪伴着孩子一路通关,一路成长的过程。孙小弟在故事中的探索和成长故事,其实也就是小朋友们自己探索和成长的故事。 另外一方面,我们为整个学习体验设计和创造了一个统一世界观下的多个场景,整个L0到L5的学习体验,其实分别是在通过内容叙事的方式来让孩子们依次感受并最终具备勇气、升级、探索、合作、打破和坚忍这些可贵的成长品质。

我们的课程设计,正是借助游戏的力量,让学习充满精彩,寓教于乐,同时在编程中,孩子们也能通过学习游戏背后的深层机制,达到元认知上的意识升级,并避免“游戏成瘾”的发生。

综上所述,如果明白了在各种变化之中有哪些是不变的,我们才能最终在时代的潮流中稳住阵脚,而不是不断地被这个时代所制造的焦虑和恐慌裹挟,然后随波逐流。

下一个最流行的语言会是什么?我们会着眼于准备,而不是预测,因为我们喜欢并信奉老巴菲特的一句话 “ 预测大雨是没有用的,真正有用的是打造方舟。”

与西瓜创客家长和孩子们共勉。