西南科技大学张广兵教授:计算思维再反思
计算思维已是当下计算机科学领域的热门概念之一,相关学者将计算思维与“读、写、算”并列,并将其作为现代社会人们的必备素质之一,计算机科学专家、学者、教师等大力倡导,着力培养计算机专业学生的计算思维。随着计算思维方面理论研究与实践探索的深入,计算思维的培养已从计算机专业课程拓展到非计算机专业的大学计算机基础课程,呼吁计算思维进入中小学信息技术教育的声音也迅速涌现。当下,一方面计算思维进入大学计算机基础课程和中小学信息技术教育呈必行之势,另一方面却是“计算思维是什么”等基础性问题仍处于模糊状态。
尽管国内外相关学者已在计算思维方面开展了大量研究,然而计算思维远未成为概念明确、内涵清晰的术语,具体可从以下两个方面管窥计算思维概念与内涵的模糊性。
1.1 计算思维与其英文原文computational thinking的含义有异
计算思维由英文computational thinking(文中简称为“CT”)翻译而来,其中computational是一个形容词,用于修饰、限定thinking。笔者之前发表的论文指出,综合牛津、朗文等英汉词典的释义,computational的本义是使用计算机的、与计算机相关的或用计算机计算的[1]。据此,computational与计算的含义有所不同,computational只是计算的一种。严格地说CT只是计算思维的一种,即使用计算机的、与计算机相关的或用计算机计算的思维。汉语中的计算是个动词,有2个意思:一是根据已知数通过数学方法求得未知数;二是考虑、筹划[2]。英语中的calculate也有2个意思:一是用数字算出总数、总额、距离等;二是通过所有可用的信息推测某事或形成一个意见[3]。相较于computational,同为动词的calculate与计算的意思更为接近。综合而言,将computational译为计算扩大了CT的内涵,将CT译为计算思维容易将非计算机科学的相关知识、思想纳入CT之中。笔者认为,将CT译为计算思维是不准确的,应另觅新词进行翻译。在对此还未取得共识之时,本文为了阐述的方便,暂且继续使用计算思维一词。
1.2 computational thinking这一概念本身尚存争议
2006年,CT这一概念的提出者周以真(Jeannette M. Wing)曾指出,CT是运用计算机科学的基本概念去解决问题、设计系统和理解人类行为,运用探索性思考去发现问题解决方案,像计算科学家一样思考[4]。2010年,Jan Cuny、Larry Snyder和周以真还进一步将CT定义为一个思考过程,包含将问题和问题解决方案公式化,以至于问题解决方案可以用一个能被信息处理代理有效执行的形式来表示[5]。然而,Elizabeth Jones却指出,周以真“没有对‘CT是什么’给我们提供一个坚实的定义”,也没有解释“CT与其他类型的需要抽象或需要大量数据的思维的区别”[6]。Peter J. Denning亦指出,CT倡导者们“只对CT提出了一个模糊、含混的定义”[7]。
周以真等多次对CT进行界定,为何仍然出现诸如此类的批判与质疑呢?笔者认为原因主要在于,周以真等虽阐述了CT是什么、不是什么,但并未将“CT的独特性”和“CT与其他思维的区别”这两个核心问题阐述清楚。以其2010年对CT的定义“一个包含将问题和问题解决方案公式化的思考过程”为例,问题和问题解决方案的公式化必然会用到“抽象”。抽象作为一种问题解决与思考方式,早已在众多领域中广泛应用,显然并非计算机科学独有。周以真也认可抽象是CT的重要组成部分,指出了抽象的重要性,但并未阐明CT中的抽象与一般问题解决中的抽象有何区别。未清楚阐释“CT的独特性”和“CT与其他思维的区别”,使CT的内涵与外延处于模糊状态,难免出现“将计算思维当做一个‘筐’,什么都可以往里装”[8]之类的批判与质疑。
对于计算思维培养的必要性,周以真的相关论述主要有以下4个方面。
2.1 计算思维与“读、写、算”一样基本
周以真曾指出,“除读、写、算外,我们应该将计算思维加入每个人的分析能力之中”[4],“到21世纪中期,计算思维将成为世界上每一个人的一项基本技能,通过‘基本’这个词,我的意思是与读、写和算一样基本”[9]。姑且不论周以真对“计算思维和读、写、算一样基本”这一结论的论证是否充分,计算思维是否与读、写、算是一个层级的概念,是否能够与读、写、算相提并论,值得商榷。即使完全认可计算思维这一概念,计算思维也只是逻辑思维、批判性思维等众多思维中的一种,只是思维的一个下位概念。能够与读、写、算并列的应是整个思维,而非思维中的一种。若计算思维与读、写、算并列成立,那么我们还可以列出很多的内容与读、写、算并列,如批判性思维、创新思维等。据此,笔者认为计算思维与读、写、算并非同一级别的概念,无法相提并论,将计算思维与读、写、算并列不合逻辑,存在不同层级概念并列之误。此外,从学习、教学科目的角度而言,与阅读、写作、算术3个科目并列的应是整个计算机科学,而非计算机科学中的一部分内容。要将计算思维与阅读、写作、算术三者并列,那么计算思维就应是整个计算机科学的代名词,亦即计算思维可以等同于计算机科学。然而,Peter J. Denning明确反对将计算思维视为计算机科学的代名词,他认为“计算思维是计算机科学的关键实践之一”,“用计算思维来描绘整个领域是不合适的”[10]。
2.2 计算思维与理论、实验并列为三大科学支柱
周以真在《计算思维——是什么和为什么?》一文中,对美国总统信息技术咨询委员会(PITAC)指出的“计算已被认为是继理论与实验之后的第三个科学支柱”进行了引用,并将之作为计算思维有益于其他学科的论据之一[5]。首先,该委员会阐述的内容是“计算科学”(Computational Science),而非“计算思维”,引文出自该委员会的一个报告《计算科学:确保美国竞争力》[11],该报告所用的概念是“计算科学”,整个报告中并没有出现“计算思维”这一概念。其次,将“计算科学”视为三大科学支柱之一并非兴起于计算机科学领域,正如Peter J. Denning所指出,该观点发端于物理和生命科学[10],其重要倡导者包括诺贝尔物理学奖获得者Ken Wilson等,而Ken Wilson使用的术语是“计算科学”(Computational Science),“计算科学”这一术语是“经过仔细挑选的,以避免与‘计算机科学’(Computer Science)混淆”[10]。最后,“计算思维是否为计算机科学所独有”这一问题尚存争议,一些学者将计算思维作为计算机科学的一个概念,亦有学者认为计算思维并非计算机科学独有,比如,Peter J. Denning就明确提出,对于“计算思维是否是计算机科学独有的、独特的特性”这一问题,他的结论是“否”[10]。可见,虽然“计算科学与理论、实验并列为三大科学支柱”得到了学界的广泛认同,然而对于“计算科学能否等同于计算思维”尚缺乏清楚的论述,对于“计算思维是否为计算机科学独有”还存在激烈的争论。
2.3 计算思维在日常生活中有重要意义
周以真曾论述到,计算思维可以用于日常生活,并列举了3个实例。实例一是Randy Bryant为保障毕业典礼更为顺畅而设计的“流水线”;实例二是Danny Sleator的孩子们通过分类的方式更快速地将乐高积木收起来;实例三是在一次活动中,Roger Dannenberg被要求将200张打乱顺序的图表依序放到40个标题下,其他人都采取找到一个就放一个的方式,而Roger Dannenberg采取先对图表排序再放图表的方式,结果Roger Dannenberg最先完成任务[5]。诚然,以上提及的3种问题解决方式,可以用计算机科学中常用的分步式策略、线程控制、分类策略、算法的复杂性分析等进行解释。然而,3个实例述及的问题解决策略,无论是流水线,还是分类策略、先排序再配对的问题解决策略,均非计算机科学独有,而是多个学科、多个领域通用的问题解决策略。而且,流水线在18世纪兴起的第一次工业革命后已广泛采用,分类策略和先排序再配对的问题解决策略可以追溯到更早,上述时期计算机、计算机科学均未诞生。将这些问题解决策略归结为计算机科学独有的计算思维,并借此论证计算思维培养的必要性比较牵强,其说服力不足。
2.4 计算思维使每个人、每个职业均受益
对于计算思维使每个人、每个职业受益,周以真指出“计算思维能让每个人理解问题的哪些方面能用计算解决,将计算策略(如分步解决策略)应用于任何领域”“计算思维能将计算方法应用于每个职业人群的问题中,用计算机的术语解释问题和问题解决方案”[5]。该论述将计算思维作为一种广泛适用的问题解决方法、思路等,对此的批判与质疑主要集中于两个方面。一是有些问题计算思维解决不了,Elizabeth Jones 曾指出,“周以真文章的潜在意思是计算思维能用来解决任何问题,然而许多问题是处于计算思维领域之外的,比如,当我思考如何将一篇草稿修改为一篇故事”[6],Steve Easterbrook亦指出,“诸如道德困境、价值判断、社会的变迁等问题无法通过计算来解决”[12]。二是有些问题计算思维解决不好,Steve Easterbrook曾指出,“计算思维本质上是一种还原论,计算问题通过还原被处理成一组离散变量”,应用计算思维解决问题“使我们无视社会、环境对信息和通信技术的影响等问题”[12],还原主义在问题解决过程中通过抽象、还原,使环境、情境等“不重要”的因素被忽略掉,这些被忽略掉的因素虽然可能对问题能否解决没多大影响,但是却很可能对某些问题解决的质量产生很大影响。将计算思维作为一种问题解决方式,其适用范围亟待厘清。该问题解决方式是普遍适用,还是部分领域、部分问题适用?若是前者,则应论证清楚相关学者所提诘问的不合理之处;若是后者,则应明晰哪些领域、哪些类型的问题适用。
3.1 小学低年级学生能否开展计算思维培养
周以真曾指出,不仅大学生应该培养计算思维,K-12学生也应该培养计算思维,她也很高兴地看到计算思维培养正在进入美、英等国的一些K-12学校[9]。前文已论及,周以真亦认可“抽象”是计算思维的重要组成部分。然而,大量的教育学、心理学研究早已表明,小学生还以形象思维为主。根据瑞士教育、心理学家皮亚杰(Jean Piaget)的认知发展理论,儿童的发展可分为感觉运动阶段(0~2岁)、前运算阶段(2~7岁)、具体运算阶段(7~11岁)和形式运算阶段(11岁以后),一般要到11岁以后,儿童才进入以抽象、理论和假设思维为特征的认知发展期。[13]对小学低年级学生而言,其认知发展尚未进入形式运算阶段,而计算思维要求的“将问题和问题解决方案公式化”,需要较高水平的“抽象”和“形式运算”。从儿童认知发展的角度而言,小学低年级学生是否已具备计算思维培养所需的认知基础,计算思维培养在小学低年级学生中是否可行均存在很大的疑问。
3.2 相关教师的能力水平等能否达到要求
要培养学生的计算思维,要使学生“像计算机科学家一样思考”,作为培养者的教师自然无法回避。培养学生计算思维对教师有什么要求?教师,尤其是中小学教师能达到要求吗?教师如何才能具有较高的计算思维水平?如何知晓教师达到了相应的能力水平要求?诸如此类的问题随之而生。教师是否具备相应的能力水平直接影响课程、教学改革能否顺利实施、能否取得预期效果等。历史上的课程、教学改革不乏这样的实例,课程、教学改革对教师的要求太高,教师通过自身努力并接受培训也无法达到相应的要求,进而导致改革倡导的内容并未得到有效实施。正如J. L. Goodlad所言:“改革许多时候被认为失败,其实不然,因为它们从来就未能得到实施”[14]。周以真亦认可,计算思维培养中“最主要的现实挑战是我们没有足够的接受过培训的K-12教师”。她对解决此问题感到乐观,但并没有具体论述如何解决这一问题。倘若教师不具备相应的能力水平,倘若通过相应的培训教师亦无法达成“像计算机科学家一样思考”,那么教师如何培养学生“像计算机科学家一样思考”呢?
3.3 计算思维培养能否得到相关群体的认可与接纳
目前,计算思维培养得到很多专家、学者甚至相关组织、协会的认可与倡导。例如,美国计算机科学教师协会(CSTA)曾在《K-12计算机科学标准》和《计算思维于K-12教育》中倡导在K-12学生中培养计算思维[15-16]。然而,需要注意的是,这些专家、学者,这些组织、协会基本上全来自计算机科学领域,几乎没有其他学科的专家、学者。另一个需要注意的问题是,在“计算思维能否等同于计算机科学”还存在较大争议之时,不应将“计算机科学”的重要性与“计算思维”的重要性混为一谈,政府部门、企业、学校等对计算机科学教育的重视不能直接转换为对计算思维培养的重视。第三个需要注意的问题是,目前对学生为什么应该“像计算机科学家一样思考”的论证和辩护还很不充分。计算思维培养过程中相关实践者难免产生诸如此类的疑问:为何学生非要“像计算机科学家一样思考”,而不是像数学家、物理学家等一样思考?尤其是社科专业的学生为何应该“像计算机科学家一样思考”,而不是像哲学家、社会学家等一样思考?
目前,对计算思维的概念与内涵的阐释还不够清楚,对计算思维培养必要性与可行性的论证也不够充分,这难免会对计算思维培养实践能否顺利开展以及能否取得预期效果等产生影响。综合分析计算思维方面的理论与实践研究,笔者认为计算思维培养亟待厘清4个方面的问题。
一是计算思维的独特性。计算思维与其他相关思维有何不同?是完全不同,还是部分不同?若是部分不同,是哪些部分不同?
二是计算思维与相关概念的关系。计算思维与计算机科学、计算科学、计算机基础知识、计算机基本技能是什么样的关系。
三是计算思维培养的对象。一方面是纵向的年龄阶段问题,所有年龄阶段的学生均需、均能培养计算思维,还是计算思维培养对学生的年龄阶段有一定的要求。另一方面是横向的学科专业问题,所有学科专业的学生都需要培养计算思维,还是部分专业学生需要,部分专业学生可以不培养;所有学科专业的学生都需要同样的计算思维,还是不同学科专业需要不同的计算思维。
四是承载计算思维培养的课程。计算思维是仅在计算机类课程中培养,还是通过多个学科的课程共同培养。
作者简介:张广兵,男,副教授,研究方向为教学系统设计,zhangguangbing@swust.edu.cn。
END
更多精彩:
干货:教学论文福利哪里寻?精选40多张计算机教学模式图(快收藏)!
未来的所有新兴工作都需要软件工程师,《2017年美国新兴职业报告》这么分析!
计算机科学领域2017年度研究热点排行,最热的领域居然是这个!
喜讯:《计算机教育》跃居《中国学术期刊影响因子年报(人文社会科学)2017版》Q1区!