一、渐进式教学过程设计
1、分组和课堂讨论
讨论是重要的传统教学方法之一,该方法不仅可以强化第一阶段所侧重的思考能力,而且拓展了学生的分析能力、沟通表达能力。为使讨论取得好的效果,教师和学生应对讨论主题和材料做好充分的前期准备。首先,教师根据异质分组原则安排分组,选取具有较强协调能力的同学担任组长。其次,由教师确定讨论主题和大纲,明确引导学生搜集资料的方向,同时,说明分组讨论的方法、步骤等事项。讨论过程中,教师适时的给予各组指导和帮助。最后,由各组小组长作为代表将各组的见解表述并课堂讨论。讨论结束后,教师可以对各组的见解进行评比,对观点新颖、表现突出的组队进行加分奖励,提高学生的讨论积极性,达到分组和课堂讨论的教学目的。
2、案例分析法
案例分析即在教师的指导下,根据教学目的的要求,组织学生对案例的调查、阅读、思考、分析、讨论和交流等活动。案例教学的引入主要目的在于强化分析问题和培养解决问题(问题的求解域模型的构建)能力。由于软件工程课程比较抽象,对于实践经验较少的学生而言,容易产生枯燥乏味的感觉。若对这些复杂抽象的概念引入有针对性的实际案例,由学生独立或分组对案例解析和模型构建,将解析思路与参考分析比对,通过查缺补漏有针对性地进行改进提高分析和模型构建能力。案例分析法中案例的选取是关键,如果太难,将大大超过学生的理解程度,过犹不及,若太简单又会使学生产生轻视心理。同时,由于案例的处理和选择一般缺乏系统性和连续性,各章中的案例相互割裂,无法体现各知识点之间的联系,使学生无法形成整体的软件工程概念和思想。所以案例的选择最好是教师直接或间接经历过的实际案例,尽可能覆盖和贯穿全部的知识点。通过模拟其中的部分场景,教师可以全方位地将枯燥的理论和方法灵活生动的表述出来,并配合苏格拉底教学法,启发学生进行更深层次的思考,帮助学生领悟理论知识的精髓,在对问题的合理分析基础上构建软件工程的相关模型。
3、角色扮演
通过前三个阶段的教学和指导,可以认为学生已经具备了独立思考和分析问题能力,并掌握了模型构建技术和基本沟通技能。在该阶段,学生将通过体会项目工程中不同的职位和角色,进一步强化沟通意识和技能,培养自身的团队协作精神。角色扮演在实际教学中被分组执行,各组成员轮流扮演各类问题情景中的角色,同时组与组之间也进行交叉扮演。由于教学对象是本科生,将软件开发中的所有角色全部扮演并不现实,教师可将重点放在用户、程序员和系统架构师三个角色上。用户角色的扮演需要学生从产品需求的角度考虑问题,系统架构师角色则偏重于如何在沟通中了解需求从而构建出系统模型并分解出各个模块,程序员角色则使在各模块的基础上进一步通过与客户和架构师沟通细化产品需求。该阶段的训练主要通过引导学生自发将所学技能应用于实践,从而对软件开发流程有更深的了解,为后续的模拟教学做了良好的铺垫。
4、模拟教学
模拟教学法即是用软件开发模拟器来学习软件工程原理和技术的一种课堂教学实践方法,也是最贴近现实的教学手段,因此作为最后一个阶段的教学实施手段。教学中使用的模拟器通常是针对特定问题的模拟器,它综合了软件开发各方面的问题,比如成本计算、数据收集、需求分析、项目管理、风险管理、软件过程改进等。在模拟过程中,模拟器可以根据操作者的输入信息,输出相应结果,操作者还可以根据中间结果调整相关参数,改变处理流程。在熟练使用模拟器后,学生可以平滑无缝地过渡到软件工程实践项目开发,提高实践效率,缩短实践周期。
二、结语
单一凭借传统理论教学或现代项目导向式教学法并不能很好解决学生自身能力和软件工程课程要求之间的矛盾,通过分阶段的从传统教学法渐进式过渡到现代模拟教学法既强化了学生实践技能的培养,又兼顾了软件工程教学中理论知识的传授,全面提升了学生的思考能力、分析解决问题能力、沟通技能和执行能力,很好的适应现代软件工程环境的需要。当然,渐进式教学中的各阶段的次序并不具有绝对性,教师可以根据教学的内容需要或者学生实际的软件开发能力灵活的对各阶段的教学手段进行调整,从而保证良好的教学效果。
作者:昌杰 单位:皖南医学院计算机教研室