前言
有一种说法认为,传统的教育是读、写和算术(Reading,Writing and Arithmetic),今天的教育是读、写和计算(Reading、Writing and Computing),由此可见计算的重要性。计算的机器是计算机,因此,计算机科学最简单的解释是——关于计算机的科学,但实际上它的内涵远远超过了计算机本身。从今天的社会形态已经成为信息社会这一事实,可以理解计算机及其网络给人类社会、生活和学习等方面带来的巨大影响。
目前我国大学计算机基础类课程主要分为3个部分:计算机基础、程序设计及计算机应用。前两门被大多数高校列为基础类课程,后一门(也许是多门)是和专业相关的课程。如果想在专业方面有所成就,就应该重视计算机,学好计算机基础和程序设计课程。
问题是,要把计算机用好,究竟该学习些什么呢?现在的学生从中学阶段的信息基础课程中,已经学习了如何打开、关闭机器,学习了使用Windows、Office软件(初步的),也学会了上网,这些都是使用计算机的基本技能。有这些技能当然很好,不过还远远不够。计算机知识之丰富,内涵之复杂,远远超出我们的想象。如果希望把计算机看得更清楚一点,那么最好的方法是站得更高些。因此本书基本上不涉及计算机操作方面的内容,而展现给读者的是有关计算机科学的基础知识,包括其系统、软件、算法、数据及通信。
一般来说,基于计算机和计算机科学的所谓信息技术,由四部分组成:一是计算机系统,这大多是指计算机的硬件;二是软件;三是数据处理;四是网络。本书也是按照这个结构进行编排的。
在第1、2、3章中,重点介绍有关计算机模型和计算机中使用的数制、编码等内容。通过计算机模型可以对计算机的基本原理有一个概貌性的认识。在此基础上,还介绍了计算机的硬件系统。虽然本书没有、也不可能枚举所有类型的计算机硬件的组成部分,但是大部分常用的硬件都介绍了。
第4、5、6章分别介绍计算机的核心软件——操作系统和计算机科学的核心之一——算法,以及实现算法的程序设计语言、程序和软件方面的知识。
第7章介绍数据库相关知识。
第8章介绍网络,包括因特网的基本知识。
第9章介绍有关计算机的一些高级主题,包括高性能计算、人工智能和计算理论。如果说,人类对计算机的期望是“速度更快、体积更小和性能更强”的话,那么就更需要了解计算机能够做什么和不能做什么。有一点很清楚:希望本书的读者明白,哪些是计算机能够做的,哪些是计算机做不到的,在专业方面也是如此。只有知道哪些是可以做的,且如何能够使其做得更好,这才是科学的态度。
最后,第10章讨论有关信息社会的问题,包括有关法律、版权、环境、健康、计算机安全、病毒、黑客等。
本书是浙江大学计算机基础课程建设成果,是浙江大学执教计算机基础课程的教学团队教师的集体贡献。浙江大学从2002年就开始将计算机科学作为大学计算机基础课程的核心,其教材也经过几次修改,本书就是近十年来教学实践的成果。作者一直坚持认为,大学不应该把如何操作计算机作为教学内容,而应该引导学生去认识计算机的原理,这样才能更好地在学习和专业中使用好计算机。例如,学习程序设计的目的,不是成为程序员,而是认识程序原理。一个非计算机专业的学生,肯定是计算机的用户,知道计算机能够做什么、不能够做什么,这应该是最基本的专业素质。因此任何专业的同学都需要学习计算机科学基础,这也是其专业需要。
本书作者近似固执地认为,课程不能通过“工程”的方法去建设,而是要依靠教师引导学生去思考。大学提供给大学生发现问题、讨论问题、争论问题、解决问题的平台,所以作者要说的是:教课及教师并不是教学的核心,特别在计算机课程中,需要“发现、讨论、争论”的问题很多,收获也更多。
本书为任课教师免费提供电子课件,有需要者可登录华信教育资源网http://www.hxedu. com.cn注册下载。
毫无疑问的是,由于计算机科学的特点,其概念和某些名词的定义可能随着时间流逝而变化,并不像数学、物理科学那样有极为严格的、不变的定义,甚至,从不同的角度表达问题可能有完全不同的说法,这些在书中是常见的。当然,由于作者的水平所限,错误肯定难免,希望使用本书的教师和学生能够不吝赐教。
教育部计算机基础教学指导委员会副主任委员、国家名师、西安交通大学冯博琴教授为本书的编写提供了极为细致的指导,并亲自担任本书的主审,在此作者深表感谢。也借此感谢作者在浙江大学的同事,他们为本书提供了许多宝贵的意见。电子工业出版社的章海涛策划编辑,他为本书的写作和出版付出了很多,在此仅以此文字表示真诚的谢意。同时也十分感谢本书的责任编辑冉哲为本书的顺利出版所付出的辛劳。
陆汉权
浙江大学计算机学院,luhq@zju.edu.cn
2011年于浙大玉泉