《计算机科学导论 思想与方法 第2版》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:董荣胜编
  • 出 版 社:北京:高等教育出版社
  • 出版年份:2013
  • ISBN:9787040367874
  • 页数:301 页
图书介绍:本书作者根据教育部高等学校计算机科学与技术教学指导委员会、IEEE-CS和ACM对“计算机导论”课程的要求,将“计算机导论”课程构建的重点放在课程的结构设计上,在学科思想方法这个较高的层面,将学科知识有机地统一起来避免了学科知识的杂乱堆积,有助于课程的教与学。同时,学科思想方法的提炼也有助于学生计算思维能力的提高。本书主要内容有学科专业名称的演变,培养的侧重点,学科各专业方向的知识体与核心课程,“计算机导论”课程的构建,计算思维与计算机导论,学科的基本问题,学科中的抽象、理论和设计3个学科形态,学科中的核心概念、数学方法、系统科学方法,社会与职业问题,以及学科若干问题的探讨与学科未来教育的展望等。为了使读者更好地理解和掌握书中的内容,本书在第1版的基础上,增加了大量的实例和习题。本书可作为高等院校“计算机导论”或“计算思维导论”等课程的教材或参考书,还可供有关专业的学生、教师和科技人员参考。

第1章 绪论 1

1.1 引言 1

1.2 学科专业名称的演变、学科描述及培养侧重点 2

1.3 学科知识体和核心课程 4

1.3.1 计算机科学知识体及专业核心课程 4

1.3.2 计算机工程知识体及专业核心课程 7

1.3.3 软件工程知识体及专业核心课程 11

1.3.4 信息技术知识体及专业核心课程 13

1.4 如何构建“计算机导论”课程 15

1.5 计算思维与计算机导论 17

1.6 本章小结 20

习题一 20

第2章 学科的基本问题 22

2.1 引言 22

2.2 对问题进行抽象的一个典型实例:哥尼斯堡七桥问题 22

2.3 可计算问题与不可计算问题 24

2.3.1 梵天塔问题 24

2.3.2 算法复杂性中的难解性问题、P类问题和NP类问题 26

2.3.3 证比求易算法 26

2.3.4 P=?NP 27

2.3.5 RSA公开密钥密码系统 28

2.3.6 一个不可计算问题:停机问题 32

2.3.7 旅行商问题与组合爆炸问题 34

2.3.8 找零问题、背包问题与贪婪算法 36

2.4 GOTO语句与程序的结构 37

2.5 哲学家共餐问题与计算机的资源管理 38

2.6 两军问题与计算机网络 40

2.6.1 两军问题 40

2.6.2 互联网软件的分层结构 41

2.7 人工智能中的若干哲学问题 43

2.7.1 图灵测试 43

2.7.2 西尔勒的“中文屋子” 45

2.7.3 计算机中的博弈问题 45

2.8 计算机科学各主领域及其基本问题 47

2.9 本章小结 54

习题二 54

第3章 3个学科形态 57

3.1 引言 57

3.2 一个关于“学生选课”的例子 57

3.2.1 对“学生选课”例子的感性认识 58

3.2.2 对“学生选课”例子的理性认识 59

3.2.3 “学生选课”系统的工程设计 60

3.3 抽象形态 61

3.4 理论形态 62

3.5 设计形态 63

3.6 3个学科形态的内在联系 64

3.7 计算机语言的发展及其3个学科形态的内在联系 66

3.7.1 自然语言与形式语言 66

3.7.2 图灵机与冯·诺依曼计算机 68

3.7.3 机器指令与汇编语言 75

3.7.4 以虚拟机的观点来划分计算机的层次结构 77

3.7.5 高级语言 80

3.7.6 应用语言 81

3.7.7 自然语言 82

3.7.8 小结 84

3.8 计算机科学各领域3个学科形态的主要内容 85

3.9 本章小结 89

习题三 90

第4章 学科中的核心概念 96

4.1 引言 96

4.2 算法 96

4.2.1 算法的历史简介 97

4.2.2 算法的定义和特征 98

4.2.3 算法实例 99

4.2.4 算法的表示方法 100

4.2.5 算法分析 105

4.2.6 常用的两类算法:搜索与排序 106

4.3 数据结构 112

4.3.1 数据结构的基本概念 113

4.3.2 基于Vcomputer机器的数据结构概述 114

4.3.3 基于Vcomputer机器的数据的逻辑结构 115

4.3.4 基于Vcomputer机器的数据的存储结构 119

4.4 程序 123

4.5 软件 124

4.6 硬件 124

4.7 数据的存储和表示 125

4.7.1 进位制数及其相互转换 125

4.7.2 原码、反码、补码及其转换 128

4.7.3 字符、字符串和汉字 132

4.7.4 图像 135

4.7.5 声音 136

4.8 CC1991报告提取的核心概念 136

4.9 本章小结 138

习题四 139

第5章 学科中的数学方法 148

5.1 引言 148

5.2 数学的基本特征 149

5.3 数学方法的作用 149

5.4 计算学科中常用的数学概念和术语 150

5.4.1 集合 150

5.4.2 函数和关系 151

5.4.3 代数系统 153

5.4.4 字母表、字符串和语言 158

5.4.5 定义、定理和证明 159

5.4.6 必要条件和充分条件 160

5.5 证明方法 161

5.5.1 直接证明法和间接证明法 161

5.5.2 反证法 162

5.5.3 归纳法 162

5.5.4 构造性证明 163

5.6 递归和迭代 164

5.6.1 递归 164

5.6.2 迭代 166

5.7 随机数和蒙特卡洛方法 166

5.7.1 随机数 167

5.7.2 蒙特卡洛方法 168

5.8 公理化方法 169

5.8.1 理论体系 169

5.8.2 公理化方法的基本概念 170

5.8.3 实例 171

5.9 形式化方法 172

5.9.1 形式系统的组成、基本特点和局限性 173

5.9.2 形式化方法概述 174

5.9.3 形式规格 175

5.9.4 形式验证 176

5.10 本章小结 178

习题五 179

第6章 学科中的系统科学方法 182

6.1 引言 182

6.2 系统科学与系统科学方法 182

6.2.1 系统科学的基本概念 183

6.2.2 系统科学遵循的一般原则 184

6.2.3 常用的几种系统科学方法 185

6.2.4 实例 186

6.3 软件开发中使用系统科学方法的原因 187

6.3.1 人固有能力的局限性以及使用工具后产生的力量 187

6.3.2 复杂性 188

6.3.3 软件系统的复杂性 189

6.3.4 软件开发的系统化方法需要遵循的基本原则 191

6.4 结构化方法 192

6.4.1 结构化方法的产生和发展 193

6.4.2 结构化方法遵循的基本原则 193

6.4.3 结构化方法的核心问题 194

6.4.4 结构化方法实例:高等学校信息管理系统 195

6.5 面向对象方法 196

6.5.1 面向对象方法的产生和发展 196

6.5.2 面向对象方法的基本思想 197

6.5.3 面向对象方法的核心问题 198

6.5.4 面向对象方法实例:图书管理系统 200

6.6 本章小结 202

习题六 203

第7章 社会与职业问题 204

7.1 引言 204

7.2 计算的历史 205

7.2.1 计算机史前史——1946年以前的世界 205

7.2.2 计算机硬件的历史 206

7.2.3 计算机软件的历史 207

7.2.4 计算机网络的历史 209

7.2.5 中国计算机事业发展的历程 210

7.3 计算的社会背景 211

7.3.1 计算的社会内涵 211

7.3.2 网络的社会内涵 211

7.3.3 因特网的增长、控制和使用 212

7.3.4 有关性别的问题 213

7.4 道德分析的方法 214

7.5 职业和道德责任 215

7.5.1 职业化的本质 215

7.5.2 软件工程师的道德准则及行为规范 216

7.5.3 与检举有关的内容 217

7.5.4 计算中的“可接受使用”政策 219

7.6 基于计算机系统的风险和责任 220

7.6.1 历史上软件风险的例子 220

7.6.2 软件的正确性、可靠性和安全性 221

7.6.3 软件测试 221

7.6.4 软件重用中隐藏的问题 222

7.6.5 风险评定与风险管理 222

7.7 团队工作 223

7.7.1 基本概念 223

7.7.2 团队目的 224

7.7.3 团队机制 224

7.7.4 团队激励 226

7.7.5 团队僵局 227

7.8 知识产权 228

7.8.1 知识产权概述 228

7.8.2 著作权、商标、专利、集成电路布图设计和商业秘密 229

7.8.3 数字千年版权法和TEACH法案 232

7.8.4 软件专利 232

7.8.5 有关知识产权的国际问题 233

7.8.6 我国有关知识产权保护的现状 233

7.9 隐私和公民自由 234

7.9.1 隐私保护的道德和法律基础 234

7.9.2 基于Web的隐私保护技术 235

7.9.3 计算机空间的言论自由 238

7.9.4 相关的国际问题和文化之间的问题 239

7.10 计算机犯罪 239

7.10.1 计算机犯罪及相关立法 239

7.10.2 黑客 240

7.10.3 恶意计算机程序和拒绝服务攻击 240

7.10.4 防止计算机犯罪的策略 243

7.11 本章小结 243

习题七 244

第8章 探讨与展望 246

8.1 引言 246

8.2 若干问题的探讨 246

8.2.1 计算本质的认识历史 246

8.2.2 第三次数学危机与希尔伯特纲领 247

8.2.3 图灵对计算本质的揭示 248

8.2.4 如何定义一门学科 249

8.2.5 计算学科属“工科”还是“理科” 249

8.2.6 程序设计在计算学科中的地位 250

8.2.7 计算学科目前的核心课程能否培养学生计算方面的能力 250

8.2.8 在计算课程中如何做到理论与实践相结合 251

8.2.9 发明与创新 251

8.2.10 关于能力的培养 253

8.2.11 难度、复杂度与能力 253

8.2.12 科学素养 255

8.3 计算学科教育的展望 259

8.3.1 技术的变化 259

8.3.2 文化的改变 260

8.3.3 制订教学计划的原则 262

8.3.4 未来的计算学科教育 263

8.4 本章小结 264

习题八 264

附录A CC2001中的计算机科学知识体 267

附录B Armstrong公理系统 277

附录C 哲学家共餐问题的模型检验 280

附录D m+0=m的定理证明 287

索引 291

参考文献 300