🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
| 《计算机科学导论(第3版)》 | 《计算机科学概论(第12版)》 | 《计算机系统概论》| 《 计算机科学导论·以Python为舟》| | :--- | :--- | :--- | :--- | | ![](https://img1.doubanio.com/view/subject/l/public/s28418968.jpg) | ![fds](https://img1.doubanio.com/view/subject/l/public/s29404618.jpg) | ![](https://img3.doubanio.com/view/subject/l/public/s5834843.jpg) |![sf](https://img3.doubanio.com/view/subject/l/public/s28053172.jpg)| |本书着重讲解基本概念而不是数学模型和技术细节,通过大量的图表和演示范例讲解计算机科学的基础知识;每章后面的关键术语、小结和练习有助于读者掌握和复习知识要点。|首先介绍的是信息编码及计算机体系结构的基本原理,进而讲述操作系统和组网及因特网,接着探讨算法、程序设计语言及软件工程,然后讨论数据抽象和数据库方面的问题,讲述图形学的一些主要应用以及人工智能,以计算理论的介绍结束全书。|全书以自底向上方法帮助学生理解计算机系统的原理,前半部分阐述了计算机底层结构,后半部分讲解了高级语言编程及编程方法学,主要内容包括数据类型及其运算、数字逻辑、冯·诺伊曼模型、汇编语言、输入和输出、TRAP程序和子程序、C语言编程等内容。|主要内容包括计算机学什么、神奇的0与1、程序是如何执行的、学习Python语言与数据库知识、计算思维的核心——算法、操作系统、计算机网络与物联网、信息安全等。| |第1章绪论<br/>1.1图灵模型<br/>1.1.1数据处理器<br/>1.1.2可编程数据处理器<br/>1.1.3通用图灵机<br/>1.2冯·诺依曼模型<br/>1.2.1 4个子系统<br/>1.2.2存储程序概念<br/>1.2.3 指令的顺序执行<br/>1.3计算机组成部分<br/>1.3.1计算机硬件<br/>1.3.2数据<br/>1.3.3计算机软件<br/>1.4历史<br/>1.4.1机械计算机器(1930年以前)<br/>1.4.2 电子计算机的诞生(1930~<br/>1950年)<br/>1.4.3计算机的诞生(1950年至今)<br/>1.5社会问题和道德问题<br/>1.5.1社会问题<br/>1.5.2道德问题<br/>1.6计算机科学作为一门学科<br/>1.7课程纲要<br/>1.7.1 第一部分:数据的表示与运算<br/>1.7.2第二部分:计算机硬件<br/>1.7.3第三部分:计算机软件<br/>1.7.4第四部分:数据组织与抽象<br/>1.7.5第五部分:高级话题<br/>1.8章末材料<br/>1.9练习<br/>第2章数字系统<br/>2.1引言<br/>2.2位置化数字系统<br/>2.2.1 十进制系统(以10为底)<br/>2.2.2二进制系统(以2为底)<br/>2.2.3 十六进制系统(以16为底)<br/>2.2.4八进制系统(以8为底)<br/>2.2.5 4种位置化数字系统的小结<br/>2.2.6转换<br/>2.3非位置化数字系统<br/>2.4章末材料<br/>2.5练习<br/>第3章数据存储<br/>3.1数据类型<br/>3.2存储数字<br/>3.2.1存储整数<br/>3.2.2 3种系统的比较<br/>3.2.3 实数<br/>3.3存储文本<br/>3.4存储音频<br/>3.4.1.采样<br/>3.4.2量化<br/>3.4.3编码<br/>3.4.4声音编码标准<br/>3.5存储图像<br/>3.5.1光栅图<br/>3.5.2矢量图<br/>3.6存储视频<br/>3.7章末材料<br/>3.8练习<br/>第4章数据运算<br/>4.1逻辑运算<br/>4.1.1位层次上的逻辑运算<br/>6.7.1导向介质<br/>6.7.2非导向介质<br/>6.8章末材料<br/>6.9练习<br/>第7章操作系统<br/>7.1引言<br/>7.1.1操作系统<br/>7.1.2自举过程<br/>7.2演化<br/>7.2.1批处理系统<br/>7.2.2分时系统<br/>7.2.3个人系统<br/>7.2.4并行系统<br/>7.2.5分布式系统<br/>7.2.6实时系统<br/>7.3组成部分<br/>7.3.1 用户界面<br/>7.3.2 内存管理器<br/>7.3.3进程管理器<br/>7.3.4 文件管理器<br/>7.4主流操作系统<br/>7.4.1 UNIX<br/>7.4.2 Linux<br/>7.4-3 WindOWS<br/>7.5章末材料<br/>7.6练习<br/>第8章算法<br/>8.1概念<br/>8.1.1 非正式定义<br/>8.1.2定义动作<br/>8.1.3细化<br/>8 .1.4泛化<br/>8.2三种结构<br/>8.2.1顺序<br/>8.2.2一判断<br/>8.2.3循环<br/>8.3算法的表示<br/>8.3.1 UML<br/>8.3.2伪代码<br/>8.4更正式的定义<br/>8.4.1定义良好<br/>8.4.2明确步骤<br/>8.4.3产生结果<br/>8.4.4在有限的时间内终止<br/>8.5基本算法<br/>8.5.1求和<br/>8.5.2乘积<br/>8.5.3 最大和最小<br/>8.5.4排序<br/>8.5.5查找<br/>8.6子算法<br/>8.7递归<br/>8.7.1迭代的定义<br/>8.7.2递归的定义<br/>8.8章末材料<br/>8.9练习<br/>第9章程序设计语言<br/>9.1演化<br/>9.1.1机器语言<br/>9.1.2汇编语言<br/>9.1.3 高级语言<br/>9.2翻译<br/>9.2.1编译<br/>9.2.2解释<br/>9.2.3 翻译过程<br/>9.3编程模式<br/>9.3.1过程式模式<br/>9.3.2面向对象模式<br/>9.3.3 函数式模式<br/>9.3.4说明式模式<br/>9.4共同概念<br/>9.4.1标识符<br/>9.4.2数据类型<br/>9.4.3语句<br/>9.5章末材料<br/>9.6练习<br/>第10章软件工程<br/>10.1软件生命周期<br/>10.2分析阶段<br/>10.2.1 面向过程分析<br/>10.2.2 面向对象分析<br/>10.3设计阶段<br/>10.3.1 面向过程设计<br/>10.3.2 面向对象设计<br/>10.4实现阶段<br/>10.4.1语言的选择<br/>10.4.2软件质量<br/>10.5测试阶段<br/>10.5.1 白盒测试<br/>10.5.2黑盒测试<br/>10.6文档<br/>10.6.1用户文档<br/>10.6.2 系统文档<br/>10.6.3技术文档<br/>10.7章末材料<br/>10.8练习 一<br/>第11章数据结构<br/>11.1数组<br/>11.1.1数组名与元素名<br/>11.1.2多维数组<br/>11.1.3存储配置<br/>11.1.4数组操作<br/>11.1.5数组的应用<br/>11.2记录<br/>11.2.1 记录名与域名<br/>11.2.2记录与数组的比较<br/>11.2.3记录数组<br/>11.2.4数组与记录数组<br/>11.3链表<br/>11.3.1数组与链表<br/>11.3.2链表名与节点名<br/>11.3.3链表操作<br/>11.3.4链表的应用<br/>11.4章末材料<br/>11.5练习<br/>第1 2章抽象数据类型<br/>12.1背景<br/>12.1.1 简单抽象数据类型<br/>12.1.2复杂抽象数据类型<br/>12.1.3定义<br/>12.1.4抽象数据类型的模型<br/>12.1.5实现<br/>12.2栈<br/>12.2.1栈的操作<br/>12.2.2栈的抽象数据类型<br/>12.2.3栈的应用<br/>12.2.4栈的实现<br/>12.3队列<br/>12.3.1 队列的操作<br/>12.3.2队列抽象数据类型<br/>12.3.3 队列的应用<br/>12.3.4 队列的实现<br/>12.4广义线性表<br/>12.4.1 广义线性表的操作<br/>12.4.2广义线性表的抽象数据类型<br/>12.4.3 广义线性表的应用<br/>12.4.4广义线性表的实现<br/>12.5树<br/>12.5.1二叉树<br/>12.5.2二叉树的操作<br/>12.5.3二叉树的应用<br/>12.5.4二叉树的实现<br/>12.5.5二叉搜索树<br/>12.5.6二叉搜索树的抽象数据<br/>类型<br/>12.5.7二叉搜索树的实现<br/>12.6 图<br/>12.7章末材料<br/>12.8练习<br/>第1 3章文件结构<br/>13.1引言<br/>13.¨顺序存取<br/>13.1.2随机存取<br/>13.2顺序文件<br/>13.3索引文件<br/>13.4散列文件<br/>13.4.1散列方法<br/>13.4.2冲突<br/>13.5目录<br/>13.6文本文件与二进制文件<br/>13.6.1文本文件<br/>13.6.2二进制文件<br/>13.7章末材料<br/>13.8练习<br/>第14章数据库<br/>14.1引言<br/>14.1.1定义<br/>14.1.2数据库的优点<br/>14.1.3数据库管理系统<br/>14.2数据库体系结构<br/>14.2.1 内层<br/>14.2.2概念层<br/>14.2.3外层 一<br/>14.3数据库模型<br/>14.3.1层次模型<br/>14.3.2 网状模型<br/>14.3.3 关系模型<br/>14.4关系数据库模型<br/>14.5关系的操作<br/>14.5.1 结构化查询语言<br/>14.5.2插入<br/>14.5.3删除<br/>14.5.4更新<br/>14.5.5选择<br/>14.5.6投影<br/>14.5.7连接<br/>14.5.8并<br/>14.5.9交<br/>14.5.10差<br/>14.6数据库设计<br/>14.6.1 实体关系模型<br/>14.6.2从E-R图至0关系<br/>14.6.3规范化<br/>14.7其他数据库模型<br/>14.8章末材料<br/>14.9练习<br/>第1 5章数据压缩<br/>15.1引言<br/>15.2无损压缩<br/>15.2.1 游程长度编码<br/>15.2.2赫夫曼编码<br/>15.2.3 LempelZiv编码<br/>15.3有损压缩方法<br/>15.3.1 图像压缩:JPEG-<br/>15.3.2视频压缩:MPEG<br/>15.3.3 音频压缩<br/>15.4章末材料<br/>15.5练习<br/>第16章安全<br/>16.1引言<br/>16.1.1安全目标<br/>16.1.2攻击<br/>16.1.3服务和技术<br/>16.2机密性<br/>16.2.1 对称密钥密码术<br/>16.2.2非对称密钥密码术<br/>16.3其他安全服务<br/>16.3.1 消息完整性<br/>16.3.2消息验证<br/>16.3.3数字签名<br/>16.3.4实体验证<br/>16.3.5 密钥管理<br/>16.4防火墙<br/>16.4.1 包过滤防火墙<br/>16.4.2代理防火墙<br/>16.5章末材料<br/>16.6练习<br/>第1 7章计算理论<br/>17.1引言<br/>?17.2简单语言<br/>17.2.1递增语句<br/>17.2.2递减语句<br/>17.2.3循环语句<br/>17.2.4 简单语言的威力<br/>17.3图灵机<br/>17.3.1 图灵机组成部件<br/>17.3.2对简单语言的模拟<br/>17.3.3邱奇一图灵论题<br/>17.4歌德尔数<br/>17.4.1表示一个程序<br/>17.4.2翻译一个数字<br/>17.5停机问题<br/>17.6问题的复杂度<br/>17.6.1 不可解问题<br/>17.6.2可解问题<br/>17.7章末材料<br/>17.8练习<br/>第1 8章人工智能<br/>18.1引言<br/>18.1.1什么是人工智能<br/>18.1.2人工智能简史<br/>18.1.3 图灵测试<br/>18.1.4智能体<br/>18.1.5编程语言<br/>18.2知识表示<br/>18.2.1语义网<br/>18.2.2框架<br/>18.2.3谓词逻辑<br/>18.2.4基于规则的系统<br/>18.3专家系统<br/>18.3.1抽取知识<br/>18.3.2抽取事实<br/>18.3.3体系结构<br/>18.4感知 -<br/>18.4.1图像处理<br/>18.4.2语言理解<br/>18.5搜索 -<br/>18.6神经网络<br/>18.6.1 生物神经元<br/>18.6.2感知器<br/>18.6.3多层网络<br/>18.6.4应用<br/>18.7章末材料<br/>18.8练习<br/>附录A Unicode<br/>附录B UML<br/>附录C伪代码<br/>附录D结构图<br/>附录E布尔代数和逻辑电路<br/>附录FC、C++和Java程序示例<br/>附录G数学知识<br/>附录H误差检测和校正<br/>缩略语<br/>术语表|第0章 绪论 1<br/>0.1 算法的作用 1<br/>0.2 计算机器的由来 3<br/>0.3 学习大纲 6<br/>0.4 计算机科学的首要主题 7<br/>0.4.1 算法 8<br/>0.4.2 抽象 9<br/>0.4.3 创新 9<br/>0.4.4 数据 10<br/>0.4.5 程序设计 10<br/>0.4.6 因特网 10<br/>0.4.7 影响 11<br/>社会问题 11<br/>课外阅读 13<br/>第1章 数据存储 14<br/>1.1 位和位存储 14<br/>1.1.1 布尔运算 14<br/>1.1.2 门和触发器 15<br/>1.1.3 十六进制记数法 18<br/>1.2 主存储器 19<br/>1.2.1 存储器结构 19<br/>1.2.2 存储器容量的度量 20<br/>1.3 海量存储器 21<br/>1.3.1 磁系统 21<br/>1.3.2 光系统 22<br/>1.3.3 闪存驱动器 23<br/>1.4 用位模式表示信息 24<br/>1.4.1 文本的表示 24<br/>1.4.2 数值的表示 26<br/>1.4.3 图像的表示 27<br/>1.4.4 声音的表示 27<br/>*1.5 二进制系统 29<br/>1.5.1 二进制记数法 29<br/>1.5.2 二进制加法 30<br/>1.5.3 二进制中的小数 31<br/>*1.6 整数的存储 32<br/>1.6.1 二进制补码记数法 33<br/>1.6.2 余码记数法 35<br/>*1.7 小数的存储 37<br/>1.7.1 浮点记数法 37<br/>1.7.2 截断误差 38<br/>*1.8 数据与程序设计 40<br/>1.8.1 Python入门 41<br/>1.8.2 你好,Python 41<br/>1.8.3 变量 42<br/>1.8.4 运算符和表达式 43<br/>1.8.5 货币转换 44<br/>1.8.6 调试 44<br/>*1.9 数据压缩 45<br/>1.9.1 通用的数据压缩技术 45<br/>1.9.2 图像压缩 47<br/>1.9.3 音频和视频压缩 48<br/>*1.10 通信差错 49<br/>1.10.1 奇偶校验位 49<br/>1.10.2 纠错码 50<br/>复习题 52<br/>社会问题 55<br/>课外阅读 56<br/>第2章 数据操控 57<br/>2.1 计算机体系结构 57<br/>2.1.1 CPU基础知识 57<br/>2.1.2 存储程序概念 58<br/>2.2 机器语言 59<br/>2.2.1 指令系统 60<br/>2.2.2 一种演示用的机器语言 61<br/>2.3 程序执行 64<br/>2.3.1 程序执行的一个例子 65<br/>2.3.2 程序与数据 67<br/>*2.4 算术/逻辑指令 69<br/>2.4.1 逻辑运算 69<br/>2.4.2 循环移位运算及移位运算 70<br/>2.4.3 算术运算 71<br/>*2.5 与其他设备通信 72<br/>2.5.1 控制器的作用 72<br/>2.5.2 直接存储器存取 74<br/>2.5.3 握手 74<br/>2.5.4 流行的通信媒介 74<br/>2.5.5 通信速率 75<br/>*2.6 数据操控编程 76<br/>2.6.1 逻辑运算和移位运算 76<br/>2.6.2 控制结构 77<br/>2.6.3 输入和输出 79<br/>2.6.4 马拉松训练助手 80<br/>*2.7 其他体系结构 82<br/>2.7.1 流水线 82<br/>2.7.2 多处理器机器 83<br/>复习题 84<br/>社会问题 89<br/>课外阅读 90<br/>第3章 操作系统 91<br/>3.1 操作系统的历史 91<br/>3.2 操作系统的体系结构 94<br/>3.2.1 软件概述 94<br/>3.2.2 操作系统组件 96<br/>3.2.3 系统启动 98<br/>3.3 协调机器的活动 100<br/>3.3.1 进程的概念 100<br/>3.3.2 进程管理 100<br/>*3.4 处理进程间的竞争 102<br/>3.4.1 信号量 102<br/>3.4.2 死锁 103<br/>3.5 安全性 105<br/>3.5.1 来自外部的攻击 106<br/>3.5.2 来自内部的攻击 106<br/>复习题 108<br/>社会问题 110<br/>课外阅读 110<br/>第4章 组网及因特网 112<br/>4.1 网络基础 112<br/>4.1.1 网络分类 112<br/>4.1.2 协议 113<br/>4.1.3 组合网络 115<br/>4.1.4 进程间通信的方法 117<br/>4.1.5 分布式系统 118<br/>4.2 因特网 118<br/>4.2.1 因特网体系结构 119<br/>4.2.2 因特网编址 120<br/>4.2.3 因特网应用 122<br/>4.3 万维网 126<br/>4.3.1 万维网实现 126<br/>4.3.2 HTML 127<br/>4.3.3 XML 129<br/>4.3.4 客户端和服务器端的活动 130<br/>*4.4 因特网协议 132<br/>4.4.1 因特网软件的分层方法 132<br/>4.4.2 TCP/IP协议簇 134<br/>4.5 安全性 136<br/>4.5.1 入侵的形式 136<br/>4.5.2 防护和对策 137<br/>4.5.3 加密 138<br/>4.5.4 网络安全的法律途径 140<br/>复习题 142<br/>社会问题 143<br/>课外阅读 144<br/>第5章 算法 146<br/>5.1 算法的概念 146<br/>5.1.1 非正式的回顾 146<br/>5.1.2 算法的正式定义 147<br/>5.1.3 算法的抽象本质 148<br/>5.2 算法的表示 148<br/>5.2.1 原语 149<br/>5.2.2 伪代码 151<br/>5.3 算法的发现 154<br/>5.3.1 问题求解的艺术 155<br/>5.3.2 迈出第一步 156<br/>5.4 迭代结构 159<br/>5.4.1 顺序搜索算法 159<br/>5.4.2 循环控制 160<br/>5.4.3 插入排序算法 164<br/>5.5 递归结构 167<br/>5.5.1 二分搜索算法 167<br/>5.5.2 递归控制 171<br/>5.6 效率和正确性 174<br/>5.6.1 算法效率 174<br/>5.6.2 软件验证 177<br/>复习题 180<br/>社会问题 185<br/>课外阅读 185<br/>第6章 程序设计语言 186<br/>6.1 历史回顾 186<br/>6.1.1 早期程序设计语言 186<br/>6.1.2 机器无关和超越机器无关 188<br/>6.1.3 程序设计范型 189<br/>6.2 传统的程序设计概念 192<br/>6.2.1 变量和数据类型 193<br/>6.2.2 数据结构 195<br/>6.2.3 常量和字面量 196<br/>6.2.4 赋值语句 197<br/>6.2.5 控制语句 198<br/>6.2.6 注释 201<br/>6.3 过程单元 202<br/>6.3.1 函数 202<br/>6.3.2 参数 203<br/>6.3.3 有返回值的函数 205<br/>6.4 语言实现 207<br/>6.4.1 翻译过程 207<br/>6.4.2 软件开发包 212<br/>6.5 面向对象程序设计 213<br/>6.5.1 类和对象 213<br/>6.5.2 构造器 216<br/>6.5.3 附加特性 217<br/>*6.6 程序设计并发活动 218<br/>*6.7 说明性程序设计 220<br/>6.7.1 逻辑推演 220<br/>6.7.2 Prolog 222<br/>复习题 224<br/>社会问题 227<br/>课外阅读 228<br/>第7章 软件工程 229<br/>7.1 软件工程学科 229<br/>7.2 软件生命周期 231<br/>7.2.1 周期是个整体 231<br/>7.2.2 传统的开发阶段 232<br/>7.3 软件工程方法学 234<br/>7.4 模块化 236<br/>7.4.1 模块式实现 236<br/>7.4.2 耦合 238<br/>7.4.3 内聚 239<br/>7.4.4 信息隐藏 239<br/>7.4.5 构件 240<br/>7.5 行业工具 241<br/>7.5.1 较老的工具 241<br/>7.5.2 统一建模语言 242<br/>7.5.3 设计模式 246<br/>7.6 质量保证 247<br/>7.6.1 质量保证的范围 247<br/>7.6.2 软件测试 248<br/>7.7 文档 249<br/>7.8 人机界面 250<br/>7.9 软件所有权和责任 252<br/>复习题 254<br/>社会问题 256<br/>课外阅读 257<br/>第8章 数据抽象 258<br/>8.1 基本数据结构 258<br/>8.1.1 数组和聚合 258<br/>8.1.2 列表、栈和队列 259<br/>8.1.3 树 260<br/>8.2 相关概念 261<br/>8.2.1 抽象 261<br/>8.2.2 静态结构与动态结构 261<br/>8.2.3 指针 262<br/>8.3 数据结构的实现 263<br/>8.3.1 存储数组 263<br/>8.3.2 存储聚合 265<br/>8.3.3 存储列表 266<br/>8.3.4 存储栈和队列 268<br/>8.3.5 存储二叉树 270<br/>8.3.6 操控数据结构 272<br/>8.4 一个简短的案例 273<br/>8.5 定制的数据类型 277<br/>8.5.1 用户定义的数据类型 277<br/>8.5.2 抽象数据类型 278<br/>8.6 类和对象 280<br/>*8.7 机器语言中的指针 282<br/>复习题 284<br/>社会问题 287<br/>课外阅读 288<br/>第9章 数据库系统 290<br/>9.1 数据库基础 290<br/>9.1.1 数据库系统的重要性 290<br/>9.1.2 模式的作用 291<br/>9.1.3 数据库管理系统 292<br/>9.1.4 数据库模型 293<br/>9.2 关系模型 294<br/>9.2.1 关系设计中的问题 294<br/>9.2.2 关系运算 297<br/>9.2.3 SQL 300<br/>*9.3 面向对象数据库 302<br/>*9.4 维护数据库的完整性 304<br/>9.4.1 提交/回滚协议 304<br/>9.4.2 锁定 305<br/>*9.5 传统的文件结构 307<br/>9.5.1 顺序文件 307<br/>9.5.2 索引文件 309<br/>9.5.3 散列文件 310<br/>9.6 数据挖掘 313<br/>9.7 数据库技术的社会影响 314<br/>复习题 316<br/>社会问题 319<br/>课外阅读 320<br/>第10章 计算机图形学 321<br/>10.1 计算机图形学的范围 321<br/>10.2 3D图形概述 322<br/>10.3 建模 324<br/>10.3.1 单个物体的建模 324<br/>10.3.2 整个场景的建模 327<br/>10.4 渲染 329<br/>10.4.1 光-表面交互 329<br/>10.4.2 裁剪、扫描转换和隐藏面的<br/>消除 331<br/>10.4.3 着色 333<br/>10.4.4 渲染-流水线硬件 334<br/>*10.5 处理全局照明 335<br/>10.5.1 光线跟踪 336<br/>10.5.2 辐射度 337<br/>10.6 动画 338<br/>10.6.1 动画基础 338<br/>10.6.2 动力学和运动学 339<br/>10.6.3 动画制作过程 340<br/>复习题 341<br/>社会问题 342<br/>课外阅读 343<br/>第11章 人工智能 344<br/>11.1 智能与机器 344<br/>11.1.1 智能体 344<br/>11.1.2 研究方法 346<br/>11.1.3 图灵测试 346<br/>11.2 感知 347<br/>11.2.1 理解图像 347<br/>11.2.2 语言处理 349<br/>11.3 推理 352<br/>11.3.1 产生式系统 352<br/>11.3.2 搜索树 354<br/>11.3.3 启发式法 356<br/>11.4 其他研究领域 360<br/>11.4.1 知识的表达和处理 360<br/>11.4.2 学习 361<br/>11.4.3 遗传算法 362<br/>11.5 人工神经网络 363<br/>11.5.1 基本特性 363<br/>11.5.2 训练人工神经网络 365<br/>11.5.3 联想记忆 367<br/>11.6 机器人学 369<br/>11.7 后果的思考 371<br/>复习题 372<br/>社会问题 376<br/>课外阅读 377<br/>第12章 计算理论 378<br/>12.1 函数及其计算 378<br/>12.2 图灵机 380<br/>12.2.1 图灵机的原理 380<br/>12.2.2 丘奇-图灵论题 382<br/>12.3 通用程序设计语言 383<br/>12.3.1 Bare Bones语言 383<br/>12.3.2 用Bare Bones语言编程 385<br/>12.3.3 Bare Bones的通用性 385<br/>12.4 一个不可计算的函数 387<br/>12.4.1 停机问题 387<br/>12.4.2 停机问题的不可解性 388<br/>12.5 问题的复杂性 391<br/>12.5.1 问题复杂性的度量 391<br/>12.5.2 多项式问题与非多项式问题 394<br/>12.5.3 NP问题 395<br/>*12.6 公钥密码学 397<br/>12.6.1 模表示法 398<br/>12.6.2 RSA公钥密码学 399<br/>复习题 400<br/>社会问题 403<br/>课外阅读 404<br/>附录A ASCII码 405<br/>附录B 用于处理二进制补码表示的电路 406<br/>附录C 一种简单的机器语言 408<br/>附录D 高级程序设计语言 410<br/>附录E 迭代结构与递归结构的等价性 412<br/>索引 414|第1章 欢迎阅读本书<br/>1.1 我们的目标<br/>1.2 怎么才能做到<br/>1.3 两个反复出现的理念<br/>1.3.1 抽象之理念<br/>1.3.2 硬件与软件<br/>1.4 计算机系统简述<br/>1.5 两个非常重要的思想<br/>1.6 计算机:通用计算设备<br/>1.7 从问题描述到电子运转<br/>1.7.1 问题的提出<br/>1.7.2 算法<br/>1.7.3 程序<br/>1.7.4 指令集结构<br/>1.7.5 微结构<br/>1.7.6 逻辑电路<br/>1.7.7 器件<br/>1.7.8 小结<br/>1.8 习题<br/>第2章 bit、数据类型及其运算<br/>2.1 bit和数据类型<br/>2.1.1 bit——信息的基本单位<br/>2.1.2 数据类型<br/>2.2 整数数据类型<br/>2.2.1 无符号整数<br/>2.2.2 有符号整数<br/>2.3 补码<br/>2.4 二进制数与十进制数之间的转换<br/>2.4.1 二进制数转换为十进制数<br/>2.4.2 十进制数转换为二进制数<br/>2.5 bit运算之一:算术运算<br/>2.5.1 加法和减法<br/>2.5.2 符号扩展<br/>2.5.3 溢出<br/>2.6 bit运算之二:逻辑运算<br/>2.6.1 “与”运算<br/>2.6.2 “或”运算<br/>2.6.3 “非”运算<br/>2.6.4 “异或”运算<br/>2.7 其他类型<br/>2.7.1 位矢量<br/>2.7.2 浮点数<br/>2.7.3 ASCⅡ码<br/>2.7.4 十六进制计数法<br/>2.8 习题<br/>第3章 数字逻辑<br/>3.1 MOS晶体管<br/>3.2 逻辑门<br/>3.2.1 非门<br/>3.2.2 或门、或非门<br/>3.2.3 与门、与非门<br/>3.2.4 摩根定律<br/>3.2.5 多输入门<br/>3.3 组合逻辑<br/>3.3.1 译码器<br/>3.3.2 多路复用器<br/>3.3.3 全加器<br/>3.3.4 可编程逻辑阵列<br/>3.3.5 逻辑完备性<br/>3.4 存储单元<br/>3.4.1 R-S锁存器<br/>3.4.2 门控D锁存器<br/>3.4.3 寄存器<br/>3.5 内存的概念<br/>3.5.1 寻址空间<br/>3.5.2 寻址能力<br/>3.5.3 例子:22x3内存<br/>3.6 时序电路<br/>3.6.1 组合密码锁<br/>3.6.2 状态的概念<br/>3.6.3 有限状态机<br/>3.6.4 有限状态机的实现<br/>3.7 LC-3计算机的数据通路<br/>3.8 习题<br/>第4章 冯·诺伊曼模型<br/>4.1 基本部件<br/>4.1.1 内存<br/>4.1.2 处理单元<br/>4.1.3 输入和输出单元<br/>4.1.4 控制单元<br/>4.2 LC-3:一台冯·诺伊曼机器<br/>4.3 指令处理<br/>4.3.1 指令<br/>4.3.2 指令周期<br/>4.4 改变执行顺序<br/>4.5 停机操作<br/>4.6 习题<br/>第5章 LC-3结构<br/>5.1 ISA概述<br/>5.1.1 内存组织<br/>5.1.2 寄存器<br/>5.1.3 指令集<br/>5.1.4 操作码<br/>5.1.5 数据类型<br/>5.1.6 寻址模式<br/>5.1.7 条件码<br/>5.2 操作指令<br/>5.3 数据搬移指令<br/>5.3.1 PC相对寻址<br/>5.3.2 间接寻址<br/>5.3.3 基址偏移寻址<br/>5.3.4 立即数寻址<br/>5.3.5 一个例子<br/>5.4 控制指令<br/>5.4.1 条件跳转指令<br/>5.4.2 一个例子<br/>5.4.3 循环控制的两种方法<br/>5.4.4 例子:哨兵法数组求和<br/>5.4.5 JMP指令<br/>5.4.6 TRAP指令<br/>5.5 例子:字符数统计<br/>5.6 总结:数据通路(LC-3)<br/>5.6.1 数据通路的基本部件<br/>5.6.2 指令周期<br/>5.7 习题<br/>第6章 编程<br/>6.1 问题求解<br/>6.1.1 系统分解<br/>6.1.2 三种结构:顺序、条件、循环<br/>6.1.3 实现三种结构的LC-3指令<br/>6.1.4 回顾字符数统计例子<br/>6.2 调试<br/>6.2.1 调试的基本操作<br/>6.2.2 交互式调试器的使用<br/>6.3 习题<br/>第7章 汇编语言<br/>7.1 汇编语言编程——更上一层<br/>7.2 一个汇编程序<br/>7.2.1 指令<br/>7.2.2 伪操作<br/>7.2.3 例子:字符数统计程序<br/>7.3 汇编过程<br/>7.3.1 概述<br/>7.3.2 两遍扫描<br/>7.3.3 第1遍:创建符号表<br/>7.3.4 第2遍:生成机器语言程序<br/>7.4 相关知识<br/>7.4.1 可执行映像<br/>7.4.2 多目标文件<br/>7.5 习题<br/>第8章 输入/输出<br/>8.1 输入/输出的基本概念<br/>8.1.1 设备寄存器<br/>8.1.2 内存映射I/O与专用I/O指令<br/>8.1.3 异步I/O与同步I/O<br/>8.1.4 中断驱动与轮询<br/>8.2 键盘输入<br/>8.2.1 基本输入寄存器<br/>8.2.2 基本输入服务程序<br/>8.2.3 内存映射输入的实现<br/>8.3 显示器输出<br/>8.3.1 基本输出寄存器(DDR和DSR)<br/>8.3.2 基本输出服务程序<br/>8.3.3 内存映射输出的实现<br/>8.3.4 例子:键盘回显<br/>8.4 一个更复杂的输入程序<br/>8.5 中断驱动I/O<br/>8.5.1 什么是中断驱动I/O<br/>8.5.2 为什么要引入中断驱动I/O<br/>8.5.3 中断信号的产生<br/>8.6 内存映射I/O的回顾<br/>8.7 习题<br/>第9章 TRAP程序和子程序<br/>9.1 LC-3 TRAP程序<br/>9.1.1 概述<br/>9.1.2 TRAP机制<br/>9.1.3 TRAP指令<br/>9.1.4 完整机制<br/>9.1.5 I/O中断处理程序<br/>9.1.6 HALT中断程序<br/>9.1.7 寄存器内容的保存和恢复<br/>9.2 子程序<br/>9.2.1 调用/返回机制<br/>9.2.2 JSR(R)指令<br/>9.2.3 字符输入的TRAP程序<br/>9.2.4 PUTS:写字符串<br/>9.2.5 库程序<br/>9.3 习题<br/>第10章 栈<br/>10.1 栈的基本结构<br/>10.1.1 抽象数据类型:栈<br/>10.1.2 两个实现例子<br/>10.1.3 内存中的实现<br/>10.1.4 小结<br/>10.2 中断驱动I/O(第二部分)<br/>10.2.1 启动和执行<br/>10.2.2 中断返回<br/>10.2.3 例子:嵌套中断<br/>10.3 基于栈的算术运算<br/>10.3.1 栈的临时存储作用<br/>10.3.2 例子:算术表达式<br/>10.3.3 加、乘和取反<br/>10.4 数据类型转换<br/>10.4.1 一个错误结果的例子:2+3=e<br/>10.4.2 ASCⅡ/二进制转换<br/>10.4.3 二进制/ASCⅡ转换<br/>10.5 模拟计算器<br/>10.6 习题<br/>第11章 C语言编程概述<br/>11.1 我们的目标<br/>11.2 软硬件结合<br/>11.3 高级语言翻译<br/>11.3.1 解释执行<br/>11.3.2 编译执行<br/>11.3.3 两种方法的优缺点<br/>11.4 C编程语言<br/>11.5 一个简单的C程序<br/>11.5.1 main函数<br/>11.5.2 编程风格<br/>11.5.3 C预处理器<br/>11.5.4 输入和输出<br/>11.6 小结<br/>11.7 习题<br/>第12章 变量和运算符<br/>12.1 概述<br/>12.2 变量<br/>12.2.1 三种基本数据类型:int、char、double<br/>12.2.2 标识符的选择<br/>12.2.3 局部变量和全局变量<br/>12.2.4 更多的例子<br/>12.3 运算符<br/>12.3.1 表达式和语句<br/>12.3.2 赋值运算符<br/>12.3.3 算术运算符<br/>12.3.4 算术优先级<br/>12.3.5 位运算符<br/>12.3.6 关系运算符<br/>12.3.7 逻辑运算符<br/>12.3.8 递增/递减运算符<br/>12.3.9 运算符混合表达式<br/>12.4 基于运算符的问题求解<br/>12.5 编译器处理<br/>12.5.1 符号表<br/>12.5.2 变量的空间分配<br/>12.5.3 完整的例子<br/>12.6 补充话题<br/>12.6.1 三种基本类型的变种<br/>12.6.2 文字常量、常量和符号值<br/>12.6.3 存储类型<br/>12.6.4 更多的C运算符<br/>12.7 小结<br/>12.8 习题<br/>第13章 控制结构<br/>13.1 概述<br/>13.2 条件结构<br/>13.2.1 if语句<br/>13.2.2 ifelse语句<br/>13.3 循环结构<br/>13.3.1 while语句<br/>13.3.2 for语句<br/>13.3ac电脑的选择 25<br/>2.3.1 最小系统需求 25<br/>2.3.2 选择操作系统 26<br/>2.3.3 了解电脑配件 26<br/>2.4 电脑配件的选择 29<br/>2.4.1 硬盘的选择 29<br/>2?E-mail地址<br/>13.5 其他C语言控制结构<br/>13.5.1 switch语句<br/>13.5.2 break和continue语句<br/>13.5.3 简单计算器的例子<br/>13.6 小结<br/>13.7 习题<br/>第14章 函数<br/>14.1 概述<br/>14.2 C语言中的函数<br/>14.2.1 带参数的函数<br/>14.2.2 求解圆面积<br/>14.3 C语言中函数的实现<br/>14.3.1 运行时栈<br/>14.3.2 实现机制<br/>14.3.3 汇总<br/>14.4 问题求解<br/>14.4.1 例1:大小写转换<br/>14.4.2 例2:毕达哥拉斯三角形<br/>14.5 小结<br/>14.6 习题<br/>第15章 测试与调试技术<br/>15.1 概述<br/>15.2 错误类型<br/>15.2.1 语法错误<br/>15.2.2 语义错误<br/>15.2.3 算法错误<br/>15.3 测试<br/>15.3.1 黑盒测试<br/>15.3.2 白盒测试<br/>15.4 调试<br/>15.4.1 特定方法<br/>15.4.2 源码级调试工具<br/>15.4.3 断点<br/>15.5 正确的编程方法<br/>15.5.1 明确规格说明<br/>15.5.2 模块化设计<br/>15.5.3 预防错误式编程<br/>15.6 小结<br/>15.7 习题<br/>第16章 指针和数组<br/>16.1 概述<br/>16.2 指针<br/>16.2.1 声明指针变量<br/>16.2.2 指针运算符<br/>16.2.3 指针传递一个引用<br/>16.2.4 空指针<br/>16.2.5 语法<br/>16.2.6 指针例程<br/>16.3 数组<br/>16.3.1 数组声明<br/>16.3.2 数组应用<br/>16.3.3 数组参数<br/>16.3.4 C语言的字符串<br/>16.3.5 数组与指针的关系<br/>16.3.6 实例:插入排序<br/>16.3.7 C语言数组的不足<br/>16.4 小结<br/>16.5 习题<br/>第17章 递归<br/>17.1 概述<br/>17.2 什么是递归<br/>17.3 递归与循环<br/>17.4 汉诺塔<br/>17.5 斐波纳契数列<br/>17.6 二分查找<br/>17.7 整数转换为ASCⅡ字符串<br/>17.8 小结<br/>17.9 习题<br/>笫18章 C语言中的I/O<br/>18.1 概述<br/>18.2 C标准库函数<br/>18.3 字符I/O操作<br/>18.3.1 I/O流<br/>18.3.2 putchar函数<br/>18.3.3 getchai函数<br/>18.3.4 缓冲I/O<br/>18.4 格式化I/O<br/>18.4.1 printf<br/>18.4.2 scanf<br/>18.4.3 可变长参数<br/>18.5 文件I/O<br/>18.6 小结<br/>18.7 习题<br/>第19章 数据结构<br/>19.1 概述<br/>19.2 结构体<br/>19.2.1 typedef<br/>19.2.2 结构体在C中的实现<br/>19.3 结构体数组<br/>19.4 动态内存分配<br/>19.5 链表<br/>19.6 小结<br/>19.7 习题<br/>附录A LC-3指令集结构<br/>附录B 从LC-3到x86<br/>附录C LC-3的微结构<br/>附录D C编程语言<br/>附录E 常用表<br/>附录F 部分习题答案|第1章 计算机学什么<br/>1.1 探索黑匣子——从一个程序谈起<br/>1.1.1 探索黑匣子之计算机硬件<br/>1.1.2 探索黑匣子之计算机软件<br/>1.1.3 探索黑匣子之操作系统<br/>1.1.4 计算机系统的层次<br/>1.2 计算机编程的基本概念<br/>1.2.1 初窥高级语言<br/>1.2.2 乘Python之舟进入计算机语言的世界<br/>小结<br/>1.3 计算机核心知识——算法<br/>1.3.1 算法的重要性<br/>1.3.2 解平方根算法一<br/>1.3.3 解平方根算法二<br/>1.3.4 解平方根算法三<br/>小结<br/>1.4 什么是计算机<br/>1.4.1 历史上的计算机<br/>1.4.2 嵌入式系统<br/>1.4.3 未来的计算机<br/>小结<br/>1.5 计算机前沿知识——大数据<br/>1.5.1 数据<br/>1.5.2 大数据<br/>1.5.3 大数据的应用<br/>小结<br/>1.5.4 对数据和逻辑的正确态度——沙老师的话<br/>1.6 计算机科学之美<br/>1.6.1 无处不在的计算机<br/>1.6.2 计算机学科本身包含的知识面之广<br/>本章总结<br/>习题1<br/>第2章 神奇的0与1<br/>2.1 进位制的概念<br/>小结<br/>2.2 不同进制间的转换<br/>2.2.1 二进制数转换为十进制数<br/>2.2.2 十进制数转换为二进制数<br/>2.2.3 二、八、十六进制的巧妙转换<br/>小结<br/>2.3 计算中的二进制四则运算<br/>2.3.1 无符号整数与加法<br/>2.3.2 乘法与除法<br/>2.3.3 带符号整数的减法<br/>2.3.4 小数—浮点数<br/>小结<br/>2.4 一切都是逻辑<br/>2.4.1 什么是逻辑运算<br/>2.4.2 电路实现逻辑(课时不足时,可不讲本节)<br/>2.4.3 用逻辑做加法<br/>2.4.4 加法与控制语句<br/>小结<br/>2.5 计算机中的存储<br/>2.5.1 数据的存储形式<br/>2.5.2 存储设备<br/>小结<br/>2.6 谈0与1的美<br/>2.6.1 简单开关的无限大用<br/>2.6.2 二进制逻辑的神奇妙用<br/>2.6.3 “亢龙有悔”和“否极泰来”<br/>2.6.4 “若见诸相非相,即见如来”<br/>习题2<br/>第3章 程序是如何执行的<br/>3.1 引例<br/>……<br/>第4章 学习Python语言<br/>第5章 计算思维的核心——算法<br/>第6章 操作系统简介<br/>第7章 计算机网络与物联网<br/>第8章 信息安全<br/>参考文献|