1.软件工程常见教学模式
(1)传统教学模式课程主要以软件工程基本知识和理论为主,在理论教学过程有少量的片段案例教学,并配以少量课时的实验,此教学模式中以软件生命周期为主线,理论教学为主,教学过程比较枯燥,实践环节相对薄弱,学生学习兴趣不高。(2)任务驱动的教学模式为实现对学生应用能力的培养,同时提高学生的学习兴趣,使学生参与到课程中,采用软件工程任务驱动的教学模式[2]。在教学内容上以具体的开发任务为驱动,选择与生活联系紧密的课题,贯穿始终系统地讲解理论知识,并辅助以实验并行。该教学模式把学生和课程任务紧密连接,有助于学生参与到课程中来。(3)项目驱动案例教学模式此教学模式有项目驱动的案例式分段情景教学模式[3]。在项目驱动下的软件工程课程教学,从项目库中选择合适的项目,并配以相应案例,通过基于案例的分段情景教学,使学生容易理解并掌握项目设计和开发过程中的软件工程化方法,通过情景教学增加交互性,提高学生的理论知识和动手能力的提高。
2.逆向教学模式
无论是采用传统教学模式,任务驱动的教学方法还是项目驱动案例教学方法,都是按照先学理论后实践的模式,学生先听理论,然后把理论应用在实践中。采用这样的模式,学生先被动接受理论,然后再用理论指导实践,本质上的好的,但由于学生没有参与过软件的开发活动,对理论的理解并不深刻,不能真正理解“为什么要这样做”,而只能在完成理论学习后,按照理论中的规则开展开发活动,只能说按照软件工程理论指导好,“好在哪里”并不能深刻的领会,再遇到类似问题,只能机械使用理论,不能灵活创新使用。从软件工程的发展历史看,软件工程提出是为了解决软件危机,解决如何开发出足够多的、满足用户需要的软件和如何维护众多的用户软件的问题。使用软件工程的方法可以提高软件生产率,方便维护。按照软件工程的发展过程而学习软件工程将符合人们的认知规律,更加容易接受和吸收,为此笔者提出软件工程教学模式的逆向教学模式“实践—边理论边完善—再实践”,即首先让学生利用程序设计类课程所学编程语言完成一个小型软件系统,然后再按照软件生命周期的顺序讲解软件工程理论,在讲解理论的同时评价学生的系统,学生讨论改进方法,并对系统进行完善,最后在课程学习完成后在进行一次比较全面的软件系统开发。通过这样的教学模式,使学生对软件的认识从“软件=程序”,逐渐认识到“软件=程序+数据+文档”,对软件工程的方法、工具、过程有更好的理解和运用。该教学模式分为如下三部分。(1)前期实践首先在课程学习之初,先布置大作业,让每个学生在短期内完成一个小型软件系统,如图书管理系统、成绩管理系统等,需求不是太复杂的,距离学生日常生活很贴近的系统。此次大作业已完成软件程序代码为主,不考虑文档等设计需求。通过这个实践活动,可以使学生把前期程序设计类课程所学知识进行综合运用,学生此时的认识是“软件=程序”。(2)中期理论讲解与完善实践结果在完成大作业后,对学生的作业进行简单评审,如发现不同的同学完成的功能有所不同,引导学生思考为何会产生这样的现象?此时引入需求的概念,如何准确描述和理解需求等知识点,从而引入软件工程课程的正题,按照软件生命周期的先后顺序边讲解理论,边评价改进学生作品。采用先学生作品评审,遇到问题,引导学生讨论,然后用软件工程理论解决,再深入学生作品,对作品进行改进,对软件工程知识由浅入深的学习和掌握,改变过去学生能听懂理论但不能联系实际的情况。在讲授过程中也可以增加实际工程案例,改善对当前项目案例规模太小,反映现象不全面,不突出的状况,使学生对工作实际有所了解。通过这个过程,使学生完全沉浸在软件项目开发过程中,在不知不觉中体会到软件工程理论的强大,把抽象的理论转化为可操作的实际,认识到这是一门很实际有用的课程,而不只是一门有学分的课程。(3)后期再实践完成软件工程开发方法基本理论知识讲解完成后,让学生再次选择其它题目分组完成,此时项目的完成就要按照软件项目开发的全部内容要求,此时学生可以吸取前期项目的经验教训,较好地将所学理论知识运用到软件开发中,同时也巩固了所学设计开发及项目管理方面的知识掌握。
3.总结
通过逆向教学模式“实践—边理论边完善—再实践”开展软件工程课程教学,使学生体验理论从实践中来,然后又运用到实践中的过程,增强学生运用所学知识的信心,为学生从课程走到工作实践搭建了快捷的桥梁,为实现应用型本科教学目标更进一步。
作者:王瑞平 单位:安阳工学院计算机科学与信息工程学院