绪论:写作既是个人情感的抒发,也是对学术真理的探索,欢迎阅读由发表云整理的11篇软件工程导论范文,希望它们能为您的写作提供参考和启发。
doi:10.3969/j.issn.1673 - 0194.2017.04.147
[中图分类号]G642 [文献标识码]A [文章编号]1673-0194(2017)04-0-02
1991年,哈佛大学的埃里克・马祖尔教授创建了同伴教学法,其最早应用于物理学教学中。同伴教学法是一种基于合作学习理论和动机学习理论设计的教学方法。它是以教师在课前要求学生进行知识预习,课上提出测试题,要求每名学生独立答题,学生可以向教师提出1~2个问题,并形成自己的答案;然后由教师将学生进行分组、讨论,每名学生都要在本组内阐述自己的答案,答案有差异时,成员之间可以用自己的观点和理论说服对方,决定自己答案是否更改;教师统计学生上交的试题答案及正确率,根据准确率及时调整教学策略;学生根据教师讲解的知识点和关键点对照自己的答案,并将知识进行有效迁移的教学过程。同伴教学法是在心理发展水平相当的同伴关系之间,通过同学之间进行阐述观点、互相学习、讨论、分享经验,传授技能并获得同步提高。同伴教学法适用于原理、概念、过程、方法等比较难于理解、难于记忆、容易混淆的理论课程,这是一种讲授自然科学课程简单、有效、实用的教学方法。在软件工程导论课程中M行同伴教学法进行教学,符合课程特点和教学发展规律。
1 软件工程导论课程教学现状
软件工程学归属于自然科学中计算机科学与技术学科,是为了摆脱软件开发成本和进度估计不准、系统满意度不够、产品质量不可靠、软件维护性差、软件开发生产率跟不上计算机发展速度等“软件危机”的困扰,专门研究软件开发与维护的普遍原理、技术的一门工程科学。软件工程学已成为计算机科学的一个重要分支,研究范围广泛,其包括技术方法、工具、管理等多个方面。软件工程导论课程是计算机专业开设的一门必修课,是软件工程学的概要介绍,主要讲述软件工程的原理、概念、技术和方法,介绍各个实施阶段的任务、过程、方法和工具。
1.1 课程内容繁多
软件工程导论课程讲述的概念、原理、模型、系统内容繁多,讲述的知识面广、软件的发展速度快,课程的真实性和综合性强,理论性的知识众多,教师准备课程和讲解知识虽然耗费了大量的时间和精力,但学生对知识点不易理解,不能完全掌握知识内容。
1.2 教学方法陈旧
软件工程导论课程采用传统的教学方式,即“满堂灌”,教师在讲台上用无数丰富的语言去描述概念、原理、过程,学生只能被动的接受、机械的记忆,师生之间没有互动,学生想在一节课上把教师所讲的复杂的理论、概念完全记住,非常困难。
经过实践证明,这种传统的教学方法,已不能满足学生的学习需求,影响了其学习效果。所以,必须要找到一种适合软件工程导论课程的教学方法,同伴教学法是若干教学法中的最佳选择。
2 同伴教学法的应用实例
以“总体设计的过程”这一节课程为例。
2.1 课前准备
在本节课前一周,教师布置阅读任务,要求学生阅读“总体设计的过程”的内容,在课堂上提出并要求学生回答类似下列的问题。
(1)详述总体设计的过程,需求分析阶段的数据流程图在总体设计中起到了什么作用?
(2)在选取方案过程中,分析员一般要备份什么资料,这些资料有什么作用?
(3)数据库设计的步骤是什么,每一步的功能是什么?
(4)在书写文档时,都需要哪些文档?为什么要书写这些文档?这些文档对软件的开发起到什么作用?
这些问题必须是经过教师精心设计的,不能让学生通过阅读资料就可以找到答案,需要学生通过阅读教材、查找资料,对资料进行独立思考、深入分析,形成自己观点的问题。教师要综合知识点,对问题做好答案,以备讲解。
2.2 问题提出
课堂上,教师先创设模拟情景,如:一个公司现在需要编写一个财务软件,最先要明确的就是总体的设计过程,那么这个设计过程应该是什么样的呢?此时抛出的设计问题,请同学们进行讨论,给出答案。学生阅读教师给出的思考题,根据阅读过的教材和资料,给出初步答案。此时,每名学生也可以向教师提出1-2个问题,教师进行回答。
2.3 小组讨论
教师将学生分成若干个学习小组,每组有4-5名成员,可设置1名组长,也可不设置。在小组中,每名学生按次序将自己的答案提出,并说明形成答案的根据、理由和设计。小组内根据不同意见再进行分组,每名同学试图用自己的理论说服对方,此时,教师可以在各组内进行巡视或旁听,并给出一些建议,学生根据讨论和交换的意见,再次形成新的答案。
2.4 统计答案
学生将答案提交给教师,教师根据学生方案中存在的问题,进行统计,并给出每道试题的正确率,查看知识点掌握情况,总结学生答案的优缺点,分析学生错误答案产生的原因,准备相关知识以备讲解。
2.5 讲解答案
教师讲解答案如下。
(1)总体设计的过程包括设想供选择的方案、分拣选取合理方案、推选最优方案、进行功能分解、设计软件结构、数据库设计、设置测试计划、书写软件相关文档及审查和复审等9个步骤,需求分析阶段的数据流程图在总体设计中是总设计的开始,数据流程图中的自动化边界是实现策略的方案。
(2)在选取方案过程中,分析员一般要备份系统流程图、组成系统的物流元素清单、成本或效益分析、实现这个系统进度的计划四份资料,这些资料是实施方案的基础,是项目是否可行的依据。
(3)数据库设计的步骤是模式设计、子模式设计、完整性和安全性设计、优化。模式设计是确定数据库的物理结构,子模式设计是具体的数据规划试图,完整性和安全性设计是保证数据库整体安全稳定运行的检查方案,优化是改进模式和子模式数据的方案。
(4)在书写文档时,需要系统说明、用户手册、测试计划、详细的实现计划、数据库设计的结果等文档。这些文档是进行软件开发的根据和基础,也是以后开发同类产品的宝贵资料。
教师讲解后,归纳总结学生方案的优缺点,对错误的成因进行分析,提炼出本节课程的重点和难点内容。同学们根据自己的答案对照教师的答案,分析自己答案的利弊,巩固知识,再进行讨论,最终领会本节课的知识和技能,提升自己的知识和能力,进而对知识做到最好的迁移。
3 结 语
在软件工程导论课程中使用同伴教学法进行教学,使学生明确了学习目标,掌握了重点和难点,激发了学习兴趣,提高了解决问题的能力,培养了合作精神、沟通能力、竞争意识、互助精神等综合素质。改变了原有的教学模式,让同学之间成为互相的传授者,不但可以共同探讨问题,还能共同增长知识和技能,达到了共同进步的目的。同伴教学法在自然科学门类的理论课程教学中具有显著的作用和十分重要的现实意义,是同类课程的有益借鉴。
主要参考文献
1、提升了学生发现问题、解决问题的能力
行动导向教学在高校软件工程概论课程应用中的突出优点就是提升了学生发现问题、解决问题的能力。行动导向教学就是指在课程中积极发挥学生的主体作用以及教师的主导作用,重点在于培养学生发现问题以及解决问题的能力。对于软件工程概论课程来说,与现代化社会中的信息化技术有着紧密的联系,从而对于学生的教学及培养,需要不断加强重视。行动导向教学方法的应用,让学生在实践过程中对该课程有了更好的理解,同时也提升了学生对学习该课程的兴趣。学生在课程中发挥着主体作用,因此在日常的教学课程中,教师会引导学生积极探索问题,发现其中的奥妙。行动导向教学方式的应用,很好的满足了部分学生对于课堂教学开展模式的向往,重点在于把学生作为中心,进一步拓展了学生们的思维以及眼界,最大的优势就在于可以有效提升学生的技术水平以及实训能力。
2、进一步突破了传统教学模式的限制
另外,行动导向教学的应用进一步突破了传统教学模式的限制。传统的教学方式对于成绩的注重力度是比较大的,而且一些学生普遍形成了死记硬背的思维,对于实训课程了解少之甚少,这样不仅不利于学生自身的成长发展,同时也不利于为行业发展提供人才。但是现代化教学方式的改革,进一步突破了传统教学模式的限制,就行动导向教学来说,做出最大的改进就是课堂中积极发挥学生的主体作用,对于一些需要记忆的知识点,可以采取情景教学,让学生有极大的兴趣投入到其中,才能够更好的掌握知识。
3、教师对现代化教学方式掌握力度不够,理解不全面
由于受到不确定外界因素的影响,行动导向教学在课程教学应用中也存在一些不足。例如,教师对现代化教学方式掌握力度不够,理解不全面。目前社会中存在一部分资历比较老的教师,他们对于新事物的接受力度是比较弱的,而且认为现代化教学方法没有什么先进之处,反而教学难度会增大,过程也会变得复杂。从而对于现代化教学方法掌握的力度不够。教师是引导学生成长成才得指路明灯,所以针对教师们不好的做法需要做出积极的改进。另外,还要积极招收掌握现代化教学方法的教师,从而更好的发挥学生的学习能力以及自主性。
二、行动导向教学在高校软件工程概论课程中应用的改进策略
1、不断完善师资力量,提升教师的教学水平
针对行动导向教学在高校软件工程概论课程中应用的优缺点,提出了相关的改进策略。第一,不断完善师资力量,提升教师的教学水平。教学中教师在很大程度上起着引导的作用,学生的学习能力提高与教师有着很大的联系。由于一些专业学校,对于教师的教学水平并没有很高的要求。但是正是因为此,却在很大程度上影响了教学质量。所以在对教师进行招收时,要提出更高的要求。首先需要教师掌握更全面,更高质量的关于粤菜的烹调技术,与外界的市场相结合,从而培养市场需要的学生以及人才。另外,需要不断加强对教师的培训,只有提高了教师的职业素养水平,才能够让其在教学质量上发挥更大的作用。
2、灵活运用教学方法,吸引学生的学习兴趣
第二,灵活运用教学方法,吸引学生的学习兴趣。俗话说:兴趣是最好的老师,为了促进学生对于软件工程专业有充分的了解以及学习的兴趣,需要学校在管理模式上进行创新管理,让学生在轻松的氛围中学习课程。另一方面,教师在课堂管理中也要不断创新方法,例如增加学生感兴趣的一些环节,并且与课堂内容有效的结合起来,从而来更大范围的吸引学生的学习兴趣,激发学生的学习动力。另外,教学方法不能够太单一,需要灵活的运用教学方法,活跃课堂氛围,从而让学生积极投入到课程的学习中。教学方法的运用也要结合学生的兴趣来入手,从而才能取得事半功倍的效果。
3、不断完善实训设备,提升学生的技术水平
第三,不断完善实训设备,提升学生的技术水平。对于软件工程专业的学生来说,未来从事的工作与现代化的信息化技术有着紧密的联系,所以在高校中实训课程开展有着非常重要的作用。为了进一步提升学生的实训能力以及相关方面的技术水平,需要不断完善学校的实训设备,让学生较为全面的掌握现代化技术,认识并了解更多的现代化技术,从而有效的提升学生的技术水平。实训设备的完善离不开学校领导以及当地政府的支持,所以政府还要进行积极的投入以及资金支持,从而推动其更好的发展。
三、行动导向教学在高校软件工程概论课程中应用的前景分析
关于行动导向教学在高校软件工程概论课程中应用的前景分析将从两个方面做出具体的介绍。一方面,行动导向教学在高校软件工程概论课程的应用需要积极发挥学生自主解决问题的能力,所以实际教学中教师要灵活的运用教学方式,针对不同的课程以及学生,需要应用不同的教学方式,因人而异。另外,行动导向教学的方式对于大部分学生来说是比较适合的,但是需要教师全面的了解行动导向教学的内涵和核心,从而做出更好的诠释。另一方面,对于高校软件工程概论课程来说,与信息化技术联系的比较密切,需要不断完善实训设备,从而提升学生的技术水平以及创新能力。
本文通过对行动导向教学在高校软件工程概论课程中应用的现状及前景进行了具体的分析,并且针对行动导向教学在高校软件工程概论课程中应用的优缺点做出了介绍,提出了改进策略。综上所述,为了推动我国教育行业更好的发展,需要针对目前教育行业存在的问题做出积极的改进。由于受到传统教育观念的影响,导致形成了一种死记硬背的现象,从而学生缺乏解决问题以及发现问题的能力,而且长此以往,学生对学习的兴趣也逐渐减小,既不利于学生未来的发展,也不利于我国教育水平的提升。为了有效的解决这一问题,提出了多种形式的教学方法,行动导向教学的应用,不仅可以有效提升学生的解决问题的能力,还能够进一步发挥学生的主体作用,积极探索未知世界,不断扩展学生的眼界。行动导向教学在高校软件工程中的应用,有效提升了学生的创新能力以及实训水平。存在的问题主要是教师教学受传统观念的影响,形成学生固定的思维,这就需要运用灵活的教学方式,从而更好的提升高校软件工程专业的教学水平以及学生的学习能力。
软件工程硕士论文参考文献:
[1]王存荣.行动导向教学中要处理好的几对关系[D].教育探索,2011(7):60-61.
[2]姜大源.“学习领城”工作过程导向的课程模式:德国职业教育课程改革的探索与突破[J].职教论坛,2004,(6):61-64.
行动导向教学目前在高校软件工程概论课程应用中取得了不错的效果,但同时由于受到一些不确定因素的影响,例如教师对现代化教学方式的掌握、学生自身的个性以及学习能力等,导致行动导向教学的应用效果不是很理想,不仅不利于学生的学习,同时也会限制学生的创新思维的扩散。从另一个角度来看,行动导向教学的应用的成功之处就在于突破了传统教学模式的限制,创新了现代化教学模式,有效提升了我国的教育教学水平。
二、行动导向教学在高校软件工程概论课程中应用的优缺点
1、提升了学生发现问题、解决问题的能力
行动导向教学在高校软件工程概论课程应用中的突出优点就是提升了学生发现问题、解决问题的能力。行动导向教学就是指在课程中积极发挥学生的主体作用以及教师的主导作用,重点在于培养学生发现问题以及解决问题的能力。对于软件工程概论课程来说,与现代化社会中的信息化技术有着紧密的联系,从而对于学生的教学及培养,需要不断加强重视。行动导向教学方法的应用,让学生在实践过程中对该课程有了更好的理解,同时也提升了学生对学习该课程的兴趣。学生在课程中发挥着主体作用,因此在日常的教学课程中,教师会引导学生积极探索问题,发现其中的奥妙。行动导向教学方式的应用,很好的满足了部分学生对于课堂教学开展模式的向往,重点在于把学生作为中心,进一步拓展了学生们的思维以及眼界,最大的优势就在于可以有效提升学生的技术水平以及实训能力。
2、进一步突破了传统教学模式的限制
另外,行动导向教学的应用进一步突破了传统教学模式的限制。传统的教学方式对于成绩的注重力度是比较大的,而且一些学生普遍形成了死记硬背的思维,对于实训课程了解少之甚少,这样不仅不利于学生自身的成长发展,同时也不利于为行业发展提供人才。但是现代化教学方式的改革,进一步突破了传统教学模式的限制,就行动导向教学来说,做出最大的改进就是课堂中积极发挥学生的主体作用,对于一些需要记忆的知识点,可以采取情景教学,让学生有极大的兴趣投入到其中,才能够更好的掌握知识。
3、教师对现代化教学方式掌握力度不够,理解不全面
由于受到不确定外界因素的影响,行动导向教学在课程教学应用中也存在一些不足。例如,教师对现代化教学方式掌握力度不够,理解不全面。目前社会中存在一部分资历比较老的教师,他们对于新事物的接受力度是比较弱的,而且认为现代化教学方法没有什么先进之处,反而教学难度会增大,过程也会变得复杂。从而对于现代化教学方法掌握的力度不够。教师是引导学生成长成才得指路明灯,所以针对教师们不好的做法需要做出积极的改进。另外,还要积极招收掌握现代化教学方法的教师,从而更好的发挥学生的学习能力以及自主性。
三、行动导向教学在高校软件工程概论课程中应用的改进策略
1、不断完善师资力量,提升教师的教学水平
针对行动导向教学在高校软件工程概论课程中应用的优缺点,提出了相关的改进策略。第一,不断完善师资力量,提升教师的教学水平。教学中教师在很大程度上起着引导的作用,学生的学习能力提高与教师有着很大的联系。由于一些专业学校,对于教师的教学水平并没有很高的要求。但是正是因为此,却在很大程度上影响了教学质量。所以在对教师进行招收时,要提出更高的要求。首先需要教师掌握更全面,更高质量的关于粤菜的烹调技术,与外界的市场相结合,从而培养市场需要的学生以及人才。另外,需要不断加强对教师的培训,只有提高了教师的职业素养水平,才能够让其在教学质量上发挥更大的作用。
2、灵活运用教学方法,吸引学生的学习兴趣
第二,灵活运用教学方法,吸引学生的学习兴趣。俗话说:兴趣是最好的老师,为了促进学生对于软件工程专业有充分的了解以及学习的兴趣,需要学校在管理模式上进行创新管理,让学生在轻松的氛围中学习课程。另一方面,教师在课堂管理中也要不断创新方法,例如增加学生感兴趣的一些环节,并且与课堂内容有效的结合起来,从而来更大范围的吸引学生的学习兴趣,激发学生的学习动力。另外,教学方法不能够太单一,需要灵活的运用教学方法,活跃课堂氛围,从而让学生积极投入到课程的学习中。教学方法的运用也要结合学生的兴趣来入手,从而才能取得事半功倍的效果。
3、不断完善实训设备,提升学生的技术水平
第三,不断完善实训设备,提升学生的技术水平。对于软件工程专业的学生来说,未来从事的工作与现代化的信息化技术有着紧密的联系,所以在高校中实训课程开展有着非常重要的作用。为了进一步提升学生的实训能力以及相关方面的技术水平,需要不断完善学校的实训设备,让学生较为全面的掌握现代化技术,认识并了解更多的现代化技术,从而有效的提升学生的技术水平。实训设备的完善离不开学校领导以及当地政府的支持,所以政府还要进行积极的投入以及资金支持,从而推动其更好的发展。
四、行动导向教学在高校软件工程概论课程中应用的前景分析
关于行动导向教学在高校软件工程概论课程中应用的前景分析将从两个方面做出具体的介绍。一方面,行动导向教学在高校软件工程概论课程的应用需要积极发挥学生自主解决问题的能力,所以实际教学中教师要灵活的运用教学方式,针对不同的课程以及学生,需要应用不同的教学方式,因人而异。另外,行动导向教学的方式对于大部分学生来说是比较适合的,但是需要教师全面的了解行动导向教学的内涵和核心,从而做出更好的诠释。另一方面,对于高校软件工程概论课程来说,与信息化技术联系的比较密切,需要不断完善实训设备,从而提升学生的技术水平以及创新能力。本文通过对行动导向教学在高校软件工程概论课程中应用的现状及前景进行了具体的分析,并且针对行动导向教学在高校软件工程概论课程中应用的优缺点做出了介绍,提出了改进策略。综上所述,为了推动我国教育行业更好的发展,需要针对目前教育行业存在的问题做出积极的改进。由于受到传统教育观念的影响,导致形成了一种死记硬背的现象,从而学生缺乏解决问题以及发现问题的能力,而且长此以往,学生对学习的兴趣也逐渐减小,既不利于学生未来的发展,也不利于我国教育水平的提升。为了有效的解决这一问题,提出了多种形式的教学方法,行动导向教学的应用,不仅可以有效提升学生的解决问题的能力,还能够进一步发挥学生的主体作用,积极探索未知世界,不断扩展学生的眼界。行动导向教学在高校软件工程中的应用,有效提升了学生的创新能力以及实训水平。存在的问题主要是教师教学受传统观念的影响,形成学生固定的思维,这就需要运用灵活的教学方式,从而更好的提升高校软件工程专业的教学水平以及学生的学习能力。
参考文献:
[1]王存荣.行动导向教学中要处理好的几对关系[D].教育探索,2011(7):60-61.
中图分类号:G424 文献标识码:A
0 引言①
为适应我国经济结构战略性调整的要求和软件产业发展对人才的迫切需要,实现我国软件人才培养的跨越式发展,教育部和国家发展计划委员会共同研究决定选择部分高等学校,采取多项扶持政策,支持其试办示范性软件学院,国家首批批准35 所示范性软件职业技术学院,到目前为止全国软件学院已经超过100所,这么多的软件学院每年的毕业生数量超过一万人,就业压力可想而知。软件学院的软件工程专业是计算机领域发展最快的学科分支之一,这就对高等学校的教学提出了挑战。
1 现状
计算机科学导论是软件工程专业的学生入校学习的第一门专业课程。
(1)对于刚入学的新生,在选择软件工程这个专业时,对计算机没有足够的认识,选择这个专业带有很大的盲目性。一部分偏僻或贫困地区的学生刚上大学对计算机几乎一无所知,甚至连基本操作也不会;一部分学生虽然以前接触过计算机,但只会一些基本操作,对计算机的专业知识了解很少,他们将计算机专业等同于一般的计算机应用技术;还有一部分学生不仅对计算机的基本操作很熟练,在高中时就选修过一些计算机类的课程,对计算机专业有一些初步了解。
(2)对于从事计算机科学导论课程教学工作的老师,都是严格按照本专业教学计划、教学大纲的要求上课,整个学期的教学按部就班,内容虽然丰富,但不够生动。并且,由于计算机科学导论这门课程涉及到软件工程专业后续学习的很多门课程,而每个教师的专业知识侧重点不同,有些内容很精通,就会占用比较长的时间生动地去讲解,有些内容不是很精通,这样就不能全面正确地引导学生认识这门课,更不用说培养学生的热情和兴趣了。
(3)对于计算机科学导论课程的教学内容主要有三种类型:②
第一种是将计算机导论的教学内容设置为计算机基本技能的培训课程;这种方法虽然可以提高新生的计算机操作能力,但失去了本课程作为专业引导课程的本质属性。
第二种是把计算机导论课程当成软件工程专业学生在大学期间所学专业核心课程的浓缩;内容广而散,概念多而杂,教学内容的深度和广度不好把握,学生也很难理解。
还有一种是从方法论入手,用高度抽象的数学模型来刻画计算机及计算的本质属性,对软件工程专业的主要内容进行系统化整合,这种方法过于抽象,很难理解。 这三种类型的计算机导论课程教学,都不适合我校软件工程专业学生学习,很难达到该课程的教学目的。
2 具体改革内容、改革目标和解决的关键问题
2.1 改革内容
计算机科学导论作为大一新生的一门引导性质的课程,内容选取不能太具体,这样容易把该课程上成计算机基本技能的培训课;内容选取也不能太广泛,这样就可能把该课程上成所有专业课程的浓缩课程,看似讲了很多内容,但一个也没讲透。希望学生从这本门课程的学习当中能够真正理解软件工程专业的学生在四年的大学生活中要学到哪些方面的知识,通过所学的知识能够解决哪些方面的问题,从而以积极主动的态度投入到大学生活中。
2.2 改革目标
计算机科学导论课程的教学目标应该服务于专业的培养目标,③粗略地讲,软件工程专业人才大体上分为科学型,工程型和应用型,而我校软件工程专业的人才培养目标是培养复合型人才,那么作为引导型的计算机科学导论课程的教学计划与课程内容构建就应该服务于复合型人才(下转第191页)(上接第86页)培养总体目标,因此,该课程教学目标应该有以下几个方面:
首先,应该让学生了解软件工程专业复合型人才的就业方向,培养对复合型专业的认识,通过本课程的开设,要让学生明白什么是复合型的人才,复合型人才的就业岗位,了解当今社会对复合型人才的需求,从而对自己将来要从事的工作的专业方向有大致的判断,并对软件工程专业培养复合型人才应该学习的主要课程有基本了解,对自己将来应该具备的能力有初步的认识。
其次,应该培养基本的计算机操作能力,作为软件工程专业的学生,应该具备较强的基本操作能力,随着计算机的普及,很多刚入校的新生虽然有一定的计算机操作能力,但掌握得不系统,更何况由于各地区教育经济发展存在差距,还有相当一部分来自落后地区的新生很少用计算机,有的甚至从来就没有操作过计算机,因此,培养计算机的基本操作能力,仍然是计算机导论课程中一个重要的教学目标。
另外,还要培养学生的自主学习能力,学习能力对人的一生很重要,现实生活中,我们看到不同的人学习同样的东西感受是不一样的,有的人学得很轻松也很快又很透彻,还有一些人学得很辛苦又很慢,掌握得也不够扎实,究其原因就是学习方法、学习态度问题。前一种人通常是以积极主动的姿态投入到学习中,后一种人总是被动灌输式地学习,所以学习效果有很大差别。我们希望通过本课程的学习培养学生自主学习的能力。
2.3 改革的方法
2.3.1 教学内容及方法的改革
首先,利用2~4学时采取讲座的形式,请资深教授、专家对软件工程专业学生应掌握的软件基础理论知识和软件工程专业知识,应熟悉的软件应用和工具,应具备的方法、技术和工具等做全局性的介绍,使学生知道这个专业四年中需要掌握哪些专业知识和技能,毕业后可以从事哪些方面的工作,树立起学习的目标。
另外,介绍本学科的知识构架及其相互关系,使学生理解这些知识点之间的作用、地位及其相互之间的关系。
其次,是对于学生的基本技能的培训,为学生顺利进入计算机专业学习奠定基础。基本技能的培训利用《计算机科学导论》自主学习平成。《计算机科学导论》自主学习平台要求具备以下几个方面的环境:一是交互学习环境;二是有问必答环境;三是利于学生个性化学习的环境;四是评价激励的环境;五是统计反馈的环境;六是优秀的学习资源环境。学生利用《计算机科学导论》自主学习平台,首先抽做整套试题作答,答题完成后系统会自动给出分数,并给出详细的试卷分析,指明学生哪些方面的知识已经掌握,哪些方面还掌握得不太够,哪些方面知识很匮乏,是学生在学习之前对自己掌握的知识情况有一个定位,然后可以利用优秀的学习资源有针对性地进行相关知识的学习,如果有些知识通过网上的学习资源任然不能解决,可以通过网上留言的方式提出问题,老师或者一些已经掌握这些知识的同学看到留言以后会给出解决的方法,能够回复问题并取得好评,系统要给予相应的加分奖励 。如果学生认为自己已经掌握了所有知识点,那么就可以重新随机抽取试题,检验自己对基本技能的掌握情况。
2.3.2 考试的改革④
考试应分为计算机考试和掌握内容考查两部分,对于基本技能的掌握程度采用计算机考试,《计算机科学导论》自主学习平台提供了相关知识题库,学生可以抽取试题,在线操作,做完后提交答案,系统直接给出分数及试卷分析;对于内容的理解、掌握程度采用考查形式,通过写报告的形式来考查学生对教学内容的掌握程度。
总之,我们将通过多样化的教学手段、教学平台,在教学过程中的不断探索,不断改进,找到最适宜软件学院软件工程专业大一学生《计算机科学导论》课程的教学方法,充分发挥软件学院大学生入学第一门专业课《计算机科学导论》这门课的作用。
项目支持:2011年,中北大学高等教育教学改革研究项目
注释
① 刘利雄,李凤霞.“计算机科学导论”教育改革思路.Computer Education教学资源与平台建设,2009.
中图分类号:G642 文献标识码:B
文章编号:1672-5913 (2007) 20-0029-03
“软件工程”课程在国内的计算机科学与技术专业以及国际上2001年的计算机科学教学体系(IEEE CC2001)中都是不可或缺的核心专业知识课程,其主要内容也是2004年由IEEE-CS/ACM/AIS建议的计算科学教学体系的关键知识域(CC2004)。近年来,软件工程的知识已经成熟和系统化,足以构成一个专业的知识体系,在国内外大学的计算学科下面相继出现了“软件工程专业”。在这种情况下,传统的“软件工程”课程出现的新老问题更加凸显,急需高校、特别是我国普通高等院校探讨,尽快地提出解决问题的途径和办法。
1 “软件工程”的教学难点
“软件工程”课程的内容广博,涉及软件开发的基本概念、原理、过程、方法、技术、标准、管理和工具等广泛的技术与管理知识。作为一门课程,“软件工程”所包含的知识面面具到,却又难以深入。由于课程内容不如数学严谨,不如编程具体,不如数据库实用,不如图形学生动,加之学生基本上没有参与过大型软件开发的实践,这就使得学生难以在一个学期就深入理解软件工程中庞杂、抽象的内容。在传统的考试方式下,学生只能死记硬背,使得“软件工程”课程变成了“第二政治课”。此外,由于软件工程的理论和技术发展迅速,教材总是跟不上技术的发展;如果教师缺乏理论研究和实践经验,教学就变得更加困难。
自2002年起,“软件工程”在全国35所学校成为一个专业之后,庞大复杂的“软件工程”从一门课程变成了一系列课程,知识的传授相对容易起来。可是对其它专业而言,则又面临新的问题:如何在学时不变甚至减少的条件下,把一个专业的知识浓缩在一门课程中,完整而有效地传授给学生。
2 “软件工程”课程之管见
“软件工程”研究的是如何系统地构造软件的知识,是计算学科中唯一涉及管理学的课程,内容独特,不可或缺。2004年IEEE和ACM的联合公布的软件工程知识体系(SWEBOK04)将其内容概括为十个知识域,每个知识域又分若干子域,每个子域分为若干知识点,等等。SWEBOK04的出现标志着软件工程知识的成熟和一门专业的诞生。
笔者根据对软件工程的多年研究、对该课程的中英文教学,以及给二学位本科和研究生讲授“软件设计方法”、“组件开发技术”、“软件体系结构”、“软件项目管理”等相关课程的经历,认为根本不可能在一门课程中把软件工程的所有知识都让学生掌握!前人尝试的结果导致了无论是教材、还是教学,都只能是走马观花、蜻蜓点水,造成教与学的困惑。SWEBOK04及其教学指南提出了软件工程的基本知识范围,却没有明确规定教学的详细程度,允许灵活掌握。作为一门课程,我们应该、而且必须结合实际、面向需要,合理地取舍传授知识的寡众与深浅。
事实上,国内外的经典与新近出版的“软件工程”课程的教材基本上都可以覆盖要求的知识内容。但是,在选材的深度与广度、知识的更新以及组织方面有明显的侧重。以软件分析与设计为例,有些教材注重知识的全面性,把结构化方法与面向对象技术并重地讲解(如Pressman的最新版本,国防科大齐治昌、谭庆平和宁洪的教材);有些教材只讲最新颖、更实用的基于UML的面向对象建模方法(作者如Sommerville,清华大学的孙家广与刘强)。
我们认为,“软件工程”作为一门课程是计算学科的入门课,可以借鉴管理学科,将其称之为“软件工程导论”或“软件工程概论”。区分对待SWEBOK04中的知识点,确定出了解、理解和掌握等不同程度的教学要求。下面就结合实例介绍一个具体的教学设计和实施。
3 “软件工程”课程教学内容的一个设计
3.1背景
笔者所在大学是一所省属综合性大学,界于教学型与研究型大学之间,目前更偏重于教学型。毕业生多数在省内、特别是在青岛工作。自2003年起青岛市把软件列为优先发展产业,重点扶持软件外包、信息家电等产业领域。我校是全国35所成立了软件学院的院校之一,负责培养软件工程专业的本科学生。工程硕士的培养仍由笔者所在的信息工程学院负责。
我院最近5年的考研率在20%左右,大多数本科生毕业后面临就业问题。除升学与出国外,我院近80%学生的就业去向包括:软件企业、非软件企业、政府部门与事业单位、自谋职业等。只有在软件企业或者大型传统企业IT部门的毕业生从事软件开发,其它大多数计算机毕业生从事与软件开发无关的职业,如市场、销售、采购、管理等。为了满足社会需要,更好地为地方经济发展服务,我院经将计算机科学与技术分为3个方向供学生选择:软件技术与理论、嵌入式系统和网络工程。“软件工程”课程是所有专业方向的必修基础课。
3.2需求分析与教学内容的设计
在这些背景下,我们的“软件工程”课程的教学方针是:满足社会需求、面向学生未来;将课程定位为:全面地介绍软件工程学的基本知识,突出大型软件开发和管理的基本原理、方法和实用技术,满足计算学科对系统化软件构造知识的基本要求,同时成为学习软件工程专业的先导课程。课程名称也相应地改为“软件工程导论”;在满足软件工程知识点和学科体系的同时,根据市场需求,适当增减内容,把具体的实用技术讲深讲透,同时介绍前沿课题,提高学生的学习兴趣。
表1是我院“软件工程导论”课程的理论授课内容与课时安排(不含课程绪论与课堂练习、总结的4个学时),按照SWEBOK04提出的10个知识域进行了重新组织。由于选用的教材以及实际教学内容的组织与SWEBOK04的知识域并非完全一致,因而出现小数点学时。如“软件工程工具与方法”知识域,我们在授课章节介绍相关的软件工具,如在软件需求和设计中使用了ROSE和MS Visio;在讲解项目进度中示意了MS Project;在软件测试中提到了JUnit。此外,还按照教材集中地讲解了CASE概念与工具,补充了Eclipse以及最新的青鸟系统。
为便于对比,我们将“软件工程导论”的教学内容按照SWEBOK04的知识域计算出每个知识域所用学时占总课时的百分比;同时计算出SWEBOK04中10个知识域中的子知识域在整个子知识域中的百分比,如图1所示。
从图1可以看大:我们对产品工程的设计和测试讲授了更多的内容。相比于SWEBOK04,我们的设计部分超出一倍,软件测试的内容则多出三分之二。对于同样重要的需求分析则没有增加更多的内容,这主要是考虑到需求分析是超越初级软件工程师的知识,需要沟通技巧、领域知识和实践经验等综合知识与能力,属于系统分析员的职责,应届本科毕业生基本上达不到。对软件构造以及软件支持方面的知识(如软件配置管理)则缩减了学时,一个原因与所选教材有关。在软件质量方面,则补充了CMMI的过程改进及其结合TSP/PSP的内容,使得我们的学时略微高出。
在处理知识域时,我们遵循了“突出重点、面向实用”的指导思想,举例如下。我们在软件建模和测试方面加大了学时,以便学生掌握这两个领域的技术;同时减弱了对其它知识域的学习要求,只需要理解、甚至了解有关的知识。例如,我们在需求分析与设计中都讲解了结构化方法和面向对象方法,但是,所分配的时间差别巨大。对于结构化方法,主要介绍其基本思想、常用工具及其简单应用,如DFD图、数据字典、程序结构图、判定树、PDL等。对面向对象技术,则大大地扩充了选用教材的内容,加上相应的实验课程,共有近30学时,可以当作一个“基于UML的软件建模”的小型课程。目的是使学生认识到软件工程并非是空虚无物的条条框框,开发软件的工作在编程之外还有分析、设计和测试等。而且希望学生通过该导论课程实实在在地掌握一种当前常用的软件建模技术,以便能够在实际工作中尽快地熟练使用。图2示意了“软件工程导论”中对软件设计有关知识点分配学时的比例。
4实践与体会
教学内容的变更仅仅是改善教学质量的一个方面,还需要改变教学方式,举例如下。
例1:传授知识的过程要从日常生活到软件领域。在讲解过程改进时,我们以刘翔为例提出问题:刘翔身后的科研小组和上百万元的投资,包括摄像、动作分解和分析是为了什么?表面上看是为了改进跨栏和起跑的动作(软件开发过程),实质上最终是为了改进其跨栏成绩(软件产品)。从学生们比较熟悉、容易理解的事情开始,立刻就吸引了他们的注意力,进而简化了对软件过程及其改进的讲解。
例2:综合运用学过的知识。在讲开发高可信软件时,把容错技术与面向对象编程中异常处理的机制结合起来,加深了学生对容错技术的理解、对异常处理的认识;在介绍形式化技术时,通过演示断言在Java中的实现,使学生认识到这些看起来玄乎的理论正在逐步实现。
例3:不失时机地简单介绍相关的研究动向以及国内的相关工作,让学生了解软件工程学最新的理论研究,对少数优秀的学生指出钻研方向、提高研究兴趣。例如,我们在课堂上简介了最近三年中国首次主办的“软件工程国际大会”,“软件过程改进”和“软件工程理论”等国际高规格专业会议,包括其中的主题报告。
教学内容和教学方法的改进,极大地提高了学生的学习热情,成绩也显著提高。限于篇幅,我们在考试、课程设计以及实践教学方面的尝试不在本文讨论范围。
我们将继续搜集和分析不同专业方向的学生对该导论课程的反应,针对性地调整有关内容,以便更好地满足社会的需要,如针对嵌入式系统的软件开发,增加实时系统的分析与设计技术方面的知识。
参考文献
[1] 麦中凡. 解读SWEBOK 2004[J]. 计算机教育,2004,(10).
[2] Computing Curricula 2004.Overview Report. November 22, 2004, .
[3] Software Engineering 2004. CC 2004 Series, August 23, 2004, .
[4] 刘洪、舒坚、罗海平. 一般工科院校软件工程专业课程体系设置[A].大学计算机课程报告论坛论文集[C]. 北京:高等教育出版社,2006. 465-469.
作者简介
李劲华(1963―)男,博士,副教授,主要从事软件工程的教学与研究。
杨厚俊(1965―)男,硕士,副教授,分管教学副院长。
中图分类号:G642 文献标识码:B
目前,在软件工程专业的双语教学实践中普遍存在一些困惑。首先,对什么是双语教学认识不清。从学校到授课老师都不清楚到底什么是双语教学,外语要表达到怎么样的程度才算是双语。其次,对适合采用双语教学的课程不明确。每种课程的课程性质、教学方式等是否适合双语教学需要慎重考虑,否则只会适得其反。再次,认为双语教学是立竿见影的事情。双语教学的成功涉及到很多环节,比如优秀的教材、教师的外语水平和学生的接受能力等等,想要在一个双语课程项目通常三年以内的建设周期完成真的很难。
1软件工程专业双语课程设置
南京邮电大学计算机学院软件工程专业的课程体系是在ACM和IEEE/CS联合推出的CC2005/SE2004的基础上提出了一种强调系统认识的课程体系,我们重新构造了部分软件基础课程,加强学生对于计算机系统的系统级认识和对于工程化软件开发方法的认识,简化了计算机科学核心课程的数量,既有利于学生学习的有效性程度,又有利于学生对知识的掌握程度。改进后的核心课程设置方案如图1所示,核心思想概括为三条线索,如图中虚线所示,分别为软件工程核心课程、计算机基础及模块课程,程序与算法设计课程。
该课程体系主要有以下几个特色:
(1) 新增设入门课程:软件工程导论。建立完整的计算概念以及软件工程的基本概念。建设一门新课程:计算机组织结构。建立计算机软硬件系统的系统级认识。它以硬件环境为主,操作系统为辅,关注系统软件的构造技术。
(2) 从计算机科学专业继承来的重要核心课程3门。包括面向对象程序设计、数据结构与算法分析与设计。改建三门新计算机科学与技术专业的原有课程:操作系统、计算机通信、数据库系统。操作系统课程以小型的嵌入式操作系统为核心,培养学生嵌入式系统及应用的开发能力。计算机通信课程强调网络软硬件系统的系统级认识,培养学生局域网与广域网的组网能力和网络环境下的软件开发能力。数据库系统课程强调利用网络环境下的关系数据库设计和开发数据库应用系统,培养学生数据库管理与信息系统的应用开发能力。
(3) 建设3门软件工程专业核心必修课程以及多门选修课程:以统一建模语言,软件开发方法和软件项目管理三门为核心必修,辅以形式化方法、人机交互技术、软件测试、软件体系结构等多门软件工程专业选修课程。
该课程体系彻底抛弃原有计算机学科所依托的电子类课程,包括电子电路、数字电路等,同时加强与现有的计算机科学与技术专业课程的区分度。增强了多层次的双语训练,在核心课程中将软件工程导论、软件工程、统一建模语言和网络应用开发设置为双语授课,如图1中的灰色部分所示。在综合实践性选修课程中训练学生实践能力,融合SE2004推荐的工程经济学、团队动力与沟通、软件工程职业实践等教学内容。
2双语教学的三个关键问题
2.1双语课程的定位
如前所述,我们将软件工程导论、软件工程、统一建模语言和网络应用开发四门课程设置为双语授课,形成一个层次化的、连续的双语教学环节。在这几门课程的教学实践中我们发现,要想最大程度地发挥双语教学的功效,必须处理好下列问题。
课程的目标定位:四门双语课程各自的课程定位并不一样。软件工程导论课程是一门引导性的课程,课程的教学目标是使得学生对软件工程专业所依托的信息技术行业形成一些基本的感性认识。课程侧重与大信息技术学科的概念性认识。软件工程课程是一门专业基础课,课程的教学目标是使得学生掌握软件工程专业领域中的基本原理、方法、技术和应用。课程侧重于软件工程的理论学习。统一建模语言是一门专业必修课程,课程的教学目标是使得学生掌握使用UML语言进行软件项目的分析与设计。课程侧重于软件工程的关键技术实践。网络应用开发以目前发展最迅速的Web应用开发为主要内容,课程目标是使得学生的软件开发与实际需求紧密集合。课程侧重于软件开发的整体项目实践。四门课程分布与整个教学计划的不同阶段中,使得学生的双语训练能保持一个比较适当的强度和节奏。
教学模式选择:对处于不同教学阶段的课程采用不同的双语教学比例。根据学生的英文学习能力,逐步提高英文授课所占比例,在阅读的基础上理解和把握专业知识。在软件工程专业的四门双语课程中,软件工程导论和网络应用开发的课程内容相对于大一和大四的学生而言更比较容易接受,因此偏向于沉浸式的外语教学;而软件工程和统一建模语言相对而言专业术语更多,内容比较晦涩,因此更多偏向于过渡式的外语教学。同时,我们还在一门课程的不同教学内容上采用不同的双语教学比例,集中主要时间段讲解专业理论知识和实践环节,避免在教学过程中花费过多的精力讲解英文本身,从而出现本末倒置的现象。
与基础英语、专业英语的关系:基础英语是通过不断扩大词汇量和学习语法,加强读、写、听和说的能力以便掌握英语这门语言。专业英语则是在基础英语学习完毕后,集中学习专业词汇以便于学生在将来的专业研究中可以轻松阅读本专业英文文献。双语教学正是用英语来理解和解决专业问题,它体现对英语的应用,在应用中来加强英语学习。所以双语教学不是以学习语言为主要目标,而是以应用语言为主要目标。
2.2教材的选择
教材的选择很大程度上决定着双语教学课程的教学效果,在多次双语教学实践活动,我们总结出以下几点经验。
各门课程的教材:精选原版教材,重视专业内容建设。优先选择国外软件工程专家专著类英文原版教材,内容方面要相对涵盖较广,教材内容与实践工程结合紧密。其中符合我们课程体系的软件工程导论原版教材较为少见,因此我们自编教材,在计算机科学导论原版教材的基础上增加软件工程专业中最基础的概念。软件工程课程的教材我们选用了Ian Sommerville编著的Software Engineering(8th Edition),该教材经过多轮建设,内容相对成熟。统一建模语言的教材我们选用了Mark Priestley编著的Practical object-oriented design with UML (second edition)。这两本教材均有对应的中译本,也方便部分英文欠佳的学生选为参考书。网络应用开发Robert Sebesta编著的Programming The World Wide Web。
教学内容的取舍:由于国内外高等教育教学模式的差异,原版英文教材往往并不能很好的适应我国的大学教育,同时教学学时的约束也使得我们经常需要对原版教材的教学内容进行一定的取舍,通常我们将教材中的一些高级课题布置为学生的课外作业。
辅助材料的选取:为了对原版教材进行一定的补充,同时也为了达到更好的教学效果,我们要求教师选取一些辅助材料,比如印刷讲义、教学录像、多媒体课件、教学网站、参考网络资源等等。调查显示讲义的教学效果最为明显,通常这种90%左右英文,10%中文注释的讲义既能浓缩教学内容,又能很好的调动学生的学习积极性。
2.3教学方式的改革
由于双语课程的特定教学需求,以及软件工程专业的专业特色,需要训练学生实践能力,融合SE2004推荐的工程经济学、团队动力与沟通、软件工程职业实践等教学内容。因此在软件工程专业双语教学实践中,我们进行了大量的教学实验和改革,实践表明这些改革有效的提高了教学效果,部分抑制了双语教学本身所带来的语言障碍。
(1) 增强团队的锻炼:通常在课程的开始阶段让学生自由结合为小组,互相交流并派代表用英语参与班级讨论;在实验中,要求学生以小组为单位自选题目,与指导教师研讨最终完成小组任务。调动了学生的学习热情,培养他们的协作精神。
(2) 采用案例式教学模式:典型的案例融合在教材中,新知识以案例形式引入,然后展开分析、建立理论、提出方法和工具,最后描述解答、讨论其局限,这预示着对新理论和技术的下一轮解读。案例式教学尤其适合软件工程和统一建模语言课程中的软件需求分析、多种软件设计的权衡以及系统开发过程等教学内容。
(3) 提高解决问题的能力:在软件工程导论和网络应用开发课程中设置略微超前的科研课题或者软件技术,仅仅给出课题名称,要求学生分组共同搜索相关知识点,然后分析并解决实际问题。最后设置一定的讨论和答辩等互动环节,既能提高学生的双语表达能力,也能增强解决客观现实问题的能力。
3双语教学调查分析
中图分类号:G642.4 文献标志码:A 文章编号:1674-9324(2013)51-0206-02
计算机导论是江西农业大学软件学院为软件工程专业新生开设的第一门专业基础课程,它不仅要全面、系统地介绍计算机、软件工程等技术的基础知识,而且也要提高新生对计算机的实践操作能力。江西农业大学软件学院成立就开设了该课程,但是实践教学效果一直不理想。随着软件学院对人才培养模式的转变和规范,学院提出了以市场需求为引导[1],对教学内容和方法进行了改革和调整,随之计算机导论课程也增加了基础实训内容,实践教学方法也开始加强工程化训练,本文提出的基于CDIO[2]的计算机导论实践教学模式正是在此背景下形成的。该模式利用CDIO思想,并以软件产业需求为指导对计算机导论实践教学进行改革和探讨,从而实现提高学生创新能力的目的。
一、实践教学存在的问题
1.理论教学与实践教学不协调。计算机导论教学一直是一个难题[3]。在缺乏计算机背景知识的情况下要让学生在短期内全面、系统地理解计算机或软件工程学科的知识体系是一件相当艰巨的教学任务。因此,有些教师比较侧重传授理论知识,有的教师则偏重操作技巧,以至出现两种不良现象:一是学生面对深奥的理论知识而索然无味,二是学生轻视原理知识的重要性而认为计算机导论等同于计算机基础操作。
2.实践教学缺少工程化思想。目前计算机导论实践教学的内容主要包括计算机系统和office软件的操作。在实践教学中,教师为了能尽可能多地介绍工具的使用方法而一味地讲解工具的基本操作,而忽视了对软件工具的工程化组合应用。此时,教师仅仅是一个工具的灌输者,而不是一个具有工程化思想的项目指导者。面对众多的工具,学生仍然不知道在具体的环境下去灵活、高效地运用与组合工具。
3.实践教学考评方式单一。在传统的考评方式中,学生实践环节的成绩仅占期末总评成绩的20%,这样就导致学生不认真对待实践学习,操作能力差,考试靠死记硬背。
4.实践教材建设滞后。目前计算机导论实践教材相对比较少,而且很难与现实需求保持一致,企业、行业可能在使用office2010版软件,而实践教材却还停留在office2003。另外,由于家庭经济条件的差距和城乡信息技术教学水平的差异,现在大一学生对计算机的了解程度千差万别,这就使得对实践教学内容的安排和教材的选择造成了较大困难。
二、CDIO思想
CDIO代表构思(Conceive)、设计(Design)、实现(Implement)和运作(Operate)。以CDIO为指导思想的计算机导论实践教学将让学生以主动的、实践的、理论与实践之间有机联系的方式去学习知识。CDIO培养大纲将工程毕业生的能力分为工程基础知识、个人能力、人际团队能力和工程系统能力四个层面。迄今为止,已有多所国内外大学加入了CDIO组织,我国汕头大学工学院全面采用CDIO工程教育理念和模式,制定相应教学大纲,现在已经取得了良好效果,而企业也很欢迎经历了CDIO模式培养的学生。
三、基于CDIO的实践教学模式
在实践教学的过程中,首先向学生介绍CDIO的理念,要求学生在实践过程中不断地运用该工程教育模式,同时教师按照CDIO的12条标准采取“做中学,学中做”的教学方法推进教学的进行。为了避免学生进入理论学习的困惑期,江西农业大学软件学院将理论与实践教学分别分配27个学时,同时要求理论和实践教学穿行,另外还开设了一周的课程实习。在实践教学大纲方面,学院不规定任课教师必须将所有软件的操作工具全部讲授给学生,而强调将实践项目工程化。根据CDIO12条标准,江西农业大学软件学院计算机导论课程组教师结合实践教学的特点,对下面一系列教学方法进行了改革和探讨。
1.改变传统教学方法,积极参与学院“3+1”教学模式,加强课程实习周的工程化建设。根据CDIO培养大纲第一层面要求,计算机导论实践教学以工程基础知识为主线,创立了以CDIO为理念的工程教育环境,制定了相应的实践学习目标。
2.积极鼓励学生登台展示个人实践操作过程。由于CDIO要求培养学生个人能力、人际能力和对过程和系统的构建能力,所以课程组教师将学生在实践课中的表现列为考评要素之一,并经常鼓励学生积极展示自我。
3.软件学院为学院大一新生提供计算机操作实践场所。学院机房定期为学生开放,机房成为学生的计算机导论实践场所或其他课程学习的环境场地,从而最大力度地支持了学生动手和直接经验的获取,同时机房也成为以学生为中心的、特殊的学习和交流场所。
4.提升教师的过程和系统建构能力。通过集体听课、兄弟院校考察等活动来提高教师在一体化学习经验、运用主动和经验学习方法等方面的能力。
5.综合运用各种学习方法推进实践教学。实践教学过程中,教师综合利用基于问题的学习方法、基于项目的学习方法和主动学习方法引导学生完成各项任务。
6.完善实践环节考评。现在软件学院计算机导论课程实践考评已经和理论考评分开,课程实习周也分配一个独立的学分,理论考评采取闭卷考试,实践考评采取项目小测试成绩加权求和,课程实习周则以学校本科生毕业论文格式为标准来衡量学生对长篇文档排版能力的高低,最后给出优良中等级成绩。
7.加强学习反馈机制。针对学生在实践过程中遇到的问题,教师鼓励学生及时反馈,并分析总结学生反馈的各种具有普遍意义的问题,然后再反馈给学生、课程组其他教师以及学院主管教学领导,以促进实践教学的持续改进。
8.科学制定实践教材。由于学生入学前的信息技术基础相差较大,学院组织教师进行问卷调查,然后按照软件行业需求编制一本能满足各种学生进行实践操作学习的综合实践教材,该教材需包括实践教学内容和课程实习周内容。实践证明,该教材能让所有学生参与到实践活动中,并取得良好效果。
四、结语
在计算机导论实践教学中引入CDIO思想和新型人才培养模式,对改革传统的教学模式、提高实践教学质量有着广泛的推动和促进作用。由于CDIO系统地提出了具有可操作性的能力培养、全面实施以及检验测评的12条标准,因此非常适合指导软件工程专业课程的实践教学。随着CDIO理论的成熟,它已经在国内外高校得到快速推广。江西农业大学软件学院在计算机导论实践教学中引入CDIO思想,不仅仅激发了学生的学习兴趣,培养了学生的创新能力,而且进一步验证了软件学院以满足产业需求为目标的办学理念。
参考文献:
[1]易文龙,王映龙.市场呼唤软件人才培养模式的创新[N].中国教育报,2010-06-14(006).
1.1核心课程
软件工程专业数字媒体技术方以软件工程专业为主线构成专业基础和专业主干课程。其中,计算机与软件基础课程有:计算机导论、程序设计入门、面向对象程序设计、数据结构与算法、Java程序设计、计算机组成原理、数据库原理、计算机网络、操作系统、编译原理、信息安全技术、计算机体系结构以及J2EE与中间件技术;软件工程专业课程有:软件工程导论、软件测试技术、需求分析与UML设计、软件项目管理与过程控制;数字媒体技术专业课程有:数字媒体技术导论、计算机图形学、数字图像处理、网络流媒体技术、用户界面设计、视频音频制作与处理、数字影视特技应用、高级游戏特性与游戏引擎、人机交互技术、虚拟现实技术与应用、高级脚本与插件技术等。对于实践性较强的课程开始单独的实验课程和配套的课程设计。
1.2特色课程
计算机网络游戏由计算机技术、艺术设计学和计算机动画以及计算机图形图像技术高度交叉结合,目的是培养具有扎实的游戏编程功底和良好的逻辑思维习惯,具备较强的审美能力和一定的艺术素养,熟悉游戏产品开发流程,具有一定的策划能力,能在游戏公司、门户网站、手机运营企业、动画公司等单位从事游戏设计、游戏开发、游戏制作、游戏策划、游戏运营等方面工作的富于竞争力与创新精神的高级复合型人才。计算机游戏程序设计。课程目标:本课程主要学习普及游戏开发理念,培养游戏开发氛围,挑选有潜力的学生组成开发团队;传授游戏开发中的程序设计要素,特别是游戏引擎开发的基本知识。通过本课程的学习,学生能够掌握游戏开发的基本理念,熟悉游戏开发的基本技巧和流程,并具备从事游戏程序设计工作的基本技能。虚拟现实与数字娱乐。课程目标:本课程主要介绍虚拟现实的基本概念及其系统组成、相关的软件技术及虚拟现实的应用,并介绍了当前数字娱乐的现状,发展和一些关键技术。内容包括:虚拟现实的定义、特性和组成,虚拟世界的创建和管理,虚拟现实中的视觉计算,虚拟现实中的交互技术,虚拟现实中的声觉计算,增强现实,分布式虚拟现实,虚拟现实应用,与虚拟现实相关的数字娱乐技术。
2实践教学体系
培养符合时代需要的创新性人才,就要强化实验教学的开放性和多层次化。基于创新性原则和以生为本原则,结合培养目标和自身教学特点,数字媒体技术方向实践教学体系分为课程实验,专业实训、毕业实习和毕业设计三个方面,各实践环节之问相互协调、相互衔接、循序渐进。
2.1课程实验
依照实践能力培养循序渐进的原则,根据实现数字媒体技术专业基本能力培养的系列课程,并按照系列课程的复杂度和规模设计实践环节,开展了多层次课程实验教学,根据学生的需要和实践能力培养的渐进规则,将实验课安排大学四年的各个环节。多层次实验教学是指在实验大纲与目标的规范基础上,将实验项目设计成基础型、综合设计型、研究创新型不同层次的实验。同一学生从基础规范一综合设计一研究创新这样难度递增的实验项目中逐渐进行训练,实现系统培养学生综合实践能力。课程实验主要包括:手绘训练、视频特技与非线性编辑、多媒体网页设计、移动娱乐软件开发、网络娱乐软件开发、界面设计课程设计、虚拟现实开发课程设计等。
2.2专业实训
专业实训作为知识、能力、综合素质教育的结合点,成为数字媒体技术专业实践教学的重点之一。专业实训是对课堂教学具有延伸作用,是学生培训职业能力、熟悉职业环境、了解实际知识的重要渠道。通过专业实训,学生不仅可以把所学转化为所用,还能使学生在学习操作过程中通过不断调整自己的知识结构来慢慢适应相应职业岗位,锻炼职业的能力,为实习以及今后走向社会积累经验、打下基础。我校软件工程专业是校级专业综合改革试点专业,以争建微软IT学院、HP软件学院为契机,与知名IT企业开展深度合作,联合培养具有国际视野的软件开发、软件测试和服务外包人才。与中软国际、Tarena(达内)科技等十多家IT企业联合建立了实习实训基地、就业基地。
2.3毕业实习和毕业设计
毕业实习是学生将前期学习到的知识运用到生产实践中,真正了解、感受未来的工作,锻炼自己各方面的综合能力。真正实现与行业需求的专业实践能力对接。能胜任相应岗位的工作,从而积累工作经验,为就业做准备。为了增强学生和指导老师对毕业设计(论文)及毕业实习的重视,提高毕业设计(论文)的质量和提高学生在毕业设计(论文)及毕业实习实践环节获得的实践能力,也为缓解毕业设计时间(论文)不足,笔者将毕业实习与毕业设计(论文)有机结合,实行“毕业实习+毕业设计”相结合的模式,学生毕业设计的内容来自于毕业实习,并且毕业设计的内容要将毕业实习的内容进行一定的升华,除体现学生四年来所学知识综合之外,还要体现出学生的创新能力与科研能力,达到培养创新型、复合型人才的标准。
中图分类号:G642文献标识码:B
1引言
软件学院软件工程硕士的培养目标是培养高层次、应用型人才,针对这个目标,其教学实施应着重体现出以下两个差异性:
(1) 软件工程学科领域和计算机学科领域间专业设置的差异性,这个差异应能够很好地体现培养应用型人才的目的;
(2) 工程硕士课程和软件学院本科课程的差异性,这个差异应能够很好地体现培养高层次人才的目的。
目前国内软件学院软件工程学科和传统的计算机科学学科在课程设置上差异还不显著,工程硕士的培养方案中甚至部分课程只是本科阶段的重复。虽然大都开始强调学生的软件项目实践,但普遍缺乏过程管理。本文在对IEEE的软件工程知识体系进行深入学习的基础上,针对软件学院软件工程硕士提出了实现开放式教学体系的教学改革方案。
2软件工程知识体系
2004版SWEBOK将整个软件工程知识体系分为11个知识领域(Knowledge Area,KA),其中前5个知识领域是按软件开发的生命期诸阶段排列的,即软件需求、软件设计、软件构造、软件测试和软件维护;后6个知识领域是软件开发中的支撑性或者辅的方面,可能覆盖软件开发的多个阶段,包括软件配置管理、软件工程管理、软件工程过程、软件工程工具与方法、软件质量、相关学科知识领域。这些知识领域SWEBOK并没有重新系统规定,而是直接套用已经成型的各领域知识体系,因此不可避免地存在重叠和不匹配。
在SWEBOK的基础上,IEEE与ACM又共同拟定了CCSE。其中的核心部分是软件工程教育知识(SEEK)。SEEK由十个知识领域组成,包括:计算机基础(CMP)、数学和工程学基础(FND)、职业实践(PRF)、软件建模与分析(MAA)、软件设计(DES)、软件验证(VAV)、软件演化(EVL)、软件过程(PRO)、软件质量(QUA)、软件管理(MGT)。
可以看出,SEEK和SWEBOK基本内容是相近的。总的来说,二者都是包含了软件工程核心类的知识领域、基础类或前导类的知识领域,以及其他相关领域的知识。
3高等教育教学改革研究状况
目前国内关于高等教育教学改革的论文很多,如翁敬农、刘云等在软件学院实践教学体系的内容与规划中提出了“一个目标”、“两种途径”、“三大环节”、以及“四级台阶”的具体步骤。王移芝、林艳琴提出基于“两段教学”的计算机基础课程的教学体系框架。谢芳清、闫大顺提出了以素质教育为目标的实践教学体系。王浩、胡学钢等提出计算机科学与技术专业实践教学体系的总体研究与建设。王志英以国家实验教学示范中心为例,提出实践是综合能力培养的基础,并以此构建计算机科学与技术专业实践教学体系。董玮、邱建华等以专业课“程序设计基础(C语言)”为例给出了建设实践教学体系的实践探索。然而目前还没有检索到专门研究软件学院工程硕士教学改革的论文。无论是从传统计算机科学与技术专业与软件学院软件工程专业的区别,还是本科生与研究生的区别来看,针对软件学院工程硕士的教学改革研究都是十分有必要的,同时也是迫切的。
4工程硕士的课程体系设计策略
我们以IEEE SWEBOK和CC2004SE的知识体系为主体,结合中国软件产业以及本院的具体实际情况,设计了中国科学技术大学软件学院软件工程专业的知识体系,作为我院工程硕士课程设置和教学计划实施的依据。以SEEK为基础,我们对软件工程的课程设置进行规划。整个课程设置可以分为三个层次,即导论性课程、软件工程核心课程和其他课程。如图1所示,该知识体系定义了7个知识体系子类。计算机基础和数学和工程学基础属于导论性课程、其他课程包含了职业实践、领域课程、软件工具、工程实践等四个子类。
其中计算机基础定义了软件工程作为计算学科所必需包含的计算科学基础以支持软件产品的设计与建设;数学与工程学基础提供了软件产品获得所需属性的理论和科学基础;职业实践则聚焦于软件工程师以职业行为从事软件工程实践所必需具备的知识、技能和态度;软件工程核心课程应该包含软件开发生命周期所涉及到的主要知识领域;领域课程包含了对于某个特定领域软件工程师应该接受的特定教育或经验;软件工具定义了从事软件工作所必需掌握的当前主流工具与软件产品等;工程实践则是学生使用所学到的知识从事实际开发活动,提供动手能力的重要环节。
对于工程硕士来说,大部分同学经过计算机本科专业的学习,已经具备了初步的计算机基础以及数学与工程学基础,因此目前其课程体系建设如图2所示,重点是完成软件工程核心课程教学,并结合IT界的最新技术趋势设计相关领域课程。教学改革的核心是如何设计软件工程的核心课程,并指导学生熟练掌握相应的软件工具,强化他们的实践动手能力。
5工程硕士开放式教学体系建设
对于如何设计软件工程的核心课程,我们的主要思路是打破原先各子知识体系间的界线,围绕专业培养目标,结合学生的工程实践,引入课程组的概念,实现一个完整的开放式教学体系。如图3所示,整个开放式学习体系包含三个部分:
(1) 设计课程组:在理论环节采用课程组的概念,集中讲授较高层次的、符合硕士生水平的软件工程的某些重要环节;
(2) 开设实践教学环节:在实践教学中采用做中学(Learning by Doing或LBD)理念,由指导教师讲述软件工具的具体操作过程,同学实际动手学习;
(3) 强化工程实践:在工程实践中由学生自主选题,并将LBD中讲述的工具在项目整个生命周期中贯穿使用。
5.1设计 课程组
目前我院开设的高级软件工程和本科的软件工程课程内容并没有太大差别,对于软件工程的各个环节面面俱到,但又都比较浅显,对于工程硕士的培养显然是不合适的。因此我们设计了软件工程课程组的理念,初步设计了以下课程:
(1)“软件开发管理”(Managing Software Development)
(2)“软件系统架构”(Architectures for Software Systems)
第一门课程主要针对以后立志从事软件工程管理方向的同学,课程针对IT项目集中阐述如何实现风险、资金、工期等各方面的管理;第二门课程主要针对以后立志从事软件高级开发方向的同学,课程主要讲述复杂软件系统架构层上的设计,介绍目前通用的软件系统结构、设计技术以及实现这些结构的模型、表述方法等。这两门课程对于软件工程硕士应该至少必修一门。除了这两门课程,其他软件工程类的课程包括了设计模式、软件测试、语言类课程如J2EE、.NET等等,学生可根据自己的实际情况进行选修。
5.2开设实践教学
针对该课程组,我们开设了实践教学环节,采用做中学理念,由指导教师(可以由助教担任)根据事先确定的主题,选用具体工具讲述如何使用该工具完成项目开发的某具体环节,工具涵盖了项目管理、架构设计文档化以及测试等软件项目开发的主要方面。
对于软件工具的选择,有两种思路。一种方法是对软件工程的不同环节分别选择不同工具,例如项目管理选Project、开发文档化选Rational、测试再选别的工具这样来做,但结构分散,不利于整体化考虑。另一种是采用套件,完成项目开发全程的所有操作,目前我们选择了两种套件,一是微软的VSTS,该套件和微软的Visual Studio开发平台绑定,适合学习.net开发框架的同学;另一种是IBM的RSA,该套件和Eclipse开发平台绑定,适合选择开源J2EE开发框架的同学。
5.3强化工程实践
大多数的软件学院目前都开设了专门的工程实践环节,但实际的效果并不尽如人意。因此我们将工程实践环节也纳入到开放式学习体系中,以前面所说的理论以及实践教学环节来指导学生更好地高质量完成整个工程实践。
从教学方法上,工程实践应尽可能地贴近现实项目,除了常见的软件工程文档,我们还要求学生提交过程管理类文档(软件开发合同、会议记录、工作日程记录、合同执行报告:财务报告和开发过程报告、个人总结、小组总结等)。
从技术上,学生可以自由选题,也可参考工程实践题库中的选题。选题涉及所有领域课程包含的内容。要求学生必须采用实践教学环节中介绍的工具全程介入项目开发的各个阶段。学院设立专门的工程实践网站提供学生选题及交流,以及指导教师的监督。
从教学形式上,则注重如何实现应用型软件人才的核心能力分析与培养,要求学生运用职业实践子知识体系中的相应内容,锻炼学生的口头表达能力、书面表达能力等。通过学生的开题演讲、采用各种工具完成相应的项目文档、结题答辩等环节来实现学生职业素质的培养。
从实践效果评价上,我们制定了一系列的成绩考核方法、管理考核信息、分析考核结果、评价教学质量等措施,实现完整的考核体系。
6结论
软件工程专业学生的培养,在学科教育与培养面向市场需求的人才方面有着事实上的矛盾。软件学院现有的实践教学体系存在着专业课程设置定位不准确、课程实验师资不足、实验教学内容质量不高、实验指导和管理落后等问题。根据软件工程专业教学所面临的挑战,在充分调研IEEE SWEBOK和CC2004SE知识体系的基础上,针对软件学院的工程硕士,我们提出了软件工程硕士开放式教学体系的建设,围绕专业培养目标,结合学生的工程实践,引入课程组的概念,制定了一套较为完整的开放式实践教学实施计划。
参考文献 :
[1] Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering [EB/OL]. [2004-08-25]. /ccse/SE2004Volume.pdf.
[2] 翁敬农,刘云. 北航软件学院本科生实践教学体系的研究与实践[J]. 计算机教育,2007(11).
[3] 王移芝,林艳琴.“计算机基础课程”实践教学体系的研究与实践[J]. 实践教学,2008(8).
[4] 谢芳清,闫大顺. 计算机工程专业实践教学体系的研究[J]. 中国科技信息,2008(9).
DOI:10.16640/ki.37-1222/t.2016.22.224
0 引言
软件工程与团队开发是软件工程专业一门比较重要的专业课程,在本科高年级开设,课程的重要性有目共睹,经走访本专业毕业生了解到,该课程是他们工作中知识点应用较多的课程之一,另外,国家人事部、信息产业部举办计算机技术与软件专业技术资格(水平)考试,各级别、各专业都有较多软件工程知识进行考核。因此,从课程的应用远景来看,学生应当掌握软件工程与团队开发的原理和应用。结合本人在讲课过程的体会,从以下三个方面介绍课程改进的实施:
1 理清和其他专业课程的相互关系
由于软件工程与团队开发这门课程是在本科高年级开设的,在此之前已经学习过几门相关课程,包括软件测试、UML统一建模、软件开发标准化管理等课程,后续相关课程有:软件项目管理、软件需求分析等课程,这些课程之间有一定的连贯性,涉及到的知识点也存在少量的重合,因此需要处理好本课程和其他课程之间的关系,打个比方来说:其他的相关课程比作一个个珍珠,那么本课程就比作串起珍珠的链子,正是有了这门课才把各个知识点组织成一个有机的整体,学生对于知识的领会更加全面和系统,否则,缺乏本课程的知识会使学生感觉知识点孤立,无法做到融会贯通[1]。所以在组织课程内容时,注意协调已学过的软件测试、UML统一建模等课程,重叠的知识内容略讲,要求学生课下加强复习并掌握。
2 分析课程讲授的重点和难点内容
软件工程与团队开发课程目前采用的教材是张海藩编著的软件工程导论(第六版),该教材从上世纪出版以来多次修订,从最初的结构化方法学发展到现在的面向对象开发技术,即传统方法学到现代方法学的演化。对于经典的结构化方法学,有学生认为过时了、没用了,其实不然,正是结构化软件工程方法解决了早期爆发的软件危机,使得软件产业得以顺利发展,其实传统软件工程学的很多观点,比如:模块独立、逐步求精、低耦合高内聚等原理,对于当前程序开发仍然有指导作用,也有助于理解面向对象的封装、继承等特性[2]。因此,经典的软件工程方法学部分重点放在原理讲解,这些结论经历时间的考验理论上较为完善,但是在实习时不要求使用结构化方法;现代软件工程方法学是指面向对象的开发技术,学生入学后学习编程时就开始接触了,已经构建了面向对象的思维模式,因此,重点放在对于面向对象技术的应用,要求学生在课程实习时使用面向对象技术开发。
3 使用项目驱动的教学实习方法
软件工程与团队开发是一门理论和应用并重的课程,应用的内容既涉及技术又涉及管理。所以,学生在学完这门课后,不能仅停留在记住书上的概念和原理的层面上,而是应当把课程中的技术和管理知识都能灵活加以运用。基于这个目标,在开课的最初两周,安排学生自愿组成两到三人的实习小组,按照自己熟悉的领域上报实习课的项目题目,一周后提供一次改题目的机会。由于是学生自己拟报的题目,因此可行性研究、需求分析等工作较为得心应手,这样,一直到后续的设计、开发、测试等环节实现起来也比较顺利。由于和其他课程有内容的交叉,因此对学生进行约定:如果题目以前做过,那么在本课程的实习课上按照软件工程学的要求把内容补全,某项内容在其他课上做过则需要改进,即版本升级,通过和其他任课教师沟通能掌握学生实习的工作量,这样也让学生体会系统升级的必要性以及精益求精的工作态度 [3]。
4 结论
在近几年软件工程与团队开发的教学过程中,本人经过不断尝试和实践,随时把涌现出来的新知识和新技术补充到课堂上,同时也多听取他人的建议以及毕业生提供的反馈意见,认真改进教学方式方法,不仅把软件工程学的基本原理传输给学生,也不仅是帮助学生考试及格或取得软件考试合格证书,而是要提高学生在开发过程中运用知识的能力、解决问题的能力。
参考文献:
开发一个软件用到的技术很多,不同的系统软件对软件工程技术的要求也不一样,在开发系统的时候,要考虑到当时人们的需求是什么,所以说系统开发是很复杂的。系统软件的各个模块的耦合度要很高才行,一个模块发生变化时,会带来很多的后果。系统开发的过程应该是一个规范、科学和系统的漫长过程。
2.软件工程技术在系统软件开发时要注意的事项
以前在进行软件开发之前,要进行一个很重要的工作,那就是系统建模,然后再根据先前的系统需求做出分析,还要对当时的社会需求进行彻底的调查。经过调查发现,市面上的软件有很多已经不能满足应用程序的更新换代,这主要是由于系统开发的时间太长以及程序的复杂度太高导致的。所以,软件工程技术在系统软件开发时要注意下面这两点。
2.1遵循科学性
要开发一个好的软件,就要注重科学性,在开发软件前要进行市场调查,做好需求分析。还要拿市场上已经有的同类或相关软件进行比较和借鉴,这样我们就可以选择相适用的软件工程技术来使用。软件工程技术在软件系统开发中发挥的作用越大,系统开发就会越轻松,软件开发的工期就会越短。
2.2注重实用性
在开发软件的时候,一定要注重软件的实用性,根据系统开发的实际情况,选择更好的软件工程技术。软件工程技术是系统开发过程中的一个很重要的辅助,这个辅助也决定了系统是否可以顺利地运行。
3.软件工程技术在系统软件开发中的具体应用