程序员引以为傲的计算思维,应该走进孩子的世界
nv7606
8年前
<p>龚长江是微软(亚洲)互联网工程院的一名软件工程师。12月9日,和往常一样,他需要和代码“亲密接触”。不过这一次:他的坐标,不在办公室,而在农科院附小;他要做的,不是自己编写代码,而是要陪孩子“玩”代码游戏;一起并肩协作的,不是平时的团队成员,而是七位同司志愿者。</p> <p>推开教室门,他们看到的是23个九岁左右的孩子。接下来的一个小时,他们将和这些孩子沉浸在一款可视化编程游戏《我的世界》(Minecraft)。</p> <p>这次由龚先生发起的“陪玩”,从属于全球一同发起的全球计算机科学教育周“编程一小时”活动。今年,微软在全国168个城市、614所大中小学校,共举办3204场“编程一小时”活动,参与青少年达91310人。</p> <p><img src="https://simg.open-open.com/show/5ebbe6ba375873cade36291b9a55f564.png"></p> <p>《我的世界》编程游戏简易版在去年的“编程一小时”也作了亮相。自2014年起至刚刚结束的2016全球计算机科学教育周,微软已经把“编程一小时”活动带到全国4200多所大中小学校,并且成功地迷住了35万学生。这款第一人称游戏通关很简单,只需网页端按照一定方式的拖拽可视化指令块:它旨在在界面中介绍学习编程,通过互动的方式让孩子们最终了解到编程的逻辑和概念。与其他游戏不同的是,这款游戏没有任何固定路线,模块摆放方式并不唯一;这样的自由灵活可以让学生们发挥无限的思路,在最终看到拖拽生成的代码之后可以有对程序、对机器运行的机制感知。</p> <p>由公益组织Code.org发起</p> <p>这个活动是由公益组织Code.org发起,微软是积极响应者与重要合作伙伴。Code.org的初衷是鼓励每个人尤其是小学生学习计算机。创始人Hadi Partovi认为编程应该是必备技能,但是九成的美国学校都没有相关课程;于是萌生了组织Code.org这样的想法。</p> <p>网站最初上线的是《Flappy Brid》可视化模块编程游戏的一小时指导视频,后来陆陆续续添加了《愤怒的小鸟》、《植物大战僵尸》的改编版,甚至基于迪士尼《冰雪奇缘》创建新的游戏。上文中提到的《我的世界》是微软成为Code.org合作伙伴之后上线的游戏。目前网站上已有的游戏如下:</p> <p><img src="https://simg.open-open.com/show/0e723f389e94001322e8cb57f1aab17e.png"></p> <p>上述的游戏颜色明快、操作简单,都是为小朋友们量身定制的。</p> <p><strong>为什么要让小朋友们在游戏中学习编程呢?</strong></p> <p>同样作为志愿者的微软亚洲研究院学术合作部资深经理刘康平博士这样说道:“我的理解是,小朋友都爱玩游戏,可是玩游戏是作为一个信息产品的消费者,我们怎么把他们从消费者变成创造者,这是一个很大的改变。怎么去创造,哪怕是控制游戏代码,也是最了不起的。</p> <p>这就像最开始是1.0,是由公司控制网络;但有了社交网络和微博就进入到了2.0,用户来生产这些内容。如果有更多的人能自己来写代码,能创造游戏,就会非常有乐趣,如果游戏还能成功的话,还可以有商业的价值。</p> <p>我们鼓励很多种解法,当然也有一个标准,即最精炼的解法,这会给小孩子一种压力。我想,教学的时候都是鼓励他随便做,只要能完成任务就可以。可是当他有了第一步以后,我们可以引导他,是不是可以更优化、语句更精炼、执行效率更高,慢慢把优化的理念在第二步就建立起来。”</p> <p>其实,“编程一小时”活动在全球已经开展到第四届,而且参与其中的也不止微软一家公司:今年在中国苹果、TalkingData等公司也分别做了同样的事情。这个活动在全世界进行,共有约250家合作公司或组织,除了上面提到企业,还有亚马逊、非死book、Google、油Tube、埃森哲等。活动课程已经支持超过40种语言,不需要任何编程经验,4岁以上即可参与。下图为“编程一小时”(Hour of Code)活动次数地理统计图。</p> <p><img src="https://simg.open-open.com/show/888c26253a38a9828d8a668514cbe431.png"></p> <p>其中密度较高的地区为美国和欧洲。(黄色圆点代表常规的“编程一小时”活动,蓝色定位标为特别企划活动)</p> <p>那么让我们聚焦中国,再放大一点;可以看到相对来说,该活动在亚洲印度、韩国、菲律宾、日本等国更为普及。中国本届举办了217次“编程一小时”活动。</p> <p><img src="https://simg.open-open.com/show/69e2ec3cd2efc550b9823b4e796ee87e.png"></p> <p>“编程一小时”目前主要依靠互联网在线版游戏。另一名志愿者,微软(中国)操作系统工程院软件工程师王学峰告诉记者,这个项目对于志愿者的要求不多,首先前期理解活动内容很简单,其次活动当天时间也很短;这样轻量级时间投入却能给那么多学生带来一些思考,让他们很有成就感。同时,除了员工自己亲力亲为参与实地“陪玩”之外,他们还会对各地的老师进行培训,这样老师们成为二级传播站可以更方便地触达更多的学生。对于如何在中国偏远地区实施“编程一小时“”活动,微软表示已经具备了离线版应用,而电脑、手机和电力等硬件设备还需要社会的共同努力。</p> <p><strong>为什么如此声势浩大?</strong></p> <p>为什么要如此用力地推广计算思维呢?</p> <p>微软认为:从一定程度上来讲,在游戏中教授编程只是一种手段,更多是激发孩子们对计算机的兴趣,还有逻辑思维方式,能够在一种非常抽象的层面把问题设定解决好。当代父母并全不是计算机专业,可是有些人在小时候学过一些Basic语言,里面就是首先设定一个项目目标,建立逻辑关系,要考虑各种条件,达成目标,有的还需要设定循环条件等等。让小朋友很早地通过接触计算机编程能够建立这样一种思考和解决问题的思路都是有好处的,这是一个层面;另外一个层面,随着计算的普及,无论是云计算还是大数据还是周围的人工智能,今后计算机语言也可能普及到像今天说话和读书这样普及的模式。</p> <p>如果对这个活动的组织抽离一点,其实业界所做的是要推广计算思维(ComputationalThinking)。</p> <p>什么是计算思维呢?</p> <p>在处理问题和寻求方案的时候,以类似于电脑的计算工作方式,高效地执行。计算思维的过程可以大致抽象为三个步骤:</p> <p>一、抽象化:对问题进行归纳总结</p> <p>二、自动化:将方案拆分表述成步骤</p> <p>三、解析化:执行方案并进行评估</p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/e0f9214166bc225d1cf5ec6e119d8ffb.jpg"></p> <p>再简单些,计算思维对应哪些思考动作呢?分解、模式表达、抽象能力和算法思考。将一个问题分解,对于不确定因素使用数据化表达,创造或选定算法,然后得到一个普遍的方案结果。普适的方案一般是可以适用原始问题的变种。</p> <p>计算思维一词最早于1980年,由人工智能先驱Seymour Papert的提出。他曾MIT的计算机科学与人工智能实验室联合主席,70年代他从LISP语言的基础里创立Logo编程语言。该概念于1996年再度被提及,旨在使用算法方式对复杂问题流程化规模化处理,以实现效率的大幅度提升。</p> <p>而受到人们广泛重视和传播,是2006年卡内基·梅隆大学计算机科学系主任周以真(Jeannette Wing)博士在《Communications of the ACM》杂志上给出,并定义的计算思维(Computational Thinking)。周教授认为:计算思维是运用计算机科学的基础概念进行问题求解、系统设计、以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。在她看来,“计算思维是一种普适思维方法和基本技能,所有人都应该积极学习并使用,而非仅限于计算机科学家。”</p> <p>周教授现在是微软全球资深副总裁,全面负责微软研究院旗下全球核心研究院(MSR Labs)及学术合作部的工作。那微软对计算思维的推广是怎样的呢?</p> <p>在中国,除了面向中小学生的“编程一小时”、中学女生的DigiGirlz等互动活动,还有高校学生参与的“编程之美”和“创新杯(Imagine Cup)”竞赛等。最近几年,微软公益事业部的大目标是计算机科学教育,其实微软中国与高校教育机构的合作也是由来已久,其中“长城计划”是2002年与中国教育部签署。微软与国内多所高校开展了系统的、有针对性的合作项目,四条主线是人才培养、科研合作、课程建设及学术交流。</p> <p>不过,提倡计算思维,并不只是为了培养IT人才。这更多的是一种思维的训练,让大家熟悉计算机这个工具。</p> <p>回到文章的开头内容,参加编程游戏真的会对孩子留下什么印记吗?</p> <p>刘康平笑着讲述了他见证的真实故事。</p> <p>他的儿子七八岁的时候开始在手机触屏上尝试编程游戏,对自己可以控制图形对象很感兴趣,开始边玩游戏边琢磨。儿子写的第一个小程序中英查字典是在他的指导下完成的。等到儿子上小学二三年级的时候,他自己做了个通用的数学求解程序计算和差问题、倍差问题等。</p> <p>现在儿子已经十二岁,初中一年级,刚刚参加完全国青少年信息学奥林匹克联赛复赛。刘先生说,复赛的成绩还没有查,比起过程他认为这个结果并不重要;况且儿子现在的兴趣在写小说上,已经阅读很多网络小说的他现在已经产出几万的文字了,儿子的小伙伴们还在等着他的更新。“我怀疑他不一定会选择计算机专业,只要是他喜欢的就好”刘先生这样说道。</p> <p><strong>社会生活中需要的是综合能力,而人才可以是跨界的。</strong></p> <p>你是不是考虑让自己的宝宝试试Code.org网上的编程游戏呢?</p> <p>又或者,程序员的你已经开始“诱导”他/她编程了?</p> <p> </p> <p> </p> <p>来自:http://www.infoq.com/cn/news/2016/12/minecraft-hourofcode-MS-2016</p> <p> </p>