王 瑾,牛文姝
(1 甘肃农业大学,甘肃 兰州 730070;2 兰州二十一中,甘肃 兰州 730060)
当前,就市场对软件人才的反馈看,高校软件工程专业毕业生普遍存在操作能力差,工程实践能力弱等倾向,大多数高校软件工程专业的实践性教学的力度通常不够,或者说执行并不到位,直接导致学生应用开发能力、实践动手能力、系统配置能力、项目管理能力等相对薄弱的后果。
首先,专业定位不明确。就高校软件工程专业来看,绝大多数是从计算机专业发展而来。计算机领域专业活动可分为三种类型:科学研究、技术研究与开发、工程设计与应用,即“科学一技术一工程”这样一条轴线。越偏向“科学”抽象性越强,越偏向“工程”应用性越强。计算机科学与技术专业应该重点培养科学与技术方面的人才,而软件工程专业则重点培养技术与工程方面的人才。然而,许多高校软件工程专业的学科特点并不分明,培养目标不甚明确,课程设置大多沿用计算机科学与技术专业的课程,偏重计算机理论和系统软硬件结构方面的知识,课程体系设计是以学术发展和研究为导向,而实践与应用型课程则较少重视。
其次,实践性教学力度缺乏保障。所谓实践性教学,是相对于理论教学的各种教学活动的总称,包括实验、实习、设计、工程测绘、社会调查等。旨在使学生获得感性知识,掌握技能、技巧,养成理论联系实际的作风和独立工作能力。通常在实验室、实习场所等一定的职业活动情境下进行,作业是按专业或工种的需要设计。教师根据不同作业、不同个体进行分类指导;学生采取学和做相结合的方式。学生独立完成的作业质量是衡量其学习成绩的主要依据。软件工程专业实践能力的培养离不开实践性教学力度的充分保障。
怎样才能与软件企业无缝连接,真正培养出满足社会发展需求的高层次、实用型、复合型人才?笔者认为可以做以下几方面尝试:
(1)与软件企业联合办学的方式。许多高校与软件公司进行了联合办学的尝试,结果都因利益、办学自主权等无法解决的问题而不了了之,这也是许多高校遇到的尴尬和无奈。
(2)“筑巢引凤”的方式。提供工作环境,吸引软件企业入驻学院,同时公司必须接纳学生共同进行项目开发,并为学生进行辅导和培训。但大多数企业并没有此方面的意向。因为真正有技术实力的软件企业都把产品技术视为自己的生命线,而“筑巢引凤”的做法势必影响到公司核心技术的保密,这是公司所不能容忍的。
(3)派送学生去软件公司实习的方式。这种方式只能是局部的和小范围的。因为软件公司并不是培训机构,它往往只能吸纳少数有开发基础的优秀学生去实习,而且不会也不可能投入足够的精力对学生进行系统的辅导和培训,因此这种方法并不能真正解决我们培养学生的需求。
在多方尝试无果的情况下,我们在思考:能否在学校内部建立一种企业化的运作机制,使学生在接受教育的时候,变传统的被动学习为主动学习、变无目标学习为有目标学习、变枯燥的学习为充满兴趣的学习,让我们的学生始终面向鲜活的市场、面向实际、接受市场的考验,以使计算机专业培养的学生真正实现与社会无缝连接。
根据项目教学的基本要素和运行方式,我们可以构建项目教学的基本框架。学生在教学场所软件工作室中,在项目的驱动下,进行领域知识与项目开发的学习与实践。学习者在学习的过程中,呈现出了多种学习方式,个人自主学习、小组/团队交流协作、群体/组间学习。师生表现出平等和谐的关系,共建一个学习/实践的共同体,在这个共同体中,导师作为具有本领域专业技能的专家,主导学习过程与学习活动的进行,学习者是学习过程的主体。评价过程贯穿整个项目教学过程,基于过程及结果的双重关注。
在项目教学中,项目是达成教学目标的驱动任务。项目有的来自市场需求,有的来自导师的科研课题,有的来自经典的课程设计,有的来自于学习者自选项目。项目学习贯穿整个教学过程,既包括平时练习的小项目,也包括学习结束时参加项目结题答辩的项目。每个软件工作室都主要围绕一种开发工具进行项目开发。项目的开发、实施过程严格按照软件工程体系进行,涉及的流程有系统需求分析、项目软件体系结构设计、软件详细设计、编写代码、单元测试、代码合并以及集成、系统测试、项目结题等。成员们各负其责,在导师的指导下协同完成工作。
我国实用复合型软件人才极其缺乏,目前我国传统软件人才培养模式往往侧重于计算机理论知识的全面掌握,课程体系设计是以学术发展和研究为导向。培养的学生往往理论知识丰富而应用开发能力、实践动手能力、系统配置能力、项目管理能力等都相对薄弱。这样的学生在企业大都不能迅速上手,往往需要经过较长时间的培训才能适应工作岗位,这无疑加重了用人单位的负担。项目教学法基于工程项目开发,立足于实践,在此基础上进行创新实践,具有极高的现实意义。
[1]杨大友,袁勋,邱伟,等.大学计算机项目驱动式教学模式的创新与探索[J].中国校外教育,2009,(S3).
[2]刘波,沈岳,余喜林.Web智能创新实验室的建设与项目驱动式教学的实践探讨[J].中国校外教育,2010,(S2).