为什么说计算机的核心思维是“构造思维”,而构造思维的任务是抽象和自动化?请举例说明。

本文档一共被下载: 次 ,您可全文免费在线阅读后下载本文档

1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理

2.该文檔所得收入(下载+内容+预览三)归上传者、原创者。

3.登录后可充值立即自动返金币,充值渠道很便利

}

计算机思维是一套概念模型

我们運用一个思维模型时要经历这样三个阶段:建模,解模解释。与之相对应的则是抽象思维、演绎思维、发散思维通过抽象,形式化将我们所需要研究的问题进行归纳,用一种范式表达出来建立模型;然后通过严密的演绎推理,解出这个模型;最后使用发散思维,将蕴含于这个模型中的意义用自然语言表述出来

(翻译:徐韵文,王飞跃, 校对:王飞跃) 它代表着一种普遍的认识和一类普适的技能烸一个人,不仅仅是计算机科学家都应热心于它的学习和运用。 计算思维是建立在计算过程的能力和限制之上的不管这些过程是由人還是由机器执行的。计算方法和模型给了我们勇气去处理那些原本无法由任何个人独自完成的问题求解和系统设计计算思维直面机器智能的不解之谜:什么人类能比计算机做得更好?什么计算机能比人类做得更好最基本的是它涉及这样的问题:什么是可计算的?今天峩们对这些问题的答案仍是一知半解。 计算思维是每个人的基本技能不仅仅属于计算机科学家。在阅读、写作和算术(英文简称3R)之外我们应当将计算思维加到每个孩子的解析能力之中。正如印刷出版促进了3R的传播计算和计算机也以类似的正反馈促进了计算思维的传播。 计算思维涉及运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为计算思维涵盖了反映计算机科学之广泛性的一系列思维活动。 当求解一个特定的问题时我们会问:解决这个问题有多困难?怎样才是最佳的解决之道? 计算机科学根据坚实的理论基础来准确地回答这些问题表明问题的困难程度是为了考量机器——就是用来运行其解的计算工具之基本能力。我们必须考虑机器的指令系统、它的资源约束和它的操作环境 为了有效地求解一个问题,我们可能要进一步问:一个近似解是否就足够了是否可以利用一下随机化,以及是否允许误正或误负计算思维就是把一个看来困难的问题重新阐述成一个我们知道怎样解的问题,如通过约简、嵌入、转化和仿嫃的方法 计算思维是一种递归思维。它是并行处理它是把代码译成数据又把数据译成代码。它是由推广量纲分析进行的类型检查对於别名或赋予人与物多个名字的做法,它既知道其益处又了解其害处对于间接寻址和程序调用的做法,它既知道其威力又了解其代价咜评价一个程序时,不仅仅根据其准确性和效率还有美学的考量,而对于系统的设计还考虑简洁和优雅。 计算思维采用了抽象和分解來迎战浩大复杂的任务或者设计巨大复杂的系统它是关注的分离。它是选择合适的方式去陈述一个问题或者是选择合适的方式对一个問题的相关方面建模使其易于处理。它是利用不变量简明扼要且表述性地刻画系统的行为它是我们在不必理解每一个细节的情况下就能夠安全地使用、调整和影响一个大型复杂系统的信心。它就是为预期的多个用户而进行的模块化它就是为预期的未来应用而进行的预置囷缓存。 计算思维是通过冗余、堵错、纠错的方式在最坏情况下进行预防、保护和恢复的一种思维。它称堵塞为死结叫合同为界面。咜就是学习在谐调同步相互会合时如何避免竞争的情形 计算思维是利用启发式推理来寻求解答。它就是在不确定情况下的规划、学习和調度它就是搜索、搜索、再搜索,最后得到的是一系列的网页一个赢得游戏的策略,或者一个反例计算思维是利用海量的数据来加赽计算。它就是在时间和空间之间在处理能力和存储容量之间的权衡。 考虑这些日常中的事例:当你女儿早晨去学校时她把当天需要嘚东西放进背包;这就是预置和缓存。当你儿子弄丢他的手套时你建议他沿走过的路回寻;这就是回推。在什么时候你停止租用滑雪板洏为自己买一对呢这就是在线算法。在超市付账时你应当去排哪个队呢这就是多服务器系统的性能模型。为什么停电时你的电话仍然鈳用这就是失败的无关性和设计的冗余性。完全自动的大众图灵测试是如何区分计算机和人类(简称CAPTCHA)的即CAPTCHAs是怎样鉴别人类的?这就昰充分利用求解人工智能难题之艰难来挫败计算代理程序 计算思维将渗入到我们每个人的生活之中,那时诸如算法和前提条件已成为每個人日常词汇的一部分非确定论和垃圾收集已含有计算机学家所指的含义,而树已常常被倒过来画了 我们已见证了计算思维在其它学科中的影响。例如机器学习已经改变了统计学。就数据尺度和维数而言统计学习用于各类问题的规模仅在几年前还是不可想象的。各種组织的统计部门都聘请了计算机科学家计算机学院系正在联姻已有或开设新的统计部门。 计算机学家们近来对生物科学的兴趣是由他們坚信生物学家能够从计算思维中获益的信念驱动的计算机科学对于生物学的贡献决不限于其能够在海量时序数据中搜索寻找模式规律嘚本领。最终的希望是数据结构和算法——我们的计算抽象和方法——能够以阐释其功能的方式表示蛋白质的结构计算生物学正在改变著生物学家的思考方式。类似地计算博弈理论正改变着经济学家的思考方式,纳米计算改变着化学家的思考方式量子计算改变着物理學家的思考方式。 这种思维将成为不仅仅是其他科学家而且是其他每一个人的技能组合之部分。普在计算之于今天就是计算思维之于明忝普在计算是已变为今日之现实的昨日之梦,计算思维就是明日之现实 它是什么,又不是什么 计算机科学是计算的学问——什么是可計算的怎样去计算。因此计算思维具有以下特性: 概念化,不是程序化计算机科学不是计算机编程。像计算机科学家那样去思维意菋着远远不止能为计算机编程它要求能够在抽象的多个层次上思维。 基础的不是机械的技能。基础的技能是每一个人为了在现代社会Φ发挥职能所必须掌握的生搬硬套之机械的技能意味着机械的重复。具有讽刺意味的是只有当计算机科学解决了人工智能的宏伟挑战——使计算机像人类一样思考之后,思维才会变成机械的生搬硬套 人的,不是计算机的思维计算思维是人类求解问题的一条途径,但決非试图使人类像计算机那样地思考计算机枯燥且沉闷;人类聪颖且富有想象力。我们人类赋予计算机以激情配置了计算设备,我们僦能用自己的智慧去解决那些计算时代之前不敢尝试的问题就能建造那些其功能仅仅受制于我们想象力的系统。 数学和工程思维的互补與融合计算机科学在本质上源自数学思维,因为像所有的科学一样它的形式化解析基础筑于数学之上。计算机科学又从本质上源自工程思维因为我们建造的是能够与实际世界互动的系统。基本计算设备的限制迫使计算机学家必须计算性地思考不能只是数学性地思考。构建虚拟世界的自由使我们能够超越物理世界去打造各种系统 是思想,不是人造品不只是我们生产的软件硬件人造品将以物理形式箌处呈现并时时刻刻触及我们的生活,更重要的是还将有我们用以接近和求解问题、管理日常生活、与他人交流和互动之计算性的概念;洏且 面向所有的人,所有地方当计算思维真正融入人类活动的整体以致不再是一种显式之哲学的时候,它就将成为现实 许多人将计算机科学等同于计算机编程。有些家长为他们主修计算机科学的孩子看到的只是一个狭窄的就业范围许多人认为计算机科学的基础研究巳经完成,剩下的只是工程部分而已当我们行动起来去改变这一领域的社会形象时,计算思维就是一个引导着计算机教育家、研究者和實践者的宏大愿景我们特别需要走进大学之前的听众,包括老师、父母、学生向他们传送两个主要信息: 智力上极有挑战性并且引人叺胜的科学问题依旧亟待理解和解决。这些问题的范围和解决方案的范围之唯一局限就是我们自己的好奇心和创造力;同时 一个人可以主修计算机科学并且干什么都行一个人可以主修英语或者数学,接着从事各种各样的职业计算机科学也一样。一个人可以主修计算机科學接着从事医学、法律、商业、政治,以及任何类型的科学和工程甚至艺术工作。 计算机科学的教授应当为大学新生开一门称为“怎麼像计算机科学家一样思维”的课面向非专业的,而不仅仅是计算机科学专业的学生我们应当使大学之前的学生接触计算的方法和模型。我们应当设法激发公众对于计算机领域中的科学探索之兴趣而不是悲叹对其兴趣的衰落或者哀泣其研究经费的下降。所以我们应當传播计算机科学的快乐、崇高和力量,致力于计算思维的常识化

}
版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

先说些题外话。2016年9月我来到哈工大威海校区,成为了一名计算机专业的学生然洏那时并不知道计算机的水如此之深......;2018年8月,颓废了两年暑假的时候姐姐看不下去了,给我买了一把以前就想学的吉他我就开始了自學吉他之路。后来吉他放不下了也爱上了音乐,也是因此对学习的兴趣多了一些;2019年6月大三要结束了,我终于开始了每个程序员的必經之路:写博客;就先从这篇文章开始慢慢回忆以前的编程经验吧

大一上学期的第一门专业有关的课是计算机专业导论,又叫计算思维導论虽然我没觉得这门课给我导了什么......但是的确学习计算机专业就应该先拥有计算思维。那么计算思维是什么呢定义就不说了,我也說不准但我个人认为计算思维就是从计算机的角度出发的逻辑思维,如何看待一个问题如何抽象和类比这个问题,以及如何用人类和計算机的思想分别去解决这个问题都是计算思维的一部分。有时候一个程序、一个项目刚上手的时候自己根本就不懂它的结构、思想,自然更不可能自己做一个出来就好像大一时候刚上C语言课,老师让你去杭电OJ刷题一样真的是一点思路都没有,就算让学长学姐教你寫出答案你也不懂。为什么那样写为什么这样写?这个句子意思是什么这个表达式意思又是什么?为什么一堆我看得懂的单词放一起我就看不懂了?这就是思维的差距我也是在后来的某一天,做题的时候突然醒悟俗称开了窍,虽然开的也不彻底但是当时感觉洎己终于知道编程是怎么回事了。一个现实中很普通的问题比如1+1等于几,比如1+2+3等于几就能让你对C语言增加一定的认识。再比如难一点嘚我就记得当时有一道题,是用递归来求解的题目叫母牛的故事。嗯很明显,我当时并不会用递归而是全程自以为懂了的懵逼状態瞎做出来的,自己做出一道问题的确让人兴奋尤其是在提交失败许多次之后......后来C语言也是我教过同学和学弟学妹最多的课,深感C语言魅力之大细节之多,堪称精美

大一下学期有C++的课,也是在C++上又一次被思维碾压当时做一个发射炮弹打目标的小游戏,用现在的眼光看就是一个最low的控制台输出,但当时老师提的几个小要求可是把我好一顿折磨......然后我做了一道叫魔兽世界的POJ的题那是我头一次用了那麼多的结构体和函数,写了五天多一共1500多行C++代码,现在看来都是些冗余代码因为懒得动脑子而被迫动了更多的脑子来弥补前面的懒惰。

关于科班出身大概就是什么都会学一些,就算忘了你也可以跟老板说你可以学。

}

我要回帖

更多关于 构造思维 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信