《计算机科学导论》一导读

    xiaoxiao2023-09-10  180

    前 言

    Foundations of Computer Science, Third Edition计算机在我们的日常生活中扮演了一个重要的角色,而且在未来也将一样。计算机科学是一个充满了挑战和发展机遇的年轻学科。计算机网络将处在地球上每一个角落的我们连接在一起。虚拟现实创造了炫目的三维图像。宇宙空间探险的成功也部分归功于计算机的发展。计算机创建的特技效果改变了电影行业。计算机在遗传学研究中也扮演了一个重要的角色。本书读者对象这本书同时面向学术的和专业的读者。本书可以作为感兴趣的专业人士的自学指南。作为教材,本书包含一学期(semester)或一学季(quarter)的教学内容,是计算机科学的入门教程。本书是基于美国计算机学会(ACM)推荐的CS0课程设计的。它从广度上覆盖了计算机科学所有的领域。其他领域的学生需要对计算机科学有大致的了解时,无论是从本书中选读部分内容还是通读全书,都有帮助。第3版中的改动在本版中我进行了以下几类修改。1.修订的章节和附录针对教学目的,对本书中的两章和附录进行了全面的修订。(1)第6章为了更便于初次接触计算机网络的学生进行理解,第6章的内容采用自顶向下的教学方法进行修订。(2)第16章对于第一次接触计算机科学的学生而言,安全的概念普遍较难接受。该章修订后的内容更通俗易懂。(3)附录F该附录修订后的内容增加了三种计算机语言(C、C++和Java)的一些简易程序例子。2.部分章节中的细微变化基于书评者的建议,部分章节的格式和内容进行了细微的修改,并且部分章节中增加了一些新的技术。3.章末材料的变化章末材料主要经历了以下两个主要的变化:每章最后的多选题被删去了,增加了在线小测验,这样无论对老师检查教学成果,还是学生进行检验都方便许多。每章结尾增加了在线小程序来帮助学生发现一些问题的可视化解决方法。组织这本书由18章和8个附录构成。1.章节章节的作用是提供基本的学习材料,但并不是书中的每一个章节都对学生有利用价值。教这门课的老师可以自主选择教学用的章节。我们会在后面提供一份教学指南。2.附录附录的作用是为理解书中讨论的概念所需的材料提供一个快速的参照或复习。本书中有8个可供学生参照和学习的附录。3.缩略语本书包含一份缩略语表来帮助快速寻找到对应的术语。4.术语表为了使学生熟悉书中使用的术语,本书提供一份广泛的术语表。教学法本书中的部分教学法是为使学生可以非常简便地理解书中内容而设计的。1.图文并茂本书图文并茂,而且不使用复杂的公式来展示高深内容。本书附图超过400幅,以便读者形象而直观地了解本书内容。图片对于解释构成整体的各组件之间的关系极为重要。对于很多学生来说,这些概念通过图片相比文字更容易掌握。2.重点把重要的概念放在阴影框中以便快速参考和即时注意。3.范例和应用在合适的情况下,在书中引入了可以说明概念的例子。4.算法第3版增加了几十个算法,有助于学生熟悉问题求解和编程。

    UML本书通篇使用UML图以使学生熟悉该工具,因为这已经成为业界的实际标准。

    6.章末材料每一章以一系列材料结尾,包括以下部分:(1)推荐读物这部分给出该章推荐书目列表。这些列表也用于参考引用。(2)小结每章结尾的小结都包括了对该章中所有内容的概括。小结把该章最重要的内容都整合在一起以便阅读。7.练习每章包括为强化重要概念同时鼓励学生进行实践而设计的练习。练习包括四部分内容:小测验、复习题、练习题和小程序。(1)小测验本书网站上的小测验提供对概念掌握情况的快速测试。学生可以通过这些小测验来检测对所学内容的理解。(2)复习题这个部分包括与书中讨论到的概念有关的简单题。本书网站上为学生提供了奇数编号复习题的答案以供核对。(3)练习题这一部分包括难度更大的题目,这些题目的求解需要对该章讨论的内容有更深层次的理解。我强烈推荐学生去尝试求解这部分的全部题目。奇数编号练习题的答案也已经公布在了本书网站以便学生进行核对。(4)小程序Java小程序是作者编写并发布在网站上的交互式试验。这里的小程序有些用于更好地理解部分练习题的解答,而有些则用于更好地通过实践理解网络的概念。小程序是为了简化对部分范例的理解而专门设计的。教师资源本书为教该课程的老师提供完整的以下教学资源。他们可以从本书网站下载。1.演示文稿本书网站为教授该课程的老师提供了一系列彩色的、动画式的幻灯片演示文稿。2.练习的答案本书网站为教授该课程的老师提供了所有复习题和练习题的答案。如何使用本书本书的章节提供了较大的灵活性组织。我建议以下几点:第1~8章内容对理解本书剩下内容而言是必要的。如果时间允许,可以教授第9~14 章内容。在学季制(quarter)中这些内容可以省去。第15~18章内容的教授应该基于学生的专业和老师的辨别力进行选择。

    目 录

    第1章  绪论1.1  图灵模型1.2  冯·诺依曼模型1.3  计算机组成部分1.4  历史1.5 社会问题和道德问题1.6 计算机科学作为一门学科1.7 课程纲要1.8  章末材料1.9 练习 第2章  数字系统2.1  引言2.2  位置化数字系统2.3  非位置化数字系统2.4 章末材料2.5 练习 第3章 数据存3.1 数据类型3.2 存储数字3.2.1 存储整数3.2.2 3种系统的比较3.3 存储文本3.4 存储音频3.4.1 采样3.4.2 量化3.4.3 编码3.4.4 声音编码标准3.5 存储图像3.5.1 光栅图3.5.2 矢量图3.6 存储视频3.7 章末材料3.8 练习第4章 数据运算4.1 逻辑运算4.1.1 位层次上的逻辑运算4.1.2 模式层次上的逻辑运算4.2 移位运算4.3 算术运算4.3.1 整数的算术运算4.3.2 实数的算术运算4.4 章末材料4.5 练习第5章 计算机组成5.1 引言5.2 中央处理单元5.2.1 算术逻辑单5.2.2 寄存器5.2.3 控制单元5.3 主存储器5.3.1 地址空间5.3.2 存储器的类型5.3.3 存储器的层次结构5.3.4 高速缓冲存储器5.4 输入/输出子系统5.4.1 非存储设备5.4.2 存储设备5.5 子系统的互连5.5.1 CPU和存储器的连接5.5.2 I/O设备的连接5.5.3 输入/输出设备的寻址5.6 程序执行5.6.1 机器周期5.6.2 输入/输出操作5.7 不同的体系结构5.7.1 CISC5.7.2 RISC5.7.3 流水线5.7.4 并行处理5.8 简单计算机5.8.1 CPU5.8.2 主存5.8.3 输入/输出子系统5.8.4 指令集5.8.5 处理指令5.8.6 存储程序和数据5.8.7 指令周期5.8.8 另一个例子5.8.9 可重用性5.9 章末材料5.10 练习第6章 计算机网络和因特网6.1 引言6.1.1 网络6.1.2 因特网6.1.3 硬件和软件6.1.4 协议分层6.1.5 TCP/IP协议族6.2 应用层6.2.1 提供服务6.2.2 应用层模式6.2.3 标准化客户机-服务器应用6.2.4 文件传输协议6.2.5 电子邮件6.2.6 TELNET6.2.7 安全外壳6.2.8 域名系统6.2.9 端到端模式6.3 传输层6.3.1 传输层服务6.3.2 传输层协议6.4 网络层6.4.1 网络层提供的服务6.4.2 网络层协议6.5 数据链路层6.5.1 节点和链接6.5.2 局域网6.5.3 广域网6.6 物理层6.6.1 数据和信号6.6.2 数字化传输6.6.3 模拟传输6.7 传输介质6.7.1 导向介质6.7.2 非导向介质:无线6.8 章末材料6.9 练习第7章 操作系统7.1 引言7.1.1 操作系统7.1.2 自举过程7.2 演化7.2.1 批处理系统7.2.2 分时系统7.2.3 个人系统7.2.4 并行系统7.2.5 分布式系统7.2.6 实时系统7.3 组成部分7.3.1 用户界面7.3.2 内存管理器7.3.3 进程管理器7.3.4 文件管理器7.4 主流操作系统7.4.1 UNIX7.4.2 Linux7.4.3 Windows 7.5 章末材料7.6 练习第8章 算法8.1 概念8.1.1 非正式定义8.1.2 定义动作8.1.3 细化8.1.4 泛化8.2 三种结构8.2.1 顺序8.2.2 判断8.2.3 循环8.3 算法的表示8.3.1 UML8.3.2 伪代码8.4 更正式的定义8.4.1 定义良好8.4.2 明确步骤8.4.3 产生结果8.4.4 在有限的时间内终止8.5 基本算法8.5.1 求和8.5.2 乘8.5.3 最大和最小8.5.4 排序8.5.5 查找8.6 子算法8.7 递归8.7.1 迭代的定义8.7.2 递归的定义8.8 章末材料8.9 练习第9章 程序设计语言9.1 演化9.1.1 机器语言9.1.2 汇编语言9.1.3 高级语言 9.2 翻译9.2.1 编译9.2.2 解释9.2.3 翻译过程9.3 编程模式9.3.1 过程式模式9.3.2 面向对象模式9.3.3 函数式模式9.3.4 说明式模式9.4 共同概念9.4.1 标识符9.4.2 数据类型9.4.3 语句9.5 章末材料9.6 练习第10章 软件工程10.1 软件生命周期10.2 分析阶段10.2.1 面向过程分析10.2.2 面向对象分析10.3 设计阶段10.3.1 面向过程设计10.3.2 面向对象设计10.4 实现阶段10.4.1 语言的选择10.4.2 软件质量10.5 测试阶段10.5.1 白盒测试10.5.2 黑盒测试10.6 文档10.6.1 用户文档10.6.2 系统文档10.6.3 技术文档10.7 章末材料10.8 练习第11章 数据结构19711.1 数组11.1.1 数组名与元素名11.1.2 多维数组11.1.3 存储配置11.1.4 数组操作11.1.5 数组的应用11.2 记录11.2.1 记录名与域名11.2.2 记录与数组的比较11.2.3 记录数组11.2.4 数组与记录数组11.3 链表11.3.1 数组与链表11.3.2 链表名与节点名11.3.3 链表操作11.3.4 链表的应用11.4 章末材料11.5 练习第12章 抽象数据类型12.1 背景12.1.1 简单抽象数据类型12.1.2复杂抽象数据类型12.1.3 定义12.1.4 抽象数据类型的模型12.1.5实现12.2栈12.2.1栈的操作12.2.2栈的抽象数据类型12.2.3栈的应用12.2.4栈的实现12.3队列12.3.1队列的操作12.3.2队列抽象数据类型12.3.3队列的应用12.3.4队列的实现12.4广义线性表12.4.1广义线性表的操作12.4.2广义线性表的抽象数据类型12.4.3广义线性表的应用12.4.4广义线性表的实现12.5树12.5.1二叉树12.5.2二叉树的操作12.5.3二叉树的应用12.5.4二叉树的实现12.5.5二叉搜索树12.5.6二叉搜索树的抽象数据类型12.5.7二叉搜索树的实现12.6图12.7章末材料12.8练习第13章 文件结构13.1引言13.1.1顺序存取13.1.2随机存取13.2顺序文件13.3索引文件13.4散列文件13.4.1散列方法13.4.2冲突13.5目录13.6文本文件与二进制文件13.6.1文本文件13.6.2二进制文件13.7章末材料13.8练习第14章 数据库14.1引言14.1.1定义14.1.2数据库的优点14.1.3数据库管理系统14.2数据库体系结构14.2.1内层14.2.2概念层14.2.3外层14.3数据库模型14.4关系数据库模型14.5关系的操作14.5.10 差14.6 数据库设计14.6.1 实体关系模型14.6.2 从E-R图到关系14.6.3 规范化14.7 其他数据库模型14.8 章末材料14.9 练习第15章 数据压缩15.1 引言15.2 无损压缩15.2.1 游程长度编码15.2.2 赫夫曼编码15.2.3 Lempel Ziv编码15.3 有损压缩方法15.3.1 图像压缩:JPEG15.3.2 视频压缩:MPEG15.3.3 音频压缩15.4 章末材料15.5 练习第16章 安全16.1引言16.1.1安全目标16.1.2攻击16.1.3 服务和技术16.2 机密性16.2.1 对称密钥密码术16.2.2 非对称密钥密码术16.3 其他安全服务16.3.1 消息完整性16.3.2 消息验证16.3.3 数字签名16.3.4 实体验证16.3.5 密钥管理16.4 防火墙16.4.1 包过滤防火墙16.4.2 代理防火墙16.5 章末材料16.6 练习第17章 计算理论17.1 引言17.2 简单语言17.2.1 递增语句 17.2.2 递减语句17.2.3 循环语句17.2.4 简单语言的威力17.3 图灵机17.3.1 图灵机组成部件17.3.2 对简单语言的模拟17.3.3 邱奇-图灵论题17.4 歌德尔数17.4.1 表示一个程序17.4.2 翻译一个数字17.5 停机问题17.6 问题的复杂度17.6.1 不可解问题17.6.2 可解问题17.7 章末材料17.8 练习第18章 人工智能18.1引言18.1.1 什么是人工智能18.1.2 人工智能简史18.1.3 图灵测试18.1.4 智能体18.1.5 编程语言18.2 知识表示 18.2.1 语义网18.2.2 框架18.2.3 谓词逻辑18.2.4 基于规则的系统18.3 专家系统18.3.1 抽取知识18.3.2 抽取事实18.3.3 体系结构18.4 感知18.4.1 图像处理18.4.2 语言理解18.5 搜索18.6 神经网络18.6.1 生物神经元18.6.2 感知器18.6.3 多层网络 18.6.4 应用18.7 章末材料18.8 练习附录A Unicode附录B UML附录C 伪代码附录D 结构图附录E 布尔代数和逻辑电路附录F C、C++和Java程序示例附录G 数学知识附录H 误差检测和校正缩略语术语表

    相关资源:敏捷开发V1.0.pptx
    最新回复(0)