童程童美:少儿编程亮相两会 专家道出儿童为什么要学编程
在之前两会在两会的时候,全国政协委员,网易CEO丁磊在提案《关于稳步推动编程教育纳入我国基础教学体系,着力培养数字化人才的提案》中建议,创新教学模式,形成中国特色的少儿编程课程体系;教企共建少儿编程学习资源库,提供实践平台;将少儿编程纳入学业水平考试,作为综合素质评价重要内容等。
去年3月教育部印发的《2019年教育信息化和网络安全工作要点》已明确提出,要推动在中小学阶段设置人工智能相关课程,逐步推广编程教育。
北大教授
简介
汪琼,北京大学教授、博士生导师,现为北京大学教育学院现代教育技术中心主任。主要研究领域有翻转课堂教学法、MOOCs数据分析和e-learning环境与教法等。
最近几年,包括中国在内的许多国家都重新提出要普及儿童编程活动。儿童为什么要学编程?是否能够学会编程?应该怎样学习编程?再次成为教育科技领域人士需要思考和回答的问题。在本文中,北京大学汪琼教授通过对谈论儿童编程的著作Mindstorms:Children,Computers,and Powerful Ideas(以下简称 MindStorms)一书的解读回答了这个问题。
Mindstorms
作者简介
西摩·佩珀特(Seymour Papert,1928~2016),美国麻省理工学院教授,是推动少儿编程的先驱。该书基于皮亚杰儿童认知发展理论所提出的建构学习思想与“改变了全世界数百万儿童的创造和学习方式”的LOGO环境, 较为完整地阐述了佩珀特为儿童研发编程环境的用意。
儿童学习
佩珀特认同皮亚杰关于“儿童是天生的学习者”的观察,认为幼儿的学习方式是最有成效的学习方式,其学习过程有着许多值得学校借鉴的特点:
1.它是有效的(所有的儿童都会);
2.成本很低(既不需要教师也不需要开发课程);
3.人性化(儿童似乎无忧无虑地做这件事,没有明确的外部奖励和惩罚)。
这种在与环境交互作用中产生的自然、自发的学习,也被称为“皮亚杰式学习”(Piagetian Learning)。
伴随儿童年龄的不断增加及其思维的不断发展,周边的环境往往就不再具备继续支持他们自主进行高深知识探索的条件,这时候他们就需要进入学校,以开展更专业化的学习。
佩珀特理解学校出现的必要性,但又批评现在学校的教育内容和文化让儿童失去了学习的兴趣和能力。
分离的学习
学校教育提供的是抽象知识,较少能与学生的体验建立联系。以物理学为例,学生在课堂上学到的都是用数学公式来表达的定理定律,学习的过程就是做题、计算,学习效果主要看考试成绩。即使是物理实验课,也是在验证公式定律,而不是让学生去自主发现。
在这种情况下,学生可能学了几年物理,但对物理学的基本概念有可能还没弄明白,这就很难在现实生活中灵活地运用物理学知识解决问题,更别说创造性地发展物理学了。佩珀特把这样的学校教育称为“分离的学习”,即学生对学习这样的学科知识没有兴趣,更别谈动力。
对错文化
学校的教育否定儿童的直觉思维,“对错文化”挫伤和损害儿童的自信。很多证据表明儿童会自己建构对事物的解释,如有儿童认为风是树枝摆动的结果,因为手在脸庞附近挥动时,就会产生很明显的风感。
如果对提出这一理论假设的儿童说:“这个想法很好,但这个理论是错的”,估计大多数儿童都会因此认为自己建立的理论是徒劳无功的。学校就是经常这样通过强迫儿童接受“正确的知识”,来完成人类文明所传承的任务。
儿童编程
在“学时有限”的情况下,学校很多学科都不教学生这些知识是怎么来的,只要求学生记住和会用。长此以往,学生就会认为做题只有做对和做错两种结果,而养成了按照标准答案回答问题的习惯,会坚信在学习过程中个人的认识和理解只要与标准答案不同,都是不可取的。
而且,当儿童因为不理解而记不住、学不会的时候,就可能被周边人甚至自己暗示为不具备学习这门学科的“天赋”,从而失去自信,变得愈发不爱学习、不想学习。
佩珀特认为这就是为什么“天生的学习者”会慢慢变得不会学习的文化根源。而要改变学校教育的沉疴,就需要从改变学校教学的理念和学习环境入手,溯本清源,去创建适合学生学习的环境。
上世纪60年代,西摩·佩珀特专门为孩子设计了一种叫“Logo”的计算机语言,一改枯燥的程序设计,通过操纵屏幕上的海龟绘制各种图案来学习编程,寓教于乐,强调创造性的探索带给学生严密的计算思维和有趣的学习体验。
▲logo语言操作界面
佩珀特谈到他之所以要研发LOGO系统,就是希望用计算机创造“简化世界复杂性”的微世界,让每个学生都可以在这个世界中通过思维中介物(海龟)开展自主性探索。编程语言是学生操作微世界的工具,是计算机在教育领域发挥作用的一种形式。
佩珀特研究少儿编程环境的目标,就是要支持儿童自己设计出可以操作的物件,让儿童在操作这些物件的过程中建立所学内容与个人体验的关系,享受学习的乐趣。
佩珀特在书中用很多案例解释了学习编程可以给儿童思维发展带来的诸多好处:
1.有助于隔离错误、诊断问题
LOGO语言是高级程序设计语言,它允许儿童编写子程序,用结构化的逻辑从整体到部分分层思考,这样可以控制复杂的思维。
但佩珀特也指出
许多孩子一开始会抵触结构化编程,因为直线思维更符合儿童做事逻辑,直到有一天自己编的程序实在太长而难以找到错误时,他才会转向使用子程序。一旦养成结构化思维习惯,他就会体会到这种分层思考的好处,不仅可以“俯视”系统,还可以重复使用已有的程序,从而做出更庞大、更复杂的系统。
佩珀特指出编程环境并不强迫儿童一定要采用“正确的方式”(如结构化编程)编程,而是给他们足够的灵活性和力量,等待其通过自己的探索而觉悟——这样宽松的环境更适合不同儿童的发展。
2.让儿童不怕犯错,并学会纠错
前面谈到学校教育文化让学生对于做错题感到沮丧,而学习编程会让他们体会到:很少有人第一次编程就能成功。
学习编程的经历让儿童学会面对错误,如调试程序就是分析程序运行结果,找到错误所在并予以改正的过程是最有意义的学习。计算机编程的经验比任何其它活动更能有效地引导儿童相信“失败是成功之母”。
佩珀特也谈到由于传统学校教育文化的影响,儿童刚学编程的时候会碰到程序出了一点小错,往往不是去查原因,而是删除这段程序,重新来写,这种不找错误根源只是重复尝试的做法是低效的。儿童学编程的过程也是纠正其对“错误” 认识的过程,这种转变会让其受益终身。
3.帮助儿童运用启发式方法解决问题
佩珀特指出,程序语言非常适合描述操作过程,如解题步骤。在MindStorms一书中,佩珀特多次使用通过分解计算步骤的方式展示运用计算思维解决非程序问题的例子。如有儿童采用分解步骤的方式,找出了成功实施三球杂耍的关键要点(眼睛要盯着抛出球的最高点)和踩高跷的要点(高跷和腿要联动)。
这样的例子佐证了佩珀特提出的观点:程序化编程思想可以推广而成为学习原则,即通过对复杂过程的适当描述,来诊断和调试学习中的问题,从而促进学习。
程序化思维是一种强大的智力工具,一旦掌握后,就可以迁移到其它领域,无需计算机,也可以帮助学生思考、辅助解决问题。
少儿编程学习
4.有利于保护和培养儿童的直觉思维
很多伟大的科学思想,其原理和本质都是非常简单的,与儿童的直觉非常接近。佩珀特在书中用几个例子说明人的直觉思维孕育着伟大的思想,但是学校的课程只有干巴巴的事实和技能,缺乏对儿童直觉思维的保护和培养。
总之,通过编程,儿童能够看到自己努力的成果,并接受一开始可能会不完美,不全对也不全错,而且可以在不断修改中日趋完善,这对儿童的成长意义重大。儿童在这个过程中不仅学到了数学知识,还学到了许多可以受益终身的、关于学习的知识。