应用型软件工程人才培养问题

应用型软件工程人才培养问题

摘要:针对应用型软件工程人才培养,提出了必须解决的四个关键性问题:课程体系构建、程序设计能力培养、理论教学与实践教学的平衡与融合、专业意识与职业精神培养,并给出了具体的解决思路与方法。

关键词:软件工程;程序设计能力;专业意识;职业精神

软件工程是软件产业的支撑学科,软件工程教育兼具科学教育属性和工程教育属性。科学教育注重培养软件工程基础研究人才,而工程教育则着重培养软件工程技术、管理和服务人才。为适应社会经济发展需求,教育部于2017年了《关于“十三五”时期高等学校设置工作的意见》,该意见将我国高等教育分为研究型、应用型和职业技能型三大类型,应用型高等学校主要从事服务经济社会发展的本科以上层次应用型人才培养,并从事社会发展与科技应用等方面的研究。因此,应用型本科已成为一种新的教育层次,应用型人才的培养也成为近年来高等教育领域研究的热点课题。本文就如何培养应用型软件工程人才提出必须解决好的四个问题。

一、构建与职业岗位相适应的弹性化课程体系

(一)课程体系设计的指导思想

课程体系是为实现培养目标而设置的、按照一定逻辑关系组织起来的全部课程的整体,对应用型软件工程专业而言,课程体系设计的指导思想是:面向应用、能力为本、持续发展。在课程的内容和结构方面,要整合优化理论类课程,强化应用技术类课程,在保证核心专业基础课程的基础上,突破学科专业界限,根据地区软件产业的发展趋势和市场需求,灵活设置专业方向类课程,使课程体系与职业岗位具有匹配性和适应性,同时,强调专业知识的系统性和完整性。

(二)构建弹性化的专业课程体系

软件工程专业是一个涉及多学科交叉融合的专业,其基础理论涉及计算机科学、数学、工程学、管理学等多方面的内容,需要安排较大的课时量来完成,但对应用型本科学生而言,为了突出动手能力的培养,在4年的学习时间中至少有1年的时间用于工程性训练。因此,基础理论教学的课时量需要大量的压缩,在这种情况下,基础课的选择与设置就需要权衡多方面的因素。一方面,要对软件工程教育知识体系中要求掌握的基础知识进行有效覆盖,使学生能给够对软件工程专业形成系统而宽泛的理解和认识;另一方面,需要对基础理论课程的内容要进行深度的精简、整合和优化,以便在有限的学时内完成教学任务。在教学目标上要突出多学科知识的综合应用。在专业课程体系设计方面强调课程与职业岗位的匹配性和适应性。软件工程专业的学生毕业后主要从事与软件开放相关的工作。目前,软件工程专业的主流就业岗位包括JAVA软件工程师,ASP.NET软件工程师、移动应用开发工程师、系统架构师、数据库管理工程师等。因此,在专业课程的设计方面,要处理好专业面宽度的选择、专业方向的针对性与适应性等问题,具体做法就是紧紧围绕当地信息产业的发展需要,选择和设置专业方向,在保证专业核心课程的基础上,按专业方向构建专业课程体系,这种弹性化的课程体系结构既能保证专业与职业的匹配性,又能使学生灵活地选择侧重于学习WINDOWS软件开发、JAVA软件开发,或者移动应用开发等,满足学生个性化发展的需求,更有利于培养地区经济发展所需要的软件工程人才。

二、坚持程序设计能力培养不断线

软件工程专业旨在培养未来的软件工程师,软件工程师最基本的能力就是程序设计能力。程序设计在计算机科学与技术的知识体系结构中具有核心位置,是软件工程专业教育的重要内容,也是软件工程专业毕业生必备的职业能力。任何一个软件产品,其设计思想与方法、软件构造过程中每个阶段的工作成果,最终都是通过编程来实现的,因此,如何培养学生的程序设计能力是软件工程专业教学与实践中的一个重要课题。

(一)程序设计能力的定义

程序设计的实质是用计算机语言表达问题的求解过程,是有形地表达抽象思维的一种方法。关于程序设计能力的定义,在文献中,作者通过对已有的关于“程序设计能力”的文献进行元分析,给出了“程序设计能力”这一概念的明确界定:程序设计能力是一项综合能力,包含12个因素,分别是算法分析能力、程序阅读能力、程序编写能力、程序调试能力、分析问题能力、解决问题能力、抽象思维、逻辑思维、自主学习、团队协作、创新思维,批判性思维,这12个能力构成一个能力环,分为三个能力层次,初级程序设计能力为掌握程序设计的算法,能读懂程序、编写程序和调试程序;中级程序设计能力是能够运用逻辑思维和抽象思维分析解决问题;而高级程序设计能力则要具备团队协作、自主学习、创新思维和批判性思维等更高级的能力。

(二)程序设计能力的培养

从上面的定义可知,程序设计能力培养是一个漫长的、循序渐进的过程,需要通过系统的教学活动和大量的实践训练才能完成,而且需要学生在这些教学和实践活动中不断的领悟和升华才能形成。为了能够更有效地培养学生的程序设计能力,必须将程序设计贯穿于整个专业教学过程,坚持程序设计训练四年不断线的原则。在课程安排上要前后连贯、循序渐进,将程序设计基础(C)提早到新生入学的第一学期,使学生尽早地接触程序设计基础知识,然后逐步学习面向对象程序设计、WEB程序设计,面向对象分析、框架程序设计、移动应用开发等课程,使学生系统掌握编程语言、软件分析与设计、熟悉不同平台下的程序设计思想与方法。在实践教学环节方面,根据程序设计能力的三个层次,将实践教学划分为基本编程能力训练、综合性设计训练、软件工程实践性训练三个阶段。基本编程能力训练主要训练学生的算法设计能力和运用程序设计语言描述算法的能力,培养学生的初级程序设计能力;综合性设计训练主要训练学生进行软件分析和设计的能力,即运用逻辑思维和抽象思维分析和解决问题的能力;软件工程实践性训练是让学生直接参与到实际的工程项目或商业性软件项目中,使学生有机会亲身体验软件的开发过程,通过软件项目的全过程训练,有效地培养学生的团队协作能力、自主学习能力和创新思维能力,同时,要对学生在四年内参与完成的项目数和编码量进行量化考核,并将考核结果纳入学生成绩管理。这样,通过四年不断线的程序设计训练,使学生熟练掌握程序设计的基本技巧,养成规范化的编码习惯,形成成熟的程序设计思维模式,具备较高的程序设计能力。

三、把握好理论教学与实践教学的平衡度与融合度

(一)理论知识与应用能力的平衡

应用型人才是介于研究型人才和技能型人才两者之间的一种中间层次,在知识结构上侧重于技术知识的学习与掌握,强调运多学科知识的综合应用;在能力方面不仅要具备岗位胜任能力,还要具备一定的职业发展潜力,因此,应用型人才必须具备系统完整的基础理论知识和较强的应用实践能力。软件工程专业是一个交叉性应用性专业,具有知识面广、基础理论多、工程实践性强等特点。虽然应用型软件工程人才培养的核心目标是应用能力,但是应用能力包括理论知识水平和动手能力两个方面,两者相辅相成,不可偏废,没有理论知识就没有应用能力,没有应用能力理论就失去了价值。因此,在教学过程中基础理论教学和实践教学必须达到一定的平衡。目前,应用技术本科院校的软件工程专业大多采用3+1的培养模式,即3年的课内教学,1年的工程实践,同时在人才培养方案中对理论课程的内容和学时进行了压缩,这就使得理论课程的教学面临巨大挑战,个别学校采用弱化理论课的方法,这样做的后果导致学生在专业基础理论与知识掌握上不系统、不完善,既影响了应用能力的提高,也使学生的职业发展潜力受到限制。从另一个角度看,工程实践训练也不能脱离理论的指导,盲目的实践或低水平的重复都无益于应用能力的培养。因此将理论教学和实践教学有机结合、适度平衡,才能达到预期的培养目标。

(二)理论教学与实践教学的融合

在教学过程中将理论知识与应用实践进行有机融合有益于提高教学效果。具体思想就是在理论性课程的教学中,要尽可能将理论知识与软件开发的具体环节有机结合起来,通过具体的工程问题引出相关理论,结合问题讲解理论知识,帮助学生理解消化理论知识,体会理论的可应用性,避免理论教学的空洞性和枯燥性。在专业实习和工程实践训练中,要有针对性地设计和选择实习实训项目,使学生能够运用所学的理论知识解决实际问题,进一步加深对理论的理解,有意识地强调理论对实践的指导作用,避免实践训练的盲目性,达到知其然,知其所以然训练目的。

四、注重培养学生的专业意识与职业精神

(一)专业意识培养

专业意识即专业自觉,是指学生对所学专业有比较全面的理解和认知,能够充分认识到所学专业的特殊性及就业前景等。在教学过程中有意识地进行专业意识培养能够更有效的激发学生的学习动力和实现自我价值的追求。为了培养学生的专业意识,使学生逐步养成良好的专业自觉性,在学生入学的第一学期,开设专业概论课程,使学生在专业学习的早期就能够概貌性地了解本专业的课程体系、学科专业特点、教学实施方案、以及未来的就业市场等总体情况,形成对所学专业的初步认知。此外,在专业教学过程中,教师要通过言传身教、潜移默化、有意识地强化专业知识的系统性、综合性和可应用性,引导学生树立崇尚科学、理论联系实践的学风,掌握正确的学习方法。

(二)职业精神培养

职业精神是指学生对未来所从事职业的性质有清楚的认识,并具有高度的认同感、责任感,具有明确、积极的职业价值取向。在大学期间开展职业精神教育对培养学生的职业素质,增强学生的职业竞争能力和职业发展能力具有重要作用。职业精神的教育必须结合软件职业的特点来进行,软件行业的最本质特征体现在三个方面:第一,软件行业是一个以需求为牵引,以质量求生存的行业,软件开发的一切活动都是围绕如何满足用户需求,体现用户至上的宗旨,这就要求从业人员必须牢固树立服务意识;第二,软件系统既是技术系统,也是管理系统、社会系统,要求从业者必须具有广泛的知识面,具有良好的协作精神与沟通能力;第三,软件技术更新快,需求变化也快,从业人员必须能够不断地自主学习新知识、新技术,具有创新性思维能力才能跟上时代的步伐。职业精神培养主要通过教师的言传身教来潜移默化,在专业课程教学中,教师要结合行业与职业要求,有意识进行职业精神教育,在实践训练环节,要结合具体的工程过程或商业项目开发过程来培养学生的职业精神,让学生亲身体会软件职业的责任感和价值感。还可以聘请软件行业与企业的专家开展专题教育,通过多种形式的培养教育,使学生深切体会到职业精神培养对自己未来的就业和职业发展具有重要作用,引导学生逐步进行自我觉醒、自我完善和自主发展。

五、结束语

应用型软件工程人才培养是一项新的、复杂的系统工程,本文只是从宏观层面探讨了人才培养过程中必须解决的四个关键性问题,在后序的工作中还需要通过大量的教学实践来进一步验证和完善,以期获得行之有效的方法,对同类专业起到借鉴和推广作用。

参考文献:

[1]张宏国,刘盛辉,唐光义等.软件工程专业课程评价体系研究[J].计算机教育,2014(11):72-76.

[2]沈健.江苏应用型本科院校人才培养的若干思考[J].江苏高教,2012(4):6-9.

[3]刘元珍.面向“卓越计划”的程序设计能力培养模式研究与实践[J].当代教育理论与实践,2013(12):82-83.

[4]张艳艳,刘军.基于已有文献的“程序设计能力”元分析[J].管理观察,2015(3):187-189.

[5]王宏维.论高校思想政治理论课教师的专业意识和职业精神[J].2006(7):49-52.

作者:李发陵 王玉柱 单位:重庆工程学院