孙立会
关键词:儿童编程教育;实践路径;思维素养
大数据、人工智能、物联网以强劲之势扑面而来,未来人类社会将充满各种不确定性,机械替代人类工作的可能性及普及面已越来越大。而现在的儿童将是未来人工智能时代的舵手,尽早让其了解机器运行的步骤与原理,体悟程序的架构与灵魂,对适应未来并改造未来无疑是非常必要且紧迫的。我们今天的生活已然离不开计算机程序,无论是手机、汽车乃至于自动售卖机等等,其中都是程序驱动并为我们服务的,可以说我们的今天恰是享受着计算机程序给人类带来福祉的时代,如果能在学习与生活中出色地运用计算机,了解人工物受程序驱动的原理,并有效地通过程序建立人与物之问的交流,一定会给我们带来很多意想不到的便利与惊喜。当然,如果在儿童教育阶段普及这些程序理念,不仅仅可以使儿童尽早适应第四次工业革命催发的新的信息化社会,同时还能激发儿童的好奇心,带动儿童的学习兴趣,增进儿童理论逻辑思维能力的提升。所以,现阶段各个国家都纷纷制定了推进儿童编程教育的政策与实践推进措施。例如,日本文部科学省已明确将儿童编程教育写进了新公布的《小学学习指导纲要》之中,并出台了实施儿童编程教育的相关措施,预计到2020年所有小学课程的各个学科都将渗透编程教育理念;美国政府计划10年普及中小学生编程教育;英国政府把2014年设为“编程之年”,规定儿童从5岁起必须开始学习编程,直至16岁完成中学学业;韩国也于2018年将编程教育纳入小学正规必修课程之中。我国儿童编程教育虽起步较晚,但也在加紧追赶世界儿童编程教育专列的步伐。2017年国务院印发《新一代人工智能发展规划》,明确指出人工智能成为国际竞争的新焦点,应逐步开展全民智能教育项目,在中小学阶段设置人工智能相关课程、逐步推广编程教育。我国南京市相关教育部门表示,未来将以校本课程模式在全市小学分批次、全面推广儿童编程;重庆市教育委员会响应并贯彻国家人工智能教育方针,印发《关于加强中小学编程教育的通知》,在重庆中小学课堂落实编程教育,对工作原则、重心等做了战略部署。各国政府对儿童编程教育开展的投入与落实同时也印证了儿童编程教育将是面向未来、适应未来、改造未来的一种全新思维素养的形成方式。
编程,简单来讲就是创造程序,而程序就是驱动计算机的命令或步骤。进一步讲,编程就是让计算机代为解决某个具体问题,对某个计算体系规定一定的运算方式,使其按照一定的计算方式运行,并最终输出相应结果的运演过程。所以,一提起“编程”或“程序”,我们的脑海里就会不自觉地想起“计算机”,想起程序运行的那些“英文代码”,那么当面对“儿童编程”这个概念时就会不自觉地使人产生其就是教儿童运用计算机进行代码编写,创造某些程序,实现某些功能,解决某些问题,完全是人与机之间的互动过程。目前儿童编程教育在我国的开展主要以校外培训机构为依托,其形式大致可分为两种:一是将编程技能的获得作为学业选拔的筹码,学生通过编程培训作为升学的加分项;二是宣传儿童时期的编程学习作为兴趣启蒙及未来的职业准备,这都使得儿童编程教育带上了较强的“目的与功利性”色彩,不利于其在我国的长远发展。当然,我们并不否认基于技术工具基础的儿童编程教育形式,毕竟程序的最终所指依然是“计算机”,这是不可逃避的事实,但只让几岁的儿童面对复杂的计算机去编写代码,无论程序语言多么简单与可视化,场面都是让人无法想象的,这不仅不能提高儿童学习的积极性,反而可能会使儿童对计算机科学产生错误的感知,因为那些枯燥而乏味的代码根本激发不起儿童本有的天真与童趣,儿童本有的创造性无法得到应有的激发。如果按照此种思想在儿童课程中实施编程教育,似乎是大学计算机科学专业的“先修课”,仅仅是把计算机教育提前了一样,从而会导致本是以激发儿童创新能力为主的编程教育,被“机心”主义者所利用,并被社会所诟病成“小学奥数”一样,最终与教育的本质事与愿违,以至于并没有发挥儿童编程教育的真正意义。
儿童编程教育先驱者、Logo编程语言创始人西蒙·派珀特(seymour Papert)将儿童编程教育理念概括为“高天花板(High Ceiling)”“低地板(LowFloors),”和“宽墙(Wide Wall)”,Scratch编程项目主设计师米切尔·雷斯尼克(Mitchel Resnick)将其表述为学习者应该能立即轻松地创建一些项目(低地板),并随时间的推移持续保持兴趣,同时允许学生跨越多种学习风格,创建越来越复杂的项目(高天花板),从而促进学生编程经验、技能以及思维能力的发展(宽墙),在此过程中儿童编程经验和技能会随着编程工具一起成长,换言之,儿童编程技术工具的创建是希望降低编程上限,拓宽儿童编程工具手段,探索创造多种编程学习路径与风格,为各种复杂概念提供生长空间,指向儿童思维素养的提升。聚焦思维素养的儿童编程教育是将编程思想与程序原理作为一种思维与行为的方式,关注儿童编程学习过程中思维素养的形成。这种理念尤其在低年级儿童编程教育中将有重要价值,并能促逼教师创造性的“教”、学生创造性的“学”。体验与操作计算机固然重要,但学习计算机运行背后的理论思考方式亦很重要。如果简单把编程理解为学习与运用计算机代码,那不仅仅误读了儿童编程教育的本意,也窄化了儿童编程教育本身。在儿童编程教育中能否使其创造一个可以运行的程序也许并不十分重要,重要的是体会实现程序运行的过程原理,让儿童在面对问题解决时,厘清思路、方法与手段,并规划好步骤,一步一步去完成任务本身,以此形成一种类似于计算机程序工作中的流程,形成一种“编程式思维”从而提高儿童问题解决过程中的思维逻辑性,以更好地适应与改变未来人工智能社会。
故此,笔者通过对编程本质内核的萃取,认为儿童编程教育的本质目的并非仅仅让儿童能通过计算机编写某些代码或运行某些程序,关键在于儿童通过相关学科知识的学习,从中领悟编程思想,促进自身理论思维能力的提升。杜威曾说过,儿童在婴幼儿时就开始了思维活动,例如婴儿玩的球丢了,就会想到尚不存在的事情,就是把球捡回来,会预见到怎样实现这一可能的步骤,以自己的想法指引自己的动作,通过实验检验自己的想法是否正确,如果能充分发挥这种思维的积极活动,这对于儿童成长过程中逻辑思维能力的形成至关重要。杜威在《我们如何思维》一书中也多处有类似的阐述,这足以说明思维训练在儿童教育中的重要性与必要性。教师教学中应经常性保持一种“教授方式”的编程教育,而儿童在学习过程中也应时刻保持一种编程式“思考方式”的学习,这对于加快儿童编程教育的推进具有重要意义。基于此,笔者尝试初步为聚焦思维素养的儿童编程教育下一个定义:儿童编程教育应倡导儿童“编程式”思考,当儿童为实现自己的目标而采取相关行动时,需要其思考应如何组织这些行动,思考的同时要把每一步的行动进行编号,如何将这些编号序列有效合理的按照某种逻辑顺序组织行动,并又如何改变这些行动的编号顺序,才能使其更好的实现某些目标,如此反复思考、操作与运演过程中无意识地了解计算機程序运行的相关原理,在大脑中完成人与“程序”之间的有序交流,以此提升儿童面向未来行动的思维素养。
目前,在全国小学校实施与推广儿童编程教育是比较困难的,因为小学的课程体系中并没有类似于语文、数学、外语等关于儿童编程教育的单独学科课程。没有这样的课程,也就没有专业的教师和教材。当然,在现阶段的小学课程体系中开始增设《儿童编程》课程不大可能,也没有必要。学习编程并不是儿童编程教育的本身目的,所以笔者提议在不同科目的小学课程教学与学习过程中融入编程的理念与方法,实现用编程教与学。可以说,所有的学科都需要编程,因为所有的学科都需要创设问题解决的情境,以此来帮助儿童思考力的提升。
(一)儿童编程教育的推广离不开教育行政部门的政策支持
随着计算机科学知识普及理念的提升,儿童编程教育在我国正逐渐经历着“非刚需”到“刚需”的转变。人们已逐渐意识到编程学习对儿童成长与学习的重要性,但儿童编程教育目前只在我国部分地区初步开展,其主要实施方式是作为校外科技公司的培训手段,儿童编程教育作为一门真正的课程和科学方法在儿童课堂上的开展更是微乎其微,特别是对于一些欠发达地区,亦或是信息化覆盖率低的偏远地区,信息鸿沟愈加明显,儿童编程教育开展更加举步维艰,因此实现惠及全体儿童的更加公平的编程教育还需要相当长的时间和努力。故我们倡导儿童编程教育的开展应超越工具形式,摆脱设备依赖,指向儿童思维素养的形成为根本目的。派珀特曾表示:儿童编程教育作为一种辅助儿童提高认知和思维能力的学习方式,最重要的是教授如何思考而不是思考什么,要由“为我”到“我为”的方向转变。儿童编程教育的理念精髓是降低儿童编程门槛,提高学习兴趣和信心,体悟与掌握逻辑运演方式,用编程的思想和方式学习与思考。所以,推行基于技术设备形式的儿童编程教育的同时也应考虑非计算机化的儿童编程教育。儿童编程知识的学习不在于学习形式,而应是让学生学会“用编程的方式学”,设备和工具只是一种外在的形式,深刻理解并体味儿童编程教育的理念真谛才是儿童编程教育在我国长远发展的重中之重。国家政策层面的支持是儿童编程教育开展的前提,倡导聚焦思维素養形成的儿童编程教育理念作为一种思维和行为方式在学校的开展实施;同时也应基于世界先进国家儿童编程教育的经验制定相应的规划纲要作为其在学校开展的实施标准,明确其实施范围与形式,甚至可将规定细化到课程、教师、活动形式等诸多方面,将其作为一种指导各学科教师课堂教学活动的科学方法,融入到各学科教师课堂教学及指导学生日常活动的实践中,为教师开展与应用儿童编程教育提供另一种可借鉴的尝试。加速儿童编程教育在我国真正落地需要必要的政策保障、技术资金以及资源的支持,这对国家未来教育行动计划至关重要,我们已经在路上。
(二)儿童编程教育实施需要学科教师的课堂行动
一线教师的课堂行动是儿童编程教育落地的“最后一公里”。编程教育如果仅仅是作为面向儿童市场的营销行为或是作为信息技术教师的新型活动组织形式,那么其最终只能走向“湮灭”,因为相比于信息技术本身,中小学教师还是更关注学科内容。编程教育必须要由学科一线教师真正地实行,与相应的学科内容紧密结合,儿童每天接触和交流最多的主体对象依然是各学科教师,而如若仅凭校外机构的几小时编程培训,可能会一时激起孩子的兴趣,但无法将其真正融入到儿童的日常学习与生活之中。
当然,即便是把儿童编程写进小学学习指导纲要中的日本,强制实施这项任务的过程中,有一些教师仍比较抵触。但一切从为了儿童的利益角度出发,学科教师不能再像接受信息技术在教学中应用那般冷淡与徘徊,因为这也关乎教师教授方式的变革,而这种变革是人工智能时代的诉求,未来已来,只是还未流行。教师也应尝试将编程教育的思想理念及思维方式内化为自身教学修养与行为,在具体学科教学过程中模拟计算机程序运演,而并非需要通过人与程序之问的信息交流,可以借助纸、笔和卡片等传统学习工具应用程序原理进行教学与学习活动,以此了解计算机程序的科学本质,帮助儿童编程式思维能力的提升。所以,教师在运用此种方式进行教学活动时,教什么、怎么教就显得尤为重要。编程教育与儿童学科课程融合教学,需要学科教师对编程理念及方式的理解与掌握,并尝试将其融入到自己教学日常。日本在将编程教育小学必修化的进程中做了诸多此方面的研究案例,如在日本古河市立大和田小学三年级的语言课程中,教师尝试将程序语言中的计算机“排序”概念与学生语言表达训练相结合,课程开始时,教师请学生们每人回想起记忆中的某一件事,即“确定事件主题”,然后请学生回忆事件的概况,大致确定事件的开始、过程、结果(如有学生回忆“饭团的制作”),将其写在卡片上,此时卡片就类似于儿童编程软件中的程序块,进而让学生围绕事件的中心将具体过程近一步详细拓展,同样书写在卡片上,即“情节步骤卡”;接下来请学生将卡片按照事件发生顺序进行排序。步骤卡片连接排序过程中也有类似于功能程序块的“纽带卡”,分别表示“然后、因此、于是”等意思,学生通过将情节步骤卡与纽带卡顺序排列得出事件的正确表达;接下来,学生以自己的卡片排列为依据向同伴讲述此事件,讲述完毕之后同伴基于未能理解的步骤卡片向其提问(如有学生想知道“用手将饭团团成三角形具体操作技巧如何”),通过这一步骤使学生以此进一步丰富完善并调整自己的卡片内容与顺序,直至最后“输出”完整的故事情节。课后教师与学生交流中反馈到,通过此类型课程的学习,他们对程序概念的理解更深,并在此过程中不断地发现并改正错误从而领悟到事件的发生原理就如计算机运行一样,如若不赋予其正确的顺序步骤,那么也不会得出最终的结果。教师也意识到找到课程内容与编程形式的“接口”是教学开展的关键一步,此类教学活动探究也为日本小学编程教育必修化与课程整合起到了重要的衔接与过渡作用。由此可以看出,儿童编程教育理念、教学方式与课程的有机融合为课堂知识提供了一个更加多元化的呈现方式,采用此方式可能更加有利于学生对学科知识的接受与掌握。同时教师试图在用儿童编程的思想解决具体问题时,也能从“解决者”在表达自己的想法过程中进行观察并纠正与澄清儿童错误的思维过程,做到即时的反馈,从而在促进儿童知识学习及理论思维能力提升的同时完善每一次的教学。
(三)儿童编程教育的理念及方式促进学科课程结构性转变
聚焦于儿童思维素养的编程教育并不以获得概念性知识为前提,而是在于培育方法。课程中的知识是固定的,而传授与获得知识的过程确是动态的,决定于儿童未来的生存力往往与这一动态的过程密切相关,而这需要将编程的思想贯通融入到课程教授与学习的各个环节之中。儿童编程教育应与各学科内容紧密结合,作为学科教学及学习活动开展的思想及形式辅助,方能体现其“灵魂”所在。在学科中融入编程思想时,不能忽视学科知识本身,因为在小学知识课程体系中内容已然是非常关键的,内容是课程的本质,而编程是课程的形式,形式是具体内容的表现,形式与内容是不可分割的整体。所以,学习编程本身不是目的,学会用编程学才是关键,教编程也不是本质所在,用编程的方式教才是真问题。这就要求教师能够捕捉学科内容中能够与编程理念结合的知识表征,为学生以“编程式”学习与思考创设适宜且多变的情境,以此辅助并引导学生更好地理解学科知识内容。古河市立大和田小学三年级的理科实践课程教師也做了相应融入式探究,使学生利用“条件语句”思想,依据生态学特征将动物分类,以此来得出昆虫这一生物学概念。教师提供几种小动物(蚯蚓、蜈蚣、螳螂、蟋蟀、虾、蟹等)使学生通过(1)是否有足?(2)是否具有三对及以上足?(3)身体是否分为头、胸、腹三部分进行条件判断,引导并帮助学生得出所给选项中仅有螳螂与蟋蟀属于昆虫,并由此得出昆虫的定义:有三对足(一般还有两对翅),身体分为头胸腹三部分,并为下节课节肢动物门的分为昆虫纲、甲壳纲、蛛形纲等分类做好铺垫。同时,日本京都教育大学附属桃山小学的教师在小学三年级的算数课程中也进行了尝试:在两位数除一位数的数学教学中,教师将具体的除法算式计算过程引导学生以流程图的形式分步展现出来。首先,教师让学生列出竖式,同时教师将所需要用到的词语(如,列竖式、比较、相除、相减、取余、余数比较等)提供给学生,帮助学生计算过程中的流程图顺序连接;两位数除一位数的算法需要进行条件判断,即当被除数的第一位数字比除数大时,用被除数的第一位数除以除数,然后进行相减和取余,否则用被除数的两位数除以除数(如76/5与12/5),故学生在计算的过程中会根据被除数和除数的具体情况进行比较,体现了程序设计中的顺序和条件判断;接下来在进行余数比较的过程中,如余数比除数大,则再进行相除、相减和取余,此过程则蕴含了重复执行的程序设计原理。以上案例虽对于知识储备丰富的成年人来说稍显稚嫩与繁琐,但也体现了日本小学编程教育课程整合初期进程中的努力与积极践行,不可否认此方式能够帮助学生加深对知识的理解与思考,使学生的思维过程更加“外显化”,同时对思维能力的培养及之后的严谨的处事方式及态度的养成也有较大帮助。因此,只有通过课程设计者不断地摸索探究,将编程思想慢慢融入到具体课程之中,那么编程教育作为一种课程建设的指导思维和方式与课程真正融为一体则指日可待。同时课设计者需深谙一点,虽然我们提倡的儿童编程教育需在课堂上以不同的活动形式来表现,但儿童编程与学科课程的结合并非只为了利用编程的理念与方法设计固定的教学活动方式或是为课堂增加新的活动形式,而是指向学生问题解决的意识及理论思维能力的提升;同时教育工作者也要真正做到挖掘基础课程内容中与编程教育原理契合之处,使学生能在创设的课堂问题情境中利用启发和推理的方式,将一个“不确定性”问题通过约简、转换、分解、序列、抽象化、模块化等重新表述为一个知道如何解决的问题,培育儿童大脑中理论思维的“种子”,理论思维指导科学技术的发展,才是科学技术的灵魂。有了理论思维才能在研究它的实践中产生深邃的科学思想,从而有所发明和创造,继而才能期望儿童能够去想象和构建自己的思想体系和认知框架。
(四)儿童编程教育理念及方式对儿童生活实践的影响与渗透
我们希望儿童编程教育理念不仅仅适用于课堂学习活动,而更要将其视为一种“无形的哲学”融入到日常生活实践中,就像指导我们生活实践的行为准则与价值观念一样,因为这是一种素养性教育。正如周以真教授所言:与其哀怨计算机科学的衰退,不如提炼计算思维思想面向普遍受众,将其渗透到各行业各领域的思想意识与行为方式中,激发公众对该领域的知识探险兴趣,使其成为普遍现象。同样编程教育的理念也应面向全体受众,体现在儿童生活的方方面面,使其成为儿童自身表达的一种手段,如此这般才能体现儿童编程教育作为一种思维方式教育的普世价值。通过编程教育加强儿童与社会生活的连接,能够给儿童以学习“真实感”,让儿童理解为什么要学习,体会到学以致用的乐趣,同时以编程的理念与方式指导日常生活实践,反之也能加深学生对“用编程学”的理解与应用,对其课堂学习也有一定的理论与实践指导意义。比如,学习烹饪的过程中,可以将繁杂的操作过程分解简化为几个步骤,怎么才能既做好饭,又不让其他菜放凉了,将看似复杂的问题转化为自己可以理解的问题以此掌握做料理的技能;旅行之前妥善地制定旅行计划,计算经费以及可能面临的诸多问题等,使自己能够享受一次完美的旅行;每天上学出门前根据今天的课程规划整理好自己的书包,为一天的课程做好准备等等都体现了编程教育所蕴含的理念,因为儿童要对所将“编程”的事件有一个全局的清晰的认识,在大脑中抽象化地进行计划和编排,通过不断地尝试,直到“输出”正确完美的结果。此外有研究者发现,编程教育还能够提高风险管理能力,因为编写程序时会想到可能会发生的全部问题,对以后可能发生的事件有一种想法和预设,就好比你在外面玩可能会遇到危险一样,对情境的预想以及掌握会使人产生风险意识,避免受到不必要的伤害。所以,我们对儿童编程教育的定义并非是为了让儿童成为计算机编程的高手,将来成为“程序员”或“码农”,而是倡导每个儿童都是“编程家”,都要具备编程能力并且能够用编程的思想解决问题,使自己作为生活的设计师以及灵魂的架构者,这对于儿童的成长及未来发展的影响都是不可估量的。
(五)儿童编程教育的开展需要企业及高校科研院所的外部支持
儿童编程企业团体面向的是更加广阔的受众群体,他们更加了解市场的需求及导向,故对儿童编程教育理念本真的普及与大范围的推广有着举足轻重的作用。首先,企业需要深刻理解并认同儿童编程教育要以“教育性”为第一准绳,而不是培养“娃娃码农”。企业对一种教学理念和模式的宣传和推广有着不可小觑的作用,甚至更有可能产生一种“现象级”效应,如乐高作为全球知名企业与儿童编程领域的合作就是非常成功的案例,乐高公司以敏锐的判断力结合自身产品特点相继与scratch、机器人编程等极具特点的儿童编程工具合作,对儿童编程工具的市场推广和流行产生了巨大推动力,同时也体现了契合儿童编程工具设计理念的完美应用;其次,儿童编程教育在学校的施行也需要企业专业程序研究或教学人员对学科教师在程序知识以及教学开展方面的辅助培训,同时企业专业人员对教师的相应技术培训以及编程教学方法的交流和探讨,也能为儿童编程教育的课堂应用开展带来新的想法,注入新的活力,如此相互配合、协调一致,加速儿童编程教育课堂应用落地。企业作为儿童编程教育的重要“社会力量”,为编程教育的学校开展提供了“社会连接”,教师的活动范围以及社会经验还是有一定局限性,企业的介入可以为教师的课堂教学活动增加新的灵感,增强课程与社会的连接性,同时企业也可以承担学校课程中以编程形式指导的活动,为学生带来不一样的編程想法和模式,以此使学生开拓视野,发散思维,真正将“用编程学”进行社会实践。另外,儿童编程教育也需要得到高等教育机构和科研院所的学术性支持,为其进一步研发和推广提供更加正规且宽广的平台。随着企业与高校“外部援助”的深入,建议在政府指导下尝试建立儿童编程教育高校、企业、学校非盈利关系研究与合作联盟,使儿童编程教育由自由探索进入“集约型”的研发与成果转化,加速思维指向式儿童编程教育在小学课程中的普及。推进聚焦思维素养的儿童编程教育就是要培养面向未来的全面发展的人,为儿童大脑中那一粒不知何时会“开花结果”的种子注入“水分”与“肥料”。
纵观世界上所有国家的儿童课程改革,本质都是预想通过更好的学校教育来创造更好的社会,因此未来在追逐全球共同利益中体现本国的责任与担当。所以,儿童课程都必将从“知识传授”向“知识构建”转变,学习也必将从“知识接受(学什么)”向“知识理解(核心素养)”转变,教师也应从“教什么”到“怎样教”过渡,以至于最终培养一种具有面向与适应新时代资质与能力的人。人工智能时代的未来一定会充满各种不确定性,是或然,或然不可测,所谓不可测者,即不能预知或预定其是如何也。具体底个体底事物之成为若彼或若此,其中皆有偶然之成分。拉尔夫·泰勒在《课程与教学的基本原理》中提到,目标要与具体的知识有明确的联系,同时还要与相应的知识理解或知识技能有明确的联系。儿童编程教育的重要目标是培养能够适应不同条件思考灵活且开放的个人,全局性、系统性、规划性、灵活性的思维能力是我们面向未来多变世界的必备技能,思维技能的教育应作为当代教育目标之一,应逐步建立思维能力教育在教育进程中的基础性地位。面对目前火热的儿童编程教育,我们不应该将过多的关注点放在儿童学习编程能得到什么或成为什么,应当抛弃这些稍显功利色彩的目的,同时社会与家庭应避免对儿童编程的“盲目跟风”与“教育焦虑”,将儿童编程教育作为一种过程性及功用性的能力培养形式,以儿童编程学习过程中思维能力的转变与提升为目标,聚焦于编程教育过程中儿童问题思维、算法思维、批判思维、合作思维和创新思维能力的养成,体现在儿童未来面临不确定性的问题解决过程之中,增长儿童应对未来社会挑战的“不可替代”的能力,方能展现儿童编程教育的精髓所在,做到儿童编程教育真为儿童未来发展。
(一)问题思维
人工智能以及机器人技术为人类社会带来便利性的同时,也挑战着人类的思维与行为方式,未来儿童面对的都将是各种“不确定性”的问题,绝不是靠记住正确答案就能够解决的,所以要注重培养儿童积极主动思考问题的能力,训练儿童问题意识与问题思维,在面对新的不确定性的问题时,能够将其抽象为具体可解的形式,可以以现有的事实为依据进行“推理”或“判断”,而后创生出解决问题的合理路径,之所以说是合理路径而不是正确路径,是因为未来人类面对的诸多问题不大可能有唯一的标准答案,而主要在于人类可能选择受益的不同方面而采取相应措施。纵观近两次的PISA结果,中国学生在阅读素养、数学素养和科学素养全部三项评价中均排首位,并且远超于其他国家的学生,但唯独基于计算机解决问题项目成绩落后,这一结果也引起国内外教育界及媒体的广泛关注与讨论,教育的目标体现在成绩这一结果性评价上,而更应该聚焦在有意义的问题的提出与解决的过程,切实践行“没有正确答案”的教育,培养创造力的教育,获取面向人工智能时代普遍被需要的生存技能的教育,这才是教育所应关注的真问题。梅耶尔表示,系统且程序性的知识与技能是问题解决的关键,编程活动的程序创造能够帮助儿童将问题抽象分解提炼为解决问题所需的认知技能,而后应用于相同或相似的情境之中。儿童编程教育直指儿童问题思维的养成,因为编程活动没有既定确切的目标与答案,即便是基于特定项目的制作,与其他基础性课程的学习相比,也是相对开放的探索活动,并且编程思维及行为方式与基础学科课程或生活实践相结合的过程中,更需要儿童不断地寻找线索形成问题链,分析问题赋予其意义,选择最合适的行为方式以至达到解决的问题。同时教育建立在问题的形成与解决的基础上而非知识的灌输过程这一事实意味着个人获得了更多的经验,使学习者成为问题提出与解决者比传授给他们现有的知识与应试的技能更加具有现实与长远意义,并且在此过程中更能帮助个体增长与发展高阶思维能力,问题意识和问题思维的养成或许是助力未来儿童能力发展的第一步。
(二)算法思维
算法本质上指的是一系列定义良好的待执行任务的逻辑步骤,即利用计算机基础概念和程序运行的原理以达到问题解决的思维能力,算法思维是信息技术社会所有人都应该具备的重要技能。科尔克马兹表示,算法思维体现在问题解决过程中的顺序排列,现实生活中的诸多活动都可以看作是人类处理的算法。儿童编程活动是训练与培养算法思维的重要实现形式,并将此思维方式渗透延伸到儿童学习与生活的各方面。首先,算法思维的创建与计算机概念的理解与掌握有关,序列、分解、转换、条件、循环等计算机基本概念体现在事件发生与人类活动之中,是儿童算法思维发展及问题解决过程中的基础环节;其次,基于计算机运行原理的实践活动是算法思维养成的重要体现过程与实现途径,聚焦于思维素养训练的儿童编程教育实现形式更加“再现”与“具体”化了算法运行过程,儿童在程序创造亦或是现实问题解决的过程中,通过情境抽象模拟、分析、模块化、调试迭代、自动化、泛化等将具体的问题重新再现为知道如何解决的问题,此种程序化问题处理的方式不仅有助于问题更好的解决,而且帮助儿童养成有利于问题解决的预势与态度,在面临更高难度的问题时能够冷静处理,理性分析。同时,摆脱技术工具的儿童编程形式使得算法思维更加“外显化”,可以借助编程思维形式使儿童在物理空间进行操作,全局系统地考虑事件不同组织计划的后果,经过不断地尝试与修正,以此达到问题的解决;最后,算法思维观念指导着儿童学习与生活实践,通过教育工作者对学习情境的创设,以儿童为主体通过探索试误、推理启发,实现知识的获取、问题的解决、思维能力的提高,并在此过程当中将程序算法思维贯彻于学习与生活之中,使儿童能够从全局对问题情境进行预设和把控,挖掘问题的逻辑本质,从而分步实现问题的解决,故算法思维的培养与“自动化”程度的应用是问题解决的重要实现途径。
(三)批判思维
问题解决以及算法程序调试的过程中体现了儿童对操作对象的评估与选择,促进了儿童批判性思维的养成。批判性思维是一种积极并且有规律的判断与质疑过程,能够帮助人们,通过反思与合理地思考,以此更好地利用自身或他人的想法来理解和表达事物。儿童在编程活动过程或应用程序原理解决学习与生活中的问题时,无形当中使用和训练了其批判性思维能力,问题解决和决策的一个重要步骤是需要利用批判性思维能力来重构问题表征或事件情况,儿童要将所遇到的问题事件解构再现为类似于计算机运行的过程,并且在此过程中不断地反思判断、修改尝试,辨证性地提出质疑,考虑到程序创作过程中各种相冲突的条件措施,在此过程中学会理性地看待每一次选择与尝试,直至获得最完美的表达,此过程体现着儿童对自己思考过程的认知与监督,在无形当中锻炼了儿童的元认知能力;同时批判思维是包括技能与“倾向”的一种高阶思维,倾向在此体现为一种有利于问题解决的情感与态度,编程活动对学习者认知模型的建立有极大的影响,程序创建与问题解决过程中所体现的批判性思维对认知模型的建立有重要作用,如我们所拥有的偏见,刻板印象都会影响其对世界和行为的看法,而人们往往并没有意识到认知模型会影响他们的行为,这种意识可以通过个人批判性思考的能力来纠正与实现。故批判思维在问题解决过程中承担着监督监控的角色,能够保持问题解决沿着正确的轨道行进。
(四)合作思维
程序创作和问题解决的过程并不是独立的,需要学习主体之间的协调配合,交流沟通,以此将学习成果最大化。当代儿童被称为“数字原住民”一代,电子设备已经渗透入他们生活方方面面,我们不可否认技术正在影响和改变着人类的思维及行为方式,但同时技术与学习的融合也呈现出了一些问题,长期技术设备的使用有时会使每个儿童存在于自己的“孤岛”之上,技术在不断改变人类生产生活的同时似乎并没有对学校学习带来预想中“颠覆性”的变革,教育工作者更多地是将技术作为教育教学的附加部分,过于关注技术设备应用与工具形式,这种“无灵魂”的使用使得儿童学习主体性关注缺失,并且儿童专注于技术设备的使用使个体之间的沟通交流也减少,这都是技术教学应用过程中值得反思的问题。儿童编程教育活动多以实践体验类型课程展开,以项目制作为基础,在此过程中需要团队的协作配合,共同完成既定任務,聚焦思维素养的儿童编程教育倡导基于真实物理空间的项目创作或融合计算机运行原理的课程内容教学,摆脱了计算机虚拟界面,更加体现了学习主体之间真实的合作交流;同时合作性的学习与沟通是一种高水平学习的方法,能够最大化自己与他人的学习。儿童编程的真正用意是为儿童创设自由建构的环境,使儿童能够通过不断地创造、设计、制作项目,以此来创造性地获取知,未来社会不可能凭借一己之力解决系统且复杂的问题,个体之问的合作、交流、沟通不仅是加速问题解决的技能同时也作为一种情感助力。
(五)创新思维
创新思维的养成是儿童编程教育的终极指向。未来社会需要的不再是遵守指示规则,应试成绩优异的“A型学生”,与此相反,敢于尝试新鲜事物,渴望自己发现并定义问题,批判性地看待问题,具备创新思维和创造性能力的“x型学生”才能更好地适应未来人工智能时代。所以教育工作者们不应因循守旧,以现有的教学模式,用过去的教学方法来培养当代的儿童。不应强调学生遵守既定的指示与规则,而应当帮助学生拓展方法、目标与策略,培养学生的创新思维。创新思维的养成并不是一蹴而就的,其通常发生在周期性的想象、创作、游戏分享等多次迭代调试之后,基于程序原理的问题解决过程能够训练与体现儿童的创新思维能力。编程活动作为一种极具特点的创新思维培养方式,就如写作一样仅仅掌握语法、拼写远不能满足表达的需要,编程亦是如此,只掌握基础的计算机概念并不能体现出计算思维的能力,而需在创作程序创作及情景表达过程当中不断地组织、提炼和反思自己的想法,成为自己行动的思考者、问题的解决者、思维的创新创造者。创新思维与创造力的教育应当及早进入教育议程,若从大学开始早已为时已晚,应当从小保护、挖掘儿童的创造力教育,从儿童教育开始,尝试思维技能课程应在尽可能早的年级层次上嵌入传统的学科领域,进而波及整个教育系统,培养具有终身创造力的儿童,才能更好地面对不确定的未来,而依托于儿童编程教育来实现这一目标是可行与可能的。