1项目教学法
项目教学法注重提高课堂的趣味性,提供丰富的课堂体验,在授课过程中,教师成为课堂地组织者,让学生更多地参与、更多地互动,引导学生、帮助学生树立学习信心,找到学习方法,摸索团队组织和管理的途径,了解项目流程。在项目实施过程中,训练学生的软件编程思想,帮助学生掌握软件工程工具,提高代码编写熟练度。
2项目教学法在软件开发课程中的应用
在软件开发课程中,项目教学法的主要目的是:围绕软件企业的用人需求,高效地培养具有一定项目实战经验的、符合“软件工程师”职业岗位的从业人员。因此在项目教学法中,通过“真实项目、实战演练”这一途径,让学生掌握技术知识,培养学习能力,提高运用能力,为学生提供演讲的机会,让学生组建项目团队,为学生提供各类项目文档的范本,培养学生的写作能力。在项目开发过程中,引导和鼓励学生克服困难,帮助学生突破极限,从而系统地提高学生的能力,达到企业的用人标准,实现教学目标。方法途径如图1所示。围绕项目教学法的目标,在教学实施过程中,注重通过多种场景来锻炼学生的各种素质。软件开发过程遵循软件工程的统一流程,并使用工程工具来管理工程过程,如Project、RationalRose、VSTS等工具,让学生在体验项目流程的同时熟悉和掌握基本的工程工具。在项目业务的学习和讨论过程中,学生通过网络搜集资料,进而整理和消化后转化为业务知识,为项目所用,从而使学习能力得到培养和提高。在项目实施过程中,对项目出现的各种问题进行讨论,培养学生的表达能力。每个项目流程节点结束时,要进行正式的总结,为学生创造演讲的机会。每个流程都要检查和归档,促使学生在开发过程中撰写项目文档,锻炼文档撰写能力。
3项目教学法的过程及控制点
依据软件工程的统一流程,项目教学法总体分为6个阶段,见图2。3.1前期准备前期准备阶段需要完成三项工作:基础知识和技术准备(编程语言、编程思想、架构理论、软件工程理论、工程工具等)、项目业务讲解、班级分组与团队组建。在辅助学生做技术准备时,可以课堂讲解,辅以一些针对性的技术训练。考虑到教学实施的成本,也可以提供相关技术的教学视频,组织学生观看讨论。项目业务侧重讲解行业知识,以及行业相关的一些关键名词和概念,也可为学生提供一些文档,或者提供搜索关键字,让学生通过网络搜集行业资料。3.2项目构思项目构思阶段尤为重要,在这一阶段,需要完成项目背景的了解、软件需求分析、系统架构设计、软件模块划分等工作。通过教师讲解和阅读资料,学生了解项目背景和相关行业知识。教师可以通过组织业务知识讨论会的方式加强知识消化,同时检查行业知识消化情况。可以要求每组推荐一到两名同学作为代表,报告构思情况,其他同学补充,同时展开成员与成员之间,组与组之间的讨论,为软件需求分析打好基础。3.3深入细化完成项目整体构思后,进入细化设计阶段。在这一阶段需要完成软件功能设计、数据结构设计、核心算法设计、主要业务流程和重要方法流程的规划工作。教师可以教授学生使用工具(如GUIDesigner、VisualStudio等)来建立软件原型,完成各个软件功能的操作界面,整理并辅以文字说明,完成“软件功能说明文档”,组织各组展示该文档并做出点评。3.4系统构建系统构建阶段要完成整个软件系统的代码编写和测试,包括代码编写与单元测试、代码改进与性能优化、功能测试与集成测试、系统整合与回归测试等工作。在本阶段,重点锻炼学生的代码熟练度,强调良好的编码习惯。帮助学生建立软件质量意识,运用各种软件测试方法(单元测试、功能测试、集成测试、回归测试)控制软件质量。要求学生按照组长的任务分配完成各自的功能模块,并与其他成员交换完成功能测试,组长组织进行功能集成,并与同班的其他组交换完成集成测试,软件改进后进行回归测试。在整个系统构建阶段,要使用团队开发工具(如VSTS等)完成代码编写、版本控制、软件测试等各项工作,从而掌握团队开发工具。3.5成果展示系统构建完成后,进入成果展示阶段。成果展示阶段主要是为了给学生提供演讲和推广产品的机会及场所。成果展示按组进行,通过项目答辩的方式开展。教师担任评委,在条件允许的情况下,可邀请其他教师作为嘉宾进行点评,其他团队的组员列席。成果展示内容包含项目效果展示和过程文档展示。成果展示完成后,教师组织全班同学开展项目总结与讨论,分享整个项目开发过程中的得与失。
4结语
计算机软件开发是一门特别重视实际经验和动手能力的工作,从业人员必须保持良好的学习和创新意识,不断地挑战未知问题,克服各种障碍。在教学过程中,要基于企业相关岗位的现实需求,与时俱进,不断地调整和改进教学方式和内容,更多地激发学生的主动学习意识,让学生参与到教学过程中,获得卓有成效的提高,完成学业后可快速适应企业的用人标准。
作者:刘霞 戴璐平 刘海英 单位:武汉工程大学 电气与信息学院