软件工程教学中存在的问题及教学策略探讨
软件工程是为计算机专业本科生设立的一门专业必修课程,早期是计算机专业研究生的必修课,近些年设置为本科教学内容,面向高年级计算机软件与应用学生开设。本课程旨在使学生掌握软件工程的基本原理、概念与技术方法,在让学生在了解有关知识与方法的同时,学习如何采用系统化、规范化和可度量的工程化方法将软件开发技术和软件的工程化管理以及软件开发环境等方面结合起来并运用到实际的软件开发与维护工作中。 一、软件工程教学中存在的问题
作为计算机专业的一门重要必修课程,软件工程能为学生今后从事计算机大规模软件开发与维护工作打下坚实的基础,对于学生而言是不无裨益的,但在实际的教学过程中往往许多学生对这门课程并不感兴趣,不愿学或学不进去,甚至听不懂。通过近几年从事软件工程课程的教学工作及与学生之间的交流沟通,笔者发现学生之所以如此的原因有多方面,其中与教学环节息息相关的主要问题如下:
1.学生对课程定位有误
软件工程是一门综合性很强的课程,除了计算机科学,还涉及数学、管理学、经济学工程学等多种学科,这一特点决定了软件工程是一门很抽象的课程。软件工程的教学目的是通过学习软件工程的基本原理、技术与方法,将其应用于指导软件开发的全
部过程,但学生往往在刚接触该课程时对课程的教学内容和教学目的存在误区,许多学生在拿到教材时竟误以为是学习如何编程的科目。由于学生对课程认识最初的误区,导致学习一开始就存在盲目性,在学习过程中也存在着现实落差,会影响后续的课程学习。
2.理论性强、课时有限导致教学效果不理想
与计算机专业的大部分专业课程相比,软件工程的理论性强尤为突出。通过该课程的学习,学生必须具备扎实的软件工程理论知识,并熟练掌握软件设计、开发、测试、维护技术。正因如此,大部分高校选用的都是偏重理论教授型的教材,可操作性较差,从软件工程的基本概念、开发模型到软件生命周期中的每一个环节、技术手段、实现方法,教材中目之所及全是理论,导致学生在学习的过程中需要记忆大量的文字内容。由于理论课时有限,教师在课堂上势必采用照本宣科、满堂灌的教学方法,从而引起学生的反感。其次,若没有足够的时间消化,进而系统地学习,该课程前后内容易混淆,同时大量的文字内容也导致学生在课余提不起看书的兴趣。
3.实践性要求高但缺乏锻炼的契机
在课程的教学中如果一味讲授,而较少给学生提供实验尤其是项目环境,学生也会觉得该课程难于理解、用处不大,进而导致厌学的情绪。由于计算机专业学生毕业后很大一部分从事软件研发相关工作,因此该课程的实践教学也将直接影响到学生毕业后
的项目开发及管理能力。但是传统的软件工程实验教学模式无法给学生提供项目锻炼的契机,原因如下: (1)文档欠缺规范化机制
由于实验条件受限,老师仅给出项目各阶段文档模板,要求学生按规格编写相应文档,但往往没有企业项目开发中的严格评审机制,学生很难建立标准化、规范化思想。 (2)学生难以参与软件开发的全过程
学生在实验教学中开发的系统仅仅作为作业提交给教师,教师大概的检查代码,而没有严格的代码走读过程,也未交付用户使用,没有真正意义上的验收测试,更别谈维护。学生无法发现各阶段中存在的问题,因此对软件工程的实验认识仅仅停留在与编程语言课程的实验同一高度。 二、软件工程教学策略的探讨
针对上面提到的软件工程教学中存在的问题,结合实际教学经验总结,要改变软件工程教学现状,达到理想的教学效果,根源在于改变教学内容安排与教学方式,合理设计教学,激发学生学习兴趣及学习的主动性。作者认为可以从以下几个方面着手: 1.根据学生初始认知结构,调整教学内容安排
本课程的学习者多为大学三年级学生,之前已系统学习了程序设计基础、面向对象程序设计、数据结构和操作系统等课程,学生大都具备了一定的计算机程序开发能力,具有学习本课程的知识基础。