乘着这一段少有的空闲时间,给前一阶段的劳动成果做一次复盘总结,也给自身有编程能力的爸爸妈妈,或是少儿编程教育的从业者,一个如何指导孩子们培养编程思维的思考角度
—— 给孩子匹配或是设计怎样的学习路径是合适的。
让我们从大家在现实中所面临的实际问题说起:这么大的孩子,我怎么样让他喜欢上编程?而他应该学习什么样的课程呢?
理论基础 & 背景知识这里先补充一些关于 “为什么孩子要学习编程” 的背景理论知识。
不得不说老外在这上面思考和行动都比较的深入和到位,站得高才能看的远,有了更高维度的高瞻远瞩,才能结合我们国内以及各家的具体情况,在实际的战术选择和取舍上有自己的判断。
以下为转载摘抄的内容:
1. 早在1967年全球第一款针对儿童教学使用的编程语言,也是少儿编程语言的鼻祖Logo语言,他的创造者帕普特,在他1980年的著作《头脑风暴》(MindStorms)中写道 “通过编写计算机程序,孩子们既能尝试着理解和掌握最现代、最强大的技术工具,有机会触及科学和数学的最深处,还能体会到创建智能模型的美”。时至今日,这一观点也是非常具有前瞻性的。
而后 Logo 语言中的函数设计集,几乎成为了所有后继指导少儿编程的工具或是工具包的设计开发母版
2. 时间来到2007年,帕普特的弟子雷斯尼克(少儿编程之父,Scratch的发明者)提出了一套创造性学习的理论。
在米切尔看来,有A型人和X型人两类人。
A型人注重遵守指示和规则,各方面都表现优异,善于考试。
X型人则愿意冒险,勇于尝试新鲜事物,渴望提出自己的问题,而不是简单地解决教科书里的问题。
教育和社会发展的未来,应该是培养更多的X型的人。因为未来的世界发展变化如此之快,X型人的创造性思考和行动的能力将变得至关重要。
嗯,这作为一个流派,有他的可取之处,大家仁者见仁智者见智吧
Scratch VS Python的Turtle绘图工具包基于以上的指导理论,再来看看市面上给孩子学习的主流编程学习内容:Scratch,Python,C++。
首先,我们跳过 C++。
因为 C++的基础语法体系主要还是面向机器而非人类,与上面的另两种语言相比较,它的学习目标决不是 “创造力的培养” ,而是严谨的数学逻辑和算法。
快速的作品创作是不太可能的,所以对于孩子来说,对应的趣味性和成就感基本上谈不上,竞赛才是它的归宿,所以我们这里不做讨论。
接下来就是 Scratch 和 Python 的 Turtle。
—— 在实际实施过程中,选择前两者中的哪一个,与孩子的年龄段和实际的喜好有关。
注意,这里之所以将 Scratch 与 Python的Turtle工具包并列,而不是直接对标 Python,进行选择,是因为对绝大部分孩子来说,前面两者创作出来的作品都是彩色舞台 + 图形化作品,直观感性,趣味性十足,成就感满满。而单纯的 Python 编程出来的作品多是黑 + 白色的控制台 + 文字类,对孩子缺乏(持续的)吸引力。
Scratch 和 Python的Turtle工具包的设计和使用方式都是脱胎于 Logo 编程语言,是师承一脉的。所以如果我们留意一下,Scratch的主要积木块功能集是可以一 一对应到 Turtle 的函数功能集上的,或者说若以绘画为创作作品内容的话,教授给孩子学习内容(使用方式及编程逻辑步骤),两者是一样的。
Scratch 是在(简笔)绘画功能的基础之上,进一步抽象封装设计出了整套以图和图片为基础的卡片、动画、舞台剧以及游戏作品创作的积木集合,并增加了音视频创作元素,也进一步提升了孩子,尤其是更低龄孩子的学习兴趣和可创作作品的内容范围,这是比 Logo 语言更进了一步的。
而 Python 的 Turtle工具包对这一系列新增的特性支持则不足,主要是对图和图片的处理能力不足,简单一些的还行,再复杂一些(比如图片的放缩,旋转,特效中的形变以及渐变色等等)只能靠引入其他更复杂的工具包,进而又会增大孩子入门学习的门槛和难度,有些得不偿失。一句题外话,如果孩子已过了编程的入门阶段,在进入面向对象的学习时,反过来看 Scratch 的抽象与封装设计,倒是一个很好的学习样板。
所以说,对于低龄些的孩子,通常可以通过 Scratch 设计简单的交互式游戏设计开始。
学习的目标和内容通常包括:坐标系、(程序的)基础结构、变量、鼠标、键盘等的事件触发,进而再延展到广播消息,自定义积木(函数雏形)的学习。
也可以设计好玩的动画和舞台剧,加入物理现象(加速度,相对运动等等)的感受和学习。
通过直观地积木组合,很快就能创作出一个自己的作品,成就感满满。这些内容的学习都非常的直观、易懂,门槛和难度都不高。



