前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Stephen Wolfram:如何训练孩子们的计算思维(II)

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

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

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

初涉 Wolfram 语言

那么,当孩子们首次接触到 Wolfram 语言时,情况是什么样的?作为我努力学习如何教授计算思维的一部分,我在过去几年里花了相当多的时间和孩子们一起使用 Wolfram 语言。

有时是与大团体,有时与小团体,有时我会注意到一个成年人参加的活动中的小孩子,最终我会拿出计算机,与孩子们进行交流而不是和大人们。我曾和高中年龄段的孩子们和中学年龄段(11-14岁)的孩子们打过交道。

如果是一个孩子,或一个小组,我会永远坚持让孩子们打字。通常我会从大家都知道的东西开始。让计算机计算 2 + 2。他们键入,然后看到电脑给出了他们知道的结果:

他们经常会尝试一些其他的基本算术。非常重要的是,Wolfram 语言允许他们只进行输入,并立即看到输出,没有额外的步骤。

在完成了一些基本的算术后,我通常建议他们尝试生成许多位数字的运算:

通常他们会问,这样子能行吗,或这么长的数字会不会把计算机弄坏。我鼓励他们尝试其他例子,他们则经常会尝试能立刻产生几页数字的计算。几十年来,我们一直能够进行这些大数字的运算,但是孩子们还是会很兴奋。重要的一点是让他们感受到计算机真的可以进行巨量的计算(想想要是你来做这些运算的话,要花多长时间......)。

在做了一些基本的算术后,是时候让他们尝试一些其他函数了。我常常以最常用的函数 Range 开始:

Range 是一个很好的例子,因为很容易让孩子们看到它在做什么,他们很快就能明白,太好了,告诉计算机去做一件事,计算机就会照做。Range 的另一个好处是很容易用它来给出令人满意的大结果。通常我建议他们尝试 Range [1000],他们会问 Range [10000] 行不行,我会告诉他们试试看啰......

我会与每个孩子或不同群体的孩子做不同的事情。但相当普遍的是下一步我们会看看如何可视化我们所做的列表:

如果孩子们碰巧喜欢数学,接下来我会尝试制作一张素数表:

然会把它们画出来:

对于自认为可能不喜欢数学,或笼统地不喜欢科技的孩子,我可能改用一些颜色:

我们可能会尝试把红色和蓝色混在一起,产生紫色:

我们也会尝试获取摄像头当前的图像:

然后勾勒出所有的“边”:

我们也会尝试对颜色做更复杂的操作:

也许我们会选另一个方向,获取英语常用词汇列表(如果任何一个孩子知道另一种语言,我也会进行尝试):

如果孩子们喜欢语言艺术,我们可能会尝试随机产生一些单词:

我们会了解如何用 StringTake 来提取每个单词的第一个字母:

然后用 WordCloud 制作一个词云,查看每个首字母出现的相对频率:

有些小孩儿可能会问“那前两个字母呢”?我们会改为尝试这种情况(对,UpTo 就涉及到一些计算型思维):

我们也可能讨论一下有多少个单词是以 ”un-” 等开头的。然后对其中的一些单词做一番调查。接下来还可以看看这些单词的翻译:

实际上,只是做我刚刚提及的那些事情就可以很容易地花上几个小时。但让我们来看一些其他的例子。关于 Wolfram 语言的一个重要的事实是它知道很多现实世界的数据。我通常会通过一系列的步骤来构建,但是这里有一个例子,制作欧洲国家的国旗拼贴,其中,每个国旗的大小由该国当前人口的数量决定:

因为我们刚刚碰巧谈到了颜色,所以来看看这些国旗在颜色空间的位置会是一件有趣的事情(例如,显然不会有很多“粉红色国家”):

Wolfram 语言的一个宏大主旨在于不仅可以进行抽象的计算,还可以基于现实世界的知识进行计算。Wolfram 语言涵盖了许多领域,从传统的 STEM 类领域到艺术、历史、音乐、体育、文学、地理等各个方面。孩子们常常喜欢利用地图做许多事情。

我们可以从自己所在的地方 (Here) 开始。或从一些地标开始。比如这里是显示埃菲尔铁塔周围半径 100 英里范围的地图:

下面是“10 的幂”系列大小的图像:

那么,历史呢?Wolfram 语言如何与之互动?实际上它饱含各种历史知识。关于国家(绘制罗马帝国的兴盛和衰落),或电影(比较电影海报随时间的变化),再或者,单词。像这里是在过去 300 年书中使用“马”和“汽车”的比较:

可以对国家的名字、发明创造,或其他东西进行类似尝试;总有很多历史可供讨论。

有这么多方向可以选择。这里是另一个:图形。我们来制作一个三维球面:

对孩子们来讲,能作出这样的三维图形并进行移动永远是一件很有趣的事情。如果他们想要把事情弄得更复杂一点,我们可能会用颜色随机的 100 个随机球面制作一幅这样的三维图形:

所有年龄段的孩子都喜欢做交互式的东西。这里有一个简单的“可调节的独眼巨人的眼睛”,大家可以轻松地逐步进行调节:

我有时做的另一件事是使 Wolfram 语言发出声音。这里是一个随机的音符序列:

有这么多方向可以选择。如果孩子是未来医疗领域的苗子,可以向他们展示 3D 解剖学,挑出骨头的几何形状并进行 3D 打印,等等等等。

其他方面呢......

在对计算思维方面付出努力之前,我从来没有认真地尝试过与孩子们打交道(虽然我自己有四个孩子)。所以我不知道应该期望什么。和别人说起我对技术发展的孜孜以求的日常生活的时候,他们都不以为然。他们不断对我想做的事情提出可能的障碍。第一条是他们怀疑孩子们实际上能不能在 Wolfram 语言中输入原始代码;他们认为孩子们会被语法搞糊涂,或是其他问题。第二条是他们认为除非代码能生成一个孩子们可以玩的游戏,否则他们是没有动力去写代码的。

和孩子们打交道的一个好处是如果给他们机会,他们会非常快地让你明白什么能行,什么不行。那实际情况是什么呢?以我的经验,人们提出的那两个潜在问题都没有成为真正的问题。但其中的原因十分有趣,远不是我本来预期的。

关于键入代码,要认识到在今天的世界里,大多数中学阶段的孩子都已习惯于用键盘输入,至少是输入文字。有时,在他们开始输入代码时会先看看 [ ] 键在哪里,甚至是 + 号在哪里。但打字本身对他们不是根本问题。他们也习惯于学习事情运行的精确规则(在英语拼写中,i 在 e 之前;数学的运算顺序;等等)。所以,学习几条规则,如“函数要使用方括号”,或“函数名要以大写字母开头”不是什么大问题。当然,在 Wolfram 语言中不存在自然语言(如英语)中才有的不规则性。

在观察孩子们输入代码的时候,我注意到自动提示是很重要的(在匹配以前中括号是紫色的;如果位置不对,输入的东西会显示为红色;为所有输入提供自动补全等)。但归根结底,尽管大人们有各种理论上的顾虑,实际上孩子们似乎很容易在 Wolfram 语言中键入语法正确的代码。事实上,我经常吃惊于孩子们快速“理解”的能力。看过几个例子后,马上就能推而广之。最棒的是因为 Wolfram 语言是以非常一致的方式设计的,他们的概括结论总是对的。作为语言的设计者,看到这些令我非常欣慰。当然,对于孩子们,事情就应该以这种或那种方式工作,他们无法体会如此设计背后人们所付出的努力。

OK,所以孩子们是能够键入 Wolfram 语言代码的。但他们想这样做吗?许多小孩儿喜欢在计算机上玩游戏,成年人常常认为这是他们唯一在计算机上想做的事情。但以我的观察,这并不是事实。对于大多数孩子来说,关于 Wolfram 语言的最重要的事情是,他们可以立即用它来“做一些实事”。他们可以输入任何他们想要的代码,并立即让计算机为他们做点什么。他们可以创建图片、声音或文本,可以进行艺术创造,可以研究科学、可以探索人类的语言,可以分析 Pok?mon(没错,Wolfram 语言有丰富的 Pok?mon 数据)。如果他们真的非常想的话,也可以制作游戏。

根据我的经验,如果你在孩子们看到 Wolfram 语言之前问他们编程有什么好玩儿的,他们经常会说游戏。但是,一旦他们实际上看到了 Wolfram 语言的功能,他们就会停止谈论游戏,会想做一些“实事”。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档