
引言
近年来,“计算思维”慢慢走进人们的视野。计算思维的提出,使其不再是仅仅作为从事计算机领域相关工作的专业人士所必备的思维方式;而是生活在智能时代的每一个个体都应该了解、掌握的思维方式。计算思维的应用范围,也从计算机的专业领域,拓展至专业以外的领域,甚至于生活的方方面面。
17版新课标,《普通高中信息技术课程标准(2017年)》,将“计算思维”确立为学科的四大核心素养之一,而学科核心素养正是学科育人价值的集中体现。

新课标中,这样界定计算思维:
“计算思维是指个体运用计算机科学领域的思想方法,在形成问题解决方案的过程中产生的一系列思维活动。具备计算思维的学生,在信息活动中能够采用计算机可以处理的方式界定问题、抽象特征、建立结构模型、合理组织数据;通过判断、分析与综合各种信息资源,运用合理的算法形成解决问题的方案;总结利用计算机解决问题的过程与方法,并迁移到与之相关的其他问题解决中。”
目前,诸多学者以及教育工作者投入到计算思维相关研究之中,包括计算思维是什么、其概念内涵与外延的界定、计算思维的本质特征,甚至于计算思维与数学思维的联系与区别等等。然而,在这些研究与讨论中,大多都是在专业领域内对计算思维进行讨论,或者通过专业知识来承载计算思维的培养目标。鲜有在专业之外看到计算思维的身影,即较少看到“ 迁移到与之相关的其他问题解决中 ”。
本文试图通过生活中的一个具体案例,来呈现计算思维的一个侧面,感受与领略计算思维的魅力。

陈述题目
题目如下:
现有一张完整的A4纸,请你在不使用胶带或胶水等工具的前提下,想办法将这张A4纸“变成”一个较长的纸圈,并使得该纸圈能够将十个人从头套到脚。

该题目经常出现在以小组为单位的比赛中,比如各种团建活动,而我自己则喜欢在各种类型的课堂上使用该案例。在过往实践该项目的过程中,经常听到类似以下的声音:
1、先把A4纸撕成长长的纸条,然后“打个结”不就行了?
2、或者用手捏住长纸条的两端,不就行了?
3、把纸圈起来,然后放到远处的灯上,十个人站在纸圈的影子中。
4、不行,太难了。
5、……
这其中有些想法看起来似乎能完成任务,但却均不符合题目的限制要求,或者姑且称之为“非正常解”。相应的,这个挑战其实是有“正常解”的。
咱们先来看一段视频,
视频加载中...
再来看看网络上关于这道题目的解答,
【网上解答】 (长按识别二维码即可查看)
1、【纯本文阅读】

2、【本文+图片】

3、【视频讲解】

也许在上述解答的过程中也使用到了剪刀这种小工具,但这并不算“违规”:一方面他们并未使用胶水等粘黏工具,另一方面该过程其实用手撕也能实现(即剪刀非必须)。
好,从答案的角度来看,问题是解决了,但说好的计算思维呢?怎么没有看到任何关于计算思维的影子?其实,不光计算思维的影子看不到,教育的影子也很难看到。
因为也许我们只是能够对于答案进行模仿,然后复现出一个长长的纸圈,外加一句感叹。诚然,模仿当然属于教育,更为严谨的表达则是,模仿只是教育的一部分。
一方面,模仿仅仅是教育的起点而已,它只是教育的手段,而不是教育目的;另一方面,更为重要的教育内容是,这个答案究竟是怎么来的?我如何才能想到这种方法?
接下来,我们看看,拥有计算思维的人,将如何解决这道题?
(注:更关心结果的读者可以直接从“问题解决”的小节开始看结果,然后再回来看过程)
(快速原型)小规模测试
拥有计算思维的人,不会一上来就拿整张纸进行实验,而是会选择某个局部先进行测试(不论是否已经有成熟的想法)。如果基本想法通过测试了,再将其应用到全局(整张纸)之中。
在实际中,也经常看到不少人面对该挑战时,都是直接拿整张纸进行试验。而一旦试验失败了,并且并没有多余的纸张可供使用,就会面对较为尴尬的境地,并且认为自己没有机会了。
在和大家相互交流的过程中,发现有不少人其实是有“测试意识”的,而他们之所以没有先进行测试,是因为存有这样的顾虑:把一张纸“变成”长长的纸圈,就已经觉得不可能完成了。现在倘若还要从这张纸中分出去一部分去做测试,那岂不是更加无法实现了。
听起来,确实蛮有道理的,但那毕竟只是一种感觉,而不是某种确定的事实与结论。 科学要做的事情,就包含了量化“感觉”、验证“感觉” ,不论这感觉是正确的还是错误的。
接下来,咱们尝试直面这种顾虑,看看会发生什么有意思的事情。
问题预估
咱们先将视线转移到与A4纸有关的另一件事上面看看。
一张A4纸的厚度大约是0.1毫米; (0.2=0.1*2^0)
对折一次后,厚度大约是0.1*2=0.2毫米;(0.2=0.1*2^1)
对折两次后,厚度大约是0.2*2=0.4毫米;(0.4=0.1*2^2)
对折三次后,厚度大约是0.4*2=0.8毫米;(0.8=0.1*2^3)
……
对折n次后,厚度大约是0.1*2^n毫米。

而地球的直径也不过 12742公里 。
换句话说, 理论上,即便薄如一张A4纸,通过反复对折,能够达到任意厚度 ;然而在实际生活中,对于任何一张纸,我们大概只能对折7~8次。这倒不是因为理论出错了,而是因为随着对折次数的增多,“对折”这个行为变得越来越难以操作——每次对折,虽然纸张厚度比原来增加一倍,但同时纸张(占地)面积也减少为原来的一半——所以,面积的越来越小,导致操作空间也越来越少。
“纸张对折”的例子讲完了,咱们再回到“纸带变纸圈”这个问题中来。与对折背后的原理类似,我们不妨大胆猜测一下。 通过一张A4纸变成“纸带”的长度,理论上也可以任意长 。如果猜测成立,相当于提供了理论保障。接下来,我们实际考察(计算)一下。
因为“对折”这种操作并不会使得纸张的总面积减少,所以每次对折后,厚度加倍,而面积减半—— 总面积不变 。类似地,不论通过何种操作(对折或撕开),纸都不会凭空增多也不会凭空减少,依然保持 总面积不变 。
标准A4纸的尺寸是210mm×297mm,故其面积为0.21*0.297=0.06237平方米。
假设纸带的宽度为0.1m,则纸带的总长度大致等于:
0.210*0.297÷0.1=0.6237m;
假设纸带的宽度为1cm,则纸带的总长度大致等于:
0.21*0.297÷0.01=6.237m;
假设纸带的宽度为1mm,则纸带的总长度大致等于:
0.21*0.297÷0.001=62.37m;
假设纸带的宽度为0.1mm,则纸带的总长度大致等于 :
0.21*0.297÷0.0001=623.7m;
假设纸带的宽度为1纳米,则纸带的总长度大致等于:
0.21*0.297*10^9=62370公里;
因为62370>12742,所以理论上,由A4纸“变成”的(长)纸带至少能够套住5个地球。
到这里,可能会有这样的疑问,还能这么计算吗?不说1纳米了,你给我“变”一个宽为1mm、长为62.37米的纸带子看看。实事求是的讲,这件事我还真做不到。不过,值得强调的是,这种估计方法存在的意义, 恰恰就是为了在不考虑实际操作的前提下,提供一定的参考信息 。
换句话说,如果经过计算,即便在纸带的宽度仅仅为1mm(非常容易断开)的前提下,其长度也不够套住10个人。那其实我们就从理论上说明了,这件事情不可能完成。这件事情,压根就没有尝试的必要性了。反之,如果在某个恰当的宽度下,纸带子的长度足够套住10个人,接下来需要解决的问题才正是,如何将理论变成现实?这才有了尝试的必要性。
为了实际操作的方便,不妨先将纸带的宽度设置为1cm来估计。
则接下来的问题则转变为:“6米多长的纸带,能不能套住10个人?”
接下来,我们既可以把人近似看作一个圆柱体来估计,也可以把人近似看作一个立方体来估计。当然这两种方法本质是相同的,而且都需要用到类似腰围、胸围、臀围以及肩宽等人体数值进行估计。
只需要看整个队伍的俯视图即可,

甚至可以再一次按照“等积法”进行估算。即,如果10个人围在一起的占地面积为6.23平方米,则平均每个人的占地面积为0.623平方米。然后,只需要再去核查,自己的占地面积是大于0.623,还是小于0.623即可。
在这里,具体的估算过程省略。
需要说明的是,即便经过估算,6.237平方米无法套住10个人,但只要能够套住7~8个人也是可以的。因为一方面这10个人可以站的再紧密一些,另一方面也可以通过把纸带宽度从1cm降低为0.7cm来增加纸带的长度。从而力争保证套住10个人的可能性。
以上,就是对该问题进行估计的方法与步骤。
接下来,我们回到前面的顾虑:整张A4纸也许都不够,如果此时还要撕下来一个角用来测试,那岂不是更加不够了。
应用上述估算方法。如果将纸带的宽度设定为0.5cm,则实际纸带长度则达到12.5米左右,该长度至少能够套住13~15个人。因此,面对纸张不够的顾虑,即便进行上述粗糙的估算,我们也能得到两方面信息:
1、“牺牲”某个局部用来进行“原型测试”,是没有问题的;
2、努力是有意义的。
接下来,我们的目标则是,寻找把理论变成现实的具体路径。
问题拆解
假设现在有一台机器,我们只需要把一张A4纸塞进机器,等待一段时间,机器就能够将一个长长的纸圈送出来。而我们需要做的就是,把机器打开,看看A4纸在机器内部究竟经历了什么。
但不论怎样,我们始终相信一件事,机器绝对不会只经过一个步骤,就做成了这件事情。任何自动化的机器,往往会将整个过程分解为若干个步骤,然后再按照固定的顺序完成相应的步骤,即可得到确定性的结果。
因此,对于我们而言,如果再需要面对把纸带变成纸圈的同时还要保证长度足够长,导致无从下手的话,不妨将原问题拆解成若干个子问题,然后一个一个地完成。
实际上,在前面的估算过程中,估算的对象一直都是纸带,而不是纸圈。于是,我们的确不得不面对一个问题, 如何把给定长度的纸带变成纸圈? 在这里需要注意的是,这个问题的解决方案不会因为纸带长度的变化而发生变化。也就是说,如何将0.3米长的纸带变成纸圈,与如何将13米长的纸带变成纸圈,其实是同一个问题。
聚焦目标: 如何把A4纸在不用胶带等工具的情况下,变成一个纸圈 (暂时不考虑长度问题,只要是纸圈就可以)。
有人会说,如果不考虑长度问题,只要把A4张从中间挖个洞出来就可以。

没错。不过这样的话,挖出来的那部分我们就不能再利用了。其实,我们只需要沿如下图所示的虚线撕开即可(“挖洞思路”的优化)。

于是,我们得到了 将纸带变成纸圈的方法——直接沿着当前纸带的中线撕开即可(两头不撕),并且纸圈的长度(周长)约等于纸带长度的2倍 。
你看,在不考虑长度的情况下,问题的解决是不是变得容易多了。也许你会想,简单是因为我们没有考虑长度的要求啊。没错,“简单”恰恰就是因为我们暂时忽略其中某个限制条件;反过来说, 我们也可以主动选择忽略某些限制条件,从而让原始问题变得简单一些 。
还是一条纸带。接下来,咱们聚焦“关于长度”的目标,此时我们只需考虑变成更长纸带的情况即可。
如果手头是一个纸带,如何得到一条更长的纸带呢? 这个问题太简单了,直接撕开就可以了(选择中线的任意一端撕开)。

于是,我们找到了 第一种解法 :
步骤1、 沿着当前纸带的中线,选择任意一端将纸带撕开,得到更长的纸带;
步骤2、 如果当前的纸带长度足够长,切换到步骤3;否则回到步骤1;
步骤3、 沿着当前纸带的中线撕开(两头均不撕断),得到纸圈。
完毕 。
你看,问题就这么被解决了。这种“一次只解决一个问题”的方法,是不是很强大。当然,该挑战不止这一种解法,该解法是基于“如果手头是一个纸带,如何得到一条更长的纸带”这个问题。类似的问题,我们还能问好几个,换一个试试。
试之前,稍微小结一下。目前,我们已经能够做到的是,
如何将一条 纸带 , 变 成一个 更长的纸圈 !
如何将一条 纸带 , 变 成一条 更长的纸带 !
于是,我们再问,
如何将一个 纸圈 , 变 成一条 更长的纸带 ?
如何将一个 纸圈 , 变 成一个 更长的纸圈 ?
仍然先不考虑长度的要求,将纸圈变成纸带,其实很容易,在纸圈上选择任意一个点,直接撕开即可。

于是,我们找到了 第二种解法 :
步骤1、 将纸带沿着中线撕开(两端不撕),得到纸圈;
步骤2、 如果纸圈的长度不够,则前往步骤3;否则,前往步骤4;
步骤3、 在纸圈上任意选择一点撕开,然后回到步骤1;
步骤4、 结束。

我们通过解决“如何将一个纸圈变成一条同等长度的纸带”成功地解决了原始问题。
而之前我们提出的两个问题,还尚未直接解决。
如何将一个 纸圈 , 变 成一条 更长的纸带 ?
如何将一个 纸圈 , 变 成一个 更长的纸圈 ?
“纸圈变长纸带”的问题,解决方案比较多元;至于“纸圈变长纸圈”的问题,这里给一个提示:沿着 “ 莫比乌斯带 ”的中线剪开。这两部分内容,有兴趣的读者可以自行研究,或者后台交流。
你看,这个问题,在具备计算思维的人手里,就这样被轻易解决了。
比较
回过头,不妨再比较一下,“网络上提供的解决方案”与“计算思维视角下的解决方案”之间的区别。我猜测,不论在计算思维视角下找到的两种解法中的哪一种,它们都应该比“网络解法”容易理解、并且容易记忆一些。即便随着时间的推移,可能这些解法的具体步骤都忘记了,可能本文提供的两种迭代算法应该都更加容易当场复原一些。
当然,这里并不是说“网络解法”本身不好,而是对于“答案”的态度。我们不应该停留在“看完答案,能够理解每一步的含义,能够根据步骤进行一步步复现”这种程度。它只是教育的起点,我们应该继续前进——盯着答案,反复思考,它是怎么来的?他怎么想到的?他是如何一步一步思考的?为什么我没有想到?我哪里不如他?是知识储备、还是决策水平、亦或是理解能力?
唯有如此,思维的品质才能够得到提升,思维培养的目标才算是达到。
对于任何一道题目而言,不论是解法还是巧妙解法,这些都不重要。重要的是,我自己与解法之间的关系如何?我是否能够轻松找到解法,甚至是巧妙解法。重要的是,面对类似的问题,我是否总能解决?这样,才能够从模仿走向创新。
思考题:
在中国,《红楼梦》、《西游记》、《水浒传》与《三国演义》为什么称为四大名著?其他作品当真就不够著名吗?
写在最后
最后,聊聊跟这个题目相关的一点事情。这个题目是我个人比较喜欢的一个题目,在很多场合我都会使用它。因为题目本身比较简单;而且在计算思维的作用下,解答过程也简单,容易理解,方便对比,方便我们体验、感受计算思维的魅力。
在大家面对该挑战时,呈现出来的状态也千差万别。有的小组聚在一起反复讨论,有的小组却各自为战;有的人始终在琢磨解决的办法,有的人却试了两次就不再尝试;有的人在撕的过程中因不小心撕断了而暴躁与抱怨,而有的人却默默开启了下一次尝试;……
在所有这些状态中,最让我感动的一种是:虽然认为自己不行,但并未放弃尝试;面对别的小组欢呼声,虽然羡慕、着急但依然继续自己的事情;面对小组成员的情绪与抱怨,充满了鼓励与扶持。
我印象最为深刻的一个小组,一直认为自己不行,甚至于在开始尝试从头套到脚时,依然认为自己小组不行。但试验过后,他们却惊喜的发现“原来我们也可以做到”。
还有什么比“我也可以”,更令人期待与向往的呢?
又有什么比“我本可以,但没有做到”,更令人唏嘘的呢?
