前 言
“计算机科学导论”是计算机专业学生进入大学学习的第一门专业基础课程,其目的在于用统一的思想认识计算机学科的本质,并对计算机学科的系统化和科学化进行阐述。本书根据教育部高教司主持评审的《中国计算机科学与技术学科教程2002》组织编写,并参照美国ACM和IEEE Computing Curricula 2001,用逻辑严密的方式将学生引入计算机学科各个富有挑战性的领域之中。本书介绍了计算机的基础知识、计算机体系结构、操作系统、网络计算、程序设计与算法分析、信息系统、软件工程、图形学和可视化计算、智能系统、离散结构等专业知识点以及与信息技术有关的社会人文知识,力求使学生对所学专业有比较深入的了解,树立专业学习的责任感和自豪感。
本书要求读者了解计算机科学与技术方法论产生的背景、定义、内容和意义;了解计算学科的历史,计算学科的定义、根本问题;了解计算学科中的抽象、理论和设计三个过程及其内在联系;掌握计算学科各主领域的基本内容及其相应的课程设置、计算学科中的核心概念、数学方法、系统科学方法、社会和职业问题等内容,为读者正确认知计算学科提供方法,为今后深入学习计算机课程作铺垫。
本书共12章。第1章介绍计算机科学与技术学科产生的历史背景、计算机科学与技术学科的定义、计算机的基本概念、计算机的类型和特点及其应用、计算机科学与技术学科的教育、计算机科学与技术学科的知识体系、计算机的发展趋势等。第2章介绍计算机的基础知识,计算机中数的表示与运算等,为进一步学习本书的后续各章和后续课程打好基础。第3章介绍体系结构和组织,包括存储系统组织和体系结构、多处理和其他体系结构、性能提高技术、分布式系统的体系结构等。第4章介绍操作系统,包括操作系统概述、操作系统原理、并发、调度和分配、存储管理、设备管理、安全和保护、文件系统、实时和嵌入式系统、容错、系统性能评价、脚本等。第5章介绍网络计算,包括通信与组网、网络体系结构、TCP/IP、网络管理、网络安全、无线和移动计算、网格计算导论等。第6章介绍程序设计和算法分析,包括基本程序结构、算法和问题求解、基本的数据结构、递归、事件驱动的程序设计、语言翻译导论、声明和类型、抽象机制、面向对象设计、程序设计、算法分析基础、算法策略、基本的计算方法、NP复杂类等。第7章介绍信息系统,包括信息与信息系统的概念、数据库系统、数据建模、数据挖掘、信息检索、数字图书馆等。第8章介绍软件工程,包括软件工程、软件模型、软件开发方法、软件工具和环境、软件过程、软件需求与规约、软件项目管理、软件可靠性、软件质量度量和评价等。第9章介绍图形学和可视化,包括图形学基本概念、图形系统、可视化、虚拟现实、计算机视觉、图形用户界面的程序设计、人机交互等。第10章介绍智能系统,包括智能系统的基本问题、搜索和约束满足、知识表示与推理、自然语言处理、机器学习与神经网络等。第11章介绍离散结构,计算科学和数值计算方法,包括函数、关系、集合、信息的编码、逻辑代数基础、计算基础、图和树、离散概率、数值分析、运筹学、建模与模拟、高性能计算等。第12章介绍社会和职业问题,包括职业和道德责任、基于计算机系统的风险与责任、知识产权、隐私与公民自由、计算机犯罪、哲学框架等。
这本书通过对计算机科学的核心内容作概括介绍,使学生深刻理解计算机系统的信息处理功能本质,掌握数据表达和数据加工表达的层次方法,了解计算机系统的功能组成,认识计算机科学对人类社会的重要推动作用。本书注重循序渐进、由浅入深、结构严谨,克服以往一些教材在内容安排上的不合理、内容出现重复、结构松散等情形。
由于本书涉及的内容繁多,根据各高校的学生情况,在学习本书时可以适当调整学时;对其中一些章节也可以根据各高校的实际情况进行选用。本书配备有电子教案,任课教师可以根据学生的实际情况进行修改。
瞿中编写了第1章、第5章、第9章;熊安萍编写了第4章、第7章、第11章;杨德刚编写了第2章、第3章、第10章;薛峙编写了第6章、第8章、第12章。研究生肖春雷以及本科生张以炀、唐光辉、唐蘅、杨婷婷、代永亮、梁凯威、张辉、马庆伟、伍明、郭凯、刘纬地等查阅了大量的资料,参与了文字录入,并对书中的实例及图表作了大量的工作。博士生导师王国胤教授担任本书的主审,给作者提供了许多宝贵的意见。本书的顺利出版,得到了各级领导的大力支持和帮助,以及计算机教育界许多同行的关心,在此一并致谢。
由于时间仓促,加上计算机科学与技术发展迅速和编者水平有限,书中难免存在不妥和错误之处,恳请读者批评指正并提出宝贵意见。
作 者
??
??
??
??
II
计算机科学导论
III
前言