By Jeannette M. Wing 代表的是哪里都适用的一种态度和技能,是每个人,而不仅是计算机科学家,都热衷于学习和运用的。 计算机思维建立的基础是计算机处理的能力及其局限性,不管是由人还是机器来执行。计算机方法和模型使我们有勇气去解决问题,设计出无论哪个个人都无 法独立担纲的系统。计算机思维面对着有关机器智能的不解之谜:人做什么比计算机强?计算机什么比人好?最根本的问题是:什么是可以计算机做的?今天,我们 对这样的问题仍然一知半解。 计算机思维是每个人的基本技能,不只属于计算机科学家。在阅读,书写和算术之外,应该把计算机科学加入每个儿童的分析能力培养。和出版社促进了3个 R(阅读,书写和算术Reading, Writing & Arithmetic)的传播相类似,计算机和使用电脑促进了计算机思维的传播。 计算机思维采纳计算机科学的基本理念,可运用于问题的解决,系统设计和理解人类行为。计算机思维包含了一定范围内的思维工具,反映出计算机科学领域的广泛性。 在解决一个问题时,我们会问:这有多难?怎样做是最佳的方法?计算机思维站在坚实的理论地基上给予这样的问题精确的答案。问题的难度要说取决于机器的能力-用来解决问题的计算工具。要考虑机器的指令,资源的约束和运行环境。 为了有效率地解决问题,我们也许要进而问道,貌似的解决方案是不是最好的呢,我们可以随机化优势吗,是否允许主动错误或者被动错误。计算机思维通过简化,嵌入,转换或者模拟,将看来困难的问题转化为可以解决的问题。 计算机思维是递归思维,并行处理。它将代码译为数据,又将数据译成代码。它用维度分析的泛化进行类型检查。承认异化的优缺点。给某个人或物多个名字。它同时意识到间接寻址和程序呼叫的代价和用处。它不只用正确程度和效率来评判一个程序,还判断美感,系统设计的简洁和优雅。 计算机思维利用抽象和分解来对付复杂的大型任务或者来设计复杂的大型系统。它使你远离担忧。它挑出合适的代表性的问题或者给问题的相关方面建模使问 题易于处理。它使用不变量来概要地或者陈述性地描述系统行为。它确信我们无需理解系统的每个细节就可以安全地使用,修改或者影响一个大型复杂的系统。它设 想多个不同的用户建立不同的模块,为了设想的未来的使用进行预加载或缓存。 计算机思维都以最糟糕的情形来考虑预防,保护和复原,方法可以是冗余,容错和纠错。 它采取呼叫高压封锁,死锁或者约定界面的方法。它还学习在发生同步相遇时避免竞争的情形。 计算机思维使用启发式推理找到解决之道。它在不确定的情况下进行计划,学习和安排。它是搜寻,搜寻,再搜寻,找到一长列的网页,赢得游戏的攻略或是一个反例。它是使用大量的数据来提高计算的速度。它是在时间和空间中,在处理能力和存储容量中找到平衡。 来看这些生活中的事例:您女儿早上去上学,她把这一天要用的东西放到背包里;这就是预加载和缓存。当您的儿子弄丢了他的手套,你建议他到经过的地方 找;这是回溯。到什么时候下您会自己买一套而不再租用滑雪用具呢?这是联机算法。在超市排哪条队伍?这是服务器系统的性能建模。为什么停电时电话还可以 用?这是失败的独立性和设计的冗余。那么如何进行用来分辨计算机和人的完全自动化的图灵测试,即CAPTCHAS,人类仿真?;这是利用解决人工智能的难 题来给计算机代理商做宣传的。 计算机思维将植根于每个人的生活当中,那时算法,前置条件等词汇将成为每个人的词汇, 非决定论和垃圾收集不再是计算机科学家使用的含义;人们将会从上往下来画一棵树。 我们目睹了计算机思维对其他学科的影响。例如,机器学习改变了统计学。统计的学习正用于考察问题的规模, 以数据的大小和角度的方式,这在几年前还是不能想像的。各种组织的统计部门都在招聘计算机科学家。计算机学校包围了现有的和新成立的统计部门。 计算机科学家近来对生物学产生了兴趣,因为它们相信,生物学家将可以从计算机思维中获益。计算机科学对于生物学的贡献远不止于可以通过大量搜索序列 数据来寻找图谱。希望的是利用数据结构和算法-计算机的抽象思维和方法, 通过阐述功能来表现出蛋白质的结构。计算机科学家正在改变生物学家的思维方式。 相似的,计算机游戏理论正改变着经济学家的思维方式。量子计算对物理学家也是。 这样的思维不会仅是其他科学家们的技能,它将是每个人的。普适计算的今天就是计算机思维的明天。昨天普适计算还是梦想,今天它已成为了现实。计算机思维在明天也会成为现实。 是什么,不是什么 是概念化,不是编程 是基本技能,不是机械技能 是人的思维方式,不是计算机的 数学和工程思维的补充和结合 是想法,不是人工产品 对任何人,在任何地方 很多人将计算机科学等同于计算机编程。有些父母以为他们学计算机科学专业的孩子就业的范围是很窄的。很多人认为计算机科学的基础研究已完成,只剩工 程部分了。计算机思维是一个大的愿景,它指导计算机教育者,研究人员和实践者们改变社会对这个领域的印象。 我们尤其需要告诉将要上大学的听众,包括教师,父母和学生,2点: 还有很多亟待理解和解决的智能挑战和有关的科学问题 学计算机专业的可以做任何事情 计算机专业的教授应该给大学新生上一门课,“怎样象计算机科学家一样思考?”,给非计算机专业的人讲,而不仅是给本专业的人听。还应该让要上大学的 学生了解计算机方法和模型,而不是叹息对计算机感兴趣的人少了,或者计算机科学的研究经费减少了。我们要想办法激发公众的兴趣和对这个领域的智力的探索。 这样我们才可能传播计算机科学的乐趣,地位和力量,普及计算机思维。 |
|