图书前言

出版说明

高等学校计算机基础教育教材精选在教育部关于高等学校计算机基础教育三层次方案的指导下,我国高等学校的计算机基础教育事业蓬勃发展。经过多年的教学改革与实践,全国很多学校在计算机基础教育这一领域中积累了大量宝贵的经验,取得了许多可喜的成果。

随着科教兴国战略的实施以及社会信息化进程的加快,目前我国的高等教育事业正面临着新的发展机遇,但同时也必须面对新的挑战。这些都对高等学校的计算机基础教育提出了更高的要求。为了适应教学改革的需要,进一步推动我国高等学校计算机基础教育事业的发展,我们在全国各高等学校精心挖掘和遴选了一批经过教学实践检验的优秀的教学成果,编辑出版了这套教材。教材的选题范围涵盖了计算机基础教育的三个层次,包括面向各高校开设的计算机必修课、选修课以及与各类专业相结合的计算机课程。

为了保证出版质量,同时更好地适应教学需求,本套教材将采取开放的体系和滚动出版的方式(即成熟一本、出版一本,并保持不断更新),坚持宁缺毋滥的原则,力求反映我国高等学校计算机基础教育的最新成果,使本套教材无论在技术质量上还是文字质量上均成为真正的“精选”。

清华大学出版社一直致力于计算机教育用书的出版工作,在计算机基础教育领域出版了许多优秀的教材。本套教材的出版将进一步丰富和扩大我社在这一领域的选题范围、层次和深度,以适应高校计算机基础教育课程层次化、多样化的趋势,从而更好地满足各学校由于条件、师资和生源水平、专业领域等的差异而产生的不同需求。我们热切期望全国广大教师能够积极参与到本套丛书的编写工作中来,把自己的教学成果与全国的同行们分享;同时也欢迎广大读者对本套教材提出宝贵意见,以便我们改进工作,为读者提供更好的服务。

我们的电子邮件地址是 jiaoh@tup.tsinghua.edu.cn。联系人: 焦虹。

清华大学出版社

第2版前言

大学计算机——计算、构造与设计(第2版)作为在“中国大学MOOC”平台开设的“大学计算机”MOOC的配套教材及大面积实体课堂教学的主教材,本书第1版已经使用两年,作者有了一些体会,也发现了一些问题。本次修订,综合了由MOOC平台论坛上学习者的反馈建议和实际教学的体会,在原教材内容基础上,增加了有关数据结构方面的描述,并编写了配套的实验指导书。同时,继续保持了“基础+问题求解”的整体架构,坚持自底向上的硬件系统构造思维培养和利用计算机求解问题能力的培养,即“计算思维”能力培养。

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

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

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

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

直至今天,大学本科新生的计算机基础水平依然存在较大差异,且这种差异会在可见的时间内长期存在。在分级教学难以实际操作的情况下,“大学计算机基础”这门课程教学内容的选取及相应教材的编写依然是难点。因此,由于这样的特殊性,加之作者水平所限,书中的不足和不妥之处在所难免,希望使用本教材的高校师生不吝指正。

作者

2016年6月大学计算机——计算、构造与设计(第2版)前言

第1版前言

大学计算机——计算、构造与设计(第2版)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月大学计算机——计算、构造与设计(第2版)前言