编程课,到底在教些什么?

2019年11月9日,我应邀在郑州第三届全人之美教育论坛暨中小学博雅教育专题研讨会上做了题为「编程课,到底在教些什么?」的演讲。坦白说现场讲得并不好,有些准备好的内容居然忘了讲,因此根据演讲内容整理一篇文章,作为补充。


我手里这个魔方,任何一个人都可以轻松地把它打乱,但要想把它复原,就不是每个人都能做到的了。我会还原魔方,而你不会,这能不能说明我比你聪明呢?并不能。

Continue reading 编程课,到底在教些什么?

我的编程之路

去年我写过一篇文章《我的成长故事》,介绍了自己从童年到成年这段时间里一些重要的转折点和里程碑。而贯穿我整个生命历程的核心线索,就是「编程」。

如果没有编程,就根本不会有今天的我。

在离开互联网圈、告别了紧张的996之后,我走上了讲台,开始教孩子们学习编程。这几年来,我写了不少关于编程的文章:《为什么你应该开始学习编程了?》《怎么给小学生上编程课?》《编程到底是怎么一回事?》《学编程到底有啥用?》……

但是,我始终没有写一篇文章来介绍:在自己的生命中,编程到底扮演着怎样的角色?编程究竟给我带来了些什么?今天,我将以「编程」为线索,再次重新梳理一下自己的成长历程,希望能给大家一些启发。

Continue reading 我的编程之路

学编程到底有啥用?

2019年4月4日晚,我应邀在全人之美教师联盟做了一次关于编程的主题分享,本文根据录音内容整理而成,略有删节改动。

一、什么是编程?

编程,就是编写程序。那么,程序又是什么呢?大家可能都以为,只有在电影中计算机专家和黑客们输入的那些花花绿绿的命令和代码是程序吧?就像这样子的:

Continue reading 学编程到底有啥用?

「学习」到底是怎么回事?

从中国甲骨文的字形上理解,「学」是一个小孩在模仿大人做工作,而「习」是一只小鸟正在拍打翅膀练习飞翔。也就是说,「学习」这个词在汉语中的本意是:模仿成功者的做法并进行刻意练习,最终获得某种能力的过程。

在原始时代资源极度匮乏,所有人从事的工作都是为了生存下去。人们让小孩学习的目的就是尽快掌握一种实用技能,然后开始提供生产力。在这种情况下,「模仿成功者 + 刻意练习」自然是一种风险最小的做法。因为任何违反经验的尝试都是有极大风险的,假如在猎杀中关键的一击出现了失误导致猎物逃脱,那就可能导致整个部落饿上好几天。

然而现如今我们让孩子们学习的目的,并不是为了掌握一种实用的工作技能,而是为了他们的未来提供更多的可能性。孩子们学习的主要内容,也不再是各种生活必需的技能,而是为日后学习高难度知识和技能储备的语言能力和各种理论基础。那么,既然现在的学习已经不是以掌握实用技能为目的,那么「模仿成功者 + 刻意练习」是否还是最佳的策略,或者是否还是一种有效的策略呢?

Continue reading 「学习」到底是怎么回事?

学习「学习」再学习

最近刚刚读完了一本书《Mindstorm:因计算机而强大》:

本书作者Seymour Papert曾师从著名教育家和儿童心理学家皮亚杰 ,并于1968年创立了LOGO语言:一门旨在帮助儿童学习编程思维的语言。

虽然此书出版已久,却一直等到作者辞世之后才出到中文版。在阅读这本书的过程中,除了个别明显的时代烙印(如预言计算机将普及到每家每户、又或时髦的流行语言BASIC)外,其语言之鲜活、案例之生动,令人难以相信这竟然是一本1980年写成的书。

书中指出的很多令人深思的问题,至今依然存在;书中列出的很多原则和方法论,至今仍然适用。接下来,我将会由此书的一些观点出发,写几篇文章来谈谈我自己对「学习」这个话题的理解和认识。

Continue reading 学习「学习」再学习

一张揉成纸团的练习单

上午最后一节是三年级飞儿教室的课,刚做完课堂活动,学生们开始写学习日志。我突然发现有一个孩子把自己完成的练习单揉成了团捏在手里,根据以往的经验,我知道接下来会发生什么:他会等下课后随手扔到垃圾筒里,于是便上前询问……

本堂课是《图纸上编程》,我设计的练习单一面是课堂练习,另一面是自由创作,孩子们做得很认真,所以都很爱护这张单子。我还在练习单上打了孔,方便让孩子们装在专用的编程日志文件夹里保存。

我走到孩子面前低下身来,指了指他的手:“我看到你把练习单揉了,你是准备扔掉吗?”

Continue reading 一张揉成纸团的练习单

为什么你应该开始学习编程了?

有一家饭店的大厨,烧得一手好菜,经过口碑相传,客人从五湖四海闻名而来。然而这对饭店的老板来说,并不单纯是一个好消息。因为客人不是奔着饭店,而是奔着大厨的手艺来的。老板必须想办法留住这位大厨,否则他一旦被别人挖走,饭店的生意就会一落千丈了。然而即便老板不惜血本保证了大厨的忠诚度,风险也依然存在: Continue reading 为什么你应该开始学习编程了?