软件技术专业项目教学探索
摘要:本文根据软件产业的需求和发展,分析了软件技术职业教育的人才培养规格,对软件技术专业中的项目教学进行了探索和实践,并提出了“动态适应”教学模式。
关键词:人才培养;项目教学;教学模式
中图分类号:G64文献标识码:B
文章编号:1672-5913 (2007) 15-0059-04
1软件技术职业教育的人才培养规格
软件技术的变化和更新速度之快,为全球任何一个国家带来了挑战和机遇,为全球经济注入了新的活力,软件产业已经发展成为像印度、爱尔兰等国家的核心支柱产业。我国政府对软件产业高度重视,制定相关的政策和文件,并在全国范围的中心城市和发达地区规划了软件园,建立了一定数量的国家级软件产业基地,形成了良好的软件产业发展环境,需要大批成熟的软件企业带动软件产业的发展,更需要大量的软件人才。虽然高校每年不断的涌现软件技术专业或计算机相关专业的毕业生,但满足企业要求的很少,这说明什么?说明高校设置软件技术等专业时缺乏软件技术职业教育的理念、目标和培养模式,更缺乏软件工程的人才培养教学模式,多数院校的软件技术专业的教学还基本停留在从事基本概念和原理的教学,而软件产业需要的人才必须具有直接面对软件工程中的问题和解决这些问题的技能。在此需要强调的是“软件工程不等于计算机科学”。
软件产业需要什么样的人才规格,有没有具体的标准?这需要从软件企业的组织架构分析,软件企业的软件产品的开发过程完全基于项目管理,而软件项目的实施需要软件项目中的各种角色协作配合,共同完成软件开发生命周期中的各项任务,软件项目中的角色往往对应软件企业的职业岗位,而这些角色的职责正是软件技术职业教育的人才培养规格。
软件项目中的角色有哪些?让我们来分解一下,角色是抽象的职责定义,通常由一个人或作为团队相互协作的多个人来实现,项目团队成员履行一个角色或多个角色。角色包括分析员角色、设计开发人员角色、测试专业人员角色、经理角色和其它角色。分析员角色用于组织主要从事需求的获取和研究,包括业务流程分析员、系统分析员等;设计开发人员角色主要从事软件设计与开发,包括架构设计师、类设计员、数据库设计员、实施员(代码的编写与测试)和集成员等;测试员角色主要从事软件测试工作,包括测试设计员和测试员等;经理角色从事软件工程流程的管理与配置以及技术的管理工作,包括项目经理、技术总监、配置经理、部署经理等;其他角色主要从事项目支持或负责其他职能,包括系统管理员、技术文档编写员、工具专家、产品包装员、产品培训员等。
以上的角色涉及软件工程项目中的各个方面,是我们制定软件技术职业教育人才培养规格标准的依据,这些人才培养规格目标的实现,通过传统的学科教学体系和教学模式很难配套,无法做到与软件项目中岗位的无缝链接。而项目教学是实现其目标的最佳方案,项目教学如何实施,需要从教学模式谈起。
2软件技术专业的教学模式探讨
2.1以教师为中心的教学模式
以教师为中心的教学模式是以行为主义的学习理论和教学理论为基础,在我国及世界其他国家占有统治地位。从十七世纪到二十世纪后半叶,经过历代教育学家和心理学家的实践探索,理论研究成果层出不穷,有捷克的夸美纽斯提出的班级授课制度的“大教学论”,德国赫尔巴特的“五段教学”理论,以及美国布鲁纳的按照学科内容自身的体系结构围绕学科的基本概念、基本原理和基本方法来进行教学“学科结构论”,它们都从不同的角度作出了自己的贡献。学习过程是一种复杂过程,以教师为中心的教学模式既要涉及认知因素,又要融入情感因素,美国教育心理学家奥苏贝尔提出的“学与教”理论对此以很好的支持,并获得了广泛的应用,它包括“有意义的接受学习理论”、“先行组织者”教学策略和动机理论。
以教师为中心的教学模式在传授知识方面和基础教育领域仍然是行之有效的方案,所学知识的全部内容以接受学习的方式通过教师传递给学习者,再加上学习动机的内驱力,以及“传递—接受”教学策略的调配,能够高效地完成教学目标。在这种模式下,完全由教师主导课堂,忽视学生的认知主体的作用,培养出的绝大部分是知识型人才,而不是创造型人才。高等教育和职业教育的相关专业,尤其是软件技术专业的多数课程,不宜在该模式下进行教学。
2.2以学生为中心的教学模式
建构主义的学习理论和教学理论在现代多媒体技术和网络技术大力发展的环境下得到了广泛应用,尤其在西方日渐风行。“情境创设”、“协商会话”和“信息提供”是建构主义学习环境的基本要素,而Internet为建构主义的学习环境提供了理想的土壤。其学习理论主张以学生为中心,强调学生是认知主体,要求学生成为知识信息加工和知识意义的主动构建者;其教学理论要求教师从知识的传授者、灌输者转变为学生主动建构意义的帮助者、促进者,以及课堂教学的组织者、指导者。
以学生为中心的教学模式虽然能促进“发现式教学”,培养创造性思维,但其忽视教师的主导作用,而我们的绝大多数学生在以教师为中心的教学模式的潜移默化的影响下,养成了不爱问、也不想问的被动式思维习惯,自我管理和自主学习的能力比较弱,当学生的自由度过大时,不少学生不能有效利用资源和时间,甚至个别学生打游戏,这样容易偏离教学目标的要求。
2.3“双主”教学模式
结合以教师为主的教学模式与以学生为主的教学模式,既要发挥教师的主导作用,又要体现学生的认知主体作用。在这种教学模式下,学生不再是接受外部刺激的接受器、知识的存储器和考试的转发器,而是在教师的正确引导下的主动学习、创造性思维的开发。教师的主导需要在教学目标下进行,设定明确的任务和知识点,然后鼓励学生围绕主题积极思考,挖掘学生的不同思路和各种解决方案,最后教师以讨论的方式在多种方案中选择一种最佳方案。
“双主”教学模式在课堂教学中能够发挥出最佳效果,但教学策略基本上是固定的模式,每次的教学目标和教学进度是不能够轻易改变的,而且不同教师在不同课程中的运用会出现参差不齐。对如何结合教师主导作用和学生的主体作用的领悟,不同的教师会有不同体会,如果针对同一个班的学生,学生需要在不同教师的不同课程中不断地适应调整这种参差,有的学生会无所适从。
针对软件技术专业的项目教学,它是软件工程项目在教学中的贯彻执行,并完全打破了传统的课程教学体系,需要一种新的教学模式。
2.4“动态适应”教学模式
“动态适应”教学模式是根据工业伺服系统或工程闭环反馈系统的思想而提出的教学模式。一个工业控制系统或电路系统是否稳定,要看它是否具有反馈控制,当系统的输入引起系统输出的变化,这种变化通过反馈调节系统的输入,从而达到稳定的系统输出。教学过程作为一个系统,教学策略是这个系统的输入,学生的学习掌握情况是系统的输出,其变化用作反馈动态调整教学策略,使输出达到稳定状态,以保证教学质量。
在软件技术专业的项目教学中,“动态适应”教学模式能够发挥出更大的优势,使得软件过程与教学过程相统一。
3软件技术专业项目教学的探索与实践
3.1传统教学模式下的项目教学(针对一门课程)
在当前大多数的院校中,软件技术专业的课程体系和教学模式还是基于传统方式,即以教师为中心的教学模式,这种情况在短时间内很难改变,不过可以选择其中的某些课程,针对一门课,在此教学模式下进行项目教学,围绕以下几方面展开:
(1) 组织机构
在进行项目教学前,需要将学生组织起来,把学生进行分组,便于管理和调动学生,形式如图1所示:
(2) 教学方法和学习方法
教学方法通过图2的方式进行:
◇ 引导
通过提问的方式,激发学生寻求问题解决的欲望,使得问题衔接上次课的主题以及本次课的要点,分析项目单元所包含的知识点。
◇ 组织教学
按照组织机构的分组,策划每个小组的项目内容,建立小组之间的竞争机制,鼓励小组展开竞争。
◇ 精讲
理论讲解要适度、够用,结合项目案例深入浅出、循序渐进。
◇ 互动
互动包括教师与每个学生小组之间的互动、学生小组与学生小组之间的互动以及学生小组内部每个学生之间的互动。通过讨论、辩论、头脑风暴和练习的方式进行。
◇ 总结
对本单元的目标、问题和解决方案进行回顾,提出需要思考的问题和需要完成的项目内容,提供参考资料与上网信息。
学习方法通过在课余时间完成课堂上提出的项目任务,并预习下一单元的内容,查阅大量的文献和资料。
3.2“双主”教学模式下的项目教学(针对多门课程、多位教师)
一个软件项目往往涉及多门课程的内容,而不同课程的授课在现有的教学体制下是由多位教师共同完成的,这样,一个综合项目需要多位教师协同完成。
(1) 一个学期的教学计划设计
一个学期的课程组合可以完成一个综合项目,综合项目来源于实际工程项目,但必须对其重新加工设计,使其知识点包含每个课程的主要知识点,再对每门课程分解出分项目,使得知识点溶于项目之中 。 例如:Java程序设计、Web开发技术和大型数据库是一个学期的三门主要课程,利用其可以完成网上购物系统。
(2) 课程授课计划与泳道设计
一个学期的不同课程在传统教学模式下,其教学过程就像泳道一样平行,互不干扰,但根据项目教学的要求制定每门课程的授课计划,需要按照项目的阶段里程碑设计泳道汇交,使得各个课程教学之间互通协调。如图3所示。
(3) 课时设计
项目教学有别于理论教学或实训教学,它是理论教学与实训教学融合统一的一体化教学,需要较长课时的教学单元,需要打破传统的以两个课时为一个教学单元的模式,改为以四个课时为一个教学单元。例如,针对72学时的一门课,一个学期就有18个教学单元。
教师和学生的角色在项目教学的过程中需要转变,教师先要作为项目经理(Project Manager),然后才是教师;学生先当项目成员(A member of team),然后再是学生。
3.3“动态适应”教学模式下的项目教学
完全按照软件工程的思想组织教学,软件过程就是教学过程,反之亦然。整个教学计划和课程安排必须按照软件工程的要求进行规划设计。
(1) 课程设计
每个学期的课程根据项目的需要而设置,而项目是解决IT行业或工业界提出的实际问题的工程项目,并且满足软件技术职业教育的人才培养规格。
软件技术的人才培养需要循序渐进,不可能一蹴而就。每个学期的项目和课程设计按照培养目标进行螺旋式上升规划。即相关课程内容可以重复,但在层次上必须提高或进阶。
以NIIT的两个学期的课程设置为例。
NIIT第一学期的课程如下:
●Basic of Computer
●Programming Logic and Techniques
●Linux9.0
●Introduction to Relational Database Management Systems
●Implementing a Database Design Using Microsoft SQL Server
●Object-Oriented Programming With C++
●Unified Modeling Language
●Java-Introduction
●Information Search and Analysis Skills
●Project Book
NIIT第二学期的课程如下:
●Core of Java
●Software Development Life Cycle
●Enterprise Java (RMI, JSP, Servlets, EJB, JDBC)
●Information Search and Analysis Skills
●Project Book
从中看到,Java、ISAS、Project课程有重复,但内容和层次是按照螺旋式上升进行规划设置。
(2) 教学方法与学习方法
整个学习是由许多小的教学循环组成,每个教学循环中的教学案例针对实际项目的部分功能或类似功能。这些教学案例由专家(教师)采用规范的分析、计划、实施和验证的步骤来解决;然后再对学生提出相类似的另一个实际问题,学生可以参照专家的方法和步骤来解决该问题,即在专家的指导下的实践;最后学生必须将这些所学的知识综合地用到解决一个完整项目的实际问题上,而且由学生独立完成,即无指导下的实践。通过这样一种“学习—实践—提高”的过程,学生不仅可以更快、更深入地理解和掌握课程的知识点,而且自己独立完成项目和解决问题的能力也可以就此得到培养。
(3) 教学策略与教学管理
在培养目标的整个教学过程中,所有项目及全部课程的策划教学由一名教师(专家)承担,采用双语(汉语-英语)教学,既锻炼了学生的语言能力,又进一步增强了学生的就业竞争力。
教学策略根据教学过程中学生的学习掌握情况的变化(反馈)动态调整,即动态调配项目中涉及的新技术、技术难点、重要的概念内容的课时比例和训练强度。
教学管理按照软件企业运行方式进行运作和管理,教学环境接近或达到与软件企业实际工作的“零距离”。制定了相关的项目管理规范和编程规范,学生严格按照规范操作。学生按时上下班,每天签到考勤。
4结论
通过实践探索,项目教学是软件技术职业教育的最佳方案,“动态适应”教学模式是执行项目教学过程的有效模式,它将学生和教师的“学与教”及互动融为一体,而其系统反馈的原理保证了稳定的教学质量。
参考文献:
[1] 赵从军.高等职业技术院校中的软件专业教学改革与实践[J].计算机教育,2005,( 4).
收稿日期:2007-04-12
作者简介:
赵从军(1966-),男(汉族),陕西富平县人,广州番禺职业技术学院软件学院高级工程师,硕士,主要从事软件技术研究。