白玉龙凤佩:计算机思维Computational Thinking

来源:百度文库 编辑:中财网 时间:2024/05/06 21:14:37

By Jeannette M. Wing
摘自 COMMUNICATIONS,ACM member magazine, 2006年3月刊
相关pdf,http://www.cs.colorado.edu/retreat/images/ComputationalThinking.pdf

代表的是哪里都适用的一种态度和技能,是每个人,而不仅是计算机科学家,都热衷于学习和运用的。

计算机思维建立的基础是计算机处理的能力及其局限性,不管是由人还是机器来执行。计算机方法和模型使我们有勇气去解决问题,设计出无论哪个个人都无法独立担纲的系统。计算机思维面对着有关机器智能的不解之谜:人做什么比计算机强?计算机什么比人好?最根本的问题是:什么是可以计算机做的?今天,我们对这样的问题仍然一知半解。

计算机思维是每个人的基本技能,不只属于计算机科学家。在阅读,书写和算术之外,应该把计算机科学加入每个儿童的分析能力培养。和出版社促进了3个R(阅读,书写和算术Reading, Writing & Arithmetic)的传播相类似,计算机和使用电脑促进了计算机思维的传播。

计算机思维采纳计算机科学的基本理念,可运用于问题的解决,系统设计和理解人类行为。计算机思维包含了一定范围内的思维工具,反映出计算机科学领域的广泛性。

在解决一个问题时,我们会问:这有多难?怎样做是最佳的方法?计算机思维站在坚实的理论地基上给予这样的问题精确的答案。问题的难度要说取决于机器的能力-用来解决问题的计算工具。要考虑机器的指令,资源的约束和运行环境。

为了有效率地解决问题,我们也许要进而问道,貌似的解决方案是不是最好的呢,我们可以随机化优势吗,是否允许主动错误或者被动错误。计算机思维通过简化,嵌入,转换或者模拟,将看来困难的问题转化为可以解决的问题。

计算机思维是递归思维,并行处理。它将代码译为数据,又将数据译成代码。它用维度分析的泛化进行类型检查。承认异化的优缺点。给某个人或物多个名字。它同时意识到间接寻址和程序呼叫的代价和用处。它不只用正确程度和效率来评判一个程序,还判断美感,系统设计的简洁和优雅。

计算机思维利用抽象和分解来对付复杂的大型任务或者来设计复杂的大型系统。它使你远离担忧。它挑出合适的代表性的问题或者给问题的相关方面建模使问题易于处理。它使用不变量来概要地或者陈述性地描述系统行为。它确信我们无需理解系统的每个细节就可以安全地使用,修改或者影响一个大型复杂的系统。它设想多个不同的用户建立不同的模块,为了设想的未来的使用进行预加载或缓存。

计算机思维都以最糟糕的情形来考虑预防,保护和复原,方法可以是冗余,容错和纠错。 它采取呼叫高压封锁,死锁或者约定界面的方法。它还学习在发生同步相遇时避免竞争的情形。

计算机思维使用启发式推理找到解决之道。它在不确定的情况下进行计划,学习和安排。它是搜寻,搜寻,再搜寻,找到一长列的网页,赢得游戏的攻略或是一个反例。它是使用大量的数据来提高计算的速度。它是在时间和空间中,在处理能力和存储容量中找到平衡。

来看这些生活中的事例:您女儿早上去上学,她把这一天要用的东西放到背包里;这就是预加载和缓存。当您的儿子弄丢了他的手套,你建议他到经过的地方找;这是回溯。到什么时候下您会自己买一套而不再租用滑雪用具呢?这是联机算法。在超市排哪条队伍?这是服务器系统的性能建模。为什么停电时电话还可以用?这是失败的独立性和设计的冗余。那么如何进行用来分辨计算机和人的完全自动化的图灵测试,即CAPTCHAS,人类仿真?;这是利用解决人工智能的难题来给计算机代理商做宣传的。

计算机思维将植根于每个人的生活当中,那时算法,前置条件等词汇将成为每个人的词汇, 非决定论和垃圾收集不再是计算机科学家使用的含义;人们将会从上往下来画一棵树。

我们目睹了计算机思维对其他学科的影响。例如,机器学习改变了统计学。统计的学习正用于考察问题的规模, 以数据的大小和角度的方式,这在几年前还是不能想像的。各种组织的统计部门都在招聘计算机科学家。计算机学校包围了现有的和新成立的统计部门。

计算机科学家近来对生物学产生了兴趣,因为它们相信,生物学家将可以从计算机思维中获益。计算机科学对于生物学的贡献远不止于可以通过大量搜索序列数据来寻找图谱。希望的是利用数据结构和算法-计算机的抽象思维和方法,通过阐述功能来表现出蛋白质的结构。计算机科学家正在改变生物学家的思维方式。相似的,计算机游戏理论正改变着经济学家的思维方式。量子计算对物理学家也是。

这样的思维不会仅是其他科学家们的技能,它将是每个人的。普适计算的今天就是计算机思维的明天。昨天普适计算还是梦想,今天它已成为了现实。计算机思维在明天也会成为现实。

是什么,不是什么
计算机思维是研究计算的- 什么是可以计算的,怎样进行计算。因此,计算机思维有下面的特点:

是概念化,不是编程
计算机科学不是计算机编程。计算机科学家式的思维不是说给计算机编程。它要求在多个抽象层面进行思考。

是基本技能,不是机械技能
基本的技能是每个人在现代社会都必须学会运用的。机械则意味着机械的重复。具有讽刺意味的是,要是计算机科学家真解决了人工智能的使计算机象人一样思考的大挑战,那时思维可就真要变机械了。

是人的思维方式,不是计算机的
计算机思维是人解决问题的方式,不是要人象计算机一样思考。计算机是愚笨无趣的,人聪明富有想像力。是人类使得计算机令人振奋。使用计算机设备,我们运用才智处理问题,那些在计算机时代之前我们不敢挑战的问题,构建具有只要想像得到的功能的系统。

数学和工程思维的补充和结合
计算机科学源于数学思维。因为向所有科学一样,它是正式建立在数学的基础之上。计算机科学源于工程思维,是因为我们构建的系统与真实世界是交互的。计算机设备的约束迫使计算机科学家使用计算机的思维,而不是数学思维。构建虚拟世界的自由使得我们可以设计超越现实世界的系统。

是想法,不是人工产品
不单单是生产的软硬件产品可以真实存在于各处,时刻影响我们的生活,计算机概念可以用来考虑和解决问题,管理我们的日常生活,进行沟通以及和其他人的交往,并且

对任何人,在任何地方
计算机思维都是现实的。它如此融入人们的生活,如明了的哲学。

很多人将计算机科学等同于计算机编程。有些父母以为他们学计算机科学专业的孩子就业的范围是很窄的。很多人认为计算机科学的基础研究已完成,只剩工程部分了。计算机思维是一个大的愿景,它指导计算机教育者,研究人员和实践者们改变社会对这个领域的印象。我们尤其需要告诉将要上大学的听众,包括教师,父母和学生,2点:

还有很多亟待理解和解决的智能挑战和有关的科学问题
问题和解决的领域只在于我们有多少好奇心和创造力。

学计算机专业的可以做任何事情
你如果学的是英语或数学,可以从事很多不同的职业。计算机科学也一样。计算机专业的职业可以是医学,法学,商务,政治,任何一种科学或工程学,甚至美学。

计算机专业的教授应该给大学新生上一门课,“怎样象计算机科学家一样思考?”,给非计算机专业的人讲,而不仅是给本专业的人听。还应该让要上大学的学生了解计算机方法和模型,而不是叹息对计算机感兴趣的人少了,或者计算机科学的研究经费减少了。我们要想办法激发公众的兴趣和对这个领域的智力的探索。这样我们才可能传播计算机科学的乐趣,地位和力量,普及计算机思维。