图书前言

前言

学生在学习相关专业知识的过程中,有很多环节需要用到计算机软件的相关技术: 

(1) 学生在专业课学习过程中,需要借助计算机软件技术进行相关知识的学习。

(2) 在毕业设计和论文研究期间,需要采用计算机软件技术编写相关算法及开发应用系统。

(3) 就业从事相关工作时需要具有一定的软件技术基础。

在上述各个环节中,根据实际教学和科研工作、软件从业人员调研的结果来看,学生需要掌握的相关技术有: 

(1) 信息逻辑处理技术。

(2) 软件开发工具语言技术。

(3) 数据库相关技术。

(4) 计算机网络技术。

(5) 软件工程技术。

(6) 软件相关技术。

上述相关技术中,信息逻辑处理技术、数据库相技术、软件工程技术是计算机软件技术的基础,对学生学习相关专业知识、提高软件技术能力至关重要。

在多年本科生、硕士研究生教学和科研工作中,经常遇到这样一些问题: 学生无法很好地将所学的专业知识通过软件技术实现,开发出能满足实际需要的应用系统。其主要原因是计算机软件技术基础薄弱,尤其是非计算机专业的学生。因此在学习计算机软件技术的时候,迫切需要有一套适应面较广、面向非计算机专业学生的实用性教材,以满足以下多种层次的要求。

(1) 以通俗易懂的语言讲解相关技术原理。

(2) 翔实的代码示例及运行结果解析,使学生通过运行代码,阅读解析,逐步了解和掌握相关算法。

(3) 以实际应用为教学目标,避免出现学生学习时无从下手、不会自己动手编写代码的现象,使学生具备独立开发代码的能力。

(4) 具有适应面广、基础性强的特点,能满足多层次、多类型的计算机专业本科学生的需要,特别是满足计算机应用型人才培养的需要。

(5) 由于学时有限,无法选修数据结构和软件工程等课程的学生进行学习。

为此,我们编写了适合非计算机专业的学生学习计算机软件技术的教材,帮助学生掌握相关计算机软件技术,为后续专业课的学习和就业提供有力支持。

本书以数据结构及算法、数据库技术、软件工程技术等为主要内容,面向机器人等非计算机专业学生介绍计算机软件基础技术。全书共分12章,其中第2~6章介绍数据结构及算法,第7章介绍程序运行相关资源管理,第8章介绍数据库技术,第9~12章介绍软件工程技术相关知识,具体如下: 

第1章概括性地介绍了数据处理、计算机技术和算法的基本概念,使学生对计算机软件技术有一个整体了解,为后续深入学习具体知识打好基础。

第2章介绍了递归方法。递归方法是一种常用的计算方法,也是后续相关数据结构学习的基础。

第3章介绍了数据结构、线性表、栈和队列的基本概念和操作方法,是本书的基础部分。

第4章介绍了树与二叉树,包括二叉树的遍历和二叉排序树等的存储结构和操作算法。

第5章介绍了图的定义、存储、遍历和最短路径等操作。相关知识在机器人行走路径优化等方面经常用到。

第6章介绍了查找与排序。查找与排序是最常见的数据处理需求,这里重点介绍了常用的排序算法。

第7章介绍了程序运行过程、存储、文件和设备等软件运行资源管理,其中程序运行资源包括程序运行过程涉及的进程、线程的状态与调度、同步等知识,是进一步学习并行计算、大规模并发解决方案的基础。

第8章介绍了数据库技术,包括数据库系统的组成、关系数据模型和结构化查询语言(SQL),其中关系数据模型和SQL是本章的学习重点。

第9章介绍了系统需求管理的相关知识,这是软件系统项目中一个极其重要的工作环节,是系统分析和系统设计及实现的基础。

第10章介绍了系统分析中的结构化分析方法和面向对象方法的相关知识,其中结构化分析方法应用非常普遍,是本章的学习重点。

第11章介绍了信息系统中的功能模块设计、编码设计、数据库设计等系统设计知识,其中数据库设计是本章的学习重点。

第12章介绍了信息系统实施的相关知识,包括信息系统的开发方式、管理信息系统的项目管理、系统开发方法、程序设计和软件测试等软件项目实施阶段的内容。

本书从基本算法设计方法入手,系统、全面地介绍表、树、图、查找、排序等基本数据结构及算法,给出了C++语言程序示例,读者可以结合程序的跟踪调试,考察过程结果,进而理解和掌握相关算法。

第2版根据本书第1版收到的读者反馈,对书中部分内容进行了修订和完善: 

(1) 数据结构部分重点强化了对相关算法原理的论述和程序实现的详细解析。

(2) 从学生实际学习和应用的角度调整了数据库部分的内容,重点是SQL语言的掌握。

(3) 软件工程部分按照开发软件系统的工作过程进行了调整,重点介绍在软件开发过程中用到的相关技术。

在修订过程中,相关的修改稿得到部分读者的反复阅读,直到能够清晰表达算法与程序实现的关联关系,修订稿经过试读反映良好,最终成册。

本书各章的习题也根据读者的反馈进行了调整,重点集中在算法原理理解、编程实践和算法的分析讨论方面,在实践中收到了良好的效果,更有助于学生掌握相关知识点。

本书使用对象是非计算机科学与技术相关专业的本科生、硕士研究生以及相关技术人员,为了便于自学,在编写过程中,力求语言简练、通俗易懂、由浅入深,着力挑选简单明了、实用性强的示例以阐明基本概念和基本算法。

本书得到北京科技大学教材建设经费资助,得到了北京科技大学教务处的全程支持。

虽经作者再三努力,本书难免有疏漏之处,恳请读者指正,更请同行不吝赐教,提出宝贵意见与建议,以便我们对本书不断进行完善。

作者

2024年11月于北京