编程是否该作为基础教育的一部分?

美国科技公司高管和一些政府官员已经联名向国会施压,建议国会通过支持在 K-12 教育中加入编程课程,让每一个美国孩子都学会编程。学习编程对于小学生和初中生来讲有什么用?从小学习编程对今后的人生有什么帮助? 补充说明: 1,基础教育是指美国k12阶段教学目标,或国内义务教育阶段的教育目标。 2,基础教育阶段的编程教育并非技能教学。 具体可以参考相关网站了解 code.org scratch.mit.edu
关注者
3797
被浏览
169822

阅读写作是否应该作为基础教育的一部分?

@David Dong @physixfan :当然得教啊,圈地运动这么猛,失业的农民不去做文字员,给不会读书的人代读代写书信,还能做啥?

@白如冰 :而且,工业革命后加入了物理,等阅读革命发生后加入文具学天经地义,不然落后了如何竞争得过火星人?

@蛏子圣子 :只怕未来会出现保存/传播语音的工具,这文字员也当不成了。

@王赟 Maigo :反对!又不是人人都做文字员的!

@李路 :文字会对所有职业带来辅助,同时写作也是很棒的创造方式。

@Mon1st :另外,文字思维还是很重要的。

@马融 :我来举个例子吧,一本书中分层成章,段,句,词, 词根词缀,字,书要有主题,章节段落要有逻辑连贯性,句要符合语法,词,字要没有错误,最好还能押韵,不重复。 层次感,论述逻辑,语法规则,如何选词,都是文字思维的一部分。

这问题过百赞回答,都忽略了一个根本要素:

计算机是一个完全虚拟的世界,人脑中能想象出的大多都能用计算机模拟。

具体点说,所有人从小时,就会有不同的兴趣:有的人喜欢观今夜天象 ,有人爱看一个齿轮带动另一个,大部分人都对音乐/作画感兴趣,也有的人偏生钟爱养小乌龟。。。

这也是为什么沙推,Lego,往往比各种高科技玩具更吸引人:它们拥有各种可塑性,可以搞各种层出不穷的新玩法。

计算机,有过之而无不及。

就用上面的例子来说,绘画作曲的软件多如牛毛,天文学的软件也有,也有可以模拟天体运行的软件(Gravity Simulator, by TestTubeGames)。如果有兴趣的话,可以在该软件里面插入星体,看一下会有什么影响。。。

然而,这根编程有什么关系呢?会用软件,就如同人人会上网会在电脑里面打字不就好了吗?

先别急,我们看‘模拟教学’的缺陷吧。


问:如果我想画一颗圣诞树,多片树叶之间重复,不就累死了?并且,复制粘贴以后对一片树叶不满,不就要所有的都改掉?

答:引入recording,把一段时间内的操作记下来,以后调用该recording就可以了。

此乃函数。


问:如果我想画多边形,星型,分型呢?

答:对多边形,星型,引入对recording进行控制,组合的方案,对分型,引入自指。

此乃控制流,递归。


问:画画而已,能学到多少东西?

答:并不只是教画画,当大家学会画画后就可以学其他东西,并且形成连接。

比如说,上生物学/地理学,可以画出生物图鉴/地图。

要学物理,可以通过在画布上放上Object,并且对之赋予速度/加速度,画出Object走过的痕迹。对于加速度的导/各种受力分析,唯有靠在已有系统中插入代码模拟。

此乃Module/Object/高阶函数。

A Critique of Technocentrism in Thinking About the School of the FutureMindstorms

PS:Smalltalk正是大量借鉴了Logo。见The Early History Of Smalltalk

又答:会写一定代码以后,就可以按照自己喜欢的,自己写各科目的模拟软件。

如在papert.org/articles/Now 中,通过编写诗歌生成器,就知道为什么要有语法,要有动词,名词-这样能降低毫无意义的话的数量。

此乃程序设计。


问:会不会导致学生之间的疏远,不会与人交流?

答:编程最是需要团体合作:不会的要问其他人,也不可能自己写完所有的代码,需要用其他人的代码,把自己的代码供给其他人。

此乃开源,庫&API设计。


问:‘模拟教学’背后有没有为什么要这样做的理论?

答:见Constructionism (learning theory)。简单的来说,这方法提议通过提出世界运转的理论,在上面做实验验证,用这理论做各种project,来学习。


问:既然大家都合作,做的东西也各个不同,教师如何评分?又那来这么多会计算机的教师?换句话说,学校该如何教Constructionism?

答:工业革命时,一个手艺人如何用流水线变得更高效?工业革命从根本上改变了手艺人的工作方式。同理,这种做法(提高个性化,提倡合作,需要专才指导(除了会教原本学科以外,还要会Constructionism,会编程),弹性的时间)是极难融入学校的。因为一般的学习是对学生进行编程,而这方法是学生对学习工具进行编程。

这最好通过线上的互助社区来完成,因为这样大家互相做的模拟就会留下,供其他人学习,更改,一传十,十传百,直到世界上大部分人都采用这种方法学习,各种软件也因为绝大部分使用者会编程(并不一定是程序员)从而开放API/源代码,使得人人法律上,技术上都可以定制自己的虚拟世界,才算成功。

The Computing Revolution Hasn't Happened Yet