郑永爱 陈晨
摘要:分析了IT人才需求现状和软件工程课程的教学现状,根据多年来的教学经验,提出了基于人才需求的项目化教学的教学模式。实践表明,从IT人才市场需求的角度出发,采用项目化的教学模式,使得学生学习的主动性和积极性得以激发,教学效果明显,学生软件研发的能力得以提高。
关键词:软件工程;IT人才需求;项目化;教学研究
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)31-0167-03
Research on Project Teaching of Software Engineering Course Based on IT talent Demand
ZHENG Yong-ai1, CHEN Chen2
(1.Department of Software Engineering, Global Institute of Software Technology, Suzhou 215163, China;2.Suzhou Institute of Trade & Commerce, Suzhou 215009, China)
Abstract: This paper analyzes the status quo of IT talent demand and the teaching status of software engineering course. Based on the teaching experience of many years, this paper puts forward the teaching mode of project teaching Based on talent demand. Practice shows that from the point of IT talent market demand, the use of project-based teaching model, leading to students Learning initiative and enthusiasm for learning are inspired, the teaching effect is obvious, Students software development ability is improved.
Key words: software engineering; IT talent needs; project teaching
1 背景
软件工程是计算机及计算机相关专业的一门非常重要的专业课程,具有很强的理论性和实践性[1],其教学目标是让学生熟练掌握软件开发的原理、技术、方法、工具、管理和过程,具备共同协作完成软件项目的分析、设计、实现和维护的能力[2]。
目前该课程的教学模式是过度关注理论教学而不太重视实践教学部分,不利于培养具有实践能力强的高素质的软件研发人才。本文分析了IT人才需求现状和软件工程课程的教学现状,结合多年来的教学实践,总结了以往教学的实际经验与不足,提出了基于IT人才需求的项目化的教学模式,并将项目化的教学模式应用在实际教学中,同时在项目化的教学过程中选用了公司的实际案例,还邀请IT企业的工程师对学生完成的项目进行点评。学生在实践过程中充分理解了软件工程的理论知识,取得了显著的教学成果。
2 IT人才需求现状
2.1 国外IT人才需求现状
计算机技术行业协会(CompTIA)表示,2015年美国高科技就业岗位增长3%,即198000个,总数达到670万个职位,是十多年来增长率最高的阶段。IT服务部门的职位占105000个。
2017年3月24日,Trilogy Education Services的调查显示:去年美国有130万个软件职位空缺。Code.org测算有512,720个计算机职位亟待填充,美国劳工统计局预测,在2020年,将有140万以上的软件开发职位无人胜任。学校和其他技术教育项目制造劳动力的速度远远不够快。
在Jobs网站的职位发布统计中,今年名列前十位的最佳就业岗位中,有七个涉及软件工程和开发,年薪超过70000美元,从2013年到2016年,始终处于上升趋势。
美国是发达国家,在100余所世界名牌高校中,美国拥有20所,然而这么多名牌高校培养出来的IT人才仍然无法满足其IT市场的需求[7]。
2.2 国内IT人才需求现状
目前,中国软件产业还处在成长期,它的市场潜力还没有完全被挖掘出来。IT产业作为一个知识密集以及技术密集的产业,其迅猛发展的关键是有一大批从事IT技术创新的人才。具有一定数量、结构和质量的IT人才队伍是支撑IT产业发展的必要前提。IT产业的竞争实际上就是人才的竞争,高水平的IT人才培养和队伍建设是走向IT产业大国和强国的前提条件。
国家计委2012年公布的数字显示:我国软件人才当时的数量是62万人,而国务院要求达到180万人[9]。另外根据教育部提供的相关信息:中国IT行业大约缺少IT人才2000万人,如果以目前全国高校每年培養20万毕业生的规模来计算的话[10],还需要一百年也跟不上世界先进国家的IT行业发展的规模和速度。
就中国来说,IT产业在过去5年的时间里,经历了28%的增长速度,培养高素质的IT人才都显得非常重要。IT行业与IT人才需求现状如图1所示。
据不完全统计,在北京的高校的毕业生中,每年有大约80%的学生要求去国外深造,尤其是一些世界上尖端技术领域的IT人才。而在北京的IT行业内,人才的成长的增长速度远远落后于IT业的发展,许多IT企业都面临着人才紧缺的局面。
3 软件工程课程教学现状
多年来的教学实践中发现,学生对软件工程这门课的教学内容的掌握情况不是很乐观。软件工程这门课在教学中存在的不足如下:
1) 教学过程中存在重理论、轻实践的问题,导致了理论与实践脱节。
软件工程的教学内容大都是从实践中提炼出来的真知灼见,但在教学过程中却往往是以抽象的概念、原理的形式出现在课堂上,而这些理论知识太过抽象,不容易学习。项目实践时不知该如何动手,无法将理论与实践相结合,从而导致设计开发的软件和撰写的相关文档在结构、内容等方面存在着很多错误[16]。
2) 教学过程中存在重开发、轻管理的问题,很可能软件会以失败而告终。
学生的实践项目大都是开发一些微型软件,开发这类软件如若运用软件工程的方法,按照软件工程的生命周期进行可行性分析、软件需求分析、软件设计、软件开发和软件测试等各项活动,学生反而会觉得太麻烦了。所以,学生在学习的过程中一般都是直接编写代码实现一个软件的功能,根本没有把软件工程的管理理念运用其中。
3) 学生没有实际项目实践经历。
在传统的教学模式中,要么就是单纯地讲一大堆的基本概念和理论原理;要么就是选择一些学生熟悉的小程序作为案例来实践。整个教学过程完成以后,学生依然不明白如何运用软件工程的思想和原理来进行软件的开发和管理[17]。无法将所学的知识与项目结合起来。学生基本上都是独立去完成案例的开发,很少一起协作完成项目开发,学生的沟通和交流能力得不到锻炼,也没有办法设计出测试人员和开发人员的沟通场景,无法实现学生在项目中去加深理解基本原理、巩固提高的所学知识的需求。最终学生对整个软件生命周期还是似懂非懂。无法在进入企业后就很好地融入企业的项目研发中,还需要经过一段时间的学习实践才能够胜任企业的研发工作。
4) 高职教育的时间短,课时安排不足。
软件工程课程包含了从可行性分析到软件维护的整个生命周期以及项目管理的相关知识,需要学习的内容特别多,但高职院校的课时一般仅有36学时左右,因此理论知识的教学大多只是点到为止;安排的实践课,也只能实现对课堂上所讲知识的理解,学生分析问题、解决问题的能力无法得到充分锻炼。
4 基于IT人才需求的软件工程课程的项目化教学模式
针对当前高职院校软件工程教学中存在的问题,国内外的许多教育工作者进行了深入研究,提出了许多先进的教学方法[11],例如项目教学法[2,6]、案例教学法[4]、情境教学法、workshop教学法[5]等等.这些教学方法要么从教学内容和教学方式上进行了改革,要么从教学的实践模式和考核方式上进行了创新,在教学中起到了一定的积极作用,但总体效果不是很理想[11]。下面针对IT人才市场的需求,提出了基于IT人才需求的软件工程课程的项目化教学方法。该方式可以培养出适合IT行业需求的人才,毕业后可以很好地到企业实践,快速融入到企业的项目中去[3]。
4.1 项目的选取
项目的选取是项目化教学的起点,由教师到企业调研,跟企业一线的IT工程师讨论,拟定合适的项目案例。项目的选择要满足:一要涵盖了教学计划中涉及的主要的知识和技能。二要选取公司的真实项目,容易激发学生学习的积极性和主动性。三要适当控制项目的难度,否则容易挫败学生学习的积极性和热情。四要制定合适的评价标准,以方便教师对学生的完成情况给予客观公正的评价。
4.2 模拟情境
在“软件工程”的项目化教学过程中,模拟情境就是按照软件开发的流程和企业的实际开发环境进行软件项目的研发[12]。按照软件开发团队的人员情况,划分学习小组、分配角色、安排角色互换等。学生以小组为单位完成项目任务,小组人数以5~7人为宜,小组成员可以自由组合,也可以由教师随机指定[14]。项目中的成员分别为项目经理、系统分析员、软件设计师、软件开发工程师、软件测试工程师、客户、文档管理员、数据库工程师等[12]。表1给出了项目成员组成情况及任务分配表。每个学生要熟悉自己在项目中是哪个项目成员以及要负责的工作任务是什么,还要熟练掌握软件开发的过程流程和软件开发规范。之后,作为其他的项目成员来参与项目。使每个学生熟悉不同项目成员的工作任务和职责。掌握相关的软件工程的理论知识和技能。
4.3 教学实施
根据分组情况,以组为单位,完成软件项目的开发[13]。教师在课堂上讲解相关的理论知识,分配实践任务给学生,学生进行项目实践。在整个软件开发周期的每一個开发阶段完成之后,要在课堂上面向教师及同学们进行答辩。每个小组讲解自己完成的作品,重点讲解运用的设计方案、实现方法等,教师和同学们针对讲解的作品进行提问[14],同时教师和来自企业的IT工程师点评学生的作品,指出不足之处,促使项目小组在项目实践过程中完善自己的项目。而且教师可以针对实践内容再次讲解软件工程相关的理论知识,使学生更好地理解和运用,达到较好的教学效果[14]。
4.4 教学评价
对项目的从可行性分析到软件测试、提交的整个生命周期进行评价并给出评定成绩。项目化教学有以下四种评价方式:一是学生自评,二是学生互评,三是教师评价,四是来自IT企业的工程师点评;学生自评和互评由学生展示自己开发的软件及相关文档等,教师评价是任课教师指出学生作品的优缺点,IT企业的工程师点评则是IT方面的专业人士对学生的作品在操作规范化和注意事项等方面给予点评。学生在项目实践过程中会存在各种各样的问题,这就要求学生在自评和互评的过程中必须充分说明自己对问题的理解和分析,教师在点评过程中要指出学生作品的不足之处,并指导学生如何进行改进,综合比较各个小组作品的优缺点,共同评价各种方法的优缺点及适用范围,帮助学生明确完成任务的最佳方法,加深学生对理论的理解,引导学生在实践过程中更好地运用理论知识,IT企业的工程师要对学生的实践项目给予中肯的评价和建议,并向学生介绍企业运作的实际情况。点评的过程不仅总结了医学的理论知识,而且也提出了新的知识,同时还是学生的一个学习的过程,提高的过程,促使学生在点评中的过程中提高软件项目开发的各种能力[15]。
5 结束语
软件工程这门课是软件技术开发和项目管理都懂的全能型人才。文章针对当前IT人才的需求现状和软件工程教学中存在的不足,提出在基于IT人才需求的项目化教学法,在项目化教学过程中,在讲解理论的同时插入企业真实的项目案例,学生分组完成项目,并在软件生命周期的各个阶段对学生完成项目的情况给予自评、互评、教师及IT企业专业人士的点评。学生在评价的过程中,可以更深入地理解相关的理论知识。大大提高了教学效率。
参考文献:
[1] 赵辉, 李万龙, 郑山红, 等. “项目导向案例驱动”的软件工程教学模式[J]. 计算机教育, 2012(10):93-96.
[2] 温颖, 周昕. 项目教学法在软件工程教学中的应用[J]. 科技信息, 2010(24):216-217.
[3] 董威, 宁洪, 齐治昌. 软件工程实践性教学环节的研究与思考[J]. 计算机工程与科学, 2011, 33(A1):131-134.
[4] 张耀民. “项目驱动 + 案例教学”模式在软件工程教学中的应用[J]. 中国职业技术教育, 2012(8):57-60.
[5] 郭洪禹, 李净, 艾鸿. 基于 WORKSHOP 的“软件工程”教学模式研究[J]. 计算机教育, 2012(4):101-103.
[6] 陶双双. 对项目教学法应用中若干问题的反思与建育[J]. 中国职业技术教育, 2010(11).
[7] 韩维. 宜宾商职校计算机课程实践教学的研究[D].成都: 四川师范大学, 2009.
[8] 任自然, 赵雪. 软件产业人才需求与软件专业大学生就业[J]. 辽宁工程技术大学学报:社会科学版, 2008.
[9] 田明山. 论IT产业的发展及人才培养[J]. 石家庄铁路工程职业技术学院学报, 2003(1):14-17.
[10] 董晓梅, 何泾沙. 关于示范性软件学院办学的思考[J]. 计算机教育, 2008(1):39-43.
[11] 张昱, 高琦. “多角色参与”项目教学法在高职软件工程教学中的实践[J]. 中国电力教育, 2013(25):153-154.
[12] 母泽平. 高职“软件工程”课程项目教学法探讨[J]. 重慶电子工程职业学院学报, 2014(3):142-145.
[13] 曾鸿. 基于项目的软件工程综合实训教学模式[J]. 中国职业技术教育, 2008(12):34-36.
[14] 彭焕峰, 肖旻. 基于项目驱动的软件工程教学方法探讨[J]. 中国教育技术装备, 2010(33):41-42.
[15] 王会婷. 项目教学法在“C#程序设计”教学中的应用[J]. 产业与科技论坛, 2012(15):130-133.
[16] 巫华芳. 软件工程课程教学模式探讨[J]. 科技信息:科学教研, 2007(17):93-93.
[17] 张华. 应用型本科的软件工程实践教学研究[J]. 电脑知识与技术, 2014(32):160-162.