忘了外语和乐器吧
相比学弹琴,孩子应该学编程
作者 布伦丹·康乐 译者 易雨
《
青年参考
》(
2013年11月20日
37
版)
|
吉布森为了教孩子们算法的概念设计出的分类游戏 |
|
Scalable游戏设计课程教一年级学生写出的电子游戏 |
因为在工作中遭受打击,保罗·吉布森开始教青少年编程。作为爱尔兰国立大学的计算机科学家,1998年,他在教书过程中被大学新生的无知震惊。“我看到十八九岁的大学生竟然被我12岁时就掌握的基本编程概念难住了。”吉布森回忆道。他是在一台ZX81(1981年英国Sinclair公司出品的家用计算机)上自学的编程。“我意识到他们以前从未接触过编程。因此我们面临的问题之一便是,学生们开始得太迟了。”在吉布森的编程课出名后,都柏林地区的小学也开始请他授课。
早在本世纪初的几年,吉布森就用游戏设计问题教八九岁的孩子初级Java编程了。在该年龄段孩子身上取得的成功让他不禁思考:最小可以几岁学习编程?
吉布森此前看到的教育心理学资料称,孩子识字前教什么都是白费。但当他进入五六岁儿童的课堂进行实验性教学时惊讶地发现,这些孩子轻而易举就掌握了他教的内容。
在定制的Java小程序帮助下,吉布森教幼儿园小朋友写出了井字游戏程序,孩子们以小组为单位,一步步制定出规则;用彩色小球和绳子,他教会孩子们如何创建图解算法——计算机科学中一个关键部分。“我们相信,我们的教学成果表明,你可以在儿童学会读写前就开始教他们计算机科学。”吉布森(现在在法国任教)在2012年发表的论文中写道。
“5~11岁的孩子在学习算法和计算机上潜力突出,以至于让我觉得,如果等他们十几岁再学这些基础知识就太可惜了。”这样的说法对不少教育学者来说仍然很激进。虽然教儿童和青少年编程越来越成为一股潮流,比尔·盖茨和篮球明星克里斯·波什等人都在倡导,但极少人认为幼儿园的孩子能学会操纵计算机。
人们普遍认为,小孩子的智商水平还无法理解编程这样看似深奥的话题。
但这种悲观的想法不仅和吉布森及其他先锋教师的经历相悖,也不符合语言学习理论。大量研究表明,鉴于大脑在年轻时更易习得语言,所以在孩子越小的时候开始学外语越好。这也是为什么很多望子成龙的家长呼吁幼儿园加强中文课——他们希望,让孩子在一门核心亚洲语言的学习上尽可能赢在起跑线。
可家长没想到的是,那些让孩子们迅速掌握中文的大脑机制,也能让他们快速学会计算机语言。幼儿园的孩子无法成为C++编程的高手,但他们无疑可以开始培养技能,为将来驰骋编程界打下基础。美国鼓励学校从善如流,因为,代码才是未来世界的通用语,而不是中文。
也许你还记得那只小海龟。从上世纪80年代早期到中期,Logo编程语言带着它标志性的小海龟光标风靡美国小学。孩子们运用简单的Logo指令创作出复杂的线条图形,当时的目的是借此让他们学会操作逐渐进入普通家庭的苹果II电脑。
然而,这一宏伟愿景并未实现。主要问题不是Logo语言本身,而是当时死板的教学方法。很多老师只是每周把学生摁到电脑前一个小时就万事大吉了。
对于Logo期待的落空正好赶上多媒体设备的流行,于是,计算机从探索的工具沦为图书馆的帮助设备。“光盘驱动出现了,然后是万维网,所以你不需要知道指令就可以和电脑交互。”宾夕法尼亚大学教育学教授雅思民·卡法说。
即便计算机成了大学专业里的热门,编程也已从小学消失了几十年。一个文化上的共识似乎形成:孩子应该学一些模糊的“计算机技能”,但编程——那是大人的事儿。
然而过去5年,不少突破性的项目开始证明这一认识是错误的。除了吉布森的井字游戏和图解课程,还有Scalable游戏设计——科罗拉多大学设计的课程,用于教孩子编写自己的“青蛙过河”游戏;在纽约黑人区哈莱姆,4岁的孩子就开始使用Cherp语言制作能做家务的机器人。同样的事也在海外发生:爱沙尼亚的ProgeTiiger计划正致力教一年级小学生基础编程。
这些课程有一个共同点,它们强调的并不是让孩子记住某一具体工具的用法,而是让他们熟悉所有编程过程中都会接触到的基本概念:序列、条件、调试。
举例来说,在指导孩子们编写第一个“青蛙过河”游戏时,Scalable的老师会先要求他们想想游戏里的主要元素有哪些——青蛙和致命交通工具,它们之间会产生哪些互动?孩子们渐渐学会制定规则和条件,最终形成一个有逻辑、可运行的整体。
我们已经知道年幼的孩子在学习语言上的天赋,因此他们能完成如此复杂的任务也不足为奇。5岁儿童能在学西班牙语或汉语时打败比他年长的人,因为(至少从理论上说)年轻的大脑更容易形成“程序性”记忆——一种深深烙印在我们神经中的记忆,调动时只是一个条件反射而无需意识参与。
证据显示,大脑在成长过程中,“程序性”记忆会逐渐让位于“陈述性”记忆,后者是我们用来累积事实的记忆。“陈述性”记忆的一个缺点就是,它要求精神集中苦思冥想——当你坐在飞机上企图想起一个动词变位时,恐怕脑中一片空白。要想让这些变位就像是你打娘胎带出来的,那就得在“程序性”记忆最好的时候学习它们。
似乎还没有人具体研究我们是怎么学习编程语言的,但有理由相信,学生在“程序性”记忆依然敏锐的时候学习它会事半功倍。
“我猜测,孩子和大人学习计算机语言用到的通用记忆系统和他们学自然语言是一样的。”迈克尔·乌尔曼说,他是乔治城大学医学中心大脑与语言实验室的主任。在音乐方面有一个关键的数据点可以支持这一观点:伟大的小提琴家不是在二十几岁才开始学拉琴的,他们通常始于三四岁,那正是“程序性”记忆最敏锐的时候。
音乐难道不也是一种代码形式吗——一系列必须按顺序处理才能取悦人耳的抽象符号?
最理想的情况是,幼儿园的孩子每天既学外语也学编程。但如果学校只能选一个,那么编程无疑是更明智的选择。最明显的论据是经济上的:对软件开发员的需求远远大于供应,并且预计到2020年这一需求会增长30%——超过其他所有职业平均需求量的两倍多(很难想象在任何情况下,要求精通汉语的工作岗位会超过这一数量)。
然而,教编程不仅是为了给脸谱和谷歌这样的公司培养程序员大军。
正如小时候说多门语言对后来的智力发展有益一个道理,尽早接触编程能提高教育学者说的“计算思维”——运用抽象思维解决问题的能力。即使是那些永远对编程提不起热情、有志于取得文学而非软件工程学位的学生,理解代码依然意义重大。
正如媒体理论家道格拉斯·拉什科夫所言,忽略编程就像不学开车而依赖别人载。在近50年内,我们最常打交道的是机器,而非不会说外语的亚洲人。所以,让我们教孩子如何控制机器吧,别让他们被机器控制。
美国《连线》杂志网站
因为在工作中遭受打击,保罗·吉布森开始教青少年编程。作为爱尔兰国立大学的计算机科学家,1998年,他在教书过程中被大学新生的无知震惊。“我看到十八九岁的大学生竟然被我12岁时就掌握的基本编程概念难住了。”吉布森回忆道。他是在一台ZX81(1981年英国Sinclair公司出品的家用计算机)上自学的编程。“我意识到他们以前从未接触过编程。因此我们面临的问题之一便是,学生们开始得太迟了。”在吉布森的编程课出名后,都柏林地区的小学也开始请他授课。
早在本世纪初的几年,吉布森就用游戏设计问题教八九岁的孩子初级Java编程了。在该年龄段孩子身上取得的成功让他不禁思考:最小可以几岁学习编程?
吉布森此前看到的教育心理学资料称,孩子识字前教什么都是白费。但当他进入五六岁儿童的课堂进行实验性教学时惊讶地发现,这些孩子轻而易举就掌握了他教的内容。
在定制的Java小程序帮助下,吉布森教幼儿园小朋友写出了井字游戏程序,孩子们以小组为单位,一步步制定出规则;用彩色小球和绳子,他教会孩子们如何创建图解算法——计算机科学中一个关键部分。“我们相信,我们的教学成果表明,你可以在儿童学会读写前就开始教他们计算机科学。”吉布森(现在在法国任教)在2012年发表的论文中写道。
“5~11岁的孩子在学习算法和计算机上潜力突出,以至于让我觉得,如果等他们十几岁再学这些基础知识就太可惜了。”这样的说法对不少教育学者来说仍然很激进。虽然教儿童和青少年编程越来越成为一股潮流,比尔·盖茨和篮球明星克里斯·波什等人都在倡导,但极少人认为幼儿园的孩子能学会操纵计算机。
人们普遍认为,小孩子的智商水平还无法理解编程这样看似深奥的话题。
但这种悲观的想法不仅和吉布森及其他先锋教师的经历相悖,也不符合语言学习理论。大量研究表明,鉴于大脑在年轻时更易习得语言,所以在孩子越小的时候开始学外语越好。这也是为什么很多望子成龙的家长呼吁幼儿园加强中文课——他们希望,让孩子在一门核心亚洲语言的学习上尽可能赢在起跑线。
可家长没想到的是,那些让孩子们迅速掌握中文的大脑机制,也能让他们快速学会计算机语言。幼儿园的孩子无法成为C++编程的高手,但他们无疑可以开始培养技能,为将来驰骋编程界打下基础。美国鼓励学校从善如流,因为,代码才是未来世界的通用语,而不是中文。
也许你还记得那只小海龟。从上世纪80年代早期到中期,Logo编程语言带着它标志性的小海龟光标风靡美国小学。孩子们运用简单的Logo指令创作出复杂的线条图形,当时的目的是借此让他们学会操作逐渐进入普通家庭的苹果II电脑。
然而,这一宏伟愿景并未实现。主要问题不是Logo语言本身,而是当时死板的教学方法。很多老师只是每周把学生摁到电脑前一个小时就万事大吉了。
对于Logo期待的落空正好赶上多媒体设备的流行,于是,计算机从探索的工具沦为图书馆的帮助设备。“光盘驱动出现了,然后是万维网,所以你不需要知道指令就可以和电脑交互。”宾夕法尼亚大学教育学教授雅思民·卡法说。
即便计算机成了大学专业里的热门,编程也已从小学消失了几十年。一个文化上的共识似乎形成:孩子应该学一些模糊的“计算机技能”,但编程——那是大人的事儿。
然而过去5年,不少突破性的项目开始证明这一认识是错误的。除了吉布森的井字游戏和图解课程,还有Scalable游戏设计——科罗拉多大学设计的课程,用于教孩子编写自己的“青蛙过河”游戏;在纽约黑人区哈莱姆,4岁的孩子就开始使用Cherp语言制作能做家务的机器人。同样的事也在海外发生:爱沙尼亚的ProgeTiiger计划正致力教一年级小学生基础编程。
这些课程有一个共同点,它们强调的并不是让孩子记住某一具体工具的用法,而是让他们熟悉所有编程过程中都会接触到的基本概念:序列、条件、调试。
举例来说,在指导孩子们编写第一个“青蛙过河”游戏时,Scalable的老师会先要求他们想想游戏里的主要元素有哪些——青蛙和致命交通工具,它们之间会产生哪些互动?孩子们渐渐学会制定规则和条件,最终形成一个有逻辑、可运行的整体。
我们已经知道年幼的孩子在学习语言上的天赋,因此他们能完成如此复杂的任务也不足为奇。5岁儿童能在学西班牙语或汉语时打败比他年长的人,因为(至少从理论上说)年轻的大脑更容易形成“程序性”记忆——一种深深烙印在我们神经中的记忆,调动时只是一个条件反射而无需意识参与。
证据显示,大脑在成长过程中,“程序性”记忆会逐渐让位于“陈述性”记忆,后者是我们用来累积事实的记忆。“陈述性”记忆的一个缺点就是,它要求精神集中苦思冥想——当你坐在飞机上企图想起一个动词变位时,恐怕脑中一片空白。要想让这些变位就像是你打娘胎带出来的,那就得在“程序性”记忆最好的时候学习它们。
似乎还没有人具体研究我们是怎么学习编程语言的,但有理由相信,学生在“程序性”记忆依然敏锐的时候学习它会事半功倍。
“我猜测,孩子和大人学习计算机语言用到的通用记忆系统和他们学自然语言是一样的。”迈克尔·乌尔曼说,他是乔治城大学医学中心大脑与语言实验室的主任。在音乐方面有一个关键的数据点可以支持这一观点:伟大的小提琴家不是在二十几岁才开始学拉琴的,他们通常始于三四岁,那正是“程序性”记忆最敏锐的时候。
音乐难道不也是一种代码形式吗——一系列必须按顺序处理才能取悦人耳的抽象符号?
最理想的情况是,幼儿园的孩子每天既学外语也学编程。但如果学校只能选一个,那么编程无疑是更明智的选择。最明显的论据是经济上的:对软件开发员的需求远远大于供应,并且预计到2020年这一需求会增长30%——超过其他所有职业平均需求量的两倍多(很难想象在任何情况下,要求精通汉语的工作岗位会超过这一数量)。
然而,教编程不仅是为了给脸谱和谷歌这样的公司培养程序员大军。
正如小时候说多门语言对后来的智力发展有益一个道理,尽早接触编程能提高教育学者说的“计算思维”——运用抽象思维解决问题的能力。即使是那些永远对编程提不起热情、有志于取得文学而非软件工程学位的学生,理解代码依然意义重大。
正如媒体理论家道格拉斯·拉什科夫所言,忽略编程就像不学开车而依赖别人载。在近50年内,我们最常打交道的是机器,而非不会说外语的亚洲人。所以,让我们教孩子如何控制机器吧,别让他们被机器控制。
美国《连线》杂志网站