美文网首页青少年计算机科学教育
不插电的计算思维之“为对话而搜索”(上)

不插电的计算思维之“为对话而搜索”(上)

作者: 小小牛创意科技 | 来源:发表于2017-12-07 18:32 被阅读0次

    培养计算思维的难点在于如何设计好的教学课程,特别是入门级课程。创客类课程和少儿编程类课程都有很丰富的选择,计算思维的课程却很少,国内能自行设计计算思维课程的老师也是少之又少。

    既然国内缺乏好的计算思维课程,索性我们还是先向国外大牛们取取经吧。在推进计算思维教育这条路上,英国是先行者之一,他们组织专业人士设计了Unplugged Computational Thinking(不插电的计算思维) 系列课程。

    该系列课程由伦敦玛丽王后大学设计,易上手,启发性强,而且很关键的一点是课程中并不需要使用电脑等计算设备,也不需要具备任何编程基础,只需具备一定的逻辑思维能力即可,所以非常的大众化。

    这篇文章小编为大家介绍该系列课程的第一课《为对话而搜索》,该课程的设计灵感来源于畅销书作者多米尼克•鲍比的真实经历。鲍比在身患闭锁综合症后,在助手的帮助下,靠一只眼睛眨眼来拼读单词,完成了畅销书《潜水钟与蝴蝶》的写作。该课程模拟类似场景,启发学员设法找到助手和患者高效沟通的方法。在游戏过程中,参与者可以体验到编程、算法、迭代、纠错等概念,非常直观的体验到运用这些思维的神奇效果。

    面临的问题

    计算思维是用来帮我们解决问题的,在这里,待解决的问题是“助手如何快速知道鲍比想说什么”。

    患病的鲍比只有一只眼睛可以活动,他听的见,也看的见,但是无法用语言和外界沟通,唯一可用的就是他的这只眼睛。也就是说,眼睛是鲍比唯一可用的与外界进行沟通的工具了。

    一个可能的解决办法

    让助手从成千上万的单词中直接猜测鲍比想说的单词(我们称之为目标单词)显然是个几乎不可能完成的任务,但是从26个英文字母中猜测目标单词的首字母、第二个字母等却简单的多。

    一个很容易想到的方法是用眨眼次数来代表不同的字母,眨一次代表A,眨两次代表B,其他字母依此类推。这样的话,助手要做的就是数鲍比的眨眼次数,再将对应的字母写下来。按照这种方法,从目标单词的首字母开始一个个猜下去,就能完整地拼出目标单词了。

    想出这个办法的过程中我们就用到了一种“计算思维“,我们把这种计算思维叫”算法思维“。算法就是一种约定好的运算方式,按照这个约定好的规则一步步地做下去就能完成某种目标,在这里,目标是传达字母和单词。算法思维是指如何想出一个算法去解决问题。

    算法之美

    算法的美妙之处是相关对象不需要理解他们在做什么以及为什么这么做。在算法的帮助下,助手即便不理解自己所做的事情,书依然能被写出来。助手只需要数清楚鲍比的眨眼次数并把相应的字母写下来就可以了。我们可以给鲍比和助手准备一个眨眼次数和字母对照表,这样他们就能完全不需要思考地按照算法去做了。

    算法的美妙就在于它使得人们能够“机械化”做事情,这意味着计算机也可以不加思考地按照指令做事情。

    我们想出的这个算法分为两个部分,一部分是鲍比用来执行的(根据字母对应的次数眨眼),一部分是助手用来执行的(数清鲍比的眨眼次数并写下相应字母)。对于这种两个人之间或者两台电脑之间用来传递信息的算法,计算科学家管它们叫协议

    双方都要按照协议中关于自己的那部分去做,假如任何一方出错(假如数错了次数),信息传递都会失败。而计算机的厉害之处就是它每一次都会完完全全地按照协议去做,不会犯类似错误。

    算法思维是一种特殊的问题解决方式,它不需要你给出一个问题的具体答案,比如“42”,而是要你给出一种有步骤的解决方案,其他人(也包括计算机)只要按照这个步骤做就能得出答案。比如我们给鲍比提出的这个办法,办法本身并不能告诉我们鲍比想说什么,但是我们能它算出鲍比想说的话。虽然很慢,但至少能帮鲍比和助手实现沟通了。也许有更好的方法,寻找更好的方法也是算法思想的一部分。

    鲍比是怎么做的

    鲍比的确有更好的办法,别忘了,助手是可以说话的,而鲍比的听力也没问题,因此我们可以利用这一点。鲍比用了这样的一个算法,让助手从“A-Z”按顺序的读字母表,当鲍比听到他想要的字母后就眨眼示意,这时助手停止读字母并将读过的最后一个字母写下来。然后重复这样做,把字母一个个写下来。和朋友一起试试这种交流方式,试想一下这是你仅有的和外界沟通的方法。希望你的名字不是“Zebedee  Zacharius  Zog or Zara Zootle”。

    一但你试过了这种方法,就会发现真要想让它发挥作用还有一些问题。试过之后,也许你还能想出别的办法来改善这个算法,试一试你能想出什么办法。

    细节优化

    你可能会发现的一件事儿是你需要处理的不只是26个英文字母,还有空格、阿拉伯数字、句号等等信息,你需要把这些也添加到要使用的表格里。还有一个要解决的问题是如果错眨了眼睛怎么办,我们要想个办法让鲍比表达“刚才眨错了,忽略它,重新开始”,用快速连眨两次眼睛来代表这个意思似乎不错。

    算法思维是关于寻找解决办法以及处理解决办法中的细节的,是关于认识到做事情的方式有很多种,而我们要想出针对这个情景的最佳方法的。我们要意识到算法中人去做的那部分事情是我们要解决的问题之一。理论上,我们的算法这样就能起作用:在正确的时间眨眼。我们可以傲慢地说人应该把事情做对,做错了,那是人的错,跟我无关。但不要忘了我们的目的,我们的目的是帮鲍比和助手实现沟通,所以我们要考虑如果人出了错该怎么办,我们设计的算法要能够允许人犯错并能够将其纠正过来,所以说,算法思想和理解人也有关。

    如何做得更好

    在单词拼写到一半的时候,通过直接猜测目标单词的方式我们可以加快速度。假如你已经知道了“a-n-t-e-l”,那么很容易猜测目标单词是“antelope”。所以你可以改编算法的规则,让助手去做类似的猜测。那么我们就需要一种方法让助手知道他的猜测是否正确,也许方法就是猜对了就眨眼,没猜对就什么也不做。

    这其实就是“预测性文本”的工作方式,手机里用的就是这种算法,也许手机也是你想到“猜词”这种方法的来源。如果你想到了这种猜词的办法,那么你就运用了另一种计算思维——问题转化。

    通常,我们遇到的问题会变得和我们在另一个不同情景下见过的问题很相似。如果对于另一个不同情景下的问题我们有解决办法,那这个办法就可以拿来用。和助手在看到几个字母后需要猜测鲍比想说什么一样,手机也有同样的问题需要解决,手机需要在人们打字过程中弄清人们想要打什么字。一旦意识到了这一点,对于这两个问题,有了解决任何一个问题的办法,都可以拿去解决另一个问题。

    鲍比的助手的确使用了一种“预测性文本”。鲍比也意识到“拼读字母的算法”可以用一种不同的方式来改进。在他患病前,他曾是法国女性杂志 ELLA 的编辑,因此熟知语言。他知道在语言里,一些字母比其他字母更常见,比如,字母E 在英语和法语中都是最常见的。因此他让助手按照字母的常见程度(在单词中出现的频率)读字母,在英语中是这个顺序“E…T…A…O…”在法语中是这个顺序“E…S…A…R…”。这样,他的助手可以更快得到常见字母。

    很久以来,类似的技巧也被用于破解密码。一千多年前,穆斯林学者发明了使用字母频率的方法。鲍比利用频率分析的主意也是一个问题转化的例子,只要我们意识到破解密码和猜字母是类似的问题,那么为其中一个问题发明的方法就可以用于解决另一个问题。

    相关文章

      网友评论

        本文标题:不插电的计算思维之“为对话而搜索”(上)

        本文链接:https://www.haomeiwen.com/subject/ajsjixtx.html