APP下载

论儿童编程学习中反思性思维的发生

2021-02-21石晋阳陈刚

电化教育研究 2021年2期
关键词:做中学计算思维经验

石晋阳 陈刚

[摘   要] 近年来,虽然儿童编程教育市场火爆,学界对计算思维的讨论热度不减,但有关“编程学习如何促进儿童思维发展”的理论回应并不充分。基于杜威的经验学习思想,梳理了“做中学”中经验与思维的关系,重点阐释了经验学习中反思性思维的发生过程。通过对计算思维和反思性思维的概念辨析发现,作为儿童编程学习目标的计算思维往往指向问题解决,并且具有反思性特征。儿童编程学习是一种在“做”的经验与反思经验之间循环的反思性实践活动。儿童编程学习源于兴趣,但与儿童自主性、进取心等意志品质相关的持续努力才是推动反思性思维的持久动力。同时,还需要为儿童提供安全的编程情境和开放的互动对话作为思维发生的外部支持。

[关键词] 经验; 反思性思维; 做中学; 计算思维; 儿童编程学习

[中图分类号] G434            [文献标志码] A

[作者简介] 石晋阳(1982—),女,江苏南通人。副教授,博士,主要从事教育技术哲学研究。E-mail:sjy8008@163.com。

一、引   言

随着时代的发展,计算思维被认为是数字公民必备的关键素养之一。周以真教授认为,计算思维代表着一种普遍的认识和一类普适的技能,每一个人都应热心于它的学习和应用[1]。然而,有研究者考察了国内少儿编程培训现状,提出质疑:“编程思维是一种过程思维,却硬要被市场打造或虚构成一种结果性的具体能力。”[2]在学校场域,近年来笔者通过对小学的田野调查发现,一线教师往往倾向于将编程学习看作是一种技术实践活动,更推崇让儿童在“做中学”,而对于儿童在编程中“学到什么”“为什么而学”“其思维何以得到发展”等理论问题鲜有深入探索。与火爆的少儿编程教育实践形成对比的是,关于“儿童在编程学习中其思维是如何发展的”这一问题的理论回应新近才受到研究者的关注[3],但还远不够充分。众所周知,“做中学”教育思想源于约翰·杜威的经验主义哲学,他崇尚“教育即生活、即成长、即经验改造”,并系统论证了“做”的经验与儿童思维发展之间的关联[4]。因此,本研究试图从杜威的经验主义哲学思想出发,探索“儿童编程学习实践中思维如何发生”这一问题。

二、“做中学”的经验主义哲学基础

(一)杜威论经验与思维

根据杜威的经验主义哲学,经验是一个无所不包的统一体,是过程和方法的统一体[4]。经验的根本旨趣在于促进学习者向“好”的方向生长,不仅具有心理发展价值,还具有生命成长意义。按照人与自然的接触程度,杜威把经验分为原初经验和反思经验。原初经验是个体与自然的直接互动,侧重于“做”;而反思经验是有思维参与的行动,可以影响人的选择行为[5]。杜威认为,“思维把单纯意欲的、盲目的和冲动的行动转变为智慧的行动”[6],思维是改造经验的方法,是对经验予以反思的方法,也是人类独有的活动。而反思性思维(Reflective Thinking)意指对某个问题进行反复的、严肃的、持续不断的深思[6]。与不完全或无效的思维不同,反思性思维的功能是把经验含糊的、可疑的、矛盾的、某种失调的情境转变为清楚的、有条理的、安定的以及和谐的情境。因此,杜威把反思性思維明确定位为思维的一种较好方式,是真正的思维,因为真正的思维必然是以认识到新的价值而告终[6],真正的思维一定会影响个人当下的经验并促进经验的成长。

有学者认为,杜威学说中的反思具有实践性,因为反思既是内隐的思维活动,又是外显的探究行为[7]。实际上,杜威的意图在于从经验的视角阐释反思性思维之于教育的重要价值。在杜威看来,反思性思维是一种内在“信念”,当一个人唯有面对疑难,心甘情愿地忍受困惑,不辞辛劳地进行探究,他才有可能有反思性思维[6];而反思经验则是指一种有反思性思维参与的探究活动,亦是包含了过程与方法的统一体。

因此,有反思性思维参与的问题探究活动以经验成长为目的,既包括儿童在问题解决过程中的概念化、假设、推理、检验等认知因素,还包括儿童在求解过程中的兴趣动机、情感意志等非认知因素。落实到教育实践中,杜威的经验学习思想表明,学习者“做”的经验与反思经验必须经历坚持不懈的循环互证的过程,才能实现学习者经验的整体性成长和向善的道德意图。由于反思性思维的参与对儿童获得真正经验生长的重要性,故而杜威极力推崇在教育过程中对儿童的反思性思维进行训练,并将其作为教育的主要目的[6]。

(二)经验学习中思维的发生过程

杜威主张“发展中的经验就是所谓的思维”[8]。一个实际的经验情境是思维的开端,而激发儿童反思性思维的参与是有效教学的关键。思维起源于某种疑惑、混淆或怀疑[6],个体需启动反思性思维,才能对经验进行批判性的、多样的、公开的考察[9]。因此,在经验学习中,反思性思维的价值在于:(1)赋予事物以丰富的意义;(2)为行动的合理性提供指导;(3)为发明创造提供可能。可见,在任何问题的解决过程中,个体都需要启动反思性思维,才能促进个体经验的真正发展。

由于反思是一种有意识的活动,所以人的反思性思维必须经由学习和鼓励才能获得[10]。但在儿童学习过程中,反思常常不能自动发生,需要在细心而周到的教育指导下,才能在正确的方向上得到发展,并充分实现其机能[6]。由此可见,教育过程中的一切资源都应为促进儿童在实践过程中进行反思性思维提供支持,才有可能实现个体经验的持续成长。一般而言,反思性思维的发生应具备以下条件:(1)疑难的状态;(2)忍受困惑和坚持探索;(3)连接先前的经验;(4)有意图地连续行动,如开展为求得问题解决的方法进行寻找、搜索和探究等活动。由此,我们建构出一个经验学习过程中反思性思维的发生框架(如图1所示),主要包括教育目标、经验过程、内在动力、外部支持四个部分。

杜威指出,“教学法的要素和思维的要素是相同的”[11]。因此,我们阐释经验学习的思维发生过程,旨在改善儿童编程教育的教学方法。在此基础上,我们先对儿童编程学习的思维目标进行辨析,进而结合笔者在江苏省D小学①儿童编程课堂上的田野调查资料,探讨儿童编程学习中的思维发生问题。

三、编程学习的目标:反思性思维与计算思维辨析

(一)计算思维的问题解决取向

一般认为,思维是认知活动的最高级形式,可以完成感知觉、记忆等低级认知活动无法完成的任务,如概括规律、推断未知等[12]。广义上讲,思维就是为了解决问题。

2006年以来,关于计算思维的定义一直争议不断,但我们发现大多数计算思维的定义是问题解决取向的。例如:周以真教授认为,计算思维是以有效处理信息的方式思考问题、构思并呈现解决方案的一系列思维活动[13];美国计算机科学教师协会和国际教育技术协会(CSTA & ISTE)于2011年为计算思维确立了一个操作性定义:计算思维是一种问题解决的过程,包括确定问题、分析数据、抽象表示、算法设计、评估方案、概括迁移等六个环节[14];在信息技术行业,谷歌认为计算思维是我们攻克难题的一种方式,当人们提出易被计算机解决或易通过大数据分析探寻内部规律的难题时,表明他们需要运用计算思维进行思考,运用计算思维解决问题包括四个步骤:分解、模式识别、抽象化、算法开发[15]。

为了促进儿童在编程环境中发展思维,MIT的Scratch开发团队提出了计算思维学习和评估的三维框架,包括计算概念、计算实践、计算观念三个层次[16]。这一框架认为儿童通过编程学习应该获得与计算相关的概念类知识、问题解决经验,并形成相应的价值观念。根据广义知识分类理论,陈述性知识是能直接陈述的知识,功能在于通过直接叙述回答“是什么”的问题,可依靠记忆习得;而程序性知识是借助某种作业形式间接推测其存在的知识,用以在活动中解决“怎么办”的问题,需要依赖学习者主动的思维参与才能习得。由此可见,计算概念属于陈述性知识,而计算实践和计算观念则是程序性知识。在Scratch编程学习过程中,与计算相关的概念是计算思维的知识基础,而面向“如何做”的计算问题解决过程和方法则是计算思维的关键要素。

可以看出,问题解决取向的计算思维培养,侧重于“做”,但并不是盲目的“做”,学习者要对习得的方法进行抽象化并迁移到新情境中加以应用、创造,需要主动的思维参与才能实现。

(二)计算思维的反思性特征

杜威认为,有意义的教育活动必然是蕴含着思维的活动,知识、技能和思维并非三个相互独立的教育目的[8]。学习者必须在利用计算机解决各类问题的情境中持续进行探究,即不断进行实践与反思的循环活动,才可能获得分解、概括、序列化、评估、抽象化等思维能力。学习者在每一个环节都需要不断地对已有经验进行反思,深入考虑“我是怎么做的” “为什么这样做”“还可以怎样改进”等问题,每一次反思都是为了思维的发展,为了经验的生长。这种蕴含在经验学习中的反思性思维活动正是杜威所推崇的。因此,从经验学习论出发,计算思维是主体的一种综合能力,这种能力主要在特殊的人机协同问题解决情境中通过主体的行动与反思循环过程得到提升。

根据杜威的思想,反思性思维的培养是儿童经验成长的中心,通过“做中学”方式培养反思性思维这一教育目的在儿童编程学习活动中依然居于根本性地位。由此,作为儿童编程学习目标的计算思维也具有反思性特征。而且,在兒童编程学习过程中,反思性思维既是计算思维习得的必备条件,也是这一过程的关键发展目标。

进一步,在核心素养框架下思考“教育应该培养什么样的人”,也绕不开反思性思维这一关键目标。经合组织(OECD)的核心素养研究项目所建构的核心素养概念框架就表明:核心素养的培养与反思性思维的发展密切相关[17]。值得注意的是,该核心素养框架中所涉及的“沟通、自主、问题解决、创造力”等词汇都是区别于“基本知识与技能”的高阶素养,偏重于元认知因素及动机、态度等非认知因素[18]。与此相应,CSTA & ISTE也指出,计算思维不仅包括个体在利用计算机解决问题方面的认知特征,还涉及个体的非认知因素,如处理复杂性的信心、在困境中坚持、对歧义的容忍度和合作能力等方面[14]。可见,以计算思维为培养目标的编程学习是一种反思性实践活动,并非孤立地指向探究性活动中认知能力的发展,而是与自我效能感、意志力等心理驱动机制,以及与他人的协同互动等社会性因素相关联。

四、作为反思性实践的编程学习:过程、动力与支持

根据杜威的经验学习理论,唯有融入了反思性思维的问题探究行动,才能真正促进儿童的经验成长。本文将在儿童编程教育场景中具体阐释这种反思性实践中思维发生的循环方式、内部动力及外部支持。

(一)行动与反思:思维发生的循环方式

Logo语言发明者Papert认为,电脑为儿童提供了探索自我思维过程的机会,编程是他们思考的情境,而Logo编程语言则是思考的工具[19]。但也有研究表明,学生很少能够自行探索编程,他们需要结构化的指导和为其搭建的脚手架支持,如果没有人对学生进行计算实践和计算观念方面的指导,学生便很难积极反思自己的经验,编程经验也就没有教育效果,因此,学生不仅仅是编写代码,还应该“思考着做”(Thinking-doing)[20]。也就是说,实践与反思并不是割裂的,而是呈两股交织的“麻花辫”形态。学生不能只是模仿着编写代码,还必须边想边做,做完一部分之后还要反思“这是怎么做的”“下一步该如何做”等问题,才有可能获得有价值的经验。

一般而言,儿童编程的教学模式有模仿、探究、创造三种类型。由于小学阶段常规课堂的课时有限,最典型的教学模式是模仿式范例教学和探究式任务教学两类[21]。在编程入门教学中,大多数教师较为重视小学生对范例的模仿,因为在范例模仿过程中,学生可以熟悉编程环境、编程的基本方法,并养成遇到问题积极思考的习惯。随着编程教学的进一步推进,探究式任务教学要求教师在有限的时间内关注到每一位学生的思维发展,教师需要精心安排任务,并为学生的思维发展搭建多种脚手架,例如:引入思维导图、出声思维、写程序注释等辅助手段促进学生思维的发展。

根据思维的活动方式,可以把思维分为再现性思维和创造性思维,前者指直接运用已有知识经验解决问题,后者指能获得新知识并产生新颖的思维成果[12]。研究表明,体验过Scratch编程的儿童往往会青睐其创作功能,他们认为通过编程可能实现自己的新想法[21]。但是,对接触编程机会有限的孩子而言,要利用编程软件创新编写足够复杂的游戏或故事作品并不容易。实际上,创造学习模式往往存在于编程社团学习或竞赛情境中。研究者认为,一个学习者具备的知识越深刻,其思维过程越具有分析力、实验性和创造力[22]。也就是说,学生不可能凭空创造,他必须对课程内容和引发创新的创造过程有深刻的理解,才可能创造[22]。由此可见,编程对儿童思维的培养是在量与质上的经验累积,教育者不仅需要为儿童设计足够量的变式练习,还需要为他们提供有效的反思支持以保证知识的深度,从而使思维实现质的飞跃。

学习者只有在主动直面难题或困境时仍然持续行动,反思性思维才有可能被启动。不仅如此,思维的发展还依赖经验的积累、持续的探究、反思技能的提升。但儿童在学习编程时并不一定能自觉启动反思性思维,也并不一定总能积极地持续参与编程活动以获得成长。因此,我们将沿着杜威思维教学思想继续讨论儿童编程学习的内在动力和外部支持。

(二)兴趣与努力:思维发生的内在动力

如前所述,儿童编程学习是一种以思维培养为目标的经验学习,连续的经验过程是儿童思维发展的关键。笔者在田野调查中发现,大多数儿童表示对编程学习感兴趣[21]。调查还表明,虽然儿童编程学习源于好奇或兴趣,但好奇心却不足以维持学习的动力。比如D小学的赵老师就坦言:“编程如果难度不是很大,女生还能保持兴趣,难度大了兴趣就会下降。男生也一样,除非数学特别好、兴趣特别浓。”[21]实践表明,直接的兴趣并不能为儿童学习编程提供持续的动力。由此,我们需要重新认识学习中“兴趣”的意义。

杜威提出的兴趣学说认为,兴趣作为自我的表达可以分为两个阶段,即直接的兴趣和愉悦的情绪阶段以及间接的兴趣和意志的知性阶段[6]。兴趣的真正意义在于推动儿童向较高水平发展,而不是停留在短时愉悦情绪的满足上;儿童带着兴趣主动努力,比毫无兴趣的被动刻苦对儿童精神培养的价值更高,更有利于儿童的经验成长。

儿童在行动中遇到问题或困境,有可能启动反思性思维;当儿童行动时不愿或不能启动反思性思维时,他就可能产生畏难情绪或者转移注意力,甚至放弃学习。因此,遇到困难后还能主动努力是我们应该真正珍视的东西[23]。可见,持续而主动的努力有助于维持意志层面的兴趣,也是发展儿童反思性思维的持久动力。

由于努力使行动包含目标的严肃性、专注性和明确性,它有助于形成坚定性和服务于有价值目标的坚持习惯[23]。一方面,基于兴趣的努力与目标、行动、人格等要素有机地勾连起来,成为激发学生反思性思维的内在动力,体现了经验学习对培养儿童自主性的价值。另一方面,兴趣与努力相伴随形成学习内驱力,能激发儿童的进取心,这是一种指向自我成长的高级情感。这种与坚毅、意志力关联的反思性思维品质,体现出经验学习的道德意蕴,为在儿童编程教育中贯彻“立德树人”根本目标提供了明确思路。

在儿童编程学习活动中,以兴趣和努力为核心的学习动力系统需要多方面的支持,这些支持涉及学习机会的创造、活动主题的适切性、学习共同体的建构、资源的可得性等方面。例如:与生活相关的问题可以激发学生的兴趣与持续努力,D小学的小学生从生活中使用自动售货机的经验出发,发挥自主性,持续探索其工作原理,通过编程设计,模拟创作了一个自动售货机。在此过程中,学习兴趣源于生活,但是学习的持续动力却来自问题探究过程中不懈的努力。可见,编程学习者迫切求解的愿望和坚持不懈的毅力是启动反思性思维的强劲动力,也进一步明确了编程学习对计算思维的意志力、道德感、价值观念等非认知因素培养的重要意义。

(三)情境与对话:思维发生的外部支持

1. 安全的情境支持

如前所述,反思性思维参与的学习活动是一个问题探究过程,学习者亲历了整个探究流程,既可能走向成功,也可能遭遇失败。但是对于具有良好习惯的学习者而言,失败的经验与成功的经验具有同等价值。也就是说,反思性思維往往发生在允许失败的情境中,允许失败意味着学习情境应让学生感到心理安全。在安全的学习情境中,失败也可以启动反思性思维,激发儿童克服困难的斗志。Papert教授曾用“Hard fun”来描述儿童使用Logo编程的学习体验[19],以表明编程环境应该给儿童提供“有价值的困境”,促使儿童启动反思性思维、持续努力并最终获得成就体验。

笔者在小学采访时发现,受到课时等因素的影响,常规编程课堂上的儿童面对规定任务情境时,往往较难获得有审美价值的成就体验,而参与编程社团的学习者更有机会体验到“Hard fun”这一审美瞬间。例如:D小学编程社团的方同学已经成功创作了多个作品,他回顾与队友共同创作的经历时感慨:大家一起在困境中持续努力的体验是美妙的,“动感篮球场制造上面没什么困难,就是在编程序的时候容易出问题,参数只要有一点点的不对,都可能导致机械运行得不太好。编程后面九天都在细调这些参数……进行细细的调试,直到很完美了为止,最多的一次我们尝试了90多次。必须要有耐心,没耐心的话是学不成的”[21]。

由此可见,开放包容的学习情境,可以让学生感到心理安全,能够激发学生进行主动反思的热情,促进学生自由地试验或尝试新想法。以Scratch编程环境为例,该软件环境具有“低门槛、高天花板”的特性,不但提供了高包容度的编程情境,还给予学习者“尝试—错误”的实践机会,允许他们个性化地设计不同的角色、背景、规则等。在这样的情境中,学习者感到心理安全,更容易获得思维自由,也更能激发创造力。

2. 开放的对话支持

当前,为了克服现代课程观的单向度后果,后现代课程观追求多元而开放的课程设计理念,旨在促进人的心灵成长。多尔构建的4R课程是最具代表性的后现代课程。其中,“回归性(Recursive)”思想深受杜威经验主义哲学的启发。多尔认为,回归性反思是后现代课程的核心,昭示着课程学习本质上是一个循环过程[9]。后现代主义课程观推崇的回归性反思可以推动个体在一个开放的框架中动态发展自身的能力,反思在其中发挥着积极且核心的作用,使得经验本身得以连续和成长。

多尔认为,回归性反思旨在发展能力,是人类创造意义的方式,也是人们通过与环境、他人、文化等进行反思性互动形成“自我感”的方式;而对话是回归性反思的绝对必要条件[9]。可见,在学习过程中,反思不仅仅是个体的内省过程,还发生于对话互动中。因此,回归性的儿童编程课程是以反思为核心、面向学习者经验成长的学习实践过程。在儿童编程教育中,教师应在教学中设定开放性的问题情境,鼓励师生、生生之间进行开放性的会话,以便充分调动学生的反思性思维。

一方面,在编程学习情境中,教师逐步放开对学习过程的控制,鼓励学生进行开放而积极的对话互动。学生在对话中调动反思性思维,将注意力集中在范例的抽象层面,不仅可以发展自身的编程能力,还能在多种关系互动中更深刻地理解“自我”。另一方面,教师可以采用反思工具引领对话,帮助学生回顾、讨论和评估自己的思维过程与方法。例如:一些教师在儿童编程教学中常常使用语言转换方法,鼓励儿童发挥类比思维,将表达任务的自然语言转换为计算语言,不但可以发展计算思维,还可以发展交流技能;一些教师则鼓励学生利用可视化思维技术将想法转换为图表,如流程图、规则表单等;还有一些教师更倾向于鼓励学生为自己编写的代码添加注释,通过边写边反思代码与目标之间的关联,形成良好的计算思维习惯。

五、结   语

在更广泛的语境中,立德树人是我国教育事业的根本任务,立德是方法,树人是目的。我们发现,杜威的经验教育思想与立德树人有本质上的一致性,儿童在学习情境中持续地通过亲身经验与积极反思,不仅是为了获得知识技能,更是为了实现“人”的成长。本文回顾“做中学”教育理论的哲学基础,明晰了反思性思维在儿童编程教育和计算思维培养中的重要价值,期望能对儿童编程教育实践提供一些有益的理论启示。在经验成长视角下,儿童编程教育的目的不是培养掌握编程技能的工具人,而是要培养具有反思性思维、能适应未来人工智能社会、德才兼备的时代新人。

[参考文献]

[1] WING J M. Computational thinking[J].Communications of the ACM,2006,49(3):33-35.

[2] 郭学军,汪传建.少儿编程培训热的教育学审视[J].人民教育,2019(10):62-66.

[3] 杨玉芹,龙彦文,孙钰峰.小学生计算思维培养的过程和策略研究——基于对武汉市从事机器人教育的26位教师的深度访谈[J].电化教育研究,2019,40(12):115-121.

[4] 涂纪亮.杜威文选[M].北京:社会科学文献出版社,2006:144.

[5] 刘华初.论杜威对经验的改造[J].河南师范大学学报(哲学社会科学版),2011,38(4):6-10.

[6] 李业富.经验的重构:杜威教育学与心理学[M].上海:华东师范大学出版社,2017.

[7] 熊川武.论反思性教学[J].教育研究,2002(7):12-17,27.

[8] 吕达,刘立德,邹海燕.杜威教育文集(第2卷)[M].北京:人民教育出版社,2008:151,23.

[9] 小威廉姆  E. 多尔.后现代课程观[M].王红宇,译.北京:教育科学出版社,2000.

[10] GELTER H. Why is reflective thinking uncommon[J].Reflective practice,2003,4(3):337-344.

[11] 约翰·杜威.民主主义与教育[M].王承绪,译.北京:人民教育出版社,2001:179.

[12] 邵志芳.思维心理学[M].上海:华东师范大学出版社,2007:1-2.

[13] WING J M. Research notebook: computational thinking: what and why?[EB/OL].(2011-11-17) [2019-10-15]. https://www.cs.cmu.edu/link/research-notebook-computational-thinking-what-and-why.

[14] CSTA & ISTE. Operational definition of computational thinking for K-12 education[EB/OL]. (2010-11-17) [2019-10-15].http://csta.acm.org/Curriculum/sub/CurrFiles/CompThinking Flyer.pdf.

[15] Google. Computational thinking for educators[EB/OL]. (2017-11-21) [2020-04-20].https://computationalthinkingcourse.withgoogle.com/course?use_last_location=true.

[16] BRENNAN K, RESNICK M. New frameworks for studying and assessing the development of computational thinking[EB/OL].( 2012-07-01) [2018-10-15].https://web.media.mit.edu/~kbrennan/files/Brennan_Resnick_AERA2012_CT.pdf.

[17] 林崇德.21世紀学生发展核心素养研究[M].北京:北京师范大学出版社,2016:58.

[18] 杨惠雯.核心素养的谱系学考察——基于OECD的分析与反思[J].比较教育研究,2019,41(2):53-59.

[19] PAPERT S. Mindstorms:children,computers,and powerful ideas[M].New York:Basic Books,1980:76.

[20] LYE S Y, KOH J H L. Review on teaching and learning of computational thinking through programming: what is next for K-12?[J].Computers in human behavior,2014,41:51-61.

[21] 石晋阳.儿童编程学习体验研究[D].南京:南京师范大学,2018.

[22] 苏·贝尔兹.如何培养21世纪技能:教学策略与学习工具[M].李夏,译.北京:北京大学出版社,2016:16-18.

[23] 约翰·杜威.学校与社会·明日之学校[M].赵祥麟,任钟印,吴志宏,译.北京:人民教育出版社,2005:186.

猜你喜欢

做中学计算思维经验
乐淘淘“先进”经验
乐淘淘“先进”经验
“做中学”教育思想的核心理念分析
关于幼师立体几何教学与幼儿园教育衔接的教学案例
遵循“做中学”理念,提高学生的地理实践力
程序设计课程中计算思维和应用能力培养问题研究
民族高校C语言程序设计课程教学改革的研究
算法的案例教学探析
浅谈艺术专业学生计算思维能力的培养
Can lucid dreams kill you?