大学计算机——计算、构造与设计

大学计算机——计算、构造与设计"

作者:吴宁主编崔舒宁、陈文革副主编
ISBN:9787302374589
定价:¥39.50
字数:千字
页数:
出版时间:2014.09.01
开本:
版次:1-2
装帧:
出版社:清华大学出版社
简介

本书为“大学计算机”国家MOOC课程专用教材,也是国家精品资源共享课程专用教材。全书以“计算思维能力”培养为出发点,围绕计算、构造、设计三大主题进行内容组织,将核心聚焦到计算模型与信息编码、系统构造与抽象、算法分析与设计三大模块,强调自底向上的构造思维能力、逻辑分析能力与编程实现能力。

全书共7章,主要内容包括计算模型与基本计算理论、信息表示与编码、软硬件系统构造及基本原理、计算机网络应用及网络安全技术、C语言程序设计基础、算法分析与设计等。本书主体内容配有教学微视频及动画演示案例、在线作业练习等辅助教学的网络数字资源。

本书可作为普通高等学校理工科各类专业学生学习“大学计算机基础”课程的教材,适用学时为48~64学时。书中带有的章节为选讲内容,可根据情况课内讲授或作为翻转课堂教学使用。

前言

大学计算机——计算、构造与设计1991年,美国施乐公司PARC研究中心首席科学家Mark Weiser在Scientific American上发表了题为Computer for the 21th Century的文章,提出了“无处不在的计算(Ubiquitous Computing)”的理念,并由此开创了计算领域的第三次浪潮。无处不在的计算设备,无处不在的网络和通信,彻底改变了人类数千年的生活习惯。人们希望通过无处不在的计算,能随时随地获得自己希望的服务,且不用关心这些服务是怎样得到的。由于提供这些服务或计算的重要载体是计算机,因此,计算机成为人类生活中不可或缺的一部分。现代信息社会中的每一个人,无论从事何种工作,无论在学习什么专业,都需要学习使用计算机;而作为专业技术人员,更需要建立和掌握利用计算机求解各种专业问题的思路和方法,或者说,应具备计算思维的能力。

鉴于此,我们编写了这本以计算思维能力培养为出发点,围绕计算、构造和设计三大主题的“大学计算机”教材。本书与现有多数同类教材不同的是,除了不再追求“广而浅”的认知导向型模式,而转为具有针对性的“窄而深”的描述之外,首次从命题逻辑出发,讲述系统如何从基本逻辑门这样的“原子细胞”经过逐层封装与抽象,最终构成系统整体的思维过程。不仅帮助读者从构造的角度理解“抽象”、“封装”这样一些软件理论中常见的概念,也在一定程度上培养这种自底向上的构造思维模式,这也是高等学校毕业生应具有的基本素质。

本书共7章。第1章首先带领读者走进计算机,了解计算机的组成和整体结构;然后从计算模型入手,讲述计算与可计算性基本理论、计算工具的发展以及基于计算机进行问题求解的一般过程。第2章从冯·诺依曼提出的二值符号体系出发,讲述了计算机为什么采用二进制,以及不同信息在计算机中的表示与编码。试图从开关元件特性与0和1的对应,引出逻辑的概念。第3章从基本逻辑运算及其门电路入手,借助推理和“搭积木”的思维模式,解析系统的“构造”过程。第4章从应用的角度讲述了网络技术的一些基础知识,在网络无处不在的今天,了解这些是必要的。第5章和第6章是C语言编程技术。实际上,计算机唯一能够做的工作就是执行程序,要利用计算机解决各种问题,掌握一门程序设计语言,具备一定的编程能力是必需的。选择C语言作为学习程序设计的入门语言,主要是考虑到它在算法描述上的优势,并利于作为后续学习面向对象程序设计的基础。第7章为算法分析与设计,讲述算法的描述、算法复杂性评价及一些简单算法的设计方法;希望能帮助读者进一步理解第1章所述的可计算性理论,同时,通过亲自编程实现,能使读者更深入地理解什么是算法,以及如何设计算法。

总之,本书编写的宗旨就是力求从计算、构造、设计的不同角度,帮助读者初步建立和掌握利用计算机解决问题的思路和方法。 

本书配备有实验指导书,实验指导书中除各项与主教材内容相关的基本程序设计和算法设计外,考虑到目前学生的实际情况,增加了部分主教材中未涉及的计算机基本应用技能的训练。

本书由吴宁(第1~3章)、崔舒宁(第5~7章)和陈文革(第4章)编写,吴宁负责统稿。本书在编写过程中得到首届国家级教学名师冯博琴教授的指点,以及同事杨振平、谢涛、贾应智等老师的帮助,在此表示衷心的感谢。

虽然新生的计算机基础水平近年来已大有提高,但一个不争的事实是:直至今天,入校新生的计算机知识水平依然存在很大的差异,且这种差异会在可见的时间内长期存在。在分级教学难以实际操作的情况下,“大学计算机基础”这门课程教学内容的选取及相应教材的编写依然是难点。因此,由于这样的特殊性,但加之作者水平所限,书中错误和不妥之处在所难免,恳请广大师生不吝指正。

作者

2014年6月

目录

第1章引论1

1.1走进计算机1

1.1.1计算机系统构成2

1.1.2主机与主机板4

1.1.3计算机的主要性能指标11

1.2图灵机模型与计算问题12

1.2.1图灵机模型12

1.2.2图灵机构造示例16

1.2.3计算与可计算性理论18

1.3计算工具的发展与启示21

1.3.1电子计算机的诞生和发展21

1.3.2微型计算机的发展23

1.3.3未来计算机的发展24

1.4基于计算机的问题求解26

1.4.1需求分析与模型建立27

1.4.2模块设计28

1.4.3程序编码与调试29

1.4.4系统测试31

1.5计算机科学研究前沿技术简介32

1.5.1高性能计算32

1.5.2普适计算34

1.5.3云计算35

1.5.4人工智能35

1.5.5物联网36

习题37

第2章信息的表示编码39

2.1计算机与二进制39大学计算机——计算、构造与设计2.2计算机中的信息表示与编码42

2.2.1什么是信息42

2.2.2数值信息表示43

2.2.3文字信息表示45

2.2.4声音信息的表示48

2.2.5图像信息的表示51

2.3计算机中的数制53

2.3.1常用记数制53

2.3.2各种数制之间的转换55

 2.4二进制数的表示和运算58

2.4.1二进制数的表示58

2.4.2二进制数的算术运算61

2.4.3机器数的表示和运算63

2.5计算机中信息处理的一般过程67

2.5.1信息采集67

2.5.2信息表示和压缩68

2.5.3信息存储和组织68

2.5.4信息的传输69

2.5.5信息检索70

习题70

第3章系统软硬件构造72

3.1逻辑代数基础72

3.1.1关于逻辑73

3.1.2基本逻辑运算75

3.1.3其他逻辑运算77

3.2逻辑电路78

3.2.1基本逻辑门78

3.2.2其他常用逻辑门80

3.2.3触发器81

3.2.4加法器84

3.3冯·诺依曼结构86

3.3.1程序和指令86

3.3.2冯·诺依曼计算机基本结构87

3.4冯·诺依曼计算机基本原理88

3.4.1指令的执行过程88

3.4.2微型计算机的一般工作过程91

3.4.3图灵机与计算机94

3.4.4冯·诺依曼结构的局限性98

3.4.5哈佛结构99

 3.5操作系统100

3.5.1操作系统概述100

3.5.2处理器管理103

3.5.3存储器管理108

3.5.4文件管理111

3.5.5其他功能115

习题117

第4章计算机网络及应用119

4.1计算机网络基础知识119

4.1.1概述119

4.1.2网络应用模式126

4.1.3网络体系结构和协议127

4.2因特网132

4.2.1因特网基础知识132

4.2.2常见的因特网应用146

4.3网络安全153

4.3.1网络安全概念153

4.3.2网络安全技术156

4.3.3网络防护技术162

习题165

第5章C程序设计基础168

5.1程序设计基础168

5.1.1什么是程序设计168

5.1.2程序设计语言169

5.1.3程序的编译171

5.1.4C程序基本结构172

5.2使用Eclipse和Visual Studio编译C程序173

5.2.1使用Eclipse编译C程序173

5.2.2使用Visual Studio编译C程序176

5.3输入和输出函数179

5.4C程序的基本要素179

5.4.1C语言字符集、标识符和词汇179

5.4.2注释180

5.4.3C源程序结构181

5.5数据类型182

5.5.1常量184

5.5.2变量187

5.5.3类型修饰符189

5.6运算符和表达式189

5.6.1算术运算符和算术表达式190

5.6.2关系运算符和关系表达式190

5.6.3逻辑运算符和逻辑表达式190

5.6.4赋值运算符和赋值表达式191

5.6.5自增运算符和自减运算符191

5.6.6问号表达式和逗号表达式192

5.6.7位运算表达式194

5.6.8表达式中各运算符的运算顺序197

5.6.9不同类型数据之间的混合算术运算198

5.6.10typedef语句200

5.6.11运算符与表达式例题200

5.7控制结构204

5.7.1顺序结构204

5.7.2选择结构205

5.7.3循环结构206

5.7.4其他控制转移语句207

5.7.5控制结构例题211

5.8应用举例216

习题219

第6章数组、函数和指针222

6.1数组222

6.1.1一维数组223

6.1.2二维数组225

6.1.3多维数组226

6.2字符型数组和字符串处理库函数227

6.2.1字符型数组的定义和初始化227

6.2.2字符串的输入与输出228

6.2.3字符串处理库函数229

6.3结构体类型231

6.3.1结构体类型的定义233

6.3.2结构体类型变量的使用233

6.3.3数组和结构体234

6.4数组应用示例235

6.5函数241

6.5.1函数的定义242

6.5.2函数的调用243

6.5.3函数原型245

6.5.4函数间的参数传递245

6.5.5局部变量和全局变量247

6.5.6递归函数248

6.5.7带参数的main函数251

6.5.8C语言的库函数252

6.6变量的存储类别252

6.6.1自动变量252

6.6.2静态变量253

6.6.3寄存器变量254

6.6.4外部变量254

6.6.5多源程序文件程序中的全局变量说明254

6.7函数例256

6.8地址与指针258

6.8.1地址258

6.8.2指针259

6.9指针运算260

6.9.1和&运算符260

6.9.2指针变量算术运算262

6.9.3指针变量比较运算263

6.9.4指针变量下标运算263

6.10指针与数组263

6.10.1指向数组的指针263

6.10.2指向多维数组的指针267

6.10.3指针数组268

6.11指针和函数270

6.11.1指针作为函数的参数270

6.11.2返回指针的函数271

6.11.3指向函数的指针272

6.12动态存储分配273

6.13指向指针的指针275

6.14结构体与指针277

6.15指针的初始化277

6.16void和const类型的指针278

6.17指针例279

6.18预处理命令282

6.18.1无参数宏282

6.18.2带参宏定义284

6.18.3文件包含285

6.18.4条件编译285

习题286

第7章算法分析与设计291

7.1算法的基本概念291

7.2算法的描述方法292

7.2.1算法的自然语言描述293

7.2.2算法的伪代码描述293

7.2.3算法的流程图描述294

7.3算法的复杂性评价296

7.3.1算法的时间复杂度296

7.3.2算法的空间复杂度297

7.4查找算法297

7.4.1顺序查找298

7.4.2折半查找299

7.5排序算法300

7.5.1冒泡排序301

7.5.2选择排序303

7.5.3快速排序304

7.6常用算法简介307

7.6.1递归与分治307

7.6.2动态规划308

7.6.3贪心算法311

7.6.4回溯法313

习题314

附录A常用外设及设备驱动程序316

A.1输入设备316

A.1.1键盘316

A.1.2鼠标317

A.2输出设备318

A.2.1显示器318

A.2.2打印机319

A.3设备驱动程序320

A.3.1设备驱动程序的一般概念320

A.3.2硬件设备的“即插即用”概念321附录B标准ASCII码表及控制符号323

附录C声音和图像信息的数字化325

C.1声音信息的数字化325

C.1.1声音的基本参数325

C.1.2声音信号的数字化326

C.2图像信息的数字化327

C.2.1图像的数字化327

C.2.2图像的主要性能参数328

参考文献329

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个