两年半来,笔者一直在思考两个问题:一是“计算思维”到底是什么?二是“计算思维”教育到底该怎么做? 个问题——“计算思维”到底是什么?相信也是教育界同行一直犯迷糊的问题。仔细想想,其实不怪大家迷糊。即便是“计算思维”的倡导者周以真教授,也没有明确定义什么是计算思维(周教授在在美国计算机权威期刊《Communications of the ACM》上介绍“Computational thinking”时,用的不是系动词“is”,而是“involves”),国内很多专家学者在撰文、报告时,也只是简单地引述周教授的文献,更有甚者,弄一大堆“云里雾里”的概念,让大家更加迷糊。另外,王飞跃先生首次翻译“Computational thinking”时把“thinking”翻译成“思维”,本无可厚非,可不少人一见“思维”二字就断章取义、望文生义了。 一时间,关于“计算思维”的各种不利看法和观点满天飞——有人说,脑科学还没有搞清楚思维的机理,谈什么计算思维?有人说,钱学森搞了那么久思维科学研究,也没有搞出什么名堂,研究什么计算思维?有人说,计算机专业一直在教计算思维,有什么新鲜的?有人说,“计算思维”不过是一个哗众取宠的噱头,兔子尾巴长不了;也有人说,教会学生使用Windows、Word、PowerPoint、Excel等工具,本身就是计算思维,因为著名学者EdsgerWybeDijkstra说过:“我们所使用的工具影响着我们的思维方式和思维习惯,从而也将深刻地影响着我们的思维能力。”…… 更多人在观望! 当然,也有不少人在努力地研究和探索。 笔者也陷入了深深的思索之中。俗话说,“解铃还需系铃人”。困惑之时,笔者细细研读周以真教授的文献,终有所获。尽管周教授没有明确定义计算思维,但却明确地界定了“什么是计算思维,什么不是计算思维”,她提出的以下6点很值得大家仔细斟酌: ① 计算思维是概念化思维,不是程序化思维。 ② 计算思维是基础的技能,而不是机械的技能。 ③ 计算思维是人的思维,不是计算机的思维。 ④ 计算思维是思想,不是人造品。 ⑤ 计算思维是数学和工程互补融合的思维,不是数学性的思维。 ⑥ 计算思维面向所有的人,所有领域。 这6点太重要了,这才是计算思维的核心和本质。 周以真教授说到了问题的要害,让人由衷地敬佩!另外,周教授所指的“计算思维”是“Computational thinking”,而非“Computing thinking”,更不是“Computer thinking”,值得好好琢磨。 笔者仔细品味后,对什么是计算思维有了自己的认知——计算思维就是基于计算的、隐藏在一般陈述性知识和技术背后的、科学家们求解问题时的思想和方法,借用一句话,就是“Computational Thinking is about idea, not technology”。计算思维属于科学方法论的范畴。 只有这样的认知,计算思维才是概念化思维而不是程序化思维;只有这样的认知,计算思维才是基础的技能而不是机械的技能;只有这样的认知,才是人的思维而不是计算机的思维;只有这样的认知,计算思维才是思想而不是人造品;只有这样的认知,计算思维才是数学与工程互补融合的思维而不是数学性思维;也只有这样的认知,才有可能面向所有的人、所有的领域! 在《计算思维导论》中,笔者就旗帜鲜明地指出计算思维属于哲学方法论的范畴,并指出计算思维可以分为广义计算思维和狭义计算思维。回过头来看,这两个观点没有问题,但当时的认知还比较肤浅,多少有点瞎蒙的感觉。也正因为如此,笔者放下很多该做的事情,尽量抽出时间对《计算思维导论》进行修订,期望以一种正确的认知观反映计算思维,而不至产生误导。这也就是本书全面改版的由来。 第二个问题——计算思维教育到底该怎么做?这也是广大同行所关心的。几年过去了,学者们通过立项研究等多种方式,出版了多本计算思维方面的著作和教材,一些学校也在努力“试点”,但计算思维教育似乎并没有真正“落地”。客观地说,计算思维到底该教些什么以及怎么教,还一直困扰着业界的大多数人。 不可否认的现状是:计算思维似乎“狼烟四起”,业界多数人却又“一头雾水,莫衷一是”。以至各种理解与做法都有,大致分为四类。 一类是以“应用”做幌子,强调计算机基础教育应该强化应用能力培养,但一落到实处,还是技能培训。确切地说,强化应用能力什么时候都没有错,关键是应用能力是分层次的,设计一艘宇宙飞船去太空深处探究奥秘也是应用,学会用Word编排文件也是应用,层次不一样而已。 一类是以“浓缩”+“拼盘”的方式,讲解计算机软、硬件技术基础的各种内容,如计算机系统组成、操作系统、数据库、计算机网络、信息安全等,几乎涵盖了计算机专业的所有核心课程。这样一锅“夹生饭”,对于教师和学生来说,真不知道如何咀嚼和下咽。 一类是站在计算学科教育研究的高度,围绕“计算作为一门学科”讨论计算学科的形态(抽象、理论、设计)、计算学科的基本问题、计算学科的知识矩阵、计算科学哲学、计算学科方法论等,给人的感觉是“著作”色彩很浓,作为“教材”,似乎并没有怎么考虑教育的对象——刚入门的大一学生,他们能接受吗? 再一类就是近年来,受“计算思维”影响,试图寻求突破,在“狭义计算思维”的某些方面做了挖掘和整理,给人以新颖的感觉。客观地说,“计算机思维”或“程序思维”更浓,“计算思维”不足。 笔者对计算思维的本质有了基本的认知后,对计算思维教育也有了进一步的认识,归纳起来,有如下几方面的看法: ① 计算思维所蕴含的思想和方法,对拓展学生的“思维”空间、培养学生分析问题解决问题的能力非常有帮助,与高等教育强调创新与能力培养相吻合。分析围棋高手的培养,不难发现,他们需要大量的时间研读前人对弈过的棋谱,并从中悟出“道”和“术”,然后通过实战提升自己的实力。而“大学计算机基础”课程更像软件使用说明书或者操作指南,侧重于培养学生的技能。 ② 计算思维教育没有太多现成的素材,需要深入挖掘和整理隐藏在知识和技术背后的、科学家们遇到问题时寻找解决办法的思想和方法,这不是一件容易的事情。另一方面,计算学科虽然年轻,但能挖掘出来的“计算思维”内容却非常丰富、素材相当多,不太可能全部纳入教学内容,这就需要认真地筛选,后确定一个的集合,该集合应该涵盖学科的不同层面。 ③ 计算思维属于思想和方法层面上的东西,具有一定的抽象性。计算思维要“源于生活,高于生活,给人们以美的熏陶与享受”,这与大学教育是相称的。大学教育本身就不应该那么功利,否则就与“职业培训”相当了。纵观大学的课程,像数学、物理、化学、哲学等基础课,无一不具有较强的抽象性。比较而言,原来的“大学计算机基础”课程灌输一大堆表象的、技术性的知识,培养所谓的操作技能,不管是内容还是难度都不怎么像一门大学的基础课,充其量与大学物理实验相当。另外,前者是程序性知识,
以下为对购买帮助不大的评价