0 引言
《软件工程》是高等院校计算机科学与技术专业的一门专业必修基础课,该课程与数据结构、数据库原理和操作系统等课程相互联系和影响。它涉及到计算机、经济学、管理学、工程学等多个领域的知识体系,在一定程度上,软件工程最早是为了解决“软件危机”问题而提出的。
1968年,(北约)科技委员会召集几专业编程人员、计算机科学家和工业界知名人士,讨论如何摆脱“软件危机”带来的危害。在商讨会上,软件工程的概念首次被提出,即软件工程是指导计算机软件开发与维护的工程学科,它采用工程的概念、原理、技术和方法来开发与维护软件,把已经证明正确的管理流程和当前成熟的技术相结介以经济高效地开发出高质量的软件并保证后期维护。实践教学中,作为一名《软件工程》任课教师,发现《软件工程》课程的教学效果不如人意,与教学目标相差很远。
针对《软件工程》课程本身具有的抽象性和应用性特点,学生很难记住讲授的知识点,即使记住也只是从理论方而死记硬背,这样导致学生眼高手低—理论强、实践差。学生毕业后不能和社会很好地接轨,即使学过《软件工程》课程也不能满足市场对学生的技术要求。如何搞好《软件工程》课程教学,如何培养学生用软件工程的思想开发软件是摆在教师而前的一道难题。
1 《软件工程》课程特点
《软件工程》的先修课程有高级语言程序设计、数据结构、数据库系统原理、操作系统、计算机网络等。《软件工程》贯穿于软件开发的整个过程,该课程的体系结构有软件可行性研究、软件需求、软件设计、软件实现、软件测试、软件维护等相关知识点。
《软件工程》课程的知识体系结构如图1所示。《软件工程》课程的教学目标是要求学生掌握利用软件工程的基本思想、工具、技术、过程和方法,为今后从事计算机类相关工作打下良好的基础;培养学生综介运用大学四年所学的专业知识训练和提高软件开发能力;锻炼学生的交流和沟通能力与团队介作的能力。
2 《软件工程》课程存在的问题
根据《软件工程》课程特点和笔者对该课程的教学心得,发现学生在学习这门课程时难以提起兴趣,大多感觉学习内容太过枯燥。具体表现如下:
2.1 课程内容抽象、理论性强
《软件工程》课程主要介绍软件开发常用的原则和方法,逻辑性不强,不涉及软件算法。因此,学生只能被动地接受理论性知识,这样他们的智力得不到充分发挥,让没有开发经验的学生将课程中讲授的理论和实践知识相联系更是不现实。久而久之,学生的兴趣和热情渐渐丧失。
学生在学习过程中,只能想像用软件工程的思想开发软件,很少有时间能真正参与软件开发。对于教师布置的作业,学生也都是为了应付检查才做。每个阶段的文档都必须付诸行动后才有内容可写,由于学生没有实践,因而只能从网上搜集资料想像别人是怎么做的。对于学生上交的系统一般都不能使用,因为这些系统没有接受真正的测试,也存在一些错误的代码,学生如果检查不出这些错误,就不能深刻地体会到用《软件工程》开发软件的流程和重要性。
2.2 教师教学水平有限
任课教师大多数任教时间不长,教学经验不足,没有软件开发经验。教师讲授《软件工程》课程时也只能以课本知识为主,或者借助视频授课,教学方法较单一,影响了《软件工程》课程的教学效果。
2.3 学生基础差
《软件工程》与其它专业课紧密相联,一些学生存在着自卑心理,即他们认为自己有很多先修课程没有掌握好,这门课肯定也学不好。大部分学生对理论性课程的积极性不高,学生的基础普遍较差(高级语言程序设计、数据结构、数据库原理等掌握不好),许多知识不能运用自如,这也给《软件工程》课程教学带来了困难。
2.4 考核方式
《软件工程》课程考核一般采用书而考试和平时成绩相结介的方式。对于这种考核方式,学生们平时不学习,到期末复习时,只要背一些基本概念也能考出好成绩。这种为了考试而学习的学习方式容易使学生放纵自己,不利于学生的学习。
3《软件工程》课程教学效果提升措施
3.1 教学过程引入实际案例
针对《软件工程》课程内容的抽象性特点,教学中要采用案例法。列举生动具体的案例来诊释抽象复杂的概念和原理,这样学生就能深刻体会到软件工程的思想、方法和技术,更利于达到教学目标。例如,在讲课时教师可以以“学生成绩管理系统”为案例,给学生介绍详细的开发过程和相关文档写作。案例教学法是使用最多的教学方法,它适介于所有课程的讲授。案例教学法还可以以公司的实际项目为案例讲解或者抽取项目某一部分,让学生在课堂上看到项目的实际环境,从而在复杂的条件下学会如何解决问题。要使用案例教学法,还必须从教学备课、教学课堂过程设计、教学不结与讨论这几个环节进行准备。在教学实践中,需考虑以下几个问题:
(1)使用案例是为了让学生更好地理解《软件工程》的理论内容,所以在设计和选择案例时,要考虑案例的针对}h}、复杂性与理论内容的结介程度,案例最好与所讲《软件工程》的生命周期完全一致。
(2)教师可以布置案例,学生们以团队的形式组成开发不组,每个不组进行“讨论式”学习。学生是学习的主体,教师只是起到引导、组织的作用。
3.2 组织课堂讨论,形成教学互动
“授人以鱼,不如授人以渔”。它是对教学中教师和学生的重新考虑。传统教学中教师高高在上,学生们处于被动接受地位。要改变这种教学现状,必须让学生成为教学过程中的主体,这就要求教师在课堂中调动学生的积极性,让学生由“要我学”的被动心理转变为“我要学”的主动心理,最终让学生掌握一种会学的能力。
想让学生得到这样的转变,教师在教学时需注意以下几点:
(1)表扬每一位主动发言的学生,让他们对自己充满信心,并且让学生掌握一些关于自学的技巧,同时从实践中得到体会。
(2)教师在教学过程中所要表达的语言要有利于学生的主动式学习。比如,“请大家一起来思考这个问题”、“大家可以针对前而同学的发言来表达自己的想法”等。
(3)教师转变“教师讲解”为“学生讲解”。整个教学过程设计分为哪几部分、每部分都涉及到哪些内容、如何女排等都由学生自主决定,教师只是起到引导和维护课堂秩序的作用。这样,学生才能真正成为教学过程中的主人。
3.3 加强实践教学
《软件工程》课程教学想要取得良好的教学效果必须把教学内容和实际项目、学生已有知识相结介。以实际项目为基础可以激发学生的兴趣,带动学生学习的积极性和主动性。具体实施过程如下:
(1)分组。教师根据班级人数分为几个不组,每个不组的人数以4-7个人为宜,每组指定一个组长,由组长来协调各个成员的工作及其它事情。
(2)选题。学生可以在教师已拟好的题目中选择,也可以自拟题目,但是学生自拟的题目一定要具有完整性、真实性和可行性。项目开发工具根据实际情况自行选择。
(3)项目实施。项目的开发过程要与教学内容进度一致,即项目开发有可行性研究、需求分析、概要设计、详细设计、编码、测试几个过程。每个阶段教师都要求学生提交相应的文档报告,报告格式要按照国家标准要求。
(4)总结评价。教师要对学生提交的报告认真批改,并在课堂中进行总结,提出需要修改的问题以便学生改正。教师还要对学生提交的报告给出成绩。学生的成绩可以由“不组成绩”(5000)和“个人在不组(5000)中的贡献成绩”两部分构成。
教师要对学生选题的实践内容由简单到复杂地加以引导,要把握好尺度,以便给学生留下足够的时间去思考和解决问题。