计算思维这个概念也许大家会比较陌生,但与它相关的考题已经出现在今年的高考中,比如下面大家看到的高考江苏数学卷中,需要根据一段算法的伪代码来推断它最后输出的值是多少。
另外在下面高考天津数学卷中,也是根据一段算法来推断它的输出值是多少。只不过这道题用的是一幅流程图来表示算法,而不是伪代码。那么到底什么是计算思维呢?
大家都知道,计算机是非常强大的设备,它们可以做很多我们大脑无法完成的事情,比如它们的运算速度更快;它们可以帮助人们记住并处理各种各样的信息和数据,并且运行各种复杂的程序等等。为了能够使计算机帮助人们解决问题,我们首先要思考解决问题的步骤,然后再让计算机根据这些步骤解决这个问题。举个例子,如果你想制作一个游戏,你需要先酝酿故事的情节并且计划怎么实现这个游戏,然后才会利用计算机及编程软件来帮助你完成这个游戏。我们把所有在利用计算机之前的思维过程叫做计算思维。简而言之,计算思维是利用计算机处理问题的方式来思考问题。所以说,计算思维是一种思考方式,也是一种解决问题的方式。美国计算机科学家周以真指出:无论是人还是机器,都能运用计算思维来更有效率地解决各种问题。计算思维是每个孩子都应该具备的能力。计算思维也被认为是同“读,写,算”一样重要的基础能力。
那么计算思维是怎样帮助我们解决问题的呢?周以真教授给我们举了个简单的例子,比如你要做一顿饭,既要煮饭又要炒青菜炒肉,但又不能做好菜了饭还没有煮熟,那要怎么做呢?这几项任务都需要花费资源和时间。在做饭这件事上,你就可以利用计算思维,像计算机一样思考,如何调配有限的资源完成所有任务。一般来说,计算思维中最重要的几个思维过程包括逻辑推理,抽象,分解,算法和归纳。
利用我们对于事物的已有认知做出针对它未来行为的可靠预测,我们称之为“逻辑推理”。在执行任何任务之前,我们都会对这个任务的结果有个预测。比如回到上面做饭的例子,我们期待的结果是既能煮好饭,也别让菜放凉了。我们需要思考我们怎样去做才能达成这个目标?为什么这样做才是最佳的方案?在孩子学校的学习中,也会用到大量的逻辑推理。比如说在语文课上,学生需要分析一个角色在接下来的章节里面会做什么。在科学课上,孩子们需要解释他们是怎样通过实验的结果推导出结论的等等。
所谓“抽象”,是指忽略所有不相关的复杂细节,而只专注于问题关键部分的能力。在刚才做饭的例子中,很多不相关的细节都可以忽略掉,比如锅是什么颜色的,厨房有多热等等。
”分解“能让我们把一个复杂的问题分割成一个一个小的部分,我们将这些小部分各个击破,然后再把各个部分组合起来,形成一个针对原问题的解决方案。理解了”分解“的概念,我们就可以把做一顿饭的任务,分解成煮饭,炒青菜和炒肉等一系列子任务。同时我们可以找到各个子任务在时间上的关联,并按照一定的顺序来执行。我们曾经在《一张图让孩子终身受益》一文中提到了思维导图可以帮助孩子分解任务并找到任务之间的关联。家长可以多引导孩子通过画思维导图来解决学习当中遇到的问题。
”算法“指的是用来完成某个任务所需要的一系列指令或者一组规则。比如我们要炒个青菜,我们就需要一个菜谱,按照菜谱上面写的步骤一步一步地做。比如我们先把火打开,再往锅里倒油,等油烧热后再放入青菜等等,这就是一个算法。在编程语言中,算法可以通过伪代码(Pseudocode)或者流程图(Flow Chart)的方式来进行表达。所谓”伪代码“指的是这段代码并不能被计算机所执行,而用它是为了方便于描述一个算法。因为一般的伪代码都具有结构清晰、代码简单易读,并且类似于自然语言的特点。在本文开始大家看到的高考江苏卷中的算法就是用一段伪代码来描述的。而流程图是算法的图形表示,通过流程图可以更清晰的表达一个算法的执行过程,尤其是那些比较复杂的算法。同样在本文开始大家看到的高考天津卷中的算法就是用一个流程图来表达的。下面大家可以分别看到一段伪代码和一张流程图的示例。
最后“归纳”可以理解为我们寻找到一种通用的方法来解决同一类问题。比如说我们已经成功地做了一顿饭,那我们就可以把这次做饭的经验归纳总结下来,形成一个“套路”,等下次做饭的时候直接调出来用就好了。“归纳”的思维在孩子日常学习中也已经被大量应用,比如说我们在计算图形面积所用到的公式,就是前人通过不断地实践归纳出来的。再比如说,孩子在拼写和记忆英文单词的时候,也用到了很多归纳出来的规则,比如词根词缀记忆法、象形法、词源法等等。
所以说,我们学习计算思维不仅仅是为了应对高考,它也是一种帮助孩子解决问题的思维方式,使得孩子们可以像计算机一样更严谨地思考、更正确地决策。