1.1 计算思维概述
关于计算思维,周以真教授发表了2篇重要论文,分别为2006年发表在Communicationsof the ACM上的《计算思维》(Computational Thinking)和2008年发表在英国皇家学会《哲学汇刊》(Philosophical Transactions of the Royal Society)上的《计算思维和关于计算的思维》(Computational Thinking and Thinking about Computing)。在第1篇论文中,周以真给出了计算思维的一个总的定义,并对计算思维具体是什么、其特征是什么进行了描述。第2篇论文探讨了计算思维的本质。
计算思维的提出,对美国教育界和科学界均产生了重要影响,并促成了美国国家科学基金(NSF)两个重大计划CPATH和CDI的产生。
2007年,美国NSF启动了旨在振兴美国计算教育的国家计划——CPATH(CISE Pathways to Revitalized Undergraduate Computing Education),该计划旨在通过“计算思维”从根本上改变美国大学计算教育的现状。
2008年,美国NSF又启动了一个涉及所有学科的以计算思维为核心的国家重大科学研究计划CDI(Cyber-Enable Discovery and Innovation),计划将计算思维拓展到美国的各个研究领域。美国NSF希望通过CDI等研究计划,使人们在科学与工程领域以及社会经济技术等领域的思维范式发生根本性的改变。基金会确信,这种思维范式的改变将会为美国产生更多新的财富,并最终提高美国人民的生活质量。
2011年,NSF又启动了CE21(The Computing Education for the 21st Century)计划,该计划建立在CPATH成功的基础上,其目的是提高K-14(中小学和大学一、二年级)老师与学生的计算思维能力。
2015年12月10日,经美国参众两院投票通过,美国总统在白宫签署了名为“让每个学生取得成功的法案(Every Student Succeeds Act,ESSA)”,将以计算思维培养为核心的计算机科学提高到与数学、英语等同的重要地位,并投入巨资在美国国内广泛推行。
计算思维的提出,同样引起了中国计算机界的重视。2010年7月19日至20日,C9高校联盟(包括北京大学、清华大学、浙江大学、复旦大学、上海交通大学、南京大学、中国科技大学、哈尔滨工业大学、西安交通大学)在西安交通大学举办了首届“九校联盟(C9)计算机基础课程研讨会”。陈国良院士在会议上做了“计算思维能力培养研究”的报告。
会议研讨了国内外计算机基础教学的现状和发展趋势,并就如何增强大学生计算思维能力的培养,进行了充分的交流和认真的讨论,2010年9月在《中国大学教学》杂志上发表了影响深远的《九校联盟(C9)计算机基础教学发展战略联合声明》,旗帜鲜明地把“计算思维能力的培养”列为计算机基础教育的核心任务。2012年5月,教育部高教司在合肥工业大学召开了“大学计算机”课程改革研讨会,会上明确了大学计算机课程要像大学数学、大学物理一样,成为大学的基础性课程。这是教育部对非计算机专业大学计算机课程的新要求。
针对国内外计算机教育发展的新动向,2012年春节刚过,教育部高等学校计算机科学与技术专业教学指导委员会、中国计算机学会教育专业委员会、全国高等学校计算机教育研究会召开了一次主任(理事长)扩大会议,就计算思维能力的培养进行了研究。认为“随着信息化的全面深入,无处不在、无事不用的计算使计算思维成为人们认识和解决问题的重要基本能力之一。一个人若不具备计算思维的能力,将在从业竞争中处于劣势;一个国家若不使广大受教育者得到计算思维能力的培养,将在激烈竞争的国际环境中处于落后地位。计算思维,不仅是计算机专业人员应该具备的能力,而且也是所有受教育者应该具备的能力。计算思维,也不简单类比于数学思维、艺术思维等人们可能追求的素质,它蕴含着一整套解决一般(类)问题的方法与技术。因此,作为教育部计算机教育的咨询与指导机构和计算机教育专业社团,我们有责任来推动计算思维观念的普及,促进在教育过程中对学生计算思维能力的培养,为提高我国在未来国际环境中的竞争力做出贡献。”会议发表了“积极研究和推进计算思维能力的培养”报告。
在对计算思维进行了长达5年的跟踪研究和教学实践的基础上,教育部高教司在2012年设立了“以计算思维为切入点的大学计算机课程改革项目”。2013年5月,教育部高等学校大学计算机课程教学指导委员会的新老两届主任和副主任共聚深圳,就进一步推动项目进展,在高校计算机教育中加强计算思维的研究和教育进行了深入的讨论,并在深圳发表旨在大力推进以计算思维为切入点的计算机教学改革的宣言,即“计算思维教学改革宣言”。
宣言开篇写道:一个古老而又年轻的概念,计算思维的概念,正在科技界和教育界萌发、激荡和蔓延。所到之处,彻底更新和改变了现在被广泛认同的一些理论和认识。一种新的关于计算和计算机科学的观点正在以雷霆万钧之势荡涤着旧有的传统,焕发出面向新时代和新技术的崭新面貌。从事计算机科学、思维科学、教育科学、社会科学、人文科学等各方面的专家,围绕着不同的要求和目的被吸引到这一领域里来。这种共同的兴趣正酝酿着新的重大的理论革命和技术飞跃,一种全新的对计算机科学的理解和应用的时代已经展现在我们的面前。
现在,人们已经认识到计算思维的重要性了,文化正在改变。中国一些学者甚至进一步地指出,计算思维的培育是教育改革,乃至科技改革的一个重要突破口,或者说,是中国科教战线的“诺曼底”。
为了充分地理解计算思维,下面,我们分别介绍计算思维的定义、计算思维的特征、计算思维的本质、计算思维的结构等内容。
周以真教授在《计算思维》中给出了计算思维一个总的定义,该定义被国际学术界广泛采用。计算思维是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。为便于理解,文中又给出了计算思维更详细的7种描述和6大特征,如表1.2和表1.3所示。
表1.2 计算思维的7种描述
表1.3 计算思维的6大特征
计算思维吸取了问题解决所采用的一般数学思维方法,现实世界中巨大复杂系统的设计与评估的一般工程思维方法,以及复杂性、智能、心理、人类行为的理解等的一般科学思维方法。
计算思维建立在计算过程的能力和限制之上,由机器或人执行。计算方法和模型使我们敢于去处理那些原本无法由个人独立完成的问题求解和系统设计。
计算思维最根本的内容,即其本质(Essence)是抽象(Abstraction)和自动化(Automation)。计算思维中的抽象完全超越物理的时空观,并完全用符号来表示,其中,数字抽象只是一类特例。
与数学和物理科学相比,计算思维中的抽象显得更为丰富,也更为复杂。数学抽象的重大特点是抛开现实事物的物理、化学和生物学等特性,仅保留其量的关系和空间的形式,而计算思维中的抽象却不仅仅如此。
计算思维中的抽象最终是要能够机械地一步一步自动执行。为了确保机械的自动化,就需要在抽象的过程中进行精确和严格的符号标记和建模,同时也要求计算机系统或软件系统生产厂家能够向公众提供各种不同抽象层次之间的翻译工具。
抽象层次是计算思维中的一个重要概念,它使我们可以根据不同的抽象层次,进而有选择地忽视某些细节,最终控制系统的复杂性;在分析问题时,计算思维要求我们将注意力集中在感兴趣的抽象层次,或其上下层;另外,对各抽象层次之间的关系人们也应该有一个初步的了解。
计算思维提出后,不少国家,如美国、英国,以及中国的学术组织举办过一系列的学术研讨。其中,2010年,在美国NSF的资助下,美国国家研究委员会(NRC)召开了一系列会议,给出了《关于计算思维的本质和适用范围的工作报告》(Report of a workshop on the scope and nature of computational thinking),报告给出了“计算思维”的五个公开问题(Open Questions):计算思维的结构问题、计算思维者的识别问题、计算思维与技术之间的关系问题、计算思维的教学方法问题与计算思维相关的计算社团的角色问题。其中,第一个问题,也即“计算思维的结构问题”是最重要的核心问题,下面做简单介绍。
在NRC的研讨会上,关于计算思维的本质和所应用的领域范围,与会者(包括来自美国科学院、美国工程院和美国医学院的国家顾问)提出了许多不同的观点。
虽然与会人员没有明确表示不同意与自己不同的计算思维观点,但是几乎每一个人都在坚持他们自己的观点,强调计算思维在某个特别方面的作用或者是对某个个体的重要特性。因此,为了达成一致,与会人员提出了计算思维的结构问题,该问题涉及计算思维的核心是什么,计算思维的组成元素是什么,不同元素之间的逻辑关系是什么等内容。
与会人员认为,一个符合逻辑的计算思维结构有助于计算思维的应用和发展。这个问题将引发后续关于计算思维本质的结构、伟大计算原理的结构框架以及计算机方法论的结构框架等3种具有代表性的计算思维结构的讨论,这种讨论会进一步加深人们对计算思维的理解。