欢迎来到天天文库
浏览记录
ID:18761823
大小:81.50 KB
页数:7页
时间:2018-09-22
《c程序设计再版前言》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、谭浩强教授:关于《C程序设计(第四版)》出版及学习程序设计问题的几点想法 2010-12-0912:46 文泉书局 在《C程序设计》(第4版)出版之际,作者想对学习程序设计问题提出以下几点看法:1.为什么要学习程序设计 大学生不能满足于只会用办公软件,应当有更高的要求,对于理工科的学生尤其如此。 计算机的本质是“程序的机器”,程序和指令的思想是计算机系统中最基本的概念。程序设计是软件开发人员的基本功。只有懂得程序设计,才能进一步懂得计算机,真正了解计算机是怎样工作的。通过学习
2、程序设计,学会进一步了解计算机的工作原理,更好地理解和应用计算机;掌握用计算机处理问题的方法;培养分析问题和解决问题的能力;具有编制程序的初步能力。即使将来不是计算机专业人员,由于学过程序设计,理解软件生产的特点和生产过程,就能与程序开发人员更好地沟通与合作,开展本领域中的计算机应用,开发与本领域有关的应用程序。 因此,无论计算机专业学生还是非计算机专业学生,都应当学习程序设计知识,并且把它作为进一步学习与应用计算机的基础。2.为什么选择C语言 进行程序设计,必须用一种计算机语言作为工具,否则只是纸上谈兵。可供选择的语言很多,各有特点和应用领域。C语言功能丰富、
3、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好,既具有高级语言的优点,又具有低级语言的许多特点,既适于编写系统软件,又能方便地用来编写应用软件。有人以为C++语言出现后,C语言过时了,淘汰了,这是一种误解。C++是为处理较大规模的程序开发而研制的大型语言,它比C语言复杂得多,难学得多。事实上,将来并不是每个人都需要用C++编制大型程序。C语言是更为基本的。美国一位资深软件专家写了一篇文章,题目是“对计算机系学生的建议”,是经验之谈,可供参考。他说“大学生毕业前要学好C语言,C语言是当前程序员共同的语言。它使程序员互相沟通,比你在大学学到的‘现代语言’(比如ML语
4、言、Java语言、Python语言或者正在教授的流行语言)都更接近机器”。他指出:“不管你懂得多少延续、闭包、异常处理,只要你不能解释为什么while(s++=t++)的作用是复制字符串,那你就是在盲目无知的情况下编程,就像一个医生不懂最基本的解剖学就在开处方”。C语言更适合于解决某些小型程序的编程。C语言作为传统的面向过程的程序设计语言,在编写底层的设备驱动程序和内嵌应用程序时,往往是更好的选择。 现在大多数高校把C语言作为第一门计算机语言进行程序设计教学,这是合适的,有了C的基础,在需要时进一步学习C++,也是很容易过渡的。3.怎样组织程序设计的教学?怎样处理
5、算法和语言的关系 要进行程序设计,要解决两个问题:(1)要学习和掌握解决问题的思路和方法,即算法;(2)学习怎样实现算法,即用计算机语言编写程序,达到用计算机解题的目的。 因此,课程的内容应当主要包括两个方面:算法和语言。算法是灵魂,不掌握算法就是无米之炊。语言是工具,不掌握语言,编程就成了空中楼阁。二者都是必要的,缺一不可。作者的做法是:以程序设计为中心,把二者紧密结合起来,既不能孤立地抽象地研究算法,更不能孤立地枯燥地学习语法。算法是重要的,但本课程不是专门研究算法与逻辑的理论课程,不可能系统全面地介绍算法;也不是脱离语言环境研究算法,而是在学习编程的过程中,介绍有
6、关的典型算法,引导学生思考怎样构造一个算法。编写程序的过程就是设计算法的过程。 语言工具也是重要的,掌握基本的语法规则是编程的基础,如果不掌握必要的语法规则,连最简单的程序也编不出来,或者编出来的程序错误百出,无法运行。但是掌握C语言绝不能靠死学死记,就像熟读英语的语法不一定会写英文文章,靠字典是学不好外语的。如果你去看C语言标准文本,可能感觉如看“天书”一样,恐怕只有计算机专家才能看懂。绝不能把程序设计课程变成枯燥地介绍语法的课程,学习语法要服务于编程。 在30年前我们编写《BASIC语言》时就已经遇到了这个问题,我们坚决摒弃了孤立地介绍语法的做法,而是以程序设计
7、为中心,把算法与语言紧密结合起来。不是根据语言规则的分类和顺序作为教学和教材的章节和顺序,而是从应用的角度切入,以编程为目的,以编程为主线,从初学者的认知规律出发,由浅入深,由易到难,构造了教材和教学的体系。一开始就让学生看懂简单的程序,编写简单的程序,然后逐步深入。语法规则不是通过孤立的学习而是在学习编程的过程中学到的。随着编程难度的逐步提高,算法和语法的学习同步趋于深入。学生在富有创意、引人入胜的编程中,学会了算法,掌握了语法,把枯燥无味的语法规则变成生动活泼的编程应用。事实证明这种做法
此文档下载收益归作者所有