首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Stephen Wolfram:如何训练孩子们的计算思维(I)

Stephen Wolfram:如何训练孩子们的计算思维(I)

作者头像
WolframChina
发布2018-05-31 14:55:21
7870
发布2018-05-31 14:55:21
举报
文章被收录于专栏:WOLFRAMWOLFRAM

█ 本文译自2016年9月7日的 Stephen Wolfram 博文 How to Teach Computational Thinkinghttp://blog.stephenwolfram.com/2016/09/how-to-teach-computational-thinking/

可计算的未来

计算思维将会是未来的一个标志性特征,让孩子们认识到这一点非常重要。一直以来,社会各界对如何训练孩子们的数学思维有广泛关注(和担心)。但是放眼未来,对孩子们计算思维的教育,其重要性和影响则更为深远。在日常生活和许多职业中,的确需要一些传统的数学思维,但计算思维将被用于方方面面,擅长于此将是几乎所有未来职业成功的关键。

医生、律师、教师、农民……各行各业都将需要计算思维。无论是基于传感器的医学、计算型合同、教育分析或计算型农业,成功与否将取决于是否善于运用计算思维。

我注意到了一种有趣的趋势。从考古学到动物学的各个领域中选择任意一个领域 X。"计算型 X"要么正在流行,要么就是即将流行。这已被广泛视为很多领域的未来。

那么,我们怎样做才能使得孩子们为这种未来做好准备呢?我自己已经在此领域潜心研究了将近 40 年(致力于构建计算思维技术,并将其应用于方方面面,同时对它的基本原理进行研究),试图理解它的原理。至此,我想我弄明白了需要什么来进行计算思维。现在的问题是怎样把它教给孩子们。我想激动地告诉大家我已经找到了答案,它基于我花了30年心血的另一个成果:Wolfram 语言。长期以来,有很多种方法可以进行低级编程原理的教育,但现在令人耳目一新并且至关重要的是,我们终于拥有了直接训练计算思维的技术,包括对儿童进行这种训练,那就是利用内置于 Wolfram 语言的知识和自动化功能。

我个人非常致力于教授计算思维,因为我相信它对我们的未来至关重要。我正在尽我所能利用我们的技术来支持这一努力。多年以来,我们在网上免费提供 Wolfram | Alpha。现在,我们还启动了 Wolfram Open Cloud,这样,无论在哪里,任何人都可以使用 Wolfram 语言从 Wolfram Programming Lab 开始学习计算思维。但这只是开始,就像我将要在这里讨论的,有许多令人兴奋的新事物将成为可能。

什么是计算思维?

首先,让我们试着定义我们所说的“计算思维”。就我而言,它的智能核心是以足够清晰的方式构置事物,并且以足够系统的方式,告诉计算机如何去实现。数学思维是如何构置事物以便在可能的情况下用数学方式处理它们。计算思维则是一个更大更广阔的故事,因为有更多的事物可以用计算方式来处理。

但是如何把一件事情“告诉给计算机”呢?我们需要一种语言。了不起的是今天利用 Wolfram 语言我们可以直接与计算机交流我们想到的事情。Wolfram 语言是基于知识的:它知道现实世界中的事物,如城市、物种、歌曲或我们拍摄的照片,并知道如何对它们进行计算。只要我们有一个可以用计算方式构置的想法,关键是语言让我们可以表达它,那么,借助于 30 年的技术发展,我们就可以尽可能自动地实现这个想法。

Wolfram 语言是一种编程语言。所以在使用它时,你是在编程。但它是一种新的编程,是一种人们尽可能直接地表达计算思维的编程,而不是一步一步地告诉计算机应该执行什么样的低级操作。它是一种人类(包括孩子)提供想法,由计算机和 Wolfram 语言处理执行细节的编程。

传统上,编程和编程教育一直是关于在低水平上指示计算机进行操作。但是得益于所有内置于 Wolfram 语言的技术,我们不必再这么做了。人们可以在更高的层次表达事物,我们可以专注于计算思维,而不仅仅是编程。

是的,我们的确需要一些能够用 C ++、Java 或 JavaScript 等语言编写低级程序,并且可以处理循环和声明的细节的软件工程师。但是需求数量上远远不及能够以计算方式思考的人。

Wolfram 语言,特别是 Mathematica 形式的,在世界上的科研和开发中已经被广泛使用了超过四分之一个世纪,促生了无数重要的发明和创新。这些年来,我们也逐步填补了我对于拥有一个综合语言的初衷,在这个语言中,每一个可能的知识领域都是内置和自动化的。令人兴奋的是,现在我们已经在很多领域做到了这一点,足以支持各种计算思维,例如传统上学校教授的所有学科。

七年前,我们推出了 Wolfram | Alpha,回答孩子们(和许多其他人)的各种问题。 Wolfram | Alpha 接受日常英语输入,然后使用 Wolfram 语言的复杂计算自动生成结果页面。对于孩子们和其他人,Wolfram | Alpha 是利用 Wolfram 语言基于知识的计算能够做到的事情的一个有力的说明。但它只为解决能以简单的词汇所表述的“随想”问题而设,也可以包括一些简单的符号。

那么更复杂的问题和其他事情呢?日常英语不再适用。为了获得足够的精度,能够得到确定的结果,人们最终会使用一些非常复杂和不可理解的措辞来表述。但好消息是,有一个替代方法:Wolfram语言,它专门为表达复杂的事物而设,并且总是以精确和确定的方式来表述。

使用 Wolfram | Alpha 不需要任何技能。但是,如果想进一步利用计算的威力,人们必须学习怎样组织和构建你想要的东西。或者,换句话说,人们需要学习计算思维。令人高兴的是 Wolfram 语言终于提供了一种可以做到这一点的语言,因为通过我们不懈的努力,它被设计成超越纯编程,并尽可能直接支持计算思维。

计算思维用在何处?

我刚才说的那些都是教授计算思维的技巧。但是计算思维可以融入我们标准教育课程的何处呢?我认为,答案很简单,任何地方!

有些人可能觉得计算思维只与 STEM 教育有关。但这不全面。计算思维应该与所有课程都相关,与社会学、与语言艺术、与音乐、与艺术、甚至与体育都有关。人们一直在尝试让数学融进这些学科。光用传统的手工计算的数学是不可能实现这一点的,但是一旦有了计算和计算思维,情况就完全不一样了。在每个领域中,都有一些非常强大而且非常明确的部分可以使用计算和计算思维。而且很棒的是,这些对于孩子来说都是可以理解的。Wolfram 语言已经做好了内部技术支持,所以你只需要单纯关注计算思维和理解,不需要考虑技巧上的障碍。

实现这一点的其中一个方法是要重新定义人们认为"数学"教育是什么,这一点在基于计算机的数学学科倡议中已经实现。而另一个方法是,考虑将计算型思维直接嵌入各领域学科。我注意到在实践中,尤其是初等学校——无论是否有技术背景,都有对教授计算思维很有兴趣的教师。这一点很像这一代的孩子:你不需是一个技术专家,也可以对基于知识的编程和计算思维感兴趣。

过去,对于低级语言如 C++ 和 Java,你确实需要一个认真的工程方向的人来学习这些语言。但是对于 Wolfram 语言则完全不一样。当然如果你要精通这门语言确实需要很多学习,但你可以了解其中的计算思维,而非计算机系统中的工程细节。

所以计算思维如何融入学校课程?我经常听到的是老师们对于在时间允许范围内把应该教学的东西完成都已经很困难了,怎么还能加入其它东西?但是我渐渐开始理解,虽然听起来有点让人吃惊:其实加入计算思维可以让很多东西变得简单,所以即使多花些时间在上面,却可以把整体时间减少,学习到的东西反而更多。

为什么会这样?主要的一点是,计算思维提供了一种可以让事情变得更透明更易懂的框架。当你想计算式地思考事情时,每个人都可以试一试然后看结果如何。学生还是从某种程度上必须从老师的评论中做结论,这一点没什么好隐藏的。

有一个多年前发生的事,那时候 Wolfram 语言——当时还是 Mathematica ——第一次使用于教授微积分。学习微积分的学生在理解函数的概念方面遇到困难是很正常的事。但是多位教授告诉我,他们注意到,自从学生们开始使用 Mathematica 学习微积分后,他们几乎不再对函数感到困惑。原因是他们使用计算思维学习函数——即通过 Wolfram 语言观察函数,而不是像传统标准微积分教学一样很抽象地理解函数。

尤其在过去几十年,几乎每个学科的教科书编写有一个很大的倾向是解释东西很拘泥——所以解释的最好的往往都不是当时推崇的教科书。但是现在,有了 MathWorld 和 Wikipedia,呈现信息的方式变得更直接了,现在的学生也把这种倾向当做理所当然的事情了。在每个领域计算思维的应用都是这种趋势的延续:那些以前只能用来描述的事情,现在可以用计算的方式以更具体的方式直接清楚明白的呈现在大家面前。

比如,,你说起莎士比亚的戏剧,希望能体会到戏剧中的感觉。在计算思维中,你可以想象为戏剧创造一个社交网络(谁通过在一个场景里认识了谁等等)。然后很快你就能有一个不错的总结了,这时候你就可以说出这部戏剧和主题的很多细节了。

想象一下现在你又要说到不同语系了。你可以用 WordTranslation 把一些单词翻译成上百种语言。然后做一张系统树图,看不同的语言中这些单词都是怎么聚类的,然后你就能发现印欧语系了。

你也可以说起艺术类型——用很多 Wolfram 语言内植入的著名油画举例。然后可以开始比较不同画作中的颜色使用——可能可以绘制一张图表说明随着时间颜色使用是怎么变化的,然后看有没有人能看出艺术类型在什么时候发生了改变。

你也可以谈论不同国家的经济状况。你可以立即创建自己的信息图表,和学生一起研究怎样才能最好地把重要信息呈现出来。你也可以说历史,然后使用 Wolfram 语言中历史地图数据来比较亚历山大大帝和凯撒大帝的征战。还有关于美国总统,你可以做一张他们在任的时间表,然后用经济和文化指标对历任总统进行比较。

再假设你在进行英语语法教学。Wolfram 语言一方面可以自动图解句子,这当然很有用。但你也可以让学生用自己的规则造句——这样他们就能看出什么能造出他们认为语法正确的句子,什么不能。那单词拼写呢?计算型思维能帮到这个吗?我不是很确定。当然展示英文常用单词很简单,然后尝试验证一些可能的规则。然后发现一些有违规律的例外也很有意思(“u” 总是在 “q” 之后吗:在 Wolfram 语言中很容易找出这种规则)。

在不同学科的标准课程中问"这部分可以应用计算思维吗?"也很有意思。有时候人的第一反应可能就是个噱头。但我发现的是,如果有人真正认真思考这个课程的重点在哪里,最后他可能真的能发现计算思维在这门课程的基础中的用处。

随着时间发展,这样的例子会越来越多。过去,数学不能用计算机辅助,这一点很难做到,所以成功的例子也没有那么多。没错,在各个领域这样案例都呈指数式增长,但是当人们意识到他们的微积分课本和 1700 年的课本并无太大差异时,可能就不太乐观了。等到有了标准编程,情况也没有变好太多,有很多地方斐波那契数列还在出现。但是有了基于知识编程的 Wolfram 语言,我们面对的情况就完全不一样了。因为这门语言可以将跨学科跨领域的数据和计算都连接起来。

所以,如果有人想要开始教计算型思维,应该如何组织呢?是不是应该开一门计算思维课程?在大学阶段,我觉得计算型思维 101 是不错的。实际上,这可能应该是学生应该上的重要课程。但在高中阶段,还不是太明晰应该做什么,而且我并不是这方面专家,我倾向于把计算思维融入各种不同的课程中,这样可能比较好。

有一个很明显的问题是:让学生学习计算思维的初始成本有多大?我觉得依据我们现在的技术,成本很低。使用 Wolfram|Alpha,那就是零成本。使用 Wolfram 语言中的 Exploration,基本接近零成本。使用 Wolfram 语言中自由形式代码,可能会有点小成本,而且这可能一次教完更好,有点像大学阶段的“服务数学课程”的微型版本。

值得一提的是,计算思维横跨学科的应用已有独一无二的广度了。大家都想要把自己在一门课程中学到的东西应用在其他地方,但这也并不能经常发生。我已经解释过了传统数学教学中的困难。在写作中情况可能好一点,起码学生可以使用其他课程中学到的东西应用在论文写作中。但是很多其他领域都在知识库中进行教学,并不需要应用其他领域的知识。然而有了计算思维,就可以进行大量交叉连接。莎士比亚戏剧里的社交网络和国际贸易中的网络、或和不同语言中单词之间的图表的计算思路是一样的。经济表现中的可视化技术和在体育领域中使用的技术也是一样的,等等。

基础知识

也就是最近(基本上花了 30 年的努力) Wolfram 语言终于可以为孩子们学习计算思维提供一种极具吸引力的方式。实际上,不只是语言自身和它所包含的知识是非常重要的,语言环境也很重要。

首先,第一点我们在将近 30 年前发明的 Wolfram Notebook 概念是孩子们(和其他人)与语言交互的一个很好的方式。笔记本的主旨是提供一个交互式文档,可以把代码、结果、图形、文本和其他一切都不受限制地混合在一起。人们可以在笔记本中进行计算、输入代码,并在文档中直接得到结果。利用它们自己生成的用户界面,结果可以是动态的。大家可以直接在笔记本中读写说明或指令。我们花了几十年来完善笔记本的各个方面。现在我们有了一个可以工作和思考的极为高效的美妙环境,同时可以学习计算思维。

多年来,笔记本和 Wolfram 语言基本上只能作为桌面软件使用。但现在,我们在软件工程方面做了大量的工作,使大家在云端、网络浏览器或移动设备上也可以直接使用。这意味着每个孩子都可以到网络浏览器上立即开始与 Wolfram 语言进行交互:创建或编辑笔记本,并编写任何他们想要的代码。

这些事情的发生需要大量的技术来推动。我花了生命中大部分的时间来构建它。看到利用我们的技术实现了这么多伟大的前沿成果,令我非常欣慰。现在我真的很期待看到用它来传播计算思维给子孙后代会带来什么。

在创建 Wolfram | Alpha 的时候,我决定把它放在网上,免费供大家使用。看到这么多人( 特别是孩子们)每天都在使用它真的是太好了。所以在几个月以前,当技术上已经成熟的时候,我又决定在 Wolfram Open Cloud 中免费提供整个 Wolfram 语言,并设置好让孩子们(和其他人)可以在那里学习计算思维。

Wolfram | Alpha 被设置成任何人都可以用日常英语向它提问。在众多优点中,这对在各领域为教育提供支持非常有益。但是,如果你非常想要学习未来真正的计算思维,那你就不能只用日常英语提问。这就要用到 Wolfram 语言了。

那么,入手使用 Wolfram 语言并进行计算思维的最好方法是什么呢?可能有很多答案,这取决于不同的孩子拥有的环境和资源情况。我认为我个人在与孩子打交道上做得还不错,例如在我们的 Wolfram 高中生夏令营中,通过直接的个人指导,我看到了很好的结果。

但是拥有“自助”方案也很重要,为此我专门写了一本书,叫做《Wolfram 语言入门》。这是一本关于计算思维的书,不要求有任何编程知识或者是高深的数学知识。但在读书的过程中,渐渐引领人们习惯于写出真正的程序,完成他们想做的事情。

本书可在网上免费阅读。书后还附有练习,云端会自动为你评分。原本这本书是面向高中及以上学历的人群,但后来我发现一些热心研究的初中生(11岁及以上的学生)也在读这本书,这本书甚至还推广到了研究生的数学课、银行培训和专业软件开发者的教育等等。

不久我们会提供与本书配套的(免费)在线课程。据我所知,还有一些使用本书来教授现代编程和计算式思维的课程正在开发中。

好了,那么,当孩子打开浏览器想要学习计算式思维和 Wolfram 语言时,他们究竟应该去哪里呢?这个问题的答案就是我们几个月前发布的 Wolfram Programming Lab。在 Wolfram Open Cloud 中有免费版本(如果不需要储存你的工作的话,你甚至不需要登陆)。

Wolfram Programming Lab 有两个基本分支。第一个是 Exploration 系列。每一个 Exploration 都是一个笔记本,包含可编辑的代码,可以运行一些有意思的东西。当你把现有的代码过完一遍后,笔记本会建议你进行进一步探究。

Exploration 让你初步领略 Wolfram 语言和计算式思维。小孩通常在几个小时内就可以掌握基础内容。从某种意义上说,这有点像“浸入式语言学习”:先从“流利的发言人”所写的代码入手,然后再与这些代码互动。

Wolfram Programming Lab 还提供了第二个分支:我这本书的交互式版本,让你一步一步学习,从写一个最简单的代码开始,然后循序渐进地创建更多复杂的代码。

你可以完全通过浏览器在云端使用 Wolfram Programming Lab。但也有桌面版本可以在任何普通电脑上运行,这样你可以迅速获取本地互动,也可以按照你的需求进行大型计算。如果你用的是 Raspberry Pi 计算机,那么 Wolfram Programming Lab 是与操作系统绑定的,包括从与 Raspberry Pi 相连接的传感器中获取数据的特别功能。

我希望确保 Wolfram Programming Lab 能适合所有孩子使用,无论他们在哪里,所处的教育环境怎样。从我们知道的看来,这一点好像运作的还不错,当然如果孩子们能有和他们一起学习的人那是最好。我们已经计划建立一个非正式网络结构来支持这一设想,同时还可以使用现有的活跃度很高的 Wolfram Community。我们仍在不断努力,最终希望 Wolfram Programming Lab 可以轻松地与现有的、有组织的教育环境融为一体,而不只是使用 Wolfram 语言进行世界上最好的教育分析来分析学生的学习进度。

值得一提的是,Wolfram Cloud 的整体架构的优点之一是,它可以让任何人——不管是学生还是老师——直接在网络发布内容供全世界使用。比方说,在 Wolfram Programming Lab 中,Exploration 的结束部分就是例行在网络上部署应用。

理解在每一个可能的学习环境中部署 Wolfram Programming Lab 的细节对我们来说可能还为时过早,但我们在很多方面都在稳步向前。不久前我在韩国在一群孩子面前做了一个演讲,我问他们觉得自己是否有能力学习 Wolfram 语言。其中有一个孩子回答,她觉得除了函数名称都是英文的外,其他都看起来挺简单的。

这让我陷入思考,思考的结果是我们推出了多语言代码说明,对代码进行多语言注释。也就是说,你仍然使用标准函数名称输入 Wolfram 语言代码,但是可以即时得到代码的母语解释。(顺便说一声,我的这本书也会有各种语言的版本发行。)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-03-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 WOLFRAM 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图数据库 KonisGraph
图数据库 KonisGraph(TencentDB for KonisGraph)是一种云端图数据库服务,基于腾讯在海量图数据上的实践经验,提供一站式海量图数据存储、管理、实时查询、计算、可视化分析能力;KonisGraph 支持属性图模型和 TinkerPop Gremlin 查询语言,能够帮助用户快速完成对图数据的建模、查询和可视化分析。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档