计算科学导论读书笔记


摘要:在对《计算科学导论》这本书认真地学习后,我对计算科学的基本概念和基础知识有了更深的理解,不仅对计算科学的意义,内容和方法有了进一步的理解,而且对计算科学的分类与分支以及计算机专业的培养规格和目标有了更清晰的认识。最后在布尔代数这方面的基础也得到了很好的加强。在此基础上,我也对自己的计算机专业的学习做出了规划。
关键字:计算机科学,图灵机,人工智能,大学规划
一.引言
近年来,计算机已经成为了促进社会经济发展的引擎。它的出现使世界的科技,政治,经济,文化,教育等行业在短时间内发生了天翻地覆的变化。高中毕业时在对计算机一无所知的情况下看计算机,觉得计算机很好玩。直到遇到了这本书之后,我才深深体会到什么叫“宫室之美,百官之富”。计算机科学真的太伟大了,这门学科建立在严密的数学基础之上,它迅速成为了一幢气势恢宏的巨厦,成为继数学和物理之后人类第三大完美的科学体系,而且,以“计算”为灵魂的计算机科学,必将长盛不衰!
《计算科学导论》这本书带我重新认识了计算机的世界,通过对这这本书的深入学习,我重新认识了计算机,对计算机的起源与发展、计算机体系结构、程序设计、算法、软件工程、操作系统、人工智能以及计算机专业的培养目标都有了更深入更全面的认识,同时在学习这本书的过程中,我对计算科学的兴趣也得到了培养,为以后的学习也奠定了基础。
作为一名软件工程的学生,我深刻意识到计算科学在专业学习中不可或缺的地位,比如,以前当我了解到AlphaGo击败李世石之时,我只知道这是人工智能发展的又一重大突破,人工智能的发展会影响社会生活的方方面面,却不知道人工智能在计算机体系中到底是个什么概念,通过那些方式可以实现人工智能。在对《计算科学导论》这本书的学习之后,我明白了,人工智能是一门企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器的新型学科,而且人工智能是一门边沿学科,属于自然科学、社会科学、技术科学三向交叉学科,主要研究语言的学习与处理,推理,规划,机器学习,知识获取,组合调度等问题。如果以后需要从事这方面的研究,本科阶段需要打下坚实的数学基础并不断提高自己数据结构设计与算法分析的能力。再比如,以前我不清楚什么是程序,就知道桌面上的QQ,浏览器等软件是一个程序,控制电视机换台需要程序,银行的ATM机器里运行着一个程序。当我学习了《计算科学导论》了之后,我明白了程序从广义上来说就是进行某项活动或过程所规定的途径,比如烹饪红烧肉的做法,上学报名的步骤等等这些都是程序,而在计算机里,程序就是一组计算机能识别和执行的指令,例如操作系统是一个持续运行的程序,计算机编写的一段可执行的代码是程序,简单的理解就是数据结构+算法等等。非常感谢《计算科学导论》这本书,它让我能站在一个更加专业的角度去重新认识这个世界。
以下是我通过《计算科学导论》这本书的学习后对于的一些心得和体会,以及对一些计算机基础知识的理解。
二.图灵机模型与计算机
(一)图灵机的概念
图灵机(Turing Machine)是图灵在1936年发表的 “《论可计算数及其在判定性问题上的应用》中提出的数学模型。既然是数学模型,它就并非一个实体概念。图灵机的基本思想是用机器来模拟人们用纸笔进行数学运算的过程,他把这样的过程看作下列两种简单的动作:
• 在纸上写上或擦除某个符号;
• 把注意力从纸的一个位置移动到另一个位置;
并且被证明了,只要图灵机可以实现,就可以用来解决任何可计算问题。
(二)图灵机的构成
1、一条无限长的纸带(tape)。纸带被划分为一个接一个的小格子,每个格子上包含一个来自有限字幕的符号,字母表中有一个特殊的符号,就是一个空格,它表示空白。纸带上的格子从左到右依次被编号为0,1,2…,右端无限延伸。
2、一个读写头(head)可以在纸带上左右移动,它能读出当前所指的格子上的符号,并能改变当前格子上的符号。
3、一套控制规则(table),它根据当前机器所处的状态以及当前读写头所指的格子上的符号来确定读写头下一步的动作,并改变状态寄存器的值,令机器进入一个新的状态。
4、一个状态寄存器,用来保存图灵机当前所处的状态。图灵机的所有可能的状态的数目是有限的,并且有一个特殊的状态,成为“停机状态”。
为了更好地理解,我举例一个例子,假设蚂蚁所处的二维世界是一个无限长的纸带,这个纸带上被分成了若干小的方格,而每个方格都仅仅只有黑和白两种颜色。纸带的片段为:
蚂蚁的眼睛只能看到当前所在的格子,而且每次只能向前或向后爬行一格。
当蚂蚁大脑中的程序为:
①黑色是食物区,吃到食物后前移一格,白色是空白区,没有食物后退一格
那么蚂蚁之后会进行下列动作:开始是黑色,前移一格,第 2 还是黑色,前移一格,第 3 格还是黑色,前移一格,第 4 格为白色,后移一格,最后这条带子上,蚂蚁将在第 4 格和第 3 格来回移动循环不止。
所以这里的蚂蚁爬行的例子就是一个典型的图灵机的模型。蚂蚁是“读写头”,蚂蚁行走的路线就是“纸袋”,蚂蚁的大脑就是“一套控制规则”,纸袋的格子就是“状态寄存器”,这样一来图灵机的模型就更加具体和形象了。当然我们可以把蚂蚁的输入集合、输出行动集合、内部状态集合进行扩大,这个模型就一下子实用多了。当然任意的系统具有“输入集合”、“输出集合”、“内部状态”、“固定的程序指令!”都可以被抽象成为一个图灵机,比如我们人就是一个图灵机。输入状态集合就是我们所处的环境中能够看到、听到、闻到、感觉到的一切事物,输出集合就是你的每一言每一行,内部状态集合则要复杂得多。因为我们可以把任意一个神经细胞的状态组合看作是一个内部状态,这就是人类的记忆。我们的大脑就是一个操作系统,里面有各种各样的操作指令。但是图灵机的程序指令是固定的。人有学习能力,人的大脑会进化,操作系统会升级,所以大脑的实际程序规则是不固定,这点似乎图灵机目前还无法做到。但是既然机器和人类都可以看做成一个图灵机,那么能不能使机器也能像人类一样具有学习和自我升级的能力了,这点就是我下面将要阐述的人工智能。
三.人工智能
(一)人工智能的背景和概念
上面提到,既然机器和人都可以看做是图灵机,那么机器就有变得和人一样聪明的可能,而且计算机的发明与应用,其根本目的是代替人的各种劳动。科学研究特别是军工领域内的尖端科技研发中大量复杂,繁琐的计算任务极大地促进了电子数字计算机的研制。第一台电子数字计算机诞生后,一些人开始考虑让计算机具有某种思维能力,以便让它像一个训练有素的人一样能做一些需要一定的思维,推理的工作。这样的愿望不断地促进人工智能学科的发展与突破。
人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟,延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。
人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能从诞生以来,理论和技术日益成熟,应用领域也不断扩大,可以设想,未来人工智能带来的科技产品,将会是人类智慧的“容器”。人工智能可以对人的意识、思维的信息过程的模拟。人工智能不是人的智能,但能像人那样思考、也可能超过人的智能。
(二)发展人工智能的关键要素
数据:因为要机器学习就需要大量的数据作为支撑。在大数据这个概念出现之前计算机并不能很好的解决需要人去做判别的一些问题。所以说如今的人工智能不如说是数据智能,人工智能其实就是用大量的数据作导向,让需要机器来做判别的问题最终转化为数据问题。这就是今天我们所说的,人工智能的本质。
硬件:硬件中最核心的部分就是芯片,算法必须借助芯片才能够运行,而由于各个芯片在不同场景的计算能力不同,算法的处理速度、能耗也就不同。伴随着摩尔定律发展的放缓,人类在精密制造领域(半导体)几近极限。而数据量的增长却呈现指数型的爆发,数据的扩张远大于处理器性能的扩张,依靠处理器性能在摩尔定律推动下的提升的单极世界已经崩溃。拥有超强算力兼具低能耗的芯片是我们步入AI时代的前提。人工智能芯片作为人工智能行业的重要底层架构,其战略重要性不言而喻。
算法:我们现在经常提到的“深度学习”是属于人工智能算法(软件)层面的。没有好的算法的支撑,再多的数据也没有作用。自从深度学习取得突破性进展以后,巨头们频频开源,所有的巨头都想成为AI时代下一个开发IOS的“苹果”或是开发Andriod系统的“谷歌”。这些公司使用开源平台进行算法的迭代时,开源平台可以获取数据,以及市场对应用场景热度的反馈,掌握绝对的控制权和话语权。
(三)发展前景
目前,人工智能还处于感知智能阶段。语音识别和视觉识别是这一阶段最为核心的技术。近年来,随着计算处理能力的突破以及互联网大数据的爆发,再加上深度学习算法在数据训练上取得的进展,人工智能在感知智能上正实现巨大突破,在很多领域,计算机的智能度几乎可以和人类相媲美,如无人驾驶、医疗、无人机等,都取得了非常显著的进展。总的来说,人工智能在当下是有非常大的发展空间和发展潜力的。
四.进一步思考
1.计算机专业可以说是大学里最贴合当下科技前沿的专业,因此,我们的未来充满了机遇也充满了挑战,因为新的技术的发展需要更多的人才,同时想要参与到新技术的发展中去还是有很高的门槛。所以,我们应该在大学四年里,敏锐观察科技的动向,定下自己的目标,不断奋斗,正确把握机遇,战胜挑战。
2.我们应该明白高校开展的学科都有一定的普适性和滞后性,具体的所就是,大学的课程在于提高你各方面的基础能力,不会再某一个地方深入探究,而且在计算机这个专业大学四年只仅仅学好学校安排的课程是远远不够的,我们需要尽早地确定自己的发展方向,在学校培养的基础上,提高自己的深度。另外,学校教授的知识都不一定是当下最新的知识和技术,在我们掌握了一门新技术同时会有更新的技术产生。也许在校期间学习的东西在毕业后已经不适合用啦。正如我们现在学习的程序语言,也许在走出校门后又会出现新的语言。所以说,我们要学好这一学科的知识,更需要创新,提高自学能力和接受新事物的能力。因为计算机这一学科本来就是走在时代前沿的一门学科,更需要紧跟时代的步伐。
3.在学习方面,英语是必须学好的一门学科,目前我们不得不承认,许多高新技术都是来源于国外,有时候,我们还不得不去到外国的论坛上去查找资料。一个扎实的英语基础可以让你更好地学习到世界前沿的技术。所以,我们一定要学好英语。另外,数学也是非常的重要,算法是程序的灵魂。而算法对数学的要求是很高的,只有学好了数学,才能在计算机科学上深入发展。
4.动手能力在软件工程这个专业还是非常重要的一个素质,因为我们需要将自己脑海里的程序思想和步骤转化成代码,没有好的动手写代码的能力,再好的编程思维也无处展现,所以每节实验课一定要好好对待,私下里更强缺少不了勤加练习。
五.总结
《计算学科导论》旨在帮助计算机专业的同学了解本学科的发展史及其发展趋势,从中获得必要的启示;从理论模型的层次上掌握计算及计算机的本质问题;了解本学科的知识结构及其相互之间的关系,掌握正确的学习方法;激发学习兴趣;从整体上提高学生对本学科的认识水平;通过大量的事例和素材,在轻松愉快的氛围中给学生以人文精神的熏陶。虽然导论对于我来说只是一个引导作用,但是我从中学到了很多,对自己的目标也更加明确和坚定,下面是我结合软件工程专业队自己提出的要求。
1.有扎实的专业基础,每门专业课都努力学扎实,不断提高自己的硬实力。
2.有自己深入学习的方向,在人工智能和机器学习方面,不断自我学习,争取大学四年能达到一个较好的水准。
3.具备优秀的编码能力,至少精通一门编程语言,如Java,不仅对语言的语法非常熟悉,还要对它的技术特点,开发流程,各种接口框架都非常熟悉。
4.较强的英语写作和翻译能力,能够独立阅读国外的技术性文章,并且可以用英文将自己的文档清晰地表达出来。
5.具备卓尔不群的创新精神和良好的团队意识,在某个需要突破课创新的探索不能人云亦云,要敢于质疑和突破;在完成某个合作性任务的时候要有团队精神和大局意识。
6.有不断学习的意志和努力奋斗的进取心,每天至少能抽出半个小时去学习自己感兴趣的知识,不断更新自我。
7.能够有条理地安排日程,学会用流程图,思维导图,清单来使每天过的充实且高效。
8.知识输出的能力,创建自己的博客,记录总结自己的学习状况,不但要学会,更能讲明白。
参考文献:
【1】赵致琢,《计算科学导论(第3版)》,科学出版社,2005
【2】陈敏,《认知计算导论》,华中科技大学出版社,2017
【3】李中帅,《基于创新视角的大学计算机知识体系的重构及计算思维能力的培养——评价计算机导论——以计算思维为导向》,《教育理论与实践》,2018年29期
【4】董荣胜,《计算机科学导论: 思想与方法》,《中文科技期刊》,2017,第4期
【5】雷·库兹韦尔,《人工智能的未来(揭示人类思维的奥秘》,浙江人民出版社,2016
【6】朱巍,陈慧慧,田思媛等《人工智能:从科学梦到新蓝海—人工智能产业发展分析及对策》,2016,(21):66-70
【4】贺倩,《人工智能技术的发展与应用》,《电力信息与通信技术》,2017,第9期

计算科学导论读书笔记相关推荐

  1. 算法导论读书笔记(7)

    算法导论读书笔记(7) 目录 快速排序 快速排序的简单Java实现 快速排序的性能 最坏情况划分 最佳情况划分 快速排序的随机化版本 比较排序 快速排序 快速排序是一种原地排序算法,对包含 n 个数的 ...

  2. 算法导论读书笔记(19)

    http://www.cnblogs.com/sungoshawk/p/3802553.html 算法导论读书笔记(19) 目录 最优二叉搜索树 步骤1:一棵最优二叉查找树的结构 步骤2:一个递归解 ...

  3. 算法导论读书笔记(8)

    算法导论读书笔记(8) 目录 计数排序 计数排序的简单Java实现 基数排序 基数排序的简单Java实现 桶排序 计数排序 计数排序 假设 n 个输入元素中的每一个都是介于0到 k 之间的整数,此处 ...

  4. 计算机系统导论第九章,计算机系统导论 -- 读书笔记 -- 第三章 程序的机器级表示 (持续更新)...

    计算机系统导论 -- 读书笔记 -- 第三章 程序的机器级表示 (持续更新) 第三章 程序的机器级表示 3.1 历史观点 3.2 程序编码 1. 命令行 (1)编译 Linux> gcc -Og ...

  5. 【复杂网络】网络科学导论学习笔记

    第一章 引论 1.复杂网络相关应用 随着信息技术的飞速发展,当今社会越来越多的现象会涉及到复杂网络相关应用. 举例:社交网络.搜索引擎 2.Internet的拓扑结构 原因:为预测和提高Interne ...

  6. 哲学导论--读书笔记

    看了前两章... 随手做个笔记... 哲学.宗教和科学一直都是紧密相关的.它们虽然各有侧重,但目标都是一样的,那就是强调思想和认识的重要性,强调理解我们这个世界,从某种更宏观的甚至是从宇宙的角度来审视 ...

  7. 数据科学系列读书笔记

    记录一下笔者所阅读过的与大数据相关的书籍,以及阅读感受,以期为同仁提供此许参考建议. 1. <数据科学实战>(英文版本名称: Doing data science) 读后感: 这是一本有态 ...

  8. 可解释人工智能导论-读书笔记(2)

    可解释人工智能导论-贝叶斯方法篇 第二章 贝叶斯方法 2.1 贝叶斯网络 表示 推断 贝叶斯网络的学习 贝叶斯规划学习 2.2 贝叶斯深度学习 深度生成模型 贝叶斯神经网络 从贝叶斯网络到可解释的因果 ...

  9. 算法导论读书笔记-第十九章-斐波那契堆

    算法导论第19章--斐波那契堆 可合并(最小)堆(mergeable min-heap) : 支持以下5种操作的一种数据结构, 其中每一个元素都有一个关键字: MAKE-HEAP(): 创建和返回一个 ...

  10. 《计算广告》读书笔记——第一章 在线广告综述

    在线广告, 也称为网络广告. 互联网广告, 指的是在线媒体上投放的广告. 形成了以人群为投放目标. 以产品为导向的技术型投放模式. 在线广告开启了大规模. 自动化地利用数据改善产品和提高收入的先河. ...

最新文章

  1. arch模型的思路_ARCH模型
  2. c语言多关卡推箱子程序,多关卡地图推箱子游戏
  3. Win8下怎样安装Win7 or Win7下怎样安装win8?
  4. cdlinux之U盘启动cdlinux破解wifi(计算机系破解无线密码的方式 就不使用wifi万能钥匙了)-- 没有发现无线网卡
  5. PS2020制作电子签名
  6. c语言银行卡管理系统的意义,使用会员管理系统的意义
  7. java publish_java – 如何正确使用SwingWorker上的publish()和process()方法?
  8. 1987年,国际C语言混乱代码大赛
  9. 雷顿学院大数据(一期课程)
  10. 手机app视频平台开发怎么做
  11. Bboss Elasticsearch 简单用法(ES 7.*)
  12. Save coredump
  13. 秒杀各种Pay?Samsung Pay支付宝功能率先体验
  14. Ubuntu 12.04 更改 lightdm 登陆界面背景图
  15. 实验七 函数程序设计 张玉生《C语言程序设计实训教程》双色版 配套实验书答案 (纯手打, 仅供参考)
  16. android 集成高德地图打包后报 key-location Error, ErrCode:7 的问题
  17. ORA-01031: insufficient privileges报错如何处理
  18. 小龙虾炒菜机器人_5分钟一盘小龙虾,8分钟一份红烧肉,幕后高手原来是“她”…...
  19. 查询windows系统的MAC和IP地址
  20. 怎么设计一张点击率高的淘宝爆款主图?

热门文章

  1. c语言sinx幂级数展开,求幂级数展开式的方法
  2. matlab在电力系统故障分析中的仿真实例,基于MATLAB仿真的电力系统故障分析.doc...
  3. PDCN/Padavan/老毛子路由器固件复位/无线桥接教程
  4. Windows安装猕猴桃CDN
  5. 好用的BUS调试工具-Bus Hound
  6. 推荐系统实战--movieslens数据集实现UserCF算法
  7. Advanced Auto Layout
  8. 理解Alpha-Beta 剪枝算法
  9. 综述---图像处理中的注意力机制
  10. C++中i++和++i的区别