摘 要:应用型普通本科院校计算机科学与技术专业把培养软件人才作为一个主要目标。软件人才应具备的软件开发能力表现在多个方面,是一种综合能力。当前该专业培养的学生的软件开发能力普遍不强。本文在分析具体原因的基础上,提出了学生软件开发能力的培养策略。该策略包括构建相应的课程体系、加强主干课教学、利用应用型案例指导实践教学和专业导师制四个方面。
IT产业已成为拥有最大产业规模和最具广阔前景的新型产业之一,软件人才短缺是一个不争的事实。近年来,应用型普通本科院校计算机科学与技术专业的培养方向主要定位于软件人才的培养上,培养具有软件开发能力的软件人才是该专业的一个主要目标。目前,国家正在推行“互联网+”战略和“创新创业”战略,这为计算机科学与技术专业的发展提供了前所未有的机遇,同时也为该专业的人才培养方式提出了挑战。
一、软件开发能力的含义
软件开发能力是软件人才的核心能力[1]。从软件岗位的专业特性分析,由于软件项目具有逻辑性强、不可见性、多样性、复杂性等特点,决定了软件开发的从业人员要具有较高的软件开发能力。软件开发能力是一种综合能力,主要表现在以下几个方面:
(1)具有扎实的专业基础知识和英语阅读能力。掌握高级程序设计语言、数据结构、数据库原理、软件工程等专业课程知识是软件开发人员必须具备的专业基础知识[2]。英语阅读能力非常关键,学习技术和开发软件都需要查阅外文资料,是软件开发人员必须具备的能力之一。
(2)至少熟练掌握一种开发语言。开发语言是软件开发人员的工具,不能熟练掌握一种开发语言,也就谈不上具有软件开发能力。
(3)具有较高的软件设计能力。能以软件工程为指导,完成软件各阶段的设计,能为所设计的软件选择合适的模型和结构[3]。
(4)具有丰富的开发经验。软件开发经验非常重要,具有软件开发能力的人员,经验是不可缺少的。
(5)具有较强的沟通能力和团队协作能力。软件开发是一种团队活动,开发人员应具备一定的沟通能力和团队协作能力。
(6)具有创新能力。软件人才的创新主要体现在技术创新方面,是软件人才必须具备的能力之一。
二、学生软件开发能力不强的原因
每年来自全国各类高等院校的计算机科学与技术专业的毕业生数量很多,但许多毕业生不能胜任软件开发工作,这就是导致该专业毕业生就业困难,而软件企业招不到人才这一两难现象的出现。毕业生软件开发能力不强,不能适应市场需求的主要原因在于高等院校计算机科学与技术专业人才培养方式上存在问题,如何培养合格的软件开发人才,是该专业急需解决的问题。
很多高等院校计算机科学与技术专业人才培养方式还没有很好的适应社会的发展需求,主要表现在以下几个方面:
(1)课程体系不适合培养学生软件开发能力。很多院校计算机科学与技术专业的课程体系还停留在“研究型”培养模式上,这种培养模式显然不适应应用型人才培养,不适应培养学生的软件开发能力。
(2)仍然是应试教育。目前,高等院校对学生学业的评价仍然以期末考试为主,不注重学习过程的监控。学生学习目的也主要是为了考试。这种教育与学习方式显然不适合培养学生的'软件开发能力,直接导致学生专业基础知识不扎实,不能熟练掌握开发语言。虽然很多高等院校注意到了这种现象,进行了一系列的改革,但成效不大。
(3)实践实训教学不足。对计算机科学与技术专业的实践教学,各类课程主要还是以上机为主,缺少综合性实验,不能培养学生综合利用该课程的知识点来解决问题的能力。缺少设计性实验教学,不能培养学生利用所学知识宏观地、创造性的解决问题的能力。软件开发的专向实训环节缺失或不成熟,不能积累学生的开发经验,不能培养学生的沟通能力、团队协作能力和创新能力,显然也不能培养学生的软件开发能力。
(4)教师的软件开发能力不强,教学方法不高。大部分的高等院校的教师没有参加过软件开发项目,自身不具备或很少具备软件开发能力,这方面的教学方法很糟糕,很难培养学生的软件开发能力,使学生比较迷惘,最终失去兴趣与信心。
三、学生软件开发能力的培养策略
1.构建适应培养学生软件开发能力的课程体系
培养学生的软件开发能力应从三个方面着手:一是培养学生的基础编程能力;二是使学生掌握软件开发的相关理论;三是培养学生软件开发的工程能力。因此,要从这三方面出发来构建课程体系。经多年的教学实践,提出了有助于培养学生软件开发能力的课程体系。主干课的课程体系如表1所示。
在软件开发方向上,通过该课程体系,能使学生具有扎实的基础知识,能熟练掌握一种开发工具,能培养学生的软件开发能,能使学生积累开发经验,能培养学生的团队协作能力和创新能力。
2.加强主干课教学
计算机科学与技术专业主干课可分为三类:一类是程序设计课程、另一类是理论课程、最后一类是工程应用课程。这三类课程都非常重要,是提高学生软件开发能力的基础。在教学过程中,要改变应试教育模式,加强学生学习过程監控,最终达到教学目标。
对于程序设计类课程,如C/C++程序设计、C++面向对象程序设计、Java程序设计、.NET程序设计等课程,在使学生掌握基础知识的同时,主要培养学生的程序设计能力。在教学过程中,要使学生掌握基本的算法,着重培养学生模块化程序设计思想、复用的思想,培养学生对程序设计的兴趣,培养学生解决问题的能力,最终达到培养程序设计能力的目标。在教学过程中,通过测试、竞赛、综合性实验等环节,监控学生的学习过程,并且每个环节都要有成绩,作为最终结课成绩的组成部分,改变期末考试一张卷的评价模式。endprint
对于理论类课程,如数据结构、数据库原理等,在使学生掌握基础知识基本理论的同时,要与应用相结合。例如数据结构课程,在使学生掌握基础知识基本理论的同时,要用学到的知识解决具体问题,比如讲解完链表后,要求学生用链表作为数据结构来解决学生的通讯录管理问题;讲解完栈后,要求学生用栈来解决后缀表达式的计算问题;讲解完队列后,要求学生用队列来解决舞伴问题等。这样不但能加深学生对基本理论的理解,同时也培养了学生解决问题的能力,最终提高了学生编程能力和应用能力。另外,在这些理论课中要安排相关的综合实验,通过这些综合实验来了解和监控学生的学习过程。
对于工程应用类课程,如六、七学期的工程应用项目实训类课程,主要培养学生软件开发过程中的工程项目能力、协作能力和创新能力,最终培养学生的软件开发能力。这类课程要以软件工程为指导,模拟公司软件开发过程。这类课程的任课教师要有软件工程项目的实际经验,自身必须具备软件开发能力。课程内容及项目选择上必须与实际应用接轨,一般地,可以将教师的实际工程项目进行整理、改编,从而适合教学。教学过程中,教师讲解的是模板,是技术的关键点,学生同时要完成自己的项目。学生分组来完成项目,每个学生在每个工程环节都要承担一定的任务,组内组织各种讨论。结课时,要组织相关教师来对学生项目完成情况进行验收,主要以答辩的形式来完成。通过这些年的实践,这类课程很受学生欢迎,调动了学生学习的积极性,培养了学生的软件开发能力,提高了学生的就业质量。
3.利用应用型案例指导实践教学
计算机科学与技术专业的实践教学包括上机、综合性实验和设计性实验三部分。上机是基础实验,来验证或设计基本问题,目的是使学生掌握知识点和解决基本问题;综合性实验是学生经过一个阶段的学习后,在具有一定基本知识和基本技能的基础上,运用一门课程或多门课程的知识,对实验技能和方法进行综合训练的实验[4],目的是培养学生综合运用知识解决问题的能力;设计性实验一般是独立于具体课程教学而进行的一种探索实验,目的是培养学生的实际应用能力和创新能力。
在综合性实验和设计性实验的实施过程中,教师要通过应用型案例来指导学生。这里所说的应用型案例指的是能完整地解决具体的问题,具有模板性的案例。应用型案例一定要强调完整性和模板性,技术和解决方案的选择要与当前软件公司实际开发相接轨。另外,案例选择上还应本着大小适中、便于需求的原则。
在综合性实验过程中,教师首先要设计或整理教学用应用型案例,然后可以讲解该案例,留出部分功能让学生去完成的实验模式,也可以讲解全部案例,让学生完成类似题目的实验模式。
在设计性实验过程中,教师也要设计教学用应用型案例,然后宏观简要地讲解该案例,最后让学生自己设计实验题目,独立完成整个实验。
把应用型案例应用于实践教学,能缩短实验时间,能有效提高学生实验的质量,提高学生的应用能力和软件开发能力。
4.通过专业导师制,培养学生软件开发能力
导师带学生是培养学生软件开发能力的又一条重要途径。导师必须具备软件开发能力,参加过实际的软件工程项目,并且导师的研究方向应和学生的培养方向一致或相近。一个导师一般带4到6个学生比较合适。导师要制定指导计划,组织活动,实施项目。在指导过程中,把自己的经验体会介绍给学生,使学生更好、更快地融入到项目中,并且能收获到成就感,从而增加对软件开发行业的热爱,进一步调动学生的积极性,增强主动探索能力,从而培养学生的软件开發能力。
【专业学生软件开发能力培养研究论文】相关文章: