图书前言

第3版前言

                                                          近年来,以云计算、大数据、深度学习为代表的计算机技术快速发展,“互联网+”成为传统工业改革的重要方向,强大的社会需求对高等教育人才的计算机能力培养提出了新的要求。“程序设计基础”是计算机能力培养的核心课程,承担着计算思维与程序设计能力培养的重要责任。

计算思维的表达和程序设计均离不开程序设计语言。本教材选择了C语言。1972年,为编写UNIX操作系统,贝尔实验室Dennis Ritchie和Ken Thompson设计了C语言,并于1978年发布C语言的第一个版本,史称K&R版本。伴随着小型机和PC的快速发展,MacOS、Windows、Linux等操作系统及其应用软件的开发大量使用了C语言。随着C++、Java、PHP、Python等多种程序语言的兴起,C语言在应用软件开发中的比例有所下降。但是,根据 IEEE Spectrum发布的报告,C语言在最近3年内依然是最受欢迎的两种程序设计语言之一。随着多核计算和GPU计算等并行计算的兴起,大多数并行计算框架依然选择了C语言。因此,在本科阶段的程序设计基础课程中,C语言是一个最佳的选择。

本次修订在前两版的基础上对内容进行了大幅度的调整。结合作者多年的教学和软件开发经验,本教材重点介绍程序设计的基本方法和技术,以程序设计思想、程序设计语言、程序设计技术和软件工程管理4条主线组织相关内容。在程序设计思想方面,以结构化程序设计思想为主,同时介绍面向对象程序设计思想,并引入并行程序设计的思想。在程序设计语言方面,以C语言为主,按照最新C11标准,充分考虑初学者的学习规律,深入浅出地介绍基本语法和特性,内容通俗易懂。在程序设计技术方面,重点介绍结构化程序设计,同时从代码封装与重用入手,介绍函数库和组件;同时加强并行计算技术的内容,除介绍面向多机的MPI外,还介绍了面向多核的多线程和OpenMP技术。为培养个人软件工程的能力,从程序设计的规范性入手介绍个体软件过程管理。

本教材共分15章。第1章按照计算设备的发展过程,介绍图灵机及现代计算机的工作原理、问题求解与算法以及主流的程序设计思想和程序设计语言。第2章从信息编码与存储着手,介绍基本标识符、数据类型、常量和变量。第3章从数值计算角度出发,介绍运算符、表达式、输入输出函数库、数值计算函数库以及基本程序设计语句。第4章重点介绍逻辑运算与选择结构及其实现。第5章介绍迭代逻辑与循环结构及其实现。第6章从集合数据处理角度介绍数组、字符串及其实现。第7章从分工和重用角度介绍函数以及基于多文件的程序结构。第8章从地址角度介绍如何通过指针处理数据和指令。第9章围绕复杂数据结构的表示形式,介绍结构体、共用体和线性链表。第10章介绍预编译处理及其程序移植和泛化编程。第11章从数据永久存储角度介绍文件和常用函数。第12章汇总了常见问题的求解算法。第13章从代码和数据封装的角度介绍面向对象的程序设计思想。第14章从高性能计算角度介绍并行程序设计的基本思想以及MPI、OpenMP和多线程技术。第15章从培养合格程序设计人员的角度介绍程序设计规范和代码重用技术,并引入软件工程的概念,初步介绍个体软件过程(PSP)。

本教材由高克宁教授主编,副主编有李金双、赵长宽、柳秀梅和徐彬。其中第1章由高克宁编写,第2~5章由李金双编写,第7、12、14、15章由赵长宽编写,第6、9、11章由柳秀梅编写,第8、10、13章由徐彬编写。高克宁、赵长宽负责全书的统稿。同时,感谢为本教材出版付出辛苦的各位同事和研究生。

本教材提供全部教学PPT、习题答案、案例,请联系清华大学出版社(www.tup.com.cn)。教材中的部分程序要求采用支持C11标准的编译器,建议使用GCC 4.9.2或更新版本。

 作者

2017年7月于东北大学[1]〖3〗程序设计基础(C语言)(第3版)前言〖3〗[3]