图书前言

前言

大学计算机——计算、构造与设计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月