简论少儿编程对于儿童和基础教育的巨大作用
小序 坦率的说,少儿编程不是一个“写程序,做码农”的事情,少儿编程方向是一个基础性的学科群体,在计算机科学发展到今天,在人机协作系统深入人类社会方方面面的今天,这么讲是为编程正名:这就是我今天主要想探讨的,为什么少儿编程是基础教育一个升级的巨大机会,为什么少儿编程对于儿童基础教育有巨大的帮助。 常言说名不正则言不顺。最近有和业内人士交流的经验,无论是否懂计算机科学的教育人士,都觉得少儿编程是一个选择性的兴趣学科,而我每每都从基础性学科的可能性开始谈起,认为少儿编程方向,未来可能会像数理化一样,成为一个基础性学科,甚至人文、艺术也可以基于它有延伸和融合。 在这个时间点,这是一个有争议而且有趣的话题。做教育的人关心,家长也关心,而当我们接触到大部分有这方面接触的家长来讲,谈及Minecraft、Scratch等等,都说孩子们是超级喜欢——换句话说,孩子们对电子游戏和计算机世界不是无感的,他们是最早投入和感兴趣的一批人类群体。无论我们是否回避,在孩子们基础教育甚至高等教育的同步年龄段,以电子游戏和计算机世界为代表的生活方式都会大规模浸入孩子的真实生活。不管我们如何争议、甚至坚决要求杜绝孩子接触计算机,但事实上,我们丝毫拒绝不了计算机世界对孩子成长的影响。 所以,无论你持有什么立场,不妨和我一起来看一看,从我这个对少儿编程学科群有正面看法的人的视角里,看到一条不一样的路。盲目的批评和拒绝是没有意义的,但我欢迎任何有价值有针对性的探讨和质疑。 我持有的观点是,少儿编程对于儿童和基础教育有巨大作用。 基本背景与印象介绍 虽然有一部分同学可能对程序设计(也就是编程)、程序员(或者软件开发工程师)有一些听闻,但实际上真正了解少儿编程的并不多。我们不是从一个职业技能在谈这件事,而是从儿童教育在谈这件事。所以需要给大家一个初步的印象。儿童接触少儿编程的起步,大体是一个什么印象。 我们以Scratch为例进行展示;后面通篇默认都以Scratch为基础工具。Scratch是MIT研发并开放的一个儿童图形化编程的工具平台。可以在web上进行操作和分享,也可以下载到计算机本地。儿童甚至成人都可以使用它,来制作动画贺卡,制作游戏,制作音乐,制作各种他们可以用编程完成的任务。非常的酷炫,所以也有人说,会编程的孩子未来就像摇滚巨星一样,在孩子他们的群体中。 我自己因为做课程的关系,用Scratch来编程,都有一点上瘾的感觉。非常的有趣。当然,它是一个图形编程的工作方式,非常适合儿童,但相应的它的编程语言设计,相比较专业计算机语言而言,就是一个简版——我想用它设计分形图形绘制这样的复杂计算任务,还是难以实现的。但无论如何,对于儿童起步而言,刚刚好。下面是一个简单的例子: 左边舞台上,有一个默认角色,就是一只小猫咪。中间功能区有各种指令代码和套装、语音设计功能等。右边是编写代码的区域。这个例子中,我对小猫咪写的代码翻译是:
所以这一段代码的例子,就是让这只小猫咪来回走动散步,碰到舞台边界的时候折返。 孩子懂得这些指令的基本含义之后(他完全可以探索式的尝试,弄懂大部分简单指令的含义),他就可以把中间的指令拖拽到右边,享受他控制小猫咪的乐趣,创造一些活动场景和游戏的乐趣——这些就是编程过程。 所以这个儿童编程的过程,不是像我们软件开发工程师那样,对着符号化的计算机语言来工作。而是面向一个图形化界面,面向一个具有丰富角色和操作性的、能够让他控制全部的新游戏。创世纪的游戏。 少儿编程就像一个创世纪的游戏一样,这是我们的一个基本印象。 少儿编程对于儿童教育的巨大作用 现在切入正题,我用三句话——三个层面来回答少儿编程对于儿童教育的巨大作用。 第一句话就是,少儿编程有着丰富的基本技能内涵,可以在各个方面帮助到儿童。第二句话就是,少儿编程是一个学科融合的最佳平台(之一),可以提供跨学科的学习。第三句话就是,少儿编程可以完成很多高阶能力的培养,在未来公立教育中的地位也会不断提高。 我们下面具体来谈每一个层面。 少儿编程培养的儿童的基本技能 少儿编程涉及到的基本技能非常丰富,不仅仅是编程本身。我们前面说,就以Scratch为例,至少有如下四个方面的基本技能方向,如图: 数学方面 第一个方面就是数学。少儿编程图形化编程,第一技能方向就是数学。我们前面注意到,儿童学少儿编程,首先注意的就是一个或一些角色在舞台上的行动——这其中就包括:
所以这里面有着大量的数学学科内容,而且,这些内容都在具体的问题和任务场景中出现,既包括基本算术和几何图形知识,也包括函数以及坐标系等中学数学核心概念。通过它们在具体任务中的应用,儿童不仅操控了这个虚拟世界,而且会切身锻炼到、应用到数学知识和能力。 逻辑方面 编程的基础,既有数学,也有逻辑。逻辑思维能力,是儿童发展的一个基本能力,在文理各个方向都是十分重要的基础。少儿编程,可能是第一次对儿童正式的、系统的进行逻辑方面的锻炼。
所以在少儿编程中,逻辑思维的训练是一个基本训练,这也是程序设计及计算机科学方向的一个基本核心特征。儿童将在大量的问题解决和任务控制中,形成系统化的有逻辑的解决方案。突出锻炼到儿童的逻辑思维能力。这种逻辑训练的密集度,不是其它活动所能比拟的。 设计思维 设计思维是人们提出的对未来社会有重大意义的思维方式,它是一种面向问题解决的、创新的系统思维方法。这也是属于STEM课程方向内少儿编程的优势之一。我们的儿童将学会系统的思维方法来分析、分解问题(需求),并通过综合的资源来解决问题。
所以,少儿编程是一个具有丰富资源和场景可能性的学科方向,以驱使儿童深入的、创新的考虑问题的解决方法,并锻炼到儿童的设计思维。随着问题的复杂度,以及儿童问题解决方案的复杂度,和方案中操控设备复杂度的提升,儿童的设计思维能力在不断提升。 程序设计 我们最后再谈一谈少儿编程对程序设计能力的提升——这是显而易见的,这是本门的功能。虽然我们前面说,就编程启蒙工具Scratch这一类而言,它的语言设计是简版的,但对儿童而言却是刚刚好。
小结 通过以上数学方面、逻辑方面、设计思维和程序设计四个方向基本技能介绍,我们可以得出结论,少儿编程这个学科,对比现在学校里的所有学科而言,都有鲜明的特色和优势。它对我们儿童的教育和锻炼,恰恰是许多学科所不能提供的。 所以,少儿编程对于儿童的基本技能的学习和训练,有着巨大的、不可替代的作用。 少儿编程对于儿童跨学科学习的帮助 比较先进的教育国家,及创新学校,都有在融合学科、跨学科的学习模式上有探索。这有真实的社会需求和背景,也有学科发展细化之后的内在逻辑要求。但是我相信,在基础教育阶段,融合学科或跨学科学习应该如何做,应该有很多人在困惑中。不是简单的拼凑,不是简单的活动展现,而是扎扎实实的在提出问题、并通过学科融合的思路来解决问题——很多人对此不知道应该如何做。 我的观点是,少儿编程是儿童跨学科学习的最好的工具之一。无论是在学术界,还是在工业界,计算机科学已经融合到各个学科当中,做天文研究、做数学研究、做医学处理,甚至做文学事业,都需要使用到计算机学科方法或成果。这是世界发展的自然结果;我们的教育上,在面向跨学科学习的命题时,也必将发展出基于少儿编程的基础教育中的学科融合学习模式。 我这里有一个简单设想,也是我自己设计少儿编程课程中的基本原则: 少儿编程课程可以非常好的融合数学学科、融合生物学科、融合科学学科,可以非常好的融合游戏,融合社会调查,融合语文戏剧。这里的创造性是无穷的。我们一开始就说,如果你把少儿编程当作小码农——这是一种窄化思维。就如其它学科一样,学数学不一定要做数学家,但生活中数学无处不在,学物理不一定要做物理学家,但科技中物理无处不在一样,我们基于少儿编程的工具,可以开展大量的融合学科的任务:
这些跨学科的综合实践任务,都是需要多个学科的角度来考虑,来设计,并给到儿童综合的实践环境。少儿编程只是一双鞋,一部车,儿童驶向哪里,将取决于我们的教育和儿童自身。这里与职业教育所不同的,恰恰是“编程不仅是编程”。 少儿编程对于儿童高阶能力的培养 近两年以来,看了大量的对教育反思的材料。有一个点非常值得提出——那就是,不管我们对教育多么有意见和鞭策意愿,但事实上我们对公共教育所承担的目标,已经大大的发生了变化。从最开始的识文断字,到今天,已经有大量的高阶能力培养需求。 这不能不说,这是我们社会深刻变革之后的结果。当然,也不能不说,我们的教育,尤其是基础教育,还没有为此做好准备。 对少儿编程而言,我将谈及四个方面。分别是创造性、团队协作、数据与系统思维,和公立教育的对接与收益。可能部分家长最看中最后一个方面,虽然我不能不谈,但我还是想把它放到最后。如下图: 创造性 创造性的重要性无需我再饶舌。但对于创造性的培养,在教育圈内却是莫衷一是。甚至有一批人认为,创造性是无法培养的。我们对此不做学术意义上的辩论,但我认为,创造性不管能否培养,它的确是需要土壤的!我之前在数学启蒙的总结中曾提到,真实问题的经历和思考过程,是创造性最好的土壤。也就是说,我们的孩子需要在真实的生活中发现问题、经历问题,经历那种痛苦或不平衡带来的冲击和压力,然后经历这个探索思考过程,这里就是创造性产生的土壤。从这个层面而言,少儿编程所涉及的大部分任务,都是具有场景的任务,如果问题提出得当,这些问题对儿童实践而言都有非常好的教育意义。因为少儿编程是一个基于实践的学科,基于问题解决的学科,所以这里就是创造性的天然土壤之一。 而另外一个角度,我们的儿童都必将在某个时间点接触电子产品,接触游戏——我们前面就说,这是我们无法拒绝的。如果孩子痴迷于游戏,过则有害。这也是显而易见的,也有许多适龄家长为此头疼。但实际上,在儿童接触到电子产品和游戏的同时,给他接触到一个强相关的高阶活动,一个更加激发他创造性的学科方向——基于编程创造游戏,创造电子产品,且社会、家庭都对此是肯定的,那么我相信大部分儿童都会有正面的影响。打游戏打的好不再是一件很酷的事情,编程开发出好的游戏和产品,才是更酷的,且有社会家庭的大量的正反馈。 团队协作 儿童需要大量的团队协作的任务,尤其是在我们中国这个社会现实下,独生子女居多的时候。现在学校对于团队协作,那是非常的弱。甚至种种原因,团体体育活动也不够多。即使可以参与团体体育活动,它也是一个基于身体条件来对抗的竞赛活动,这是一个身体条件决定角色、以团队荣誉为主、进行简单规则下的竞赛式的活动,它和我们真实社会中复杂的协作活动还是有区别的。(我国大量体育运动员转型进入社会后,多数人会面临很大挑战,恰恰是这种长期单一的体育运动的学习带来的不足) 除了体育运动之外,我们需要这种团队协作任务:
满足这些要求的团队协作的实践任务,且适合在基础教育阶段实施,其实并不是很多。而少儿编程,恰恰就是这样一个学科。它有自身的核心素养方向,有各种学科融合的能力,有高阶能力培养的功能,而且,许多编程任务,恰恰需要儿童们团队协作来完成。而团队协作的复杂度,既足够和社会实践一致,又可以控制复杂性。(最大的问题,反而只是我们学校的教师不具备工程研发和管理的经验,而做不了这一块的引导。但对于创新学校与合适背景的人而言,这一般不是问题) 我看过一些所谓的领导力培养案例,要么是演讲要么是形式化的流程,儿童并没有基于目标的行动,没有真实的任务协调与冲突,并没有形成真实的团队,那么团队协作能力甚至是领导力,都是浮光掠影的。 数据与系统思维 在数据与系统思维方面,我们探讨一种可能性。 这种可能性就是,未来社会中许多中高级职位,都将需要职业人一个基本能力,那就是数据与系统思维的能力。不妨看看我们身边的高级技术人才和管理人才,他们此时都具备这一基本素质。 他们都有着丰富的数据能力,包括获取数据、处理数据和基于数据决策的能力,这不是简单使用工具的能力,而是内化到思维方式的一种工作方法论。很多人职业发展不顺利,是因为他们的工作中不知道用数据描述目标,不知道用数据管理过程,也不知道怎么取舍和决策;虽然他们可能很熟悉计算机系统,熟悉各种统计工具。 所以在今天以及未来的职业发展中,这种数据能力,以及人机协作复杂系统中的实践能力,必将成为一个核心竞争力。 我的基本观点是,如果社会需要,那么我们的基础教育必须有所准备,有所启蒙。如果这样的能力是大部分中高端职位都需要的,那么在基础教育启蒙的时候,它必然成为一个主学课。如数理化一样。 公立教育对接 最后,我们说一些未来公立教育发展层面的收益。 首先,信息技术奥赛也开始逐渐有影响力,对于感兴趣的中学生而言,这是一个很好的展示自我能力的平台。信息技术奥赛中除了基础知识之外,主要题目就是编程,通过数据结构和算法来实现编程,解决可计算的比较复杂的问题。这对部分儿童成长和未来发展是有帮助的。 其次,越来越多的大学将尝试自主招生。在所有科学和技术方向的专业(也是现在社会上最大的专业群之一),STEM实践都将会具有显著意义。而在STEM中有几个基本学科,其中少儿编程是最具有开阔视野的,最有延展性的,也是最深入的学科之一,所以我认为它最具有潜力。在未来一流大学自主招生中,基于少儿编程所做的项目和能力,将具有很好的竞争力。(如果有家长朋友需要这方面信息,可以加我的个人微信,获取大学自主招生信息) 最后,学好以少儿编程为基础的学科群,未来我们的学生不一定从事IT行业,不一定去做专业的程序设计工作——但他将具有一个更加开阔的选择和发展能力。这是毫无疑问的。不仅是学理,学文的方向也将大量得到应用。 所以,还等什么呢? 一句话总结 我认为,少儿编程对于儿童和基础教育具有巨大的作用。 买一送一,最后一句是,对于这个学科方向群而言,我们将和世界一起前行。
|
|