作者:陈鹏 黄荣怀等 转自微信公众号:现代远程教育研究

作者简介:陈鹏,博士研究生,北京师范大学智慧学习研究院,首都师范大学教育技术系(北京 100048);黄荣怀,博士,教授,博士生导师,北京师范大学智慧学习研究院;梁跃,硕士研究生;张进宝,博士,副教授,硕士生导师,北京师范大学教育学部(北京 100875)。

基金项目:中国教育学会“十三五”教育科研规划课题“新工具与新平台的应用创新研究——利用App Inventor促进中小学生计算思维培养为例”(1601110463B);北京市教育科学“十三五”规划2017年度优先关注课题“国内外应用信息技术提高教学质量的成功实践案例研究”(CEHA17068)。

引用:陈鹏,黄荣怀,梁跃,张进宝(2018).如何培养计算思维——基于2006-2016年研究文献及最新国际会议论文[J].现代远程教育研究,(1):98-112.

摘要:计算思维是当前国际计算机领域广为关注的重要概念,也是信息技术教育中的研究热点。计算思维是思维方式的一种,是利用计算科学的基本概念和方法,结合工程思维、数学思维等多种思维方式和特点,进行问题求解、系统建构和人类行为理解的思维过程。关注问题解决方案的形成过程,培养学生像计算机科学家那样去思考问题,是计算思维培养的宗旨。计算思维的培养不等同于程序设计或编程教学。从国际上的经验来看,可以通过多学科整合和不同教育阶段共同关注,将计算思维融入学生知识学习和问题解决过程,从而达到培养学生计算思维的目的。目前美国及欧洲各国的研究中,计算思维受到国家政策与项目支撑较多,亚洲各国在计算思维领域重视程度相对较低。计算思维教育的测评是现阶段研究的薄弱环节,是未来研究的重点内容。我国计算思维教育实践和研究刚刚起步,需要国家和相关研究机构更多重视和支持,在借鉴国外经验基础上,构建符合我国教育实践需求的计算思维培养课程体系、评价方法和教师专业发展策略。

计算机技术发展日新月异,不仅影响着我们的生活、思维方式和习惯,也深刻影响着我们的思维能力。当前,计算的观念正渗透到宇宙学、物理学、生物学乃至社会科学等诸多领域。计算不但已经成为人们认识自然、生命、思维和社会的一种普遍方法,而且正在试图成为一种全新的世界观。面对世界各国遭遇的各种环境、生态、能源、安全、经济、政治等诸多复杂问题,培养跨领域思考、具有高度理性与客观、以问题解决为导向的复合型人才已经是大势所趋。2006年美国卡内基梅隆大学周以真教授定义“计算思维”是“一种运用计算机科学基本概念求解问题、设计系统和理解人类行为的方式”,并阐述其不仅仅属于计算机科学家,而是每个人的基本技能(Wing,2006)。计算机科学与电信委员会(Computer Science and Telecommunications Board,CSTB)认为,计算思维是21世纪学生的核心能力,与阅读、写作与算术等基本技能同等重要(CSTB,2010;Qualls & Sherrell,2010),是学生发展核心素养的重要组成部分,其教育重视程度决定了各国未来创新竞争力的水平。2017年7月,首届以计算思维教育为主题的国际性会议(International Conference on Computational Thinking Education 2017,CTE2017)在香港教育大学召开,来自全球的教育者和研究者分享了在不同教育语境下系统进行计算思维教育的实践研究经验。我国在新一轮普通高中信息技术课程标准中,也将计算思维列为信息技术课程和核心学科素养。计算思维教育已是当前国际计算机领域广为关注的一个重要概念,也是当前信息技术教育研究的一个重要课题。为了解当前国际计算思维政策和研究现状,笔者对近10年(2006-2016年)国际上有关计算思维的研究文献以及首届计算思维教育国际会议的论文(CTE2017)进行分析,重点探讨当前情境下计算思维教育的实践现状和未来发展,为我国计算思维的理论研究和实践探索提供参考。

一、计算思维的概念及内涵

“计算思维”是思维方式的一种,不同专家对计算思维的关注点和侧重有所不同。周以真教授2006年提出“ 计算思维是一种运用计算机科学基本概念求解问题、设计系统和理解人类行为的方式” (Wing,2006) ;2011年,她对计算思维进行重新定义,认为“计算思维是一种解决问题的思维过程,能够清晰、抽象地将问题和解决方案用信息处理代理(机器或人)所能有效执行的方式表述出来”(Wing,2011)。与此同时,随着对计算思维研究的不断深入,一些学者及研究机构对计算思维也进行了定义。Denning(2009)认为计算思维最重要的是对于抽象的理解、不同层次抽象的处理能力、算法化的思维和对大数据等造成的影响的理解。Aho(2012)提出计算思维是问题界定的一种思维过程,它可以使解决方案通过计算步骤或者算法来表示。我国学者董荣胜等认为计算思维是运用计算机科学的思想与方法去求解问题、设计系统和理解人类的行为,它包括了涵盖计算机科学之广度的一系列思维活动(董荣胜等,2002)。

2011年,美国国际教育技术协会(International Society for Technology in Education,ISTE)与计算机科学教师协会(Computer Science Teachers Association,CSTA)联合提出了计算思维的操作性定义,将运用计算思维进行问题解决的过程进行了表述。此定义将计算思维界定为问题解决的过程。在这个过程中,先形成一个能够用计算机工具解决的问题,然后在此基础上逻辑化组织和分析数据,使用模型和仿真对数据进行抽象表示,再通过算法设计实现自动化解决方案;同时,以优化整合步骤、资源为目标,分析和实施方案,并将解决方案进行总结,迁移到其他问题的解决中(ISTE & CSTA,2011a)。英国皇家科学院将计算思维定义为“识别我们周围世界中有哪些方面具有可计算性,并运用计算机科学领域的工具和技术来理解和解释自然系统、人工系统进程的过程”(Royal Society,2012)。这一定义的核心在于发现各种不同类型、不同层次计算问题,以及通过计算机技术和工具对人工和自然系统进行剖析和理解。

以“计算思维”为关键词在Web of Science、ScienceDirect、 ERIC、ACM Digital Library数据库进行搜索,共获得2006-2016年285篇SSCI论文。排除没有涉及计算思维定义、概念和研究范围的文章,最后获取相关文章134篇。对其中的概念、定义、特征和要素等进行分析发现:学者们对计算思维定义的描述中所使用的词汇频率从高到低为:问题解决(Problem Solving,25%)、抽象(Abstraction,12%)、过程(Process,11%)、计算机(Computer,10%)、算法(Algorithm,7%)、数据(Data,7%)、科学(Science,6%)、有效(Effective,5%)、概念(Concepts,5%)、能力(Ability,5%)、分析(Analysing,4%)和工具(Tools,3%);对计算思维特征的描述中最常使用的词汇为抽象(Abstraction,22%)、算法思维(Algorithm Thinking,15%)、问题解决(Problem Solving,14%)。这个结论与Ioannidou等人(2011)的研究发现一致:在计算机科学研究中,计算思维最常见的特征是抽象、算法思维和问题解决。

综上所述,目前关于计算思维的定义虽然并没有形成较为统一的定义,但在进行计算思维的阐释时,很多学者都描述了计算思维的主要构成元素。学者们对要素的意见都较为一致,综合来看,主要包括抽象、概况、分解、算法、调试等(Angeli et al.,2016)。同时,关于计算思维的内涵,大部分学者较为认可周以真教授的观点,即“概念化,不是程序化;根本的,不是刻板的技能;是人的,不是计算机的思维方式;数学和工程思维的互补与融合;是思想,不是人造物;面向所有的人,所有地方” (Wing,2006)。

二、计算思维的教育价值

根据CSTA 2013年的一份研究报告,美国信息与计算机行业面临着人才短缺的局面;2020年,将有920万与STEM有关的工作,其中一半需要掌握计算机科学知识和技能。计算机人才的培养与国家的经济命运息息相关。当下中国的信息技术教育着重在教会学生如何利用现有软件与工具,完成日常生活中的信息浏览、加工与表达,对学生创造能力和实际解决问题能力培养的关注度不够。

开展计算思维教育有助于提高学生信息技术知识与技能,培养学生跨学科、综合应用学科知识解决问题的能力,提高学生的内驱力和创新力。美国麻省理工学院的Hal Abelson教授在CTE2017会议上指出,教育者越来越强调计算思维对年轻人的重要性。计算思维包括的不仅仅是技能知识,对计算思维的支持也使赋予数字化世界生命的计算理念得到尊重,对计算理念的认同也使得计算活动成为可能,年轻人也可以由此通过计算思维来改善他们的生活、家庭与社会。作为教育者,我们有责任让学生意识到这些可能,并去帮助他们成为不断变化的信息时代的合格公民(Abelson,2017)。香港溢达集团董事长杨敏德女士也在CTE2017会议上从整个社会和企业的发展、创新与创造力的角度谈到计算思维教育。她认为创新与创造是驱动各地区向知识型社会转型的重要理念与策略,也是当前社会和企业发展的核心要素。如何将每个人尤其是年轻一代培养成为更具创造力与创新能力的人是这个社会的重大责任和关键问题。杨女士认为计算思维不仅仅是一种技术型的技能,更是一种分解与整合不同思想、针对某问题形成实际解决方案的基本能力(Yang,2017)。

三、计算思维教育政策及投入

加强以计算思维为核心的计算机科学教育,提升全民的数字素养,面向未来提升国家在信息技术相关领域的实力,已经成为世界主要发达国家的共识。美国、英国、新西兰、新加坡、澳大利亚等国家和地区对计算思维培养十分重视,不仅在人才培养计划和课程体系中纳入了计算思维,同时也从国家层面启动了多种计算机科学教育研究项目,并加大资金投入支持计算思维教育的实践和研究。

2016年1月,美国推出“为了全体的计算机科学”(Computer Science for All,简称CS for All)计划,预计投入40亿美元和1亿美元分别资助各州以及学区推进K-12计算机科学教育①。同年,美国自然科学基金委(National Science Foundation,NSF)与国家与社区服务公司(Corporation for National and Community Service,CNCS)宣布为计算机科学教育研究提供可用资金1.35亿美元。2016年11月,最新版的美国《K-12计算机科学框架》发布,提出新时期美国K-12计算机科学教育的发展愿景及实现路径,明确了计算系统、网络和互联网、数据和分析、算法和编程、计算的影响等五大核心概念,提出了创建全纳的计算文化、通过计算开展合作、识别和定义计算问题、发展和使用抽象思考、创造计算产品、测试和改善计算产品、计算的沟通等七大核心实践,以及计算机科学和学前教育重要理念的整合途径(卢蓓蓉等,2017)。2018年,NSF将以支持CS for All为依据,单独为计算机科学教育设置支出项目,每年投入2000万美元(NSF, 2018)。

英国政府2013年11月发布了国家计算课程的目标框架,以计算思维的核心概念和主要内容为基础,提出课程培养的四段目标;在基础教育阶段,发展学生的分析问题、解决问题、设计和计算思维技能,并使其能应用这些技能(U.K.,2013)。同年,英国对计算机协会(BCS)投资1100万英镑,帮助其发展一项提高小学教师计算机能力的项目,以确保小学计算机教师的授课能力。2016年12月,在欧洲委员会和布鲁塞尔Digital Europe推出的数字技能和工作联盟的推动下,Oracle公司提出将在三年内投入14亿美元,用于支持欧洲的计算机科学教育②。

新西兰当前的“技术背景知识和技能”(Technological Context Knowledge and Skills)计划中强调了包括“编程与计算机科学”在内的五项数字技术核心培养内容,这一计划从2011年开始在中学课程中实施(Ministry of Education of Newzealand,2009)。

新加坡政府推动“Code@SG运动”发展全民计算思维,实现计算思维的常态化。新加坡与其他国家不同之处在于,计算课程非必修,主要面向有编程兴趣的、适龄的学生(Singapore Government,2014)。

澳大利亚于2012年推出“中小学技术学科课程框架”(The Shape of the Australian Curriculum: Technologies),将“数字素养”纳入学生基本能力要求。框架指出数字技术课程的核心内容是应用数字系统、信息和计算思维创造满足特定需求的解决方案(ACARA,2012)。

我国香港地区,由香港赛马会慈善信托基金设立,香港教育大学、美国麻省理工学院及香港城市大学合作进行为期4年的CoolThink@JC计划,开展计算思维教育相关的研究和实践③。该计划预期在香港培训100名小学教师,为32所学校的16500名小学生提供计算思维教育,启发学生在日常生活中的数字创意,帮助学生超越单纯的计算机技术使用,转变为利用技术来解决问题、进行创造和创新。

总的来说,在计算思维教育的政策支持方面,美国、英国和亚洲地区具有相对明显的差异。美国及欧洲各国的研究,受到国家政策支持、项目支撑较多。中国、新加坡等亚洲国家和地区虽然在政策中略有提及,但是具体的政策支持和项目立项较少。美国政府及相关机构对于计算思维研究的支持力度最大,政策关注度和资金投入度都高,研究方向最广,研究成果也相对丰富。

四、计算思维教育的研究与实践

虽然计算思维的研究始于1980年,但从2006年起,计算思维在教育中的应用研究才逐渐增多,其研究领域从计算机学科到人文学科,从基础教育到高等教育,从个人实践到政府政策,从单个学校到整个地区或国家。

1.计算思维教育等同于编程教育吗

作为一个全新的专业术语,计算思维教育的实施引发了学界争论。虽然程序设计是发展学生计算思维的一种重要载体,但计算思维教育不仅仅是编程教育,其关注的是利用信息技术解决问题的能力,强调学生信息化认知方式的发展,强调在真实体验与实践应用中发展学生利用信息技术思考与解决问题的独特能力。

信息技术课程是计算思维教育的一种重要方式。通过信息技术课程,学生可以了解计算思维运作的属性与法则,建立计算思维的概念结构等,但是计算思维的培养不仅仅局限于信息科学课程。2015年,美国总统奥巴马签署《STEM教育法令》(扩展版)(U. S.,2015),将计算机科学纳入美国教育的发展战略。美国计算机教师协会(CSTA)定义的中小学计算机科学标准在小学、初中、高中三个阶段均倡导了计算思维与社会、语言艺术、数学与科学等课程的整合。

美国范德堡大学的Gautam Biswas教授(2017)认为,尽管目前已经发现计算思维与STEM教育之间的协同效应,但对计算思维的领域共性与科学表示的领域特性之间的互换协调与探索,是教育领域的重大挑战。为了在STEM与计算思维学习中缩减这一差距,他们开发了基于计算机的学习环境——CTSiM,采用计算思维的仿真与建模方法,开展K-12的科学教育。CTSiM为构建具有可执行性的计算模型提供了一个基于主体、特定领域的可视化编程界面,同时能让学生使用模型进行模拟操作,并与专家模型进行比较。通过对田纳西州中部公立学校六年级学生的初步研究证明,CTSiM能够帮助学生克服困难,同时让学生在此环境中对科学现象进行学习并独立建模(Basu et al.,2013)。

Swanson等人在NetLogo模型支持的、具备丰富计算环境的科学课程中,研究该类课程对于发展学生计算思维能力的效果(Swanson et al.,2017)。课程由3名9年级的生物教师讲授,133名高中学生持续一个学年参与课程。在课程中对学生进行前后测,并根据评价量规进行编码和评分,以评价他们在建模和仿真实践两个学习目标上的知识掌握程度和目标实现情况。研究结果表明,这类具有丰富计算环境的科学课程能有效地提升学生的模型识别能力。

Pollack等人基于Equation-Based Model(EBM)开展通过计算机仿真描述物理现象的课堂教学(Pollack et al.,2017)。研究对课程的期末项目进行了分析,并认为该教学法对于学生的意义学习以及掌握课程中所涉及的计算思维具有一定潜力。

Hutchins等人以在物理课堂中完成一个Scratch项目为任务,通过前后测来分析40名高中学生在计算思维学习过程中的自信水平(Hutchins et al.,2017)。结果发现在计算思维的“抽象、控制流、分解和条件逻辑”这四个维度上男生较女生的自信水平高,但这种自信水平的差异对完成建模任务并没有显著性影响。

可见,在非信息技术学科课程中,将培养计算思维作为课程的重要目标之一已经被越来越多的教师和研究者们所认可,他们也纷纷通过实践来验证这一目标的可行性和意义。显然,计算思维教育虽然需要信息技术课程进行专业支持,但不能限制于信息技术课程之中,整合学科、综合课程同样是发展学生计算思维的重要途径。

2.从什么阶段开始培养计算思维

(1)高等教育阶段的计算思维培养

国外高等教育阶段的计算思维培养研究主要采用实验研究和案例研究,大部分引入计算工具,采用游戏化教学方式,在计算机学科、STEM教育中进行研究,通过融入计算思维来辅助学生的知识学习和问题解决,从而达到培养学生计算思维的目的。如Kose等人(2013)采用实验研究的方法,在e-Learning环境和传统教师主导的课堂环境下进行对比教学实验,并进行相关数据分析;Hung(2012)在课堂教学中采用实验研究的方法,运用图解、类比等方法进行教学并与传统的讲解式教学进行对比;Ismail等人(2010)在教学中运用思维导图工具、协作学习等方式来进行教学实践,并与传统的教师主导型课堂进行对比,验证其对于学生学习效果的促进作用以及对学生计算思维培养的效果。

我国《九校联盟(C9)计算机基础教学发展战略联合声明》中将计算思维能力培养作为计算机基础教学的核心任务④。我国高等教育阶段对于计算机思维的培养以理论研究为主,实践研究为辅,且主要在计算科学学科课程中进行。理论研究方面主要探讨计算思维的培养对于大学基础计算机教育的改革有怎样的价值和意义(王移芝等,2012;战德臣等,2013;李廉,2013),以及如何在计算思维的理念之下进行大学计算机课程设计(姚天昉,2012;任艳霞,2016)。在实践研究方面,大部分学者以高等教育计算机课程为研究载体,在课程中融入计算思维,并通过实践数据分析来检验教学效果以及是否实现了培养学生计算思维的目标。例如,计算思维在程序设计基础课程中的运用与实践、计算思维与C语言程序设计课程的结合等(陆汉权等,2012;汪红兵等,2014)。

总的来说,目前关于高等教育计算思维培养的研究中,研究者主要关注三个问题:计算思维的定义、计算思维在计算科学课程中的应用问题以及在除计算科学课程以外的学科中运用计算思维的策略等(Israel et al.,2015)。

(2)K-12教育阶段的计算思维培养

国外对于K-12阶段的计算思维培养十分重视,很多国家都在其人才培养计划和课程体系中纳入了计算思维。在国家政策支持和机构研究的基础上,很多专家学者对于K-12阶段计算思维的培养进行了多维度的探索。2011年,CSTA和ISTE在NSF支持下联合出版了“计算思维教师资源”第二版(ISTE & CSTA,2011b)。这份报告不仅规范了K-12教育中计算思维培养的研究,同时还为广大教师和学校进行计算思维教育教学实践提供了可信度较高的培养目标标准、丰富的支持资源和参考性较强的课程方案。2014年,Linda Mannila等面向K-9教育阶段的计算思维进行了一个跨国、跨地区的政策分析和教师实践研究,分析了芬兰、意大利、立陶宛、荷兰、瑞士以及美国等国家在K-9阶段计算思维教育的基本情况,发现在这些国家中,虽然大部分国家对于计算科学和编程教育十分重视,但是教育中对于结果的关注大于对过程的关注。对教师的问卷调查发现,大部分教师已经尝试在课堂中融入计算思维教学,并通过一些编程工具和软件来支撑教学,但是在目前的实践中,教师们对于学生计算思维的培养主要针对数据表示、收集和分析这一初级层次,对于抽象、算法、并行以及建模和仿真这些中、高级计算思维技能的培养较少涉及(Mannila et al.,2014)。

我国在K-12教育阶段计算思维培养的研究中,理论研究与实践研究所占比例较为相近。在理论研究中,一些专家学者主要探讨了在计算思维理念和培养目标之下,基础教育阶段信息技术课程的核心价值和主要任务以及在中小学信息技术教育中引入计算思维、培养学生计算思维的重要性。任友群等(2016)指出,“中小学信息技术课程是信息技术教育的基本途径,应当顺应时代特征,承担起发展学生计算思维的重要任务。”信息技术基础教育专家李冬梅认为“中小学信息技术教育的学科价值除了让学生掌握必要的知识与技能外,更重要的是培养学生运用这些知识和技能解决实际问题的能力。而要做到这一点,就一定要让学生逐渐熟悉信息技术学科的思维方式”(刘向永等,2013)。

在实践研究方面,我国学者主要采用将计算思维融入现有课程中的方式,与某种特定的教学方法或教学模式结合,如PBL、合作学习、任务驱动等,创建计算思维教学的案例(牟琴等,2011;葛明珠,2014;生诗蕊,2016)。在高中信息技术课程中,研究者主要采用将计算思维与现存的Flash制作、程序开发基础等课程相融合,改变原有的教学方式,重新设计教学活动和教学过程,以培养学生的计算思维(杨男才,2013;李静,2015);在小学阶段,则较多的采用游戏化教学的方式,使用可视化编程工具如Scratch、App Inventor等,提升学生的学习兴趣,培养学生一些简单的计算思维能力(赵兰兰,2013)。

(3)学前教育阶段的计算思维培养

大量的研究表明,只要合理设计与利用计算机科学,ICT 将有助于 3~6 岁儿童智力、语言、社会性、创造力等的发展(张炳林等,2014)。美国计算机教师协会(CSTA)定义的中小学计算机科学标准中提到在幼儿园阶段,主要是通过体验活动,来激发、引导与帮助幼儿理解计算作为社会的重要组成部分,鼓励其学习、创新与探究。最新的《K-12计算机科学框架》中特别关注学前教育中的计算机科学教育,并将此作为一个独立的章节。其中指出,计算机科学不仅仅是一个开发技术能力和知识内容的工具,它还可以嵌入基于游戏的早期学习实践中(卢蓓蓉等,2017)。近些年出现了很多面向低龄儿童的计算思维教育产品,例如,Wondershare机器人、Google Blockly、Robot Turtles、Scratch Jr、Bee-Bot、Cargo-Bot、Daisy the Dinosaur等。其中,Cargo-Bot就是一款移动App应用程序,通过设置指令指挥机器人移动木箱,内容包括迭代、排序算法、分类、模式及执行效率等概念。Leidl等人利用谷歌分析工具对趣味编程平台Scratch Jr(面向5~7岁幼儿的编程工具)一年的用户学习数据和行为进行分析,发现对幼儿阶段的计算思维发展起到了一定的促进作用(Leidl et al.,2017)。Sullivan等人利用KIBO机器人(一款专门为4~7岁幼儿设计的产品为工具),让儿童在游戏中通过组装和编程控制机器人的方式来学习计算思维(Sullivan et al.,2017)。

计算思维是现代社会中每个人应该必备的技能,计算思维教育需要针对不同人群采用不同的教育方法,引导其体验信息技术的应用情境,理解信息社会生活方式,感受现实生活中计算思维的真实存在,逐步培养学生利用信息技术思考和解决问题的方式与能力。

3.如何评价计算思维

计算思维的评价对计算思维在实践中的应用效果研究有重要价值,同时也影响着计算思维领域研究的发展。Schwarz等人采用一系列的方法来评价计算思维,如前后测问卷、反馈性访谈以及学生课堂交互观察等(Schwarz  et al.,2009);Repenning等人设计了基于搬运工游戏的五个问题情境来真实地评价学生的计算思维能力(Repenning et al.,2010);Fields等人通过学生调试预先编辑的错误程序来检验他们的工程和编程技能水平(Fields et al.,2012);Werner 等人在研究中使用了一个基于Alice平台的“仙女评价”系统,通过学生自创的或者程序作品草图设计来评价学生对于抽象、有条件限制的逻辑、算法思维以及其他用来解决问题的计算思维概念的理解和使用(Werner et al.,2012);Dorling 和 Walker等人开发了一个“计算发展路径”框架,阐述了学生在学习算法、信息技术等概念时的基本路径,该框架所涉及的概念与计算思维的核心概念相一致(Dorling et al.,2014)。

综上所述,常见的计算思维测评方式和工具有以下几种:

(1)计算思维总结性评价测试

主要包括基础编程能力测试(Mühling et al.,2015)和计算思维知识内容测评,例如Meerbaum-Salant 等人提出的基于Scratch教学情境的评价工具(Meerbaum-Salant et al.,2013);以及那些以计算思维为核心的计算机课程中,用于测试学生对计算概念理解程度的测评工具。

Román-González等人开发的计算思维测试(CTt)是一项由28道选择题组成的可通过电脑或移动终端进行的线上测试(Román-González et al.,2017)。CTt的每题都以“迷宫”或“画布’的形式出现,每次答题时间不超过45分钟,答案选项都为箭头图像或模块图像。测试题按照难易程度排序,包括基本方向和序列,循环-重复次数,简单条件的if语句,复杂条件的if/else语句、while语句,简单函数等。例如图1中,通过迷宫的形式考查循环-重复次数(嵌套)的问题。

如何培养计算思维——基于2006-2016年研究文献及最新国际会议论文

图1  CTt 迷宫测试题(Román-González et al.,2017)

(2)计算思维形成性迭代测试

计算思维形成性迭代测试工具通过在特定的编程环境中,自动为学生提供反馈信息的方式来帮助学生提升计算思维技能。常见的计算思维形成性迭代测试有Scratch环境下的Dr. Scratch(Moreno-León et al.,2015)和Ninja Code Village(Ota et al.,2016),Grover等人(Grover et al.,2016)为Blockly研发的工具,以及适用于AgentSheets的计算思维模式CTP图形(Koh et al.,2010)。

Dr. Scratch(http://drscratch.org/)是一款免费、公开的网络应用程序,通过分析Scratch作品中的源代码来评估学生对计算思维能力的掌握程度。它能够帮助教师和学生自动分析Scratch编程作品,同时给出反馈,帮助学生提高编程技能,发展计算思维能力。Dr. Scratch根据计算思维能力的“抽象与问题分解、逻辑思维、同步、并行、顺序控制、用户交互、数据表示”7个维度进行评价,每个维度给出1~3分的分值,细分“基础、中等和熟练”三个等级。图2展示了一项Scratch作品的源代码,Dr. Scratch判定该作品得分为8分,判分原因为其包含了if-else语句,逻辑思维得2分;玩家使用鼠标与精灵交互,用户交互得2分;作品使用变量,数据表示得2分;作品中有两个精灵,抽象与问题分解得1分;程序由无循环的序列指令组成,顺序控制得1分;并行与同步得0分。

如何培养计算思维——基于2006-2016年研究文献及最新国际会议论文

图2 “捉迷藏”(“catch me if you can”)的源代码⑤

可见,在此类针对程序进行评价的方式中,对程序复杂性的评价尤为关键。通过分析程序的复杂性,能反映出学生在计算思维中抽象、并行等多方面的理解和应用水平。Ruan等人在现有的基于文本编程语言的程序复杂性评价方法中,选取了Halstead软件复杂性度量法及其补充方法,在采用模块化编程的App Inventor程序中进行应用(Ruan  et al.,2017)。通过对50名随机用户的App程序进行分析发现,这两种方法对于App Inventor的程序复杂性分析都并不十分适用。研究者希望能有更多学者关注这一研究方向,开发出适用于模块化编程语言的程序复杂性度量方法。

(3)计算思维技能应用测评

此类测试的目的是考查学生将计算思维技能应用于不同问题中的能力。例如Bebras测试(Dagiene et al.,2008),评价学生将计算思维技能应用于现实生活中的问题的能力;CTP-Quiz(Basawapatna et al.,2011),关注学生将计算思维技能应用在科学模拟的情景中的能力。

近几年,计算思维挑战赛在世界各地纷纷展开,受到很多学者的关注,很多国家也积极参与赛事。计算思维挑战赛主要是通过一系列的情境问题来考察学生的计算思维水平,不同的题目针对不同的计算机科学概念以及运用计算思维进行问题解决的能力。Bebras测试⑥是基于Bebras国际计算思维挑战赛设计的一系列活动。该赛事2003年诞生于立陶宛,旨在从计算思维的角度出发推动世界中小学计算机科学教育领域的发展。大赛每年采用一套全新试题,通过现实生活中的问题以及一些热点问题来反映学生的计算思维能力。Bebras测试不同于其他软硬件,任何没有编程经验的人都可以参加测试。基于这些特点,Bebras测试可以说是未来计算机领域PISA(国际学生评估项目)测试的雏形。

(4)计算思维编程效能感测评

江绍祥教授(Kong,2017)将计算思维与心理学研究相结合,开发并验证了一个面向小学高年级学习者的编程自我效能感量表。该量表适用于模块化编程环境,由两个分量表组成,分别针对学习者的两方面能力:编程知识和编程技能。研究者通过对106名参与编程课程的小学生进行在线问卷调查,证明量表的信度良好、有效性高,能够较好地测试小学高年级学生的编程自我效能感。

研究者认为单独使用上述任何一种测评工具,对学生计算思维能力发展的理解都会有所偏差。Brennan和Resnick提出,单看学生编写的程序,并不能体现他们的计算思维能力。他们强调多种测评手段并用的必要性,并提出基于计算思维3D框架的三种评价学生计算思维发展水平的方法,即作品分析、基于作品的访谈以及基于情境的设计(Brennan & Resnick,2012)。同时,Grover等人(2014)也指出实现对学生计算思维的全方位理解,必须系统融合多种补充测评工具(也称为“系统性测评”)。Román-González等人对三种不同视角和倾向的计算思维评价工具(CTt、Bebras和Dr.Scratch)进行了聚合效度分析,得出三种测试具有部分聚合度,整合三种测试方式能很好地对中学生的计算思维进行测评(Román-González et al.,2017)。

总的来说,当前关于计算思维教育的评价,主要是通过对程序与学生学习的过程进行分析,方法包括计算思维知识测试、程序分析、自我效能感测试、针对问题解决过程的访谈等。计算思维评价不是单一的考查。如何综合多种评价工具,进行计算思维系统性评价的研究将是未来该领域的研究重点。

4.计算思维教育需要什么样的教师

虽然不同国家都强调计算思维教育,但在K-12教育中实施计算思维教育的重要挑战之一是教师计算思维能力的短缺,这也是计算思维教育质量的关键影响因素。教师对计算思维的理解程度、自身计算思维水平高低,以及针对以计算思维为核心的计算机课程的教学设计和教学实践能力等,都直接决定了计算思维教育的质量、学生学习的效果。有关研究表明,大量计算机教师的专业发展规划虽然在计算思维和计算机科学知识的领域之内,但即使教师修读过计算机课程,其对于编程环境也是不熟悉的(Yadav et al.,2014)。Saeli等人提出,对于教师的计算思维能力培养和评价,除了有关计算思维或计算机科学的相关主题内容外,计算机教育的实施还需要教师具有完备的教学内容知识、他们对编程内容的理解以及如何把内容传递给学生、促进学生理解和应用等(Saeli et al.,2012)。

黎巴嫩国际教育协会负责人Eliane Metni 15年来融合教师专业发展以及基于设计的研究,在黎巴嫩开展了“Code-Maker”计划,以创新的教学方法和低成本的Raspberry Pi(树莓派)技术为基础,邀请教育工作者及其学生生成知识并构建解决方案,以更广泛地改善教学服务(Metni,2017)。

Fields等人对教师的教学过程进行了研究,分析一个为期30~40小时的高中电动纺织单元的教师课程开展全过程(Fields et al.,2017)。研究通过对研究者记录的课堂观察笔记、教学图片、教学过程视频、课程前后的教师访谈以及教师的日常教学反思等文本进行分析,从三个关键内容,即问题解决策略、迭代以及抽象和具体的计算之间的衔接来分析教师是如何在课堂中引入计算思维的。研究认为,教师的学科教学知识对于教师帮助学生将计算思维落地是十分重要的。

香港教育大学江绍祥等人在CoolThink@JC项目的支持下,和美国MIT的研究团队共同开展了计算思维教育教师培训计划(Kong et al.,2017)。该计划开发了两门教师发展课程:一门是由MIT的研究人员进行设计和实施的,为期5天,每天6小时,主要讲授计算思维的基本知识以及一些基本的计算思维教学法知识。在课程前后分别设有3小时的前期课程和2小时的课程汇报,由香港教育大学的研究人员组织和讲授。第二门课程在第一门课程的基础上,主要关注教学法的讲授和讨论。第二门课程持续13周,每周一次课程,参加课程的教师一边开展计算思维教学,一边参与该课程,课程上通过反思和讨论来完善教学,最终形成完整的课程单元讲授方案。在该课程中,教师们分析自己的授课视频、对学生的作品进行分析和评价,并探讨如何利用这些来评价学生的学习情况。课后评估数据分析结果表明,教师在参与第一门课程之后对于计算思维的内容知识有所提升,但是有些教师对于讲授计算思维仍没有较高的信心,编程活动和计算思维概念及实践的对应性需要加强。

五、计算思维教育面临的问题与挑战

国际上关于计算思维的研究受到了越来越多的关注,并在相关领域不断发展。我国目前关于计算思维的研究仍处于初级阶段,虽然已经得到了各领域学者的关注,但是研究内容和方向较国外而言还比较有限,且研究类型和模式创新性比较薄弱,研究深度和研究价值有待进一步加强。

1.缺乏培养体系与教育标准

高新技术创新能力已经成为衡量一个国家核心竞争力的重要指标。世界主要发达国家在近些年的课程变革中,大都是站在国家和人才发展的高度,服务于社会和经济发展的需要,尤其是满足信息行业和创新型产业对计算机人才的迫切需求,致力打造出世界高质量的教育,以在激烈的全球竞争中取胜。政策上,美国、英国、澳大利亚、新西兰等通过颁布基础教育国家课程标准,将计算思维纳入标准中,投入大量资金推动计算思维教育(或者是计算机科学教育)。我国新一轮的高中课程标准中,也已经明确地将计算思维作为信息技术学科的核心素养之一。近日,国务院印发《新一代人工智能发展规划》,提出逐步开展全民智能教育项目,在中小学阶段设置人工智能(AI)相关课程、逐步推广编程教育。

从国际上认可度较高的中小学计算思维教育框架中发现,中小学教学中的计算思维主要有以下特点:(1)基础性。中小学阶段的计算思维内涵较为简单,包含的主要是一些基础性内容,符合中小学的学习情况和认知特点。(2)阶段性。由于中小学不同阶段的学生具有不同的特点,因此现有框架大都根据不同年级的特点阶段性地对计算思维的内涵进行界定,并设计了阶段性的教学目标。(3)知识指向性。中小学阶段的计算思维内涵与广义的计算思维内涵不同。由于要面向教学实践,所以大多数界定都具有一定的知识指向性,此有利于计算思维教育的落地。因此对于政策制定者和研究者而言,根据计算思维的核心内容,结合我国实际国情和学生能力水平,制定不同学段的计算思维培养标准框架和知识体系,为教育实践提供完整的指导方案和操作内容,是当下首先要解决的问题。

2.缺乏计算思维培养的创新教学模式

相对国外大量的教育实践研究来说,国内目前对计算思维教育的研究以理论探索为主,专家学者主要探讨在计算思维理念和培养目标之下,基础教育阶段信息技术课程的核心价值、主要任务以及在中小学信息技术教育中引入计算思维、培养学生计算思维的重要性。

在实践检验中,现有研究主要以高等教育为主,大部分面向高等教育中的程序设计课程,少部分研究针对基础教育阶段的信息技术课程,且学者主要采用将计算思维融入现有课程中,与原有特定的教学方法或教学模式结合,缺乏计算思维教育的实证研究检验,计算思维培养的效果不明显。借鉴国外的大量实证研究,在计算思维培养的标准框架指导下,由理论研究转向教学实践研究,探索计算思维的教学模式和教学效果,采用准实验研究、行动研究以及观察、访谈、个案分析、作品分析等研究方法,开展计算思维教育实践活动、策略及评价的研究,是研究者们面临的重要挑战。

3.教师信息技术专业素养不够

培养计算思维,教师的能力和素养起着关键性的作用。目前,我国高中100%开设了信息技术课程,且信息技术课的实施环境得以持续改善,高中信息技术课教师的规模和专业知识技能都有了大幅提升。但是随着计算思维的纳入和国务院《新一代人工智能发展规划》对中小学开设人工智能课的要求,如何进一步提高教师的专业素养也是当前迫切需要解决的问题。因此,当下应完善教师培训制度,开发计算思维培训课程,通过在线课程的方式,根据不同地区差异,开发符合计算思维教育课程目标与评价指南的教学单元,扩大教师培训的范围;通过面授的方式进行深度教学,探讨计算思维培养过程中的问题,帮助教师更好掌握如何开展计算思维培养的教学实践。

4.缺乏对计算思维教育研究的支持

世界大部分发达国家在政策支持下,开展了计算思维教育的各类研究计划和项目,并投入了大量的资金来支持以计算思维为核心的计算机科学教育及研究。为了推进我国计算思维研究以及不同教育阶段计算思维的培养,不同研究机构、教育机构和部门需提升对计算思维研究的重视,并在政策和经费上提供帮助和支持,以促进领域研究的发展和进步。当前我国计算思维的研究大部分以个人项目为主,缺少国家机构的立项支持。从国际上发达国家的经验和发展趋势来看,国家相关部门可以从多维度、多层次、多主题出发,设立基于多种命题方式的有关计算机科学教育的研究基金和项目,支持开展相关实证研究,构建以计算思维为核心的计算机科学基础教育研究支持体系,探索可能的路径,促进计算机科学教育的发展,落实以信息化带动现代化的强国战略。

六、计算思维教育的未来发展

1.创新学习方式,跨学科综合培养计算思维

计算思维是利用计算科学的基本概念和方法,结合工程思维、数学思维等多种思维方式和特点,进行问题求解、系统建构和人类行为理解的思维过程。关注于问题解决方案的形成过程,培养学生像计算机科学家那样去思考问题,是计算思维培养的宗旨。计算思维的培养不等同于程序设计或编程教学。研究者可以根据计算思维培养的目标和核心内容,借鉴国际上的经验,面向高等教育、基础教育的不同阶段,构建面向计算思维、设计思维、工程思维的创新课程。例如依托不同的学科,如信息技术类、STEM、文科类等学科课程,在课堂教育、独立兴趣小组、综合实践、创客活动等不同教学情境下,建设计算思维培养的数字化创新学习方式。通过基于项目的学习方式,引导学生参与真实问题情境的项目实践,体验从分析问题、程序创造到形成解决方案的完整流程,推进学生整体思维能力和问题解决能力的提升。

2.综合多种评价工具,进行系统性评价研究

设计与课程内容相适应、可操作的能力评估方法和工具是实现课程目标的重要保障。当前我国计算思维还没有完整的评价体系,也鲜有研究对计算思维进行评价,具体的培养效果不能很好地用量化方法来测量。教师在教学实践过程中如何对计算思维进行评价,是计算思维教育未来研究的一大趋势。

计算思维的培养是一个思维方式和问题解决方法内化的过程。研究者可借鉴国际上计算思维测评的方式,从理论掌握和项目实践两方面构建评价体系,综合评估学生的思维水平。开发并利用多种评价工具,通过计算思维知识测试、计算思维挑战赛(Bebras)、程序分析、自我效能感测试、针对问题解决过程的访谈等方式进行计算思维系统性评价,不仅考查学生对计算思维相关概念、知识和方法的理解程度,更强调学生参与项目实践,通过设计、开发应用软件,分析数据,抽象真实问题,建立计算模型等,完成在真实情境中运用计算思维解决问题的过程,从多个方面和维度对学生进行系统性的评价。

3.利用平台和工具,实施全民智能教育

在计算思维的培养过程中,教师通过合理的工具选择和活动设计,能更好地支撑教学,实现计算思维培养的目标。目前,国际上研究者通过一些工具和平台开展计算思维教育,例如可视化编程工具、程序开发工具、图像及绘图工具等。在不同情境使用的开源软硬件上,各种资源与产品也日渐丰富,甚至有些是专门为学校信息技术课程教学而开发,如硬件方面的树莓派、 Swift Board 等,软件方面的 Scratch、Python 等适合学生易学易用的编程工具和语言。这些平台和工具使学生不必关注各种技术细节,而是集中精力进行问题解决方案的分析、设计与逻辑验证,为实现计算思维的培养奠定了良好基础。与此同时,《新一代人工智能发展规划》提出,实施全民智能教育项目,在中小学设置人工智能相关课程,逐步推广编程教育,鼓励社会力量参与寓教于乐的编程教学软件、游戏的开发和推广,实现全民计算思维的培养和全民智能教育。

七、结束语

计算思维已受到越来越多的关注,其涉及的领域也将越来越广。在研究方面,计算思维教育仍是计算思维研究的核心内容。世界各国对于计算思维研究的关注度正逐渐上升,在教育领域对于学生计算思维的培养仍是研究的主要内容。从我国的基本情况来看,对于计算思维理论的探讨将逐渐达成一致,国家教育部门、教育机构的学者和专家正逐渐提升对计算思维教育的关注度和认可度。虽然计算思维教育的实施还存在诸多困难和挑战,但随着国家信息化战略发展的需要,计算思维已经成为中小学计算机科学教育的核心目标和内容。对于研究者来说,可以在借鉴国外计算思维培养实践中形成的理论、模式和经验的基础上,结合我国教师和学生的条件等因素,进一步研究并构建符合我国教育实践需求的计算思维培养体系、评价方法和教师专业发展策略,通过创新学习方式、综合利用多种平台和工具,为计算思维培养提供有针对性的指导。