1、 软件工程研究论文软件工程设计论文:软件工程专业实践类课程体系研究【摘要】: 软件工程专业实践类课程的兼有理论与实践课程的特点, 大多学校采用的理论与实践结合的教学方式,效果不太理想。本文分析了目前软件工程专业的课程体系,并针对当前教学过程出现的问题,提出了以完善学科知识和培养实践能力为主线的课程体系,值得借鉴。【关键词】: 学科知识;软件工程专业;课程实践1、前言软件工程涉及计算机科学技术、数学、管理科学与工程等诸多学科, 已经由最初的一个学科方向发展成为以计算机科学技术为基础的一个新兴的交叉学科。很多高校将软件工程作为独立的专业,目标是社会培养合格的软件开发人才。随着社会信息化在各行各业的
2、深层次应用, 社会对软件工程专业的人才需求量非常巨大。但高校培养出来的人才与社会的需求存在一定的差距,主要表现在:企业对软件人才的要求是具备自学的能力、分析解决困难的能力、团队合作开发的能力,文档编写能力、沟通的能力;知识结构应该包括计算机基本原理理论、软件开发技术、软件工程生命周期相关的技术。学生的实践编程能力有待进一步的提高, 目前绝大部分高校软件工程专业的师资都是由原计算机专业的教师转化过来,教学计划与教学方式偏重于理论,而软件专业则更偏重于工程。导致目前部分高校软件工程专业的学生实践动手能力甚至不如社会培训机构培养的学生。学生的学科知识有待完善, 主要表现在学生学习了大量的理论知识,但
3、没有有效的融会贯通,是零散的。部分高校在软件工程的教学计划, 尤其是选修课的设置上与计算机专业相差不大,而在选课是没有相应的指导,也导致了学会的知识结构在大学阶段就是不完整。本文在总结本校软件工程课程设置的基础上, 探讨了应用性本科院校软件工程专业实践类课程体系, 并在如何实施这套课程体系。2、软件工程专业课程体系应用型本科院校软件专业定位应该是以培养具有较高自学能力、编程能力、分析解决问题能力的软件开发工程师为目标。在实施这个目标的过程中, 最难的就是培养学生的实际编程能力。如何提高学生的编程能力,合适的课程体系是至关重要的。软件人才的培养应该划分层次, 可以划分为专业理解力培养、软件开发基
4、础理论培养、专业技能培养、实际项目能力培养。该软件工程课程体系主要有以下特点:(1)注重专业能力层次的培养专业理解力培养主要训练学生对专业的理解力,理解冯.诺伊曼计算机体系原理,让学生知道计算机能解决那些问题,不能解决那些问题, 同时注重培养学生面向过程的程序设计的基础能力。软件开发基础理论培养主要是学习软件开发基本理论与训练基本技能。大二学年后, 学生应该具备查相关资料的能力,配置软件开发环境能力,独立的开发桌面应用的能力,并拥有较强的实践动手能力。专业技能培养主要训练学生的专业技能, 在在培养的过程中,时刻注重完善学生的学科体系。实际项目能力培养主要在第四学年完成, 主要是训练学生软件开发
5、实践经验,在开发中进一步完善学生的学科知识,为企业提供较强专业能力的人才。(2)注重课程设计体系建设目前,大多院校的课程设计太多,学生在学习过程不得不做很多的课程设计,但质量却不高。最典型题目是“学生信息管理系统“、“学生选课系统“,学生在做这一类题目是大多是只完成的对数据库的增加、删除、修改等操作,并没有设计真正的业务逻辑。而从导致缺乏对学生实际项目中的需求、设计、测试等环境能力的培养。(3)注重学科融合部分学生在选课时,由于缺乏相应的选课指导,导致学生课程的不完整。即使选课完整的部分学生, 却由于课程体系的设置, 并没有把所有学科知识融合起来, 形成实际的软件开发能力。3、软件体系设施的关
6、键问题新的课程体系对软件工程专业的师资有较高的要求, 同时对于课程教学组织也有较要求,因为实践过程中,必须把基础的理论知识融合到后期的实践类课程中, 而实践类课程的特点就是必须注重学科知识, 以学生为主体, 要引导学生对专业的兴趣,通过一定的课程设计让学生拥有学习的成就感。(1)建立小组学习机制。软件开发的学习特点之一是知识点广泛,而这些知识点只需要知道,并不需要更深层次的理解,借助小组的力量快速扩大学生软件开发的知识点是较好的学习方式。而且,小组学习能够增加学生的团队协作精神,锻炼小组成员的沟通能力。在教学过程中,小组组长负责监督小组成员的学习,对于实践环节,由组长负责检查,老师在随机抽查,
7、这样既能落实教学任务,又能激发学生学习的主动性。(2)重视师资的培养。目前,大多高校的师资偏重理论,而且专注于某个方向的理论,对于软件开发的缺乏全局性的思维,这就需要高校培养部分实践能力较强的师资。另外, 某些课程的主讲老师最好是聘请在软件企业开发一线的开发工程师,能把真实的软件场景带给学生,有利于提前让学生进入工作的状态。(3)注重课程设计的实际效果.“c 程序课程设计“针对一年级学生个体,训练学生面向过程的编程思维,熟悉面向过程的软件开发模型,培养学生的编程能力。实践完成后,学生能够熟练掌握c 语言的特点,尤其需要熟练文件、以及图形界面的等相关知识点,累计编程量在1500 行以上。学生题目
8、以学生熟悉的简单业务为主,如“成绩管理系统“等。“软件开发基础课程设计“是针对二年级学生个体的设计性实验,训练学生面向对象的编程思维,熟悉面向对象的软件开发模型。主要基于java 的swing 技术和C# 的windowsForm 技术,训练学生开发基于windows 环境下的桌面应用开发能力, 让学生理解图形界面程序设计中面向消息的编程模型。这个阶段结束后,学生应该具备独立搭建软件开发环境的能力,独立查阅资料的能力。在实际教学实践过程中,要求一般小组完成的编程量应该在8000 行以上。“软件开发课程设计“定位在设计性和综合性实验,应与相应的理论教学配合, 针对具有一定理论基础和编程能力的学生
9、的综合性实验, 采用小组开发方式 , 通过设计一些超越学生已有知识水平的中型问题, 例如企业信息管理、计算机网络、操作系统、编译原理、人工智能背景等问题, 引导学生进行自主学习, 通过小组协作开发,让学生熟悉软件工程的全过程。这个过程仍然关注重点关注学生的实际编程能力和学科知识的融合。该阶段结束后,学生应该理解当前的应用服务器的原理,理解数据库连接池的原理,理解编译原理、理解插件机制等。“软件项目实践“主要针对四年级学生,要求学生以团队开发的形式, 按照实训步骤在规定的时间点完成规定的训练任务,完成从需求分析建模( 需求由案例给出) 、设计、代码编写、测试、部署的全过程。题目应该是来自软件企业
10、的真实项目,在这个过程中应该让学生了解实际的软件项目应该包括一些基础软件设施例如:权限管理、组织架构管理、基础数据管理、日志管理、性能优化、软件架构等。在这个过程中,不要求学生真正理解,但应该要求学生了解实际商业项目的开发。(4)讲授实践课程时,必须把课程体系中涉及的知识点不断融合进来。通过“理论-实践-理论-再实践“的教学模式,在实践中融入基础理论知识,在理论中广泛讲解软件开发的知识点。4、小结以完善学科知识和培养实践动手能力的最显著的特点就是在教学实践过程中, 引导学生把计算机软件相关的学科知识融合起来,真正理解Web 应用系统的原理,形成学生主动学习、自主协作、探索创新的新型教学模式。这
11、种教学模式真正推进培养学生创新精神和实践能力的素质教育, 培养的学生理论水平远远高于培训机构的学生,实践动手能力又高于普通高校的学生。经过2 届学生的实践,取得了较好的教学效果。参考文献:1 教育部高等学校计算机科学与技术教学指导委员. 高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行) M. 北京:高等教育出版社, 2006.2 华南农业大学信息学院. 软件工程专业指导性教学计划R. 广州:华南农业大学, 2007.3 林丕源, 刘才兴.消化吸收SWEBOK,制定科学的软件工程专业教学计划J. 高等农业教育.2006(6)4 张铭.周立柱,庄悦挺等.关于计算机专业“双语教学“的调查报告J. 计算机教育,2004(6)