看点 计算机已渗入到我们生活的各个方面,生长于互联网时代的一代甚至被称作“数字原住民”。对他们而言,会使用计算机已是基本生存技能,了解计算机运作背后的逻辑,也就是计算机思维也变得非常必要。计算机思维有哪些特征?什么样的计算机语言才是优美高级的?《纽约时报》的这篇文章能让我们对此有所了解。

加州大学伯克利分校的Daniel Garcia老师为非计算机专业的同学设计出了一门名为《计算机的美与乐趣》的课。在这门课里,Daniel解释了一个非常重要的概念——抽象化。

他说,以奶昔为例,“你去上《烹饪的乐趣》这门课,因为你想做草莓奶昔,但是你不会专门去找‘草莓奶昔’这门课”。奶昔会有配方,这门课会指导你添加你想加的冰淇淋、牛奶和水果。虽然早期的烹饪书对草莓奶昔、树莓奶昔和蓝莓奶昔会有不同的配方,但是他认为最后肯定有人会问“为什么我们不把这些不同的配方融合成一个奶昔配方?”

Daniel说,“抽象化的意思就是隐藏细节”。这要求我们可以识别模式、将复杂的东西提炼,并形成精确清晰的概括。

抽象化以及计算机科学领域里的其他想法都又酷又有用,能激发人们的求知欲。很明显,电脑已经成为人们解决问题不可或缺的伴友,但是熟练操作软件还远远不够,了解隐藏在电脑魔力背后的东西现在看起来很重要。

计算机思维:从一般到精确,再到一般

美国公共广播公司位于波士顿的分站正在为3-5岁的孩子制作一档节目。在这档节目里,三只卡通猴陷入困境,需要孩子们“通过应用计算机思维帮它们从混乱中解脱出来”。

计算机思维并不是一个很新的概念。人工智能领域的前沿学者、MIT教授Seymour Papert,早在1980年,就已经使用这个术语来展望孩子们如何在未来使用电脑来学习。计算机思维主要包括识别模式和顺序、创造算法、设计用于发现以及修正错误的测试,把一般浓缩为精确,把精确拓展到一般。

正如达尔文进化理论里解释了政治和商业,在微软负责基础研究的卡耐基梅隆大学前教授Jeannette M. Wing博士针对计算机理念的广泛使用进行争论。她在一次采访里说计算机思维不仅可以应用于思维,“我们也可以提升日常生活效率并且让我们的压力变得小一点。”

她说,计算实践有很多的应用。比如,把困难的问题解构成我们所知道的方式去解决,观察时间和空间里的平衡问题以及流水线问题。

我们可以看一下自助餐的流水线。“当你去一家自助餐厅吃午餐,你会在第一站看到刀叉。我觉得这个真令人生气,它们应该是最后一步。你不应该拿着盘子的时候还要去拿刀叉。”Wing博士曾把小孩子收书包看作是电脑缓存,她认为自助餐的低效是对逻辑思维以及顺序的错误运用。

计算机思维可以辅助一个基本的任务,比如策划一段旅行——你可以把它分成预定机票、预定旅馆、租车这几个步骤。计算机思维也可以用于“像身体保健或政策制定这类复杂的东西”。我们只有识别次问题以及描述这些次问题与主问题之间的关系,才可以完成目标工作。 Wing博士说,“一旦你有了一个好的接口,你就可以忽略剩下问题的复杂性。”

将计算机思维运用于其他学科

Alexander Torres是一名专业为英语的斯坦福大学高年级学生,他注意到学校和谷歌公司的相似性吸引了所有人,但是很少有学生去听计算机的课程。他也是其中之一,但是他说“我不认为我丢失了一些技能”。在争取学位的过程中,我锻炼了批判思维、分析能力以及有逻辑的争辩。“当你分析狄金森、惠特曼或者梅尔维尔,你不得不剖析他们诗句里的每一句话,然后再把他们综合起来看。”

没有一项可靠的研究显示计算可以使一个人更有创造力或者更有能力解决问题。研究教育与计算机的佐治亚理工交互计算学院的教授Mark Guzdial说,除非一些事情被明明白白地教,否则计算技能并不能让你更擅长某些事情。“你没法证明计算技能的消极面”,但是在长达十年的研究中,没有人发现电脑技能是可以自动转移来解决其他问题的。

另外,他还补充说,因为同样的原因,人们应该这样去认识生物、化学以及物理,“理解电脑在生活中的不同应用有很多意义。”越来越多的人在他们的工作里必须要做编程,即使它只是微软excel。教授说“用电脑解决问题每天都发生在我们的生活里”,如何能让更多人获得电脑技能,是一个很有趣的挑战。

计算机语言需要简约优美易学

三月的一天早上,布朗大学计算机科学中心。Brawner 把一个学生的家庭作业投影在屏幕上。他问,有人注意到问题了吗?没有一个人文学科系的学生举手。最后,一个女生说:“centimeters”和“kilograms”可以简写。Brawners说,可以,但是不够。

Brawners打破了沉静,然后指出这一长串的代码已经触碰到了屏幕边了。课堂一阵骚动中,他重复输入反斜线然后点击“返回”,这可以将符号变成整齐的块。对一个机器来说,这也许就是指令,但是计算机科学家很在乎视觉的美感。Brawner一边删除重复的指令,一边说,“不论何时我们定义衡量,我们希望美感在代码之上。”之后,他又布置了一个新的作业任务:写一个程序来用电脑玩石头、纸和剪刀。

Mili Mitra是主修公共政策和经济的低年级学生,她把电脑放在膝盖上,说她在一年前从来没有考虑过这门课程。但是看到小组研究项目总是给那些有专业电脑知识的人去做,Mili决定“不想这些项目让别人接手”。她已经学会了写基础的代码,以及从网络中提取出数据来分析她感兴趣的东西,比如,地缘亲近如何塑造联合国大会的投票模式。

尽管Mitra发现和电脑的交流就像和一个刚学步的小孩解释问题,她还是觉得这门课能够逐渐灌输一种习惯——“让学生们一步一步走,然后寻找出解决方案。”她承认自己是不耐烦的学习者:“我会往前跳。但是在计算机科学专业里,你没有选择。如果你错过了一步,你就会弄乱所有事情。”

“Block”就像Scratch一样是一种编程语言,由MIT媒体实验室于十年前公布。 Block会把文本字符串隐藏起来,这些文本字符串就像电脑键在疯狂运行一样。这使得代码看上去不那么令人害怕。

你可能会从菜单里选择然后拖出有颜色的空格而不是用键盘字母和一些符号。这些有颜色的空格上写着“say( ) for( )secs”或者“play note( )for( )beats.”颜色和形状分别与“声音”和“动作”两个种类相对应;这些空格可以用拼图来填充以指挥说明。学生们用这个编程语言时,会说,来,设计一个游戏。

一个人不需要成为一个数码Doolittle博士,然后熟练掌握生硬困难的编程语言,比如Java或Python来编码。Block语言省去了记住指令的需要,这对电脑语言会有不同程度的依靠,因为block语言“按照你想的那样去读就可以了。”Garcia博士这样说道。伯克利课程的学生用“block”语言Snap来做作业——直到最后两周,他才教Python,这样他们就可以去上更高阶的课程。“我们会告诉他们,你们已经知道如何去编程”,Garcia博士说。因为步骤都是一样的。

“数字原住民”的生活

在Eliot-Pearson儿童学校一个通风的幼儿园教室里,在塔夫茨大学儿童学习和人类发展部门,孩子们用真实的木块来编程。儿童发展和计算机科学的教授Marina Umaschi Bers发明了带有条形码的木块。条形码上会有一些指示,比如“向前”、“旋转”、“摇动”。这些指示可以用来为机器人编程序。这些机器人就是一些小小的,有内置扫描仪以的转轮推车。通过给木块进行排序,然后扫描他们。这个程序就可以完成。每一个程序都会以绿色的“开始”木块开始,然后以红色的“结束键”结束。

小孩子学习编程已经成为一种新潮的教育方法,伴有很多玩具以及应用程序,比如Bers博士的积木。Bers和MIT合作开发了block语言 Scratch Jr,对宣扬编代码非常狂热。她说,学习机器的语言就像写作被认为是学好外语的基础一样。“你可以用很多表达方式写一首爱情诗或者写一张生日卡片”,“你不仅仅是在识读,你也在生产。”

Bers博士的同行评议研究显示,在学会为机器人编程序后,孩子们能够更好地为图片故事排序。她说,甚至有传闻,当老师们让孩子列出刷牙的步骤,他们仅仅知道几个步骤,“但是在接受完编程训练后,他们就会列出15-20个刷牙步骤”。

Bers博士把计算机融入小孩子们非常熟悉的活动里,比如,讲故事、跳舞或者艺术创作。最近的一个早上,塔夫斯学校的孩子们对一个问题感到困惑:一个机器人如何庆祝春天?

一个卷发小孩Hallel Cohen-Goldberg说,“他去跳舞,然后假装自己淋湿了”。

Solina Gonzalez用马克笔画了一个棕色、蓝色和红色的圈,然后透过粉色边框的眼镜冷静地看着,说:“他跳了个棒棒糖舞蹈。”Solina的伙伴,Oisin Stephens对Solina捆绑在木块上的啤酒棒棒糖画很担心。他说“机器人是不会识读这个的”。

当孩子们跪在地毯上时,他们可以执行计算机科学里的一些概念,比如,把指示分解成有序的指令,测试然后调试。一个团队使用“重复”和“停止重复”的木块,这样形成一个程序“循环”,这一串指示会不断重复直到程序的特定条件达到了。

和机器的对话就像孩子玩的游戏一样这种想法或许是一种飞跃。但是孩子们在排列积木时,Bers博士在和孩子们聊天,孩子们很难注意到他们是在编代码。“他们说,‘嗯,我不是在编程’”。

不管是有意识还是无意识,下一代可能毫不费力地吸收计算机思维技能,并且处在一个数字原住民的进程中。

注:本文原载于《纽约时报》,原题为Learning to Think Like a Computer,有删节。由外滩教育编译,转载需获得授权。

即使不学编程,你也要了解计算机思维相关推荐

  1. 计算机思维采用抽象和分解,凤凰机器人----什么是计算思维?凤凰机器人的编程课中是如何体现它的?...

    对于生活在科技和智能自动化时代的孩子们来说,理解计算机的思维方式,运用计算思维去解决生活中的问题,被认为和听.说.读.写.算一样,是每个人必备的思维能力.然而,到底什么才是计算思维呢? 计算思维是一种 ...

  2. 小学教育如何利用计算机思维,浅谈如何在中小学编程教学中培养学生的计算思维...

    浅谈如何在中小学编程教学中培养学生的计算思维 伍成伟 四川省 泸县二中城西学校 四川 泸州 646100 摘要:思维是人类所具有的高级认识活动,思维是人对外界输入信息与脑内储存知识经验进行一系列复杂的 ...

  3. 不学编程 别搞计算机了

    在计算机科学中忽视任何一个层面都是不行的.计算机并不是理论学科,而是一门理论与实践联系非常紧密的学科.语言是手中的枪.不会编程的人学计算机完全等于浪费青春. 教育有自己的目标,大学里教的东西确实重要, ...

  4. 计算机思维是程序对吗,编程如何培养计算思维 计算思维对孩子有何影响

    在现实生活中,编程已经渗透于我们生活的方方面面,很多时候我们在解决问题的过程中都会不知不觉用到编程思维.编程程思维也可以称为"计算思维",是一种将复杂的原理通过简单的按键操作来实现 ...

  5. 计算机思维与数学思维的本质区别

    计算机思维和数学思维,都包括了抽象和逻辑. 数学的抽象,在于剥离具体.数学研究从公理出发,可以变成纯思维的活动,和具体的的现实脱离关系.数学上的人为"定义",就是为了尽可能给出范围 ...

  6. 计算机思维与应用论文,计算机的思维与计算机应用关系分析

    摘要:计算机思维并不属于理论,也不是某种方法论,而是一种思维习惯和模式.尽管我们可以总结出计算机思维的一些特征,明确何为计算机思维,但这种思维的培养并不是一朝一夕所能完成的,需要在持续的计算机应用中得 ...

  7. 计算机思维导图初中,计算机思维导图

    计算机思维导图探讨及合理应用,以及用它完成思维导图所带来的优缺点,当今天这个高速运转的信息时代,用电脑制作思维导图为管理信息提供了无数令人激动而重要的可能性,我们所要处理的信息越来越多,处理的信息的速 ...

  8. 1. 计算机思维 (大一新生,到)

                                                                                                <目录&g ...

  9. 什么是计算机思维呢?

    在智能时代,学习计算机编程,更要学习计算机思维方式,而不是按照人固有的思维定式理解计算机问题,计算机思维和人的思维有很多差异. 1.大和小 人生活在小数字世界里,而计算机经常处理的是大数字问题.处理大 ...

最新文章

  1. php 格式化评论量函数,深入剖析PHP中printf()函数格式化使用
  2. 李丽娟c语言第四版教师书_来,把自学C语言经历的那些苦,都踩在脚下
  3. 并发编程(三)原子操作CAS
  4. 苦大仇深--写给想做产品的朋友们(二)
  5. JavaScript 数组详解
  6. 在Socket做服务器,在手机上用Http访问
  7. C#中集合接口关系笔记
  8. python另存为excel_在Python中将Excel另存为HTML
  9. 一切的开始源于网络的虚拟
  10. 支付宝上线小程序,外国人来中国旅游再也不用烦恼了
  11. new函数的底层实现
  12. row_number() over 相同日期不同序号_怡丽丝尔护肤品生产日期怎么看?怡丽丝尔护肤品保质期多久?...
  13. FabFilter Pro-R 混响效果器
  14. 从破解APP开始学Android——用户登录验证
  15. java压缩文件夹并加密
  16. 人人都说的SaaS,你真的了解它吗?
  17. 如何成为百万富翁 掌握六点让财富为你打工
  18. 企业软文\网站文章代写工具有哪些应用问题及优化升级
  19. 异步FIFO最小深度的计算
  20. Excel 轻松搞定 环形跑道对比 图表的制作

热门文章

  1. 对积极性不高的员工处理办法
  2. 把NT“赶尽杀绝”攻击NT的一些技术(转)
  3. 水塔水位控制器单片机c语言,基于单片机的水塔水位控制器设计.doc
  4. 删除数组中相同元素(C语言)
  5. Word中如何设置页边距
  6. 翌加科技:教抖音小店商家采取措施避免售后争议
  7. Linux自学之旅-基础命令(locate命令)
  8. 请编写C程序计算应缴的个人所得税
  9. 离婚后,只爱小男人(转贴)
  10. 比谈恋爱还简单的动态路由协议 不会? 我教你啊~