首页 > 范文大全 > 正文

计算机专业软件开发能力的培养策略

开篇:润墨网以专业的文秘视角,为您筛选了一篇计算机专业软件开发能力的培养策略范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:软件开发能力已成为计算机专业学生应熟练掌握的一项重要技能,我院针对当前社会对软件人才的实际需求,制定了科学合理的教学方案。本文介绍了我院的培养策略以及实践效果。

关键词:软件开发能力培养;教学方案

中图分类号:G642 文献标识码:B

1引言

随着计算机硬件、软件、网络等信息技术的快速发展,计算机已由最初单机计算为主发展为现在以网络化信息处理为主,功能不断增强,性价比不断提高,应用范围不断扩大,推动信息社会快速发展,因此社会需要大量高质量的软件产品,更需要大量高素质的软件人才。据前程无忧网统计,如图1所示,该网站2006、2007年软件开发相关的岗位总数分别是33653、42177个,对各类软件人才的需求量稳步增长,其中,高级软件工程师的岗位数增长最快,增长了1.6倍,说明市场更加欢迎高级的软件人才,以后企业间的竞争是高级人才的竞争。调查显示,2007年中国软件产业存在至少20万软件人才缺口,并且这个缺口还以每年20%左右的速度增长。IT人才的短缺严重阻碍着中国IT产业的发展。教育体系有跟不上市场需求的危机,因此如今许多IT培训机构的业务非常火暴。

图1 2006年、2007年前程无忧网的软件开发岗位数比较图

计算机专业培养学生的目标主要是系统掌握计算机的基础理论,学习计算机先进的设计、开发技术,成为具有良好的综合素质、较强的创新与实践能力的专业人才。软件开发能力是计算机专业学生应具备的重要的、基本的技能。近年来,软件人才已成为当今社会最紧缺的人才之一,一方面说明当今社会对软件人才的刚性需求,另一方面说明当前高校培养的合格的软件人才数量不足,而我国许多高校计算机专业的招生规模不断扩大,但教学质量并没有提高。主要表现在学生基础理论不扎实、应用型知识缺乏、动手能力不够、自学能力不强和软件开发经验不足等方面,因此必须加强计算机专业学生软件开发能力的培养。信息产业部日前公布的一份软件产业发展规划显示,2010年中国软件产业销售收入预计将达到13000亿元人民币。软件行业期望新的从业人员应该具备以下三个重要特征:①扎实的概念基础和技术技能,从而能够适应不断变化的IT行业;②获得行业实际项目开发所需的技术和经验,熟练掌握编程的核心技能、规范和有关工具;③具有沟通与协作技能以及团队合作精神。下面从教师和学生两方面入手,分别探求软件人才的培养方案。

2教师是教学质量的保证

2.1教师要重视软件开发

目前许多教师重视读学位、写文章,轻视软件开发实践,因为后者不但辛苦,且不容易被大家认可,如在高校评职称时,写一篇普通文章强过开发一个优秀软件,显然两者的技术含量与付出的劳动都不成正比,但从长远的角度看,软件开发有益于教师的科研与教学,如笔者在读博期间研究一种综合算法,需要编写许多软件工具,构建算法实验平台,因此软件开发能力是进行算法研究的前题。

2.2教师软件开发水平有待提高

目前不少教师缺乏软件开发经验,难以理论联系实际,只能纸上谈兵,照本宣书。笔者开发过大量高质量的软件系统,授课时经常结合自己开发过的一些软件项目讲解算法与数据结构与软件工程等课程,有许多经验和方法都是在长期实践中领悟而得,学生对此非常感兴趣,从中受益匪浅。学生不仅学到了软件开发知识,还掌握了软件开发的方法,增强了对软件开发的信心。你若没有编写过大量程序,就很理解面向过程(Procedure-Oriented)、面向对象(Object-Oriented)、面向方面(Aspect-Oriented)与面向服务(Service-Oriented)等软件设计方法的思想并在项目中灵活运用,也无法体会设计模式(Design Pattern)的精妙之处。

2.3改进教学方法

如笔者在讲授Visual Basic(VB)与Visual C++(VC)等课程时,教学方法如下。

(1) 改革课程考核指标

为引导和鼓励学生多动手,加强软件开发实践,在学期初就公布成绩计算方案,如:总成绩=笔试成绩×60%+实验成绩×20%+软件项目成绩×20%。软件开发能力很难用一份试卷反映出来,不仅要考查算法理解与运用的能力,还要考核动手实践的水平。实践证明,通过软件项目的开发,能充分反映学生的综合素质,也能准确全面地了解学生对知识和技能的掌握情况。

(2) 教学初期强调对编程细节的指导

学生尚未入门时,要具体指导,最好用多媒体讲解,教师应现场编程。有些教师担心上课时编程出错,就将程序放在幻灯片上,上课时一闪而过,教学效果不理想。教师现场编程对教师提出更高要求。编程水平是软件开发水平的基础,笔者讲授任何一种语言都是边讲边编程,有时还会结合新算法,自由发挥,考查学生的理解能力,当然编写的程序有时也会出错,通过现场代码调试或查看帮助系统,很快就能解决问题。学生不仅要学习编程,更要学习教师分析问题和解决问题的方法,因此教师编程的全过程就显得非常重要。

(3) 教学后期要加强软件项目的开发

教师可先演示编写一个小软件。现在不少学生喜欢玩游戏,为增强学生的兴趣,笔者就用VB、VC编写过俄罗斯方块等游戏软件,学生们觉得很好玩,于是许多学生都编写了游戏程序,寓教于乐。其实一个小小游戏程序几乎包含了软件开发的所有领域,如系统分析与概要设计、可视化界面设计、游戏规则的算法设计、多媒体编程,也可能涉及数据库或组件设计与编程,如果是网络游戏还涉及网络编程、软件调试与测试、制作软件安装程序、编写相关文档。学习过程中提倡学生相互讨论,互相帮助。现在互联网的信息非常丰富,学生遇到的多数问题都可在网上找到答案,可以说软件开发可以离开教师与书本,但决不能离开互联网。

(4) 课程设计或毕业设计的选题要有现实意义

鼓励或要求学生开发一些真正的软件项目,其原因主要有:①学生觉得更有现实意义;②软件需求更为实际,需要学生实际调研后,整理、分析、总结出用户的真正需求,软件要求相对较高;③当用户使用时,更容易发现软件的Bug和设计的缺陷;④有效避免学生抄袭已有代码蒙混过关。总之,这样更能反映并提高学生的软件开发水平。爱尔兰通过发展教育、培养人才、吸引软件人才和大批跨国IT公司,促进软件产业发展,从30年前的一个农业小国,一跃成为世界软件出口第一大国。最近有一位在爱尔兰的中国留学生曾向笔者请教毕业设计的问题,他说本科毕业设计是开发一个购物网站,技术含量不高,但很实用,经过数月努力圆满完成,可硕士毕业设计遇到了技术难题,设计内容是用Java开发可以操纵手机的PC程序。这个课题很新,也很实用,这也是笔者在江苏省自然基金网上项目评审系统中开发过的一个软件,主要用于联系评审专家,只是我是用C++开发的。该软件涉及到系统底层的开发,如串口通信、手机的AT指今、通信数据包与通信议协的分析与处理、通信内容的数据挖掘与智能处理;该软件还要考虑Java操控操作系统的底层和C++系统向Java系统的移植。这说明了爱尔兰的计算机教育中,毕业设计课题来源于社会,有较强实用价值。

3学生是学习的主体

3.1学生应保持良好的学习心态

(1) 学习是一条漫长的道路

软件开发的学习是一个循序渐进的过程,不可急于求成。现在不少学生不太爱学习基础课程和钻研技术,学习不踏实,总想找些速成的学习方法。一部分学生认为大学里学习的算法与数据结构等课程不实用,还不如就学VB和数据库更能直接派上用场;还有一部分同学瞧不起程序设计工作,还不如学习项目管理,可以管理程序员工作,有地位,工作轻松,收入又高,因此把学校的课程弃之不顾,主攻管理学。前一类的人是急功近利,因基本功不扎实,发展后劲不足;后一类的人是好高骛远,本末倒置,不懂软件开发的项目管理,只能是纸上谈兵!

(2) 不要害怕走弯路

软件开发中充满智力与耐力的挑战,如何设计更为精巧的算法,就如同智力游戏。书写、整理软件中的大量代码与文档,没有足够的细心与耐心,就会半途而费。在学习软件开发的过程,经常或多或少会走一些弯路,但这不是坏事,因为以后会有意避免或少走这样的弯路。笔者在软件开发初期就经常走弯路,有软件工具选择不当,如将.Net改为Java;有欲速则不达的,如为简化编程使用现成报表系统,结果有些功能无法实现,最后只好编写近万行代码,开发了通用报表系统;还有技术使用不当,在一些专家的鼓动下使用了一些“最新技术”,殊不知这些最新技术隐藏了许多问题,这对软件系统是致命的,因此软件项目开发与科学研究不一样,不要选用最前沿的最新技术,而要采用成熟的主流技术。

(3) 兴趣是最大的学习动力

如果你对软件开发不感兴趣,整天面对电脑,输入代码,不停思考问题,肯定会无聊和痛苦的。据统计,中国35岁以上程序员只占5%,其中一个主要原因就是当程序员长期从事软件开发时,如果没有兴趣导向,就难以坚持,最终只能选择放弃。而国外许多软件大公司,年长的程序员却很多,主要还是他们热爱这个职业。笔者对软件开发很感兴趣,对每个技术细节总想追根求源,因为理解,学习效率倍增,开发软件的数量与质量也在不断提高。在学习新技术或开发有挑战性软件项目的过程中,会有一种满足感与成就感。当然还要消除学生对软件开发的神秘感,当他完成一项软件时,就会了解软件开发的全过程,且觉得很有意思。

3.3实践为主,注重积累

软件开发是高强度的脑力劳动,不仅要加强理论学习,更要重视实践。只有编写过大量程序之后,才能体会出软件开发的精髓。经验来自实践。软件开发中会产生问题和错误,若能解决好,可上升为经验,而这些经验是书本中学不到的。经验与代码的积累在今后的软件开发中尤为重要,时常会产生事半功倍的效果。笔者在开发软件时,构建了许多类库、函数库与通用组件,如通用查询、报表、动态界面、数据库与Office操作等组件,提高了软件开发的质量与效率。很难想象一个没有任何实践经验与代码积累的程序员可以快速开发出高质量的软件系统,这也是现在不少用人单位要求应聘者要有多年软件开发经验的原因。

3.4突出学习重点

针对学生的兴趣、特长和软件人才预期的需求热点,有选择地学习相关内容。软件知识与技术名目繁多,不可能全部学完、学精,对于需求热点可以查看一些IT人才网,多数技术较为相似,万变不离其宗,学习重点相对稳定,主要有:

(1) 精通一门编程语言。从目前网络版软件主要分为C/S(客户/服务器)模式与B/S(浏览器/服务器)模式,前者可学习C++、Java、Delphi(Pascal)、C#等编程工具,后者可学习JSP(Java)、.Net(C#)、ASP、PHP等编程工具。随着互联网快速发展,目前B/S模式占据主流地位,其中Java/

J2EE和.Net人才成为热门。但对于计算机专业的学生,C++语言是一定要学好的,它是许多核心系统的唯一语言。当然Java语言是全球最热门的语言,主要原因是Java具有跨平台、开源、安全等方面的强大优势。

(2) 熟练掌握一门数据库。如Oracle、SQL Server、MySQL,能灵活使用SQL语言和编写存储过程、触发器,并能将它与前面的编程语言相结合。多数系统都与大量数据有关,因此必须使用数据库技术,最好能够掌握数据库的维护与优化技术,以提高系统的性能。

(3) 深入研究数据结构与算法。有些软件系统对性能比较敏感,因此可提出更优的数据结构与算法,从而满足系统的性能要求;它还是研究核心技术的关键。

(4) 学好英语。目前大部分第一手的技术资料都是英文的,且随着外资软件企业与软件外包项目的增多,对英语口语与写作能力提出了更高的要求。学生平时应多看一些英文版计算机教材和英文技术资料,这样可以学习到最新知识与技术,更好理解作者的思想,也培养了英文阅读能力,对以后工作也会有帮助。如不少学生进入外资企业或软件外包公司后,相关资料几乎都是英文的,有时还要与国外客户或技术员开视频会议,发送E-mail等。

如果对MIS系统感兴趣,可重点学习数据库的管理、开发与优化技术;如果热爱网络通信,可重点学习网络通信与安全技术;如果有绘画特长,可选择网页、游戏或软件的界面设计;如果有编程天赋,可重点研究算法的设计与优化;如果想成为软件高级人才,可学习系统分析与架构设计;如果觉得编程水平一般,可从事动态网页设计或软件测试等。然而作为计算机专业的学生,应努力从事较高技术含量的软件开发,进一步拓宽知识面,掌握软件开发技术的全貌,优化知识结构,提高综合素质,这将有益于今后的就业与事业的发展。

3.5加强自学能力的培养

有人认为软件技术发展很快,软件人才被淘汰也快。然而解决该问题的最好方法就是学会如何自学,一门有生命力的技术,其发展必定很快,相关人才优胜劣汰,竞争激烈,如何保证永不落伍,唯有不断学习。如果完全依靠教师讲授,显然是不够的,必须强化自学能力的培养。笔者深有体会,本科是学习物理专业,多数计算机相关课程与软件技术全部是自学而成,对于目前软件技术的学习与研发游刃有余。学习一门新的软件开发工具或技术,笔者通常是先买一本由浅入深的书,再从网上或光盘上找到多媒体教学课件,边看、边听、边想和边练,将重点内容学完后,再找一个相关的软件项目,用该软件工具或技术进行开发,这个过程会发现许多意想不到的难题,通过研究官方帮助与网上的相关资料方可解决,当项目完成时,对学习内容的理解与掌握又深入一大步。据IT168统计,软件开发者学习.NET技术的主要渠道中,自学占69.4%。

4结束语

信息时代的许多领域都需要计算机专业人员,他们不是一般的计算机操作员,而是计算机硬件与软件的研发人员。目前计算机硬件已趋于成熟与统一,而软件的个性化需求却日益增强,存在巨大的市场空间,但对软件人才的要求也在不断提高,因此计算机专业的学生应勇于承担起这样的责任与使命,经过教与学的共同努力,提高学生的软件开发能力,为社会培养出更多优秀的软件人才。

参考文献:

[1] 戎玫,张广泉,王辉. 强化实践创新能力突破软件人才瓶颈[J]. 实验室研究与探索,2007,26(12):198-200.

[2] 徐长梅. 计算机专业学生能力的培养[J]. 长沙大学学报,2001,(2):70-72.

[3] 董翔英,王志友,赵锐. 问题意识与大学计算机教育[J]. 计算机教育,2005,(6):31-33.

[4] 徐晓飞. 培养具有国际竞争力的IT人才[J]. 计算机教育,2008,(1):12-15.

[5] 林穗,李振坤,傅秀芬. 计算机专业学生软件工程能力的培养[J]. 广东工业大学学报(社会科学版),2002,(2):37-38.