图书前言

前言

目前,我国高校非计算机专业的计算机教育普遍实施“三个层次”的教学方式,即计算机应用基础、计算机技术基础和结合专业的计算机应用。“C语言程序设计”属计算机技术基础课程。

因为受到课时数不足、配套课程不够等客观因素的制约,任课老师普遍感到要在非计算机专业的学生中教好“C语言程序设计”课程不容易,学生也普遍感到学好课程有一定难度。为了使课程教学达到预期效果,我们认为应该明确和解决好以下问题。

1. 课程目的

程序设计是计算机技术在各行各业应用的基础。非计算机专业的学生,在今后的工作中不一定要自己开发应用程序,但一定应学会使用计算机程序,也有可能与计算机专业人员合作开发本专业领域的应用程序。因此,学习程序设计的一般原理,掌握基本的程序设计方法和技术具有重要的现实意义。“C语言程序设计”课程的目的就是帮助学生掌握一种典型的高级程序设计语言(C语言),并通过运用C语言开展程序设计实践,使学生具备应用高级语言开展程序设计的初步能力。

  程序设计必须借助于某种语言。“C语言程序设计”课程必然应包含“C语言”和“程序设计”两方面的内容。必须明确,学习程序设计的一般方法和技术是本课程目的,学习C语言只是为了实现程序设计,C语言是程序设计的工具语言。本课程将通过对C语言的词法、语法介绍,通过各种基本控制结构的实际案例分析,向学生介绍程序设计的基本方法。通过上机实验,使学生掌握程序调试和测试方法。通过本课程的学习,应使学生应用计算机解决问题的能力进一步提高,为后续的计算机应用课程打下坚实的基础。

2. 课程内容

对程序设计语言和程序设计技术的熟练掌握和深入理解是计算机系学生的两大基本功。“C语言程序设计”课程是计算机专业学生4年中要学习的系列计算机课程的第一门,属专业基础课,其重要性不言而喻,因此一般安排比较充足的教学课时。况且计算机系学生还应学习一系列计算机课程,如“数据结构”、“汇编语言”、“编译原理”、“程序设计语言理论”、“算法设计与分析”、“程序设计方法学”、“形式语义学”、“软件工程”等。因此,计算机系学生学习“C语言程序设计”课程时,主要的课程内容是深入研究C语言的词法和语法,并通过程序设计练习进一步理解程序设计语言。其教学的重点是程序设计语言,程序设计技术是副产品。

在非计算机专业学生中开设“C语言程序设计”课程,不能全盘复制计算机专业学生的课程内容。一是课时不够,二是应该对本课程的内容作适当的外延。

历史上先后产生了多种高级程序设计语言,而且新的高级程序设计语言也在不断出现。C语言是目前使用较普遍的一种高级程序设计语言,虽然C语言的内容比较庞杂、琐碎,语言描述本身也不如Pascal规范,但考虑到它具有较广泛的实用性,比较容易和后续的计算机应用课程衔接,所以我们认为使用C语言作为程序设计的工具语言是合适的。

本课程的基本教学内容应包括: 软件开发的一般过程,软件开发和软件运行平台的使用,软件工程的基本概念,C语言的基本词法和语法,结构化程序设计的方法,模块和函数的概念,顺序、分支和循环三种基本程序控制结构的概念和实现,程序调试和测试的一般方法,面向对象程序设计方法的概念等。

考虑到能提供给本课程的学时有限、学生在学习本课程之前数学基础和专业知识还较欠缺,加上大学一、二年级其他功课压力较重等客观因素,具体安排课程内容时应注意以下几点: 

(1) 介绍程序设计语言时应突出重点而不要面面俱到。C语言语法比较庞杂,有些语句可以相互替代,有些语法不常使用。课程中要重点介绍基本的、常用的语法,忽略重复的、不常用的语法。

(2) 注重程序设计语言的共性。学生以后不一定用C语言编写程序,而本课程又不可能介绍所有的计算机语言。所以应该介绍计算机程序设计语言共性的东西,让学生掌握语言比较学的方式方法,使学生具有自学其他程序设计语言的能力。

(3) 应该介绍面向对象的程序设计方法。面向对象的程序设计是今后程序设计的方向,C语言是面向过程的程序设计语言,并不支持面向对象的程序设计方法。但C++是面向对象的程序设计语言,课程中应简单介绍C++的面向对象的内容,为今后顺利过渡到面向对象的程序设计留下接口。

(4) 不要从理论上讲解程序设计。由于课时的限制,课程不能安排太多时间专门讲授程序设计理论,而应以介绍语言为线索,通过一批实例分析,将程序设计的一般方法和技术传授给学生。

长期的计算机基础教学实践,长期的计算机基础教学研究,是本书形成与完善的基础。我们希望奉献给老师和学生一本适合教、适合学的教材。

本书由黄保和与江弋共同编写。其中前6章由江弋编写,后6章由黄保和编写。写作期间,得到福建省计算机基础教育研究会的大力支持,得到厦门大学公共计算机教学部各位老师的大力支持,谨表谢意。

在使用本书过程中,如发现错误,恳请与黄保和联系(huangbh@xmu.edu.cn)。

编者

2011年7月