龙空技术网

计算机启蒙不等于学习编程

三联生活周刊 565

前言:

现在朋友们对“编程属于计算机系吗”大约比较珍视,朋友们都想要了解一些“编程属于计算机系吗”的相关知识。那么小编也在网摘上网罗了一些关于“编程属于计算机系吗””的相关文章,希望大家能喜欢,小伙伴们一起来了解一下吧!

(王旭华 摄)

文/宋睿华

“妈妈,给我挠痒痒吧,要挠500下,从0、1、2、3、4开始数。”

这是每晚我的儿子一眯入睡前必讲的话,一眯今年4岁,临睡前,他最喜欢我给他挠背,挠一挠就会睡着。好玩儿的是,自从他学会数数又知道了零的含义,他就开始要求我从零数起。也许不学计算机的人并不理解这好玩儿在哪里,而学计算机的人会知道,数数从零开始是计算机里计数的习惯,它也是网上回答“计算机系和其他系有什么区别?”的一个神回复。

我和先生都是学计算机的,当我问他要不要做编程启蒙时,他是反对的。他认为编程是一种技能,在需要的时候再学就可以了,没有必要太早。如果编程都要启蒙,那有数不胜数的技能也同样重要,各个都要启蒙的话,孩子们哪里忙得过来呢?他的反对让我重新思考这个问题,也许我这里要谈的并不是编程启蒙,应该说是计算机启蒙。学习编程其实是学习某种计算机语言,让我们可以通过它来控制计算机,例如写程序让计算机输出“Hello world”。而计算机需要启蒙的是良好的逻辑思维能力和乐于动手的习惯,对计算机能做什么的兴趣,以及对未来希望计算机能做什么的畅想。我想通过几个小故事来跟大家讨论一下如何做好计算机启蒙。

自发的动力是最好的老师

为什么要学编程或者计算机呢?应该是因为计算机已经成为我们生活环境的一部分,孩子们每天都在接触手机、电脑,他们也一定会好奇,那些游戏是怎么做出来的吧?的确,顺着孩子的好奇心去学习,效果会更好。在我小的时候,电视机开始进入千家万户。爸爸因为是学无线电的,他可以自己照着图纸拼装出一台电视机,这让我觉得特别神奇。在他忙碌的时候,我会围着他去看去问:“这是什么?”“那是什么?”“是干什么用的?”爸爸是个很有耐心的人,他没有赶我走,而是告诉我“这是二极管”,“这是三极管”。哦,然后我就归纳出有几只脚就叫几极管,他笑了,说差不多。然后他会用简单的语言解释它们的用途。我并没有听太明白,但后来上模拟电路课时,我会觉得特别亲切,理解起来也会变得容易。

从一年级开始,我和姐姐都参加了美术兴趣班。姐姐的画很细腻,我的画比较粗枝大叶,风格不同,但是两个人都很喜欢画画。过了几年,老师涨了一次学费,我们两个人加起来是挺大一笔支出。当时爸爸妈妈的工资很少,要供养全家五口人(还有奶奶),商量之后,只能跟我和姐姐说:“对不起,下个月恐怕不能再上美术班了。”

那天晚上我没有睡好,想到不能学画画就很难过。第二天一大早,我和爸爸妈妈讲了我的真实想法:我想继续上美术班。他们有点为难,问姐姐的意见。姐姐说:“让妹妹去吧,我就不上了,没关系的。”其实,我知道姐姐也很喜欢美术,在这方面的天赋比我更好。后来,爸爸妈妈同意资助我继续学画。

再去美术班的时候,我的内心有了一些变化。不再是之前单纯地觉得好玩儿,而是想努力学,尽可能地有所得,对得起爸爸妈妈和姐姐的支持。小学毕业的暑假,我又去了市文化宫跟着西安美术学院毕业的老师学画画。第二个月,老师还邀请我给他带的儿童画幼儿班做助教,月末还发给我100元的工资。当时好开心呀,那是自己挣的第一笔收入吧。

现在可选择的兴趣班很多,也有很多家长完全有经济实力让孩子上任何兴趣班。只是,以我自己个人的体会,似乎孩子内在的动力更重要。在初步了解了兴趣班是干什么的之后,是否可以做一个减法?让孩子只能选择一到三门来上,看看他们会是怎样的选择。当机会来之不易的时候,人会被激发出更多的主动性,投入和推动自己在某个兴趣上的发展。

一举多得的启蒙方法是培养科学素养

培养科学素养不仅仅是去了解我们已知的“十万个为什么”,也需要去体会探索真相的过程。

我想起小时候吃苦瓜的经历。我的老家在西北,在商品流通还不发达的80年代,我们没见过苦瓜。当市场上出现了苦瓜之后,喜欢挑战新鲜事物的妈妈专门买了一些回来,说:“来,我们也尝尝苦瓜的味道。难道真的是苦的?”结果是苦得第一口都难以下咽。妈妈不放弃,说怎么会呢?别人家都可以吃的,是不是有什么不知道的处理方法?于是,姐姐和我提议用碱、醋、盐分别腌制一下苦瓜,看看能否去掉苦味。妈妈把剩下的苦瓜分成四份,分别腌在不同的调料和清水里,经过一个晚上,第二天再炒,结果还是挺苦的。唉,后来还是妈妈去问了吃过苦瓜的同事,才知道苦瓜就是苦的,只是买的时候要会挑,做的时候要做得熟一点,能减轻一些苦味。即使苦,因为相信苦瓜能败火,大家也还是愿意吃的,习惯了就不会觉得难以接受。这种日常的生活,我们如果能用科学实验的想法去处理,对孩子来说也是个有趣又有启发的经历。比起被告诉应该怎么做,经过自己摸索找出答案,哪怕失败,印象也会格外深刻吧。

动手能力也很重要,请大家多鼓励孩子去创造。现在幼儿园和小学都很重视实践,经常会布置一些主题,请孩子们去完成一个报告或者一件作品。例如,我女儿的幼儿园就曾经做过环保服装设计的活动。示范的图片都是用纸张做衣服,但我和女儿讨论,觉得把旧衣服加以改造也是一种环保的做法,刚好家里还有一些化妆品的包装盒,我们也用它作原料来完成装饰,还用女儿的一幅画做成了帽子,再用纸袋的提绳拆下来做带子。这些活动能很好地锻炼孩子的动手能力,前提是不要包办。虽然家长以为自己做起来又快又省力,但孩子们参与其中才能真正锻炼出他们自己的动手能力。真的去放手,他们常常能做出大人想不到的创意,令人惊喜。

真实比模拟更有力量

我曾经多次设想过,如何让孩子具有各行各业的启蒙?其实很简单,就是家长们联合起来,每人做一次讲座,讲一讲自己做着怎样的工作。最好是能够在他们的工作环境中讲,这让孩子们能拥有第一手的体验。

小时候爸爸会带着我和姐姐一起去加班,他的单位是一个机床厂,制造生产各式各样零件的机器。他在热处理车间工作时,我会看到他们把烧得火红的零件从加热炉里夹出来,放在冷却水里淬火。看的时候很紧张,听到刺刺啦啦的声音会觉得很兴奋。爸爸没有特意为我们启蒙,但因为加班时也没有更好的寄放我们的地方,只好带着我们俩。这让我有机会看到他们工作的真实场景,这比任何模拟的场景或环境都要更有趣,它拥有所有真实的细节,让我无意中熟悉了那些原本抽象的概念,例如什么是淬火。这些陪爸爸加班的经历自然地成为美好的童年记忆,也让科学技术变得既不神秘也不枯燥。

我也曾受一位高中同学之托去给她上三年级的儿子和同学们讲“小冰”。我问他们:平时有和对话机器人讲过话吗?超过90%的同学举了手。我请了几位同学说说都跟哪些机器人讲过话,感觉怎么样?他们提到了Siri,还有人说Siri有点傻,因为她经常说“我不明白你的意思”。不要小看孩子们的感受力、理解力和想象力,我给他们读小冰的诗,他们全神贯注地听、脸上会露出会意的笑容。我送了老师一本小冰的诗集,他们会主动跟老师要求,“请放在教室后面的图书角吧,我们也想看”。我给他们播放小冰语音对话的视频,他们一下子就明白了全双工对话与其他语音助手有什么不同。我给他们听小冰唱歌的两个版本,有人说更好听了,也有人会说小冰好像有点感冒(因为鼻音重了)。最后我还问他们,希望小冰能做什么?他们的回答也很有意思。一个活泼的小女孩希望小冰能看得见摸得着、能陪她玩;一个羞涩的小男孩希望小冰能更了解他、能体会他没说出的想法。

我也跟他们讲了小冰是如何作诗的。首先,我们给小冰看很多的图片,同时告诉她图片里有什么和表达怎样的情感,经过训练她就能学习到其中的规律,能从一张新的图片里认出见过的东西和情感色彩。接着,我们用519位现代诗人的几千首诗歌训练小冰,让她领悟词语的搭配和语法,从而可以根据已有的文字预测下一个字。为了做到这一点,我们让小冰把这几千首诗从头到尾读了1万遍,又让她把这些诗从尾到头地读1万遍,做到倒背如流。这就好比小朋友们阅读一样,读书会不知不觉中塑造我们的语言模型,读不通的书,会选择不同的词句来表达。最后,小冰把这两种能力结合了起来,先从一张图片中识别出物体(也就是一些名词)和情感(也就是一些形容词),再由这些名词和形容词去联想出其他一些词,比如小冰从图片中发现“城市”,她可以联想到“地方”和“笑容”。然后从这些名词、形容词和联想到的词出发,去造出对应的句子,连成一首诗。这样讲,小学生完全可以理解。

其实,小冰写诗使用了人工智能最前沿的深度计算模型来做图像识别和构建语言模型,很多技术细节他们并不一定能听懂。然而,有什么关系呢?他们完全可以通过我的讲解,知道小冰写诗要做什么(也就是问题的定义)、分几个步骤做(也就是解决问题的思路)和每一步是怎么完成的(也就是每个模块的基本原理)。这次尝试让我更确信,完全有可能用孩子们能理解的语言去介绍计算机科学的发展现状,让他们得到最新鲜的信息,也恰好能回答他们当下最好奇的问题。

学习编程的一些建议

我并不反对有兴趣的孩子学习编程。关于几岁可以学,并没有统一的答案,直觉认为需要他们先具有了一定的数学和逻辑思维能力。

小学低年级的孩子一般可以从图形化的编程语言例如Scratch开始学起,图形化的编程环境让孩子们可以很容易上手。我也看到一些机器人培训,通过简单的编程可以让机器人按照设想动起来。我认为这是一种好玩又有意义的启蒙方式,通过动手实操,这样的课程可以帮助孩子们同时构建硬件加软件的概念。

到了小学高年级,特别是使用过Scratch的孩子,网易有道首席执行官周枫先生则建议尽快学习完整易用的高级语言,如JavaScript、Python或Swift(1)。他提出,非常图形化的编程环境,虽然直观,但不容易表达一些更进一步的编程概念,例如数组。而JavaScript作为浏览器内的标准编程语言,具有非常完整的表达能力,而且简洁易用,还可以不断进阶。周枫也提出游戏编程可能是孩子编程最好的载体,通过使用Processing.js这样的环境,可以很方便地用JavaScript进行游戏编程。Python也是一种好的选择,它还是目前大热的机器学习工具最常用的一种语言。

学习第一门高级语言需要花费一段时间理解基本概念,入门后,我建议用完成小任务的方式来驱动自主学习。在设法完成这项任务的过程中,可以不断地通过读书和搜索网络资源学习最急需的知识和技能。这样学习会更有动力,也更容易获得成就感。一旦熟练掌握了一门计算机语言,孩子们会发现已建立的概念和技能很容易迁移到其他语言,因此,学习第二门、第三门计算机语言的代价会小得多。

最后我想说,不必担忧人工智能会取代人类。作为一个人工智能从业者,我们其实每天都在感慨人类孩子的学习能力为什么如此强大?想象力为什么如此丰富?我们对人类智能的了解和模拟才刚刚起步。当然,计算机已经成为世界的一部分,要相信我们的孩子能适应这个世界,他们一定可以利用计算机做出了不起的创造,甚至颠覆计算机本身。

[宋睿华,微软小冰首席科学家,其主导研发的多模态文本生成技术已用于人类历史上第一本百分百人工智能创作的诗集《阳光失了玻璃窗》。国际数据挖掘会议(CIKM)领域主席,在国际会议和期刊上发表学术论文50余篇]

标签: #编程属于计算机系吗