摘自《Delphi 程序设计大学教程(刘艺 编著 机械工业出版社2005)
http://www.liu-yi.net/BBS/dispbbs.asp?boardID=6&ID=300&page=1
计算机程序设计既是一门概念复杂,知识面广的理论课,也是一门面向实战、需要动手的实践课。几乎所有的初学编程者都梦想着有朝一日能在计算机上驰骋,让一行行程序在自己敲击键盘的手下源源不断地流出,真真成为驾驭计算机的主人。然而,学完程序设计课程后,真正开始编写程序时,却往往会觉得难以下手、无所适从。尽管自己刻苦学习,高分通过考试,但并不能体会到所学知识给实际编程带来的便利和优势。
为什么会这样?一方面原因是我们的学生在学习时没有掌握程序设计的一般过程,没有深入了解通用程序设计语言的本质规律。另一方面是我们的教学体制僵化、教材陈旧,教学思想和内容跟不上时代的发展,与软件开发实际情况脱节。
计算机程序设计语言是一种实现对计算机操作和控制的人造语言,但程序设计语言仅仅是程序设计的手段和途径而并不是程序设计全部。因此,掌握程序设计语言并不意味着就精通程序设计,就能写出优秀的程序。实际上,程序设计所涉及的领域、知识和技能要远远超出我们的想象。因此本教材对于程序设计课程有着自己不同的理解:
程序设计首先是一个过程
程序设计过程通常分为问题建模、算法设计、编写代码和编译调试等4个阶段。不同阶段的任务是相对独立的,不能混为一谈。即使是一个比较简单的程序,我们也应该养成先分析,再下手,最后调试的习惯,严格遵循程序设计过程。因为在缺乏对问题深入、全面分析的情况下,就匆匆动手编写程序,将会增加失败的风险,带来后期修改、维护的麻烦。因此学习程序设计,不但不能回避程序设计过程,更要从软件开发过程和软件生命周期的高度来了解和掌握程序设计过程,从一开始就要养成遵从程序设计准则从事程序设计的良好习惯。有别于其他程序设计教材,本书强调程序设计和软件开发过程的重要性,为读者介绍了有关软件建模与测试的基本原理和技术。特别考虑到现代软件开依赖于集体合作和项目管理,是汇集了很多程序设计过程的更大的过程。因此,除了在书中增加有关软件过程实施和管理的介绍外,还把如何撰写规范的程序代码作为重要一节,使得读者在学习程序设计之初就了解程序设计的规范,注重编写程序的规范性、正确性和可*性,对于培养将来参与大型软件开发所需要的分工合作团队成员十分重要。
程序设计还是一种解决问题的方法和能力
学习程序设计主要是传授思考用计算机解决问题的方法,培养编程应用能力,而不是仅仅学会某个程序设计语言的语法规则。很多学生能弄清楚循环、if-else结构以及算术表达式,但很难把一个编程问题分解成结构良好的Delphi程序。这暴露了程序设计教学中偏重语法细节,忽略总体思想方法和整体过程实现的问题。
尽管程序设计理论的发展为解决问题提供了很多有效方法,但对于初学者而言学习的捷近应该是抓住最核心的思想方法:即结构化方法和面向对象方法。为实现这个目的,我们既把结构化算法分析和设计作为教材重点,也把面向对象分析和设计作为重点。对于前者,我们以顺序结构、选择结构和循环结构这三种基本结构为基础,讲解常用的结构化算法;对于后者,我们则围绕面向对象的抽象性、继承性、多态性和封装性这4个本质特点阐述面向对象程序设计的基本方法。通过强调基本概念、基本方法、基本应用,我们旨在为初学者奠定扎实的程序设计基础,树立良好的编程思想。通过大量的实例分析和范例程序设计过程演示,我们力图给初学者建立完整印象,培养其从整体把握问题和解决问题的编程能力。
程序设计最终是对程序设计语言的应用
程序设计和程序设计语言存在着有趣的辩证关系。程序设计可以用不同的程序设计语言来实现,但是不同的程序设计语言又决定着能使用怎样的程序设计思想和方法,制约着程序设计的实现能力和效率。本书使用Delphi作为学习程序设计的语言,并不是因为Delphi有强大的可视化编程功能,而是因为Delphi不但继承了Pascal语言完美的结构化风格,而且还具有面向对象语言的真正优势。更可喜的是Delphi还在继续发展,不断吸取现代编程语言的精华。这一切使得Delphi作为现代通用程序设计语言的代表,特别适合教学使用。因此学习Delphi语言,掌握Delphi程序设计方法是本课程的另一个重要任务。
本书虽然以Delphi语言为背景介绍程序设计语言的相关知识,但是重点强调的是一些通用的思想方法,而放弃了Delphi的一些奇技淫巧。读者应该注意到,不同的程序设计语言其语法和风格可能迥异,但无论哪一种语言,都是以数据(类型)、操作(运算)、控制(逻辑流程)为基本内容。更进一步讲,学习一门程序设计语言,应该超越语言的具体表述格式,不拘泥于繁芜的语法现象,而是站在抽象的高度,掌握程序设计的基本概念,深入了解程序设计语言的本质规律。这样将会为深入学习其他程序设计语言带来便利。