前言

FOREWORD

伴随大学计算机基础教育教学改革的继续深化,高校计算机基础教育正在进入一个新的阶段,面临新的挑战,需要新的突破。为贯彻落实《教育部关于全面提高高等教育质量的若干意见》精神,着力提升大学生信息素养和应用能力,推动以大学生计算思维能力培养为重点的大学计算机课程改革,经教育部高等教育司同意,2012年教育部高等学校计算机基础课程教学指导委员会与文科计算机基础教学指导委员会决定启动“大学计算机课程改革”项目,拉开了新一轮大学计算机教育教学改革的序幕。大学计算机教育是在不断改革中发展的,新一轮大学计算机基础教育有了重大突破和发展,其中最重要的突破和发展是在大学计算机基础教育以能力培养为核心的特征中,能力内涵发生了重大变化和发展,超越了大学计算机教育仅解决计算机领域问题的局限,使大学计算机教育的功能发生了重大变化,开创了运用源于计算机的思维与行为方式解决各类专业或社会生活问题的新功能,并提升到人类普适性能力层面。

大学计算机基础教育已经取得了以“面向应用、需求导向、能力核心、分类指导”的基本经验和规律。本书按照以上经验和规律,明确把C语言程序设计学习过程和计算思维的训练环节融合一起,在训练技能的过程中,融入计算思维能力的培养,注重追求教学活动过程中的有效性与效率,以计算思维为切入点,以能力培养为导向,促进具有创新意识的应用型人才的培养。通过本书的学习,可使学生了解C语言程序设计对人们生活、工作、学习方式的影响和对经济社会发展所做出的贡献;了解计算机学科与自然科学、工程技术、人文社科等相互渗透、交叉融合,促进各学科的发展;理解和掌握程序设计的基础知识和基本方法,掌握基本的程序设计的应用能力,掌握利用C语言程序设计解决专业领域问题的思路和方法。

本书的主要特点:

(1)以培养大学生信息素养和应用能力为目标,遵循“程序=算法+数据结构”的理念,在内容安排上与同类教材有所不同。在内容上增加了算法初步,让学生对程序设计中的常用算法有初步的了解,以便日后深入学习;按照数据结构的构成来组织相关章节,在保持传统的数据组织方式的基础上,在内容上增加了栈、队列、二叉树、数据库等数据组织方法,丰富了数据处理的结构,知识点更系统;让学生能更好地理解程序的内涵和特征。

(2)以“问题—思路(问题求解)—算法(模型)—代码—调试—修改—实现”为主线,由导例引出问题,通过“问题描述、问题分析、算法描述、程序实现、运行结果、程序分析”6个步骤解决问题,从而引出相关的知识点与技能点,进而引导学生掌握程序设计的基本方法。通过大量的导例学习,一方面学生较容易掌握程序设计的基本方法;另一方面,由于重复性的训练符合思维能力的培养过程,必然会影响学生的思维方式,提升其思维能力。

(3)以培养学生计算思维能力为切入点,把计算思维这根线贯穿在教材编写的各个环节中。在教材中处处体现方法、思路是解决问题的灵魂,强调解决问题的方法、思路,关注知识点的学习,强化编程技能的训练,将C语言程序设计学习过程和计算思维的训练环节结合起来,在问题求解、编程训练、教学实践的各个环节融入计算思维能力的培养。

(4)以导例为主线,通过导例引出知识点,通过问题的解决对知识点进行深入的学习。全书导例的编排由浅入深,每章最后一节设置综合案例,以培养学生分析和解决综合问题的思路和方法,以及程序设计的综合能力。在每章的最后按照“难、中、易”对习题进行了分类标注,以适合于不同学生按需之用。

(5)结合程序设计的应用领域,编写了对应的综合案例,学生可以根据所在专业选择相近的案例进行学习。通过综合案例了解程序设计如何解决专业领域问题,潜移默化地引导学生以计算思维学习和解决专业问题。

本书适合作为大学非计算机专业的程序设计基础课程教材,建议授课学时36~48学时。通过本书的学习,希望可以达到以下3个培养目标:

(1)掌握程序设计的基本概念,熟悉C语言编程的基本方法,具备利用C语言编程的能力。

(2)具备应用C语言程序设计解决专业问题的初步能力;

(3)提升学生的思维能力,特别是利用计算思维解决专业领域问题的能力以及处理其他问题的能力。

本书由王全民、郑爽任主编,高林教授审阅。其中,第1章由王全民编写,第2章由崔玲和郑小静编写,第3章、第7章由郑爽编写、第4章由李秀荣编写,第5章由杜春涛、付瑞平编写,第6章由朱立平编写,第8章由崔玲、郑爽、李秀荣等编写。此外,本书的编写也得到了蒋海华、刘宇明、吴丽影、张程、雷佳伟、吴有仙等的大力支持。

本书在内容的组织、导例的选取、编程的步骤、知识点的讲授方法,以及习题难易程度的编排都进行了认真的思考,找到了解决计算思维从学术研究“落地”到教学过程中这一操作定义层面上的关键问题的可行方法,力求将C语言程序设计课程建设成为支撑提升学生计算思维能力的一个有效环节。

本书中的主要内容、知识点和相应的思维要素如表1~表7所示。

表1 “C语言程序设计基础”部分

续表

表2 “算法初步”部分

表3 “函数”部分

表4 “组合数据类型”部分

续表

表5 “数据结构”部分

表6 “数据外部存储”部分

续表

表7 “综合案例”部分

在本书的编写过程中,谭浩强教授、吴文虎教授、高林教授、严晓舟副总编以及“大学计算机基础教育改革理论研究与课程方案项目课题组”的专家们提出了宝贵建议和意见,高林教授在百忙之中对本书进行了审定,在此对各位专家、学者,以及参加、支持本书编写的各位教师以及同仁表示衷心的感谢!同时,在编写本书的过程中参考了许多书刊和文献资料,在此向这些资料的作者表示感谢。

限于作者学识水平,书中难免存在疏漏与不妥之处,恳请读者批评指正。如果有任何建议或意见,请发送电子邮件至wangqm@bjut.edu.cn或wqm4106@163.com。

编者

2014年11月