为了更好的学习——少儿编程

网友投稿 2018-07-03 12:10

最近,少儿编程好像一夜之间成了一个比较火热的概念,媒体上和朋友圈经常能够看到 “编程将会被引入高考”“孩子再不开始学习就会输在起跑线上”“未来职业需要”之类的报道,以此作为应该让孩子学习编程的理由。

接下来呢,小编想从另外一个角度谈谈自己对少儿编程的一些认识。

https://cdn.china-scratch.com/timg/180705/121054H44-0.jpg

少儿编程的起源

说起少儿编程,就不得不提到一个人,Logo语言之父、构造主义(Constructionism)学习理论的提出者——西蒙·派珀特(Seymour Papert)教授。

由于生活经历的因素,派珀特教授对齿轮特别感兴趣。他提到,在自己的学习生涯中,经常能够将一些别人认为非常复杂的概念和“齿轮模型”结合起来,从而对这些知识理解的更加深刻,而且在玩齿轮的过程中,常常能够不经意地学到很多知识。

那么,这和少儿编程有什么关系呢?

派珀特教授结合自己的学习经历想到,要是每一个孩子都能找到自己感兴趣的“齿轮模型”,那学习将会变得非常主动而且高效。但是,并不是每个孩子都会喜欢齿轮,那有什么样的一种工具能够满足每个孩子不同的兴趣呢?

答案是计算机,通过编程的方式让计算机去构建孩子感兴趣的事情,并在这个过程中不经意地学到知识是很完美的一种方式。

于是派珀特教授很自然的将自己发明的Logo语言应用到了教育领域,让孩子通过编程的方式使数学学习变得看得见、摸得着。

后来麻省理工媒体实验室,又在派珀特教授的理论基础上推出了新一代的编程语言——也就是现在非常流行的Scratch编程语言。

https://cdn.china-scratch.com/timg/180705/1210542060-1.jpg

对于编程学习的观点:

基于上面的讨论,编程作为一种工具,是为了让孩子找到一种适合自己的学习方式,最终的目的是让每一个孩子能够更加主动、高效的学习。

所以任何脱离了这个目标的编程教学,或多或少都是有一些欠缺的。我觉得对待编程学习,应该有的态度是:

观点1:编程教学最终的目标应该聚焦在如何通过编程的方式去帮助学生表达创意,而不是聚焦在教会学生编程的基本技巧。当然,掌握这些编程的技巧是孩子在学习过程中不可逾越的一个阶段

这个观点似乎有点老生常谈,但我认为从心里面真正理解这条教学目标非常重要,因为这条“纲”指引着课程的设计方向。

为了达到这样的教学目标,从教学设计的角度来看,我认为应该分成“学”和“启”两个阶段。

https://cdn.china-scratch.com/timg/180705/12105442Q-2.jpg

“学”即编程基础知识的学习,这个阶段最终的目标是帮助孩子掌握编程的基本技巧。

以Scratch的学习为例,一些小游戏的设计、Makey Makey音乐的创作、Minecraft的结合等等,大多数孩子都很感兴趣,都可以纳入进来。

但是比较重要的一点,是让孩子觉得“编程有意义”,所以孩子课本上学到的、生活中见到的现象是比较合适的主题,而且学习这样的主题也更容易引起共鸣。

比如,将小学数学课上学到的加减乘除运算融合到下面的赛跑游戏中,一方面数学知识有了实际的应用场景,另一方面游戏的设计也能激发孩子的创作热情。

在完成“学”这个阶段后,孩子已经掌握了基本的编程技巧。还是以Scratch为例,到进入下一个阶段的学习时,根据我的观察,常见的一种做法是给孩子寻找逻辑更加复杂的游戏,以此证明孩子还没有完全掌握编程,或者直接过渡到另外一种编程语言。

然而,我的观点是,如果局限在编程逻辑的复杂度上,那这样的学习是没有尽头的,因为Scratch能实现无限复杂的逻辑。

而且这样去设计,会给孩子造成学习编程只能编写游戏的错觉,同时也减少了孩子主动应用编程表达想法的机会。

所以,我认为第二个阶段更重要的在于“启”,即以发布小专题或者项目的形式启发学生主动的观察现象、应用编程。

这个阶段的学习成果包括其他知识的学习报告、程序的实现、改进的方案等。

比如,“为什么有的玩具小车会自动沿着黑线行驶(循迹)”,针对这样的项目,需要孩子对循迹的原理进行探索,有的孩子就了解到了循迹传感器的原理,原来是与光学上的反射现象有关。

然后通过Scratch模拟出一个循迹小车的运行效果。比如,下面的小车就可以沿着赛道自动的行驶,在不同颜色的赛道,小车的速度还不一样。

可以看到黑色小车的最前面有红色和绿色的两个小方块,这是孩子了解了循迹的原理后模拟的传感器。

学”和“启”,更重要的在于“启”,正如派珀特教授指出,我们只需要为孩子营造出可以学习的环境,孩子总能在自己动手的过程中,不经意的学到很多知识。 

观点2:课程体系的延伸源于孩子创意表达需求的延伸。

在编程教学过程中,经常有家长问老师“孩子应该从何学起”,得到的回答往往是:应该从图形化编程开始,然后过渡到代码编程,最后学习算法。

我的理解是,既然编程是孩子创意表达的一种工具,那么很显然对于不同年龄又或者是不同兴趣的孩子来说,他们对周围世界的认知是不一样的,需要表达的创意也就不一样。

有的孩子对世界的理解可能是天马行空的想象,想到的就是合理的;

有的孩子可能对真实世界已有的现象充满了好奇,比如楼道里的灯天黑了为什么会自动亮;

还有的孩子可能会想,我能不能让这个世界更加便利。

https://cdn.china-scratch.com/timg/180705/1210555554-3.jpg

观点3:老师的作用在于启发、引导、鼓励,不在于教。

编程学习是以学生为主导的学习过程,孩子的蜕变在于兴趣驱动下的主动学习,而不是老师教会。

在实际过程中,我经常会发现孩子更加享受于自己摸索与创作。那么老师的价值何在?

我认为老师的作用恰恰就在于让孩子“有意义的主动学习”。要实现这个目的,需要老师去塑造一种让孩子主动学习的氛围,抛出让孩子感兴趣的、贴近他们生活的话题,激发让孩子利用编程去创作的兴趣。

观点4:为了更加方便的学习,编程学习社区非常重要。

编程学习不应该孤立的存在,分享与获得反馈是孩子保持学习动力的很重要的因素。

一个基于编程的学习社区是非常重要的,一方面孩子可以非常方便地存储自己的作品,另一方面同伴或者老师也可以利用这个系统及时地给予孩子反馈。

事实上,很多情况,孩子的进步来源于同伴之间的交流,而且作为互联网时代的原住民,现在的孩子更习惯于这样的学习方式,国外也有相应的研究证明这一点。

这也是Scratch官网社区,看似没有老师教,但学习其实无时无刻不在发生的原因。

观点5:判断孩子是否学会了编程,唯一标准是其是否愿意并能自如利用编程工具实现自己的想法。

很多情况下,会创作一个游戏,并不能代表孩子“学会”了如何应用编程。也许换一种情形或者场景,孩子就不会应用了。

只有在不同的场景下,针对不同的问题,甚至是孩子自己提出问题,都能够自如地应用编程技巧实现想法,才是真正的学会了如何去学习,这也是我所理解的编程学习的目的。

而要达到这样的目标离不开合理的学习习惯的培养,老师的作用就在于陪同孩子一起养成这样的习惯。

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com