论提高计算机专业学生的程序开发能力
- 格式:doc
- 大小:29.00 KB
- 文档页数:4
论提高计算机专业学生的程序开发能力
摘要:程序开发能力和计算机应用能力是检验计算机专业教学的两个重要手段,笔者结合自己的软件开发经验和教学经历,从学、读、思、练、实践和好习惯等6个方面探讨了如何提高计算机专业学生的程序开发能力。
关键词:学习;实践;程序;能力
高等教育的目的有两个,从社会角度来讲是起滤网的作用,为社会提供不同类型、不同层次的人才;从人的角度来讲是尽可能的发展个人的潜力,让个人在社会中找到自己的位置。
作为计算机专业的老师,除了注重学生计算机基础能力的培养外,还要注重学生专业应用能力和专业扩展能力的培养,这样学生才能适应社会发展的需要;作为计算机专业的学生,必须提高自己的知识综合运用能力和程序开发能力,这样才能在知识日新月异的时代占有一席之地。
笔者结合自己的软件开发经验和教学经历,加上对学生的了解,从学、读、思、练、实践和好习惯6个方面来谈一下如何提高学生的程序开发能力。
1学
所谓学就是学习,认真学习程序开发基础课程和专业课程,不断地学习新的、先进的开发工具;只有扎实的理论基础,编程才能游刃有余,才能写出高水平的代码,才能开发出高质量的程序。
首先学好程序开发的最基础的课程一一C语言,然后根据应用范围不同而选择学习研究不同的开发工具。
底层开发一般使用C和汇编;大型或者游戏软件开发使用C或C++,一般用VC++或BC++;网页编程可以选择ASP、PHP或JSP;电子商务方面选择.NET或J2EE;网络应用一般选择JA V A。
不过像数据结构、数据库、英语、数学等课程,无论哪个方面的开发都需要学。
一般的基础课程有计算机基础、C语言、VB程序设计、数据库原理、数据结构、算法设计等,学习程序开发的基础课程主要是学习一门语言,一门数据库,一门算法设计。
基础越牢固,编程效率越高,这一点在程序开发中会慢慢体会到。
如果基础课程不牢固,可能也能编软件,但是很难开发出高水平的程序。
例如一般的程序会遇到费用问题,有费用就要考虑费用的大写问题,那么怎样实现费用的大小写转换呢?首先考虑算法设计,然后考虑算法实现。
考虑算法时就要考虑从左向右转换还是从右向左转换,确定后就可以通过循环控制结构来实现转换;中间用判断结构来判断如果为零或中间有零的特殊情况等等。
这样一个问题就通过简单的算法和基本控制结构实现了,所以程序开发必须有扎实的理论基础,这些理论基础来源于自己不断地学习。
另外,很多的课程告诉我们一些程序的效率问题,例如数据库设计中提到了SQL语句,我们最先想起的就是Select语句,在数据量比较大的情况下,Select 语句的查询速度和数据库中表的索引有很大的关系。
但是很多情况下Select语句是不使用索引的,如果在Select语句中的where条件中出现下列情况的不使用索引:列上有数学运算的,列上使用substr字符串函数的,‘%’通配符在第一个字符的,在列上使用字符串连接(II)的等等,那么在对大量的数据进行查询时,不考虑以上情况的话,SQL语句的效率就比较低,所以只有不断地学习好程序开发的基础课程,学习好各种工具的应用,才能写出高效率的代码。
2读
所谓的读就是读教材、读程序、读网上资料,然后把看到的经典代码和好的算法整理出来,逐个消化、吸收,转变为自己的知识,提高自己的程序开发能力。
读他人的代码时不要单纯地模仿,思想才是最重要的,主要是去理解别人的思想,读完后思考自己是否能写出更精炼、更有效的程序。
多与他人交流,从交流中学习提高。
3 思
首先,事前思考有没有可行性。
给你一个课题或一个项目,最先做的是思考可行性问题,包括技术可行性、经济可行性、法律可行性。
如果给你一个悖论让你用程序来实现,本身是一个悖论,编写程序肯定陷入死循环,怎么可能解决呢?
其次,事中考虑有没有更好的解决方案。
微软给了我们很好的思路,比如登录界面、保存、输入格式的限制和输入范围的限制等。
登录界面一般有用户名和登录密码,并且默认上次成功登录系统的用户名,输入的密码显示为一串“*”,在这些操作中可以只使用键盘。
那么我们开发的程序中的登录界面是否也可以这样呢?我们常用Woed和Excel,能设置定期保存,我们开发的程序是否需要实现定期保存?如何实现?其实我们可以在程序登录时记录系统时间,在一定的时间间隔内实现备份,最简单的就是书写代码调用Winrar实现文件的压缩备份。
一些输入的限制要根据内容的逻辑进行判断到底应该输入的内容或范围是什么?例如有的月份能输入31日,有的就不能,这都需要进行逻辑判断。
如果通过代码来控制,如何实现呢?开发程序时如果我们思考类似的细节,并想办法实现,实现的过程就是我们程序开发能力提高的过程。
最后,事后考虑有没有需要完善的,代码有没有需要优化的。
下面举个代码优化的例子,求一元二次方程ax2+bx+c=0的根,其中a、b、c为任意实数,这个例子很经典,多数开发语言或程序设计的教材中都讲到过。
实现的步骤是先判断a是否为0,再判断b2-4ac是否为0,根据相应的值求方程的根;a是否为0,必须判断,因为如果a为0,就不是一元二次方程,但是很多教材中没有提到;在判断b2-4ac是否为0时,需要这样判断fabs(b2-4ac)<=le-6,因为在计算机中,储存实数一般都有误差。
所以事后必须思考,思考程序有无需要完善的功能,有无需要优化的代码,完善的过程就是程序开发能力提高的过程。
4练
所谓练就是动手做练习,教材上的例题、课后习题都是很好的素材,都是编者经过深思熟虑的结果,很有代表性。
边练习,边理解,边思考,多问为什么?然后根据自己的思考和理解对例子做一定的改动,看执行结果是否和自己期望的一样?出现问题就设法调试、改正、编译使其通过。
例如有很多循环的例子,是否可以实现for循环和while循环相互转化,只有通过自己的实际转换后才能体会各个循环的特点。
练习要分阶段分步骤,开始编一些趣味性的程序;然后当积累到一定程度,就可以按照自己的想法编一些实用性强的程序,当然可以从借鉴别人的劳动成果开始:最后,系统地学习软件工程,完全按照软件生命周期的6个阶段来做,通过不断地练习,不断地完善软件过程,提高程序开发能力。
5实践
如果有机会,可以做实际的项目工程,在实践中不断地锻炼自己的其他能力,如逻辑思维能力、业务能力、沟通交流能力。
逻辑思维能力是程序开发能力的基础,只有良好的逻辑思维能力才能开发出高性能的程序,才能保证程序的正确性。
业务能力和沟通交流能力是必需的,如果不懂业务,就不知道用户的需求,就不可能开发出适合用户的程序。
实践的项目不在大小,在于实践的经历。
通过实践知道在实施项目中除了程序开发能力外还需要其他的能力,通过实践知道项目的实施过程和环节。
在实施的过程中遇到的各种各样的问题,使我们明白在程序开发中怎样思考、解决这些问题。
例如在培训用户时,发现用户对我们的业务流程不适应,用户自己的业务流程比较简单,那么我们在程序开发时就可以借鉴用户的流程,使我们的操作流程更简捷。
在测试阶段发现用户经常使用业务回退功能,那么我们就给主要的业务流程都加上业务回退功能,使系统功能更完善。
在维护阶段发现维护人员看不明白代码,那么在程序开发阶段就要注意良好的程序开发风格并增加适量的注释,保障程序的可理解性,提高土作效率。
6好习惯
(1)先思后行:在程序开发前或解决问题前,先考虑该问题是否有可行性,有可行性再考虑计划和实施。
(2)有备无患:程序开发之前,先找一些样例程序仔细研究,应该包含哪些基本功能?里面一些难度大的算法应该怎样实现?不打无准备之仗。
(3)按部就班:程序开发要遵循软件的生命周期,按照制定计划、需求分析、软件设计、程序编码、软件测试和运行维护这6个阶段来实现和完善软件,不可越级。
(4)见名知意:程序再小,用的变量也不会少,变量起名应当“见名知意”,这样可大大提高程序的易理解性和易修改性。
(5)开发规范:程序要书写规范,形成良好的程序风格,这样程序才层次清晰,易于理解。
(6)多加注释:对程序中自定义的变量、函数、子程序加以功能性的注释说明,好的程序中注释能占到整个代码的30%甚至50%,注释最根本目的就是增加程序的可理解性。
(7)环境保护:如果应用程序需要修改系统设置,记着执行程序前先保存设置,结束后要恢复设置,千万别污染系统。
(8)拿来主义:一个人的力量是有限的,大家的力量是无限的,平时多看书,有好的经验方法、用得上的段子不妨拿来;拿来先明白、再消化吸收、最后变为自己的知识。