首页 优秀范文 软件工程专业导论论文

软件工程专业导论论文赏析八篇

时间:2022-10-26 11:25:14

软件工程专业导论论文

软件工程专业导论论文第1篇

作者:邹林儿,范定环,傅继武,沈云

关键词:专业光学软件,光学工程类专业,课程教学,教学模式

中图分类号:G642.0文献标识码:A文章编号:1674-098X(2014)12(c)-0127-02

光学工程类专业是以光学、应用光学、量子光学、非线性光学、激光技术和光电子学等为理论基础,结合物理电子与微电子学、固体物理学、计算机技术以及信息与通信工程等的一门综合性强专业[1]。近年来,随光电信息产业的迅速发展,该专业类的人才需求增多,就如何办好该类专业,以适应产业需求,是许多高校乃至整个国家需要解决的课题[2]。其中,专业光学软件课程是光学工程类专业教学的重要组成部分。学生掌握一至二门专业光学软件,利于提高专业知识与实际应用的综合运用水平,助于增强就业竞争力,更为重要的是将来相关专业工作的必备技能之一。专业光学软件依据应用领域大致可分为:以经典光学和现代光学为基本原理的应用在各种光学仪器或仪器系统的光学设计类软件[3],目前它们主要有ZEMAX、CODEV、ASAP和OSLO等光学设计软件;以导波光学和光通信为理论的应用在光通信领域的器件或系统仿真设计的光通信类软件[4],如OptiBPM、Beamprop等光波导设计软件,以及OptiSystem等光通信系统仿真软件;另外,其它一些计算软件也可以用在光学方面的,如Matlab在光信息处理中的应用[5]。

专业光学软件的教学相对光学专业实验教学(特别是涉及到昂贵专业实验设备),要求的技术起点低,且能更快地让学生接触到实际应用课题。我们在专业光学软件实践教学过程中,强调基于光学专业知识的是逻辑分析和编程训练的结合,提高了学生的光学设计能力。结合近几年的专业光学软件教学研究和实践,我们从专业课程体系设计、课程教学方法、学生学习要求以及考核等几方面进行探讨[6-9]。

1教学课程体系设计

1.1专业理论知识与专业软件教学有机衔接和融合

专业光学软件的运用需要很强专业理论知识,一般面向于光信息科学与技术本科专业(现归类为光电信息科学与工程)和光学、光学工程研究生专业。如ZEMAX光学设计软件,其理论基础为光学设计的基础知识和像差理论。软件中的专业名词如物面、像面、高斯面等,和计算方法如实际光线计算、近轴光线计算,以及设计时的整体思路和流程等知识点都需要在专业理论课中掌握。因此,专业理论知识和专业软件课程之间的衔接很重要。它们之间如缺乏有机联系,在专业软件课程教学时,学生学习效率和质量下降,同时教师教学辛苦,整个课程进展慢。在我们的课程体系安排中,《工程光学》、《几何光学》或《应用光学》之类课程放置在大学二年级第一学期,以之为基础的专业软件教学,如ZEMAX之类的光学设计软件课程,放在随后的大学二年级第二学期。作为更高级的专业理论课程《导波光学》、《光通信原理》、《光波导理论与技术》等之类课程设置在大学三年级第二学期,随后接下来的学期开设光波导设计或光通信系统仿真等相关专业软件教学课程(可选修),如OptiBPM、OptiSystem等软件。同时在学习专业软件期间还可以安排些系统仿真中涉及到知识点的课程,如涉及到电光调制、四波混频效应等的《非线性光学》课程,涉及到光学透过率或反射率的《薄膜光学》课程等,这样有利于这些特殊知识点和软件教学学习有机融合。采用这样的安排和紧密的时间间隔,使得学生在软件学习中,不至于忘记前面学习过的理论知识。同时在软件教学中,结合实例,将专业理论知识和软件应用联系起来,提高了学生的综合运用能力,学会如何分析问题和解决问题,加深对专业知识的理解和认识,从而更好地实现应用软件解决问题。

1.2强化专业训练

现在许多学校施行三学期制,我们试点把专业光学软件学习作为实践设计类集中放在暑假期间(第三学期)进行专业系统学习和培训,专门作为一项专业技能课程传授给学生。专业光学软件课程教学结束后,软件的实际运用也是实践环节重要的一步,可以在学生相关实习企业环节或教师指导的毕业论文设计环节中体现,例如让学生协助参与到实际光学系统产品设计或项目中,了解产品从产品设计或项目的一系列过程。这些将为学生今后在企业科研一线从事光学工程类专业工作起着积极作用,加快学生把专业知识转化为实际应用的过程。

2教学方法和学习方式的改进

2.1以实例为教学主线、结合实际应用的专业光学软件课程教学方法

传统软件教学方法一般是先介绍菜单的各项功能,然后逐步展开软件操作步骤等,这菜单式的教学方法已不适宜专业软件教学了。专业光学软件不是大众化软件,教学目的不应停留在软件操作熟练程度上,而是通过教学方法应把握学习软件的内涵“如何运用软件分析问题和解决问题”。在专业光学软件教学过程中,我们提出以实例教学为主体,从整体设计思路上把握,而对于少量的基本软件操作串插到实例中讲解。

以ZEMAX光学设计软件为例,需设计一双胶合透镜,对于632.8nm波长的光,其焦距为100mm,相对孔径为1:5,而波像差小于λ/4。在这个实例中,对于初学者来讲,这些内容基本上包括整个光学设计所需要的教学内容(如透镜模型或系统结构参数建立、光线追迹、波前分布、像质评价分析等)以及设计思路和流程。在教学过程中,教师应贯穿整个设计目标是一个等效焦距(总光焦度倒数)为定值的光组,着重把握如何合理分配两个透镜的光焦度为设计思路。当涉及到构建透镜模型时,教师引导学生如何在软件中操作如参数设置和模型显示,并改变不同结构参数观察模型变化。当实现光传输时,重点讲解光线密度概念和物理意义等,以及光线在软件中追迹算法,串插地讲如何设置光线密度和工作光波长等操作。当讲到成像质量分析时,讲解波前的物理意义,和衡量成像质量的标准或判据,以及一般有哪些评价函数等,重点应放在如何分析成像质量。最后,谈到软件自动优化设计时,主要讲解如何设计优化函数,了解像差自动平衡的方法和有关问题,来提高成像质量,对这个理解和领悟是学生以后逐步走向更高层次的光学设计关键。通过实例教学,一方面让学生体会到专业软件与应用紧密结合,激发学生学习兴趣,提高学生的课堂参与度。更重要的是培养学生的光学设计整体思路,结合专业知识训练如何分析问题和解决问题,提高综合应用专业软件能力。

同时,教师对实例的筛选,要具有经典性和适宜的难易度。我们知道专业光学软件功能强大,涉及面广,如ZEMAX光学设计软件大致包括照明和成像两个范围。在专业光学软件的学习训练中一般分为初级、中级、高级三个层次。在中、高级层次训练中是针对特定设计目标,比如照相镜头设计、光谱仪系统的设计等,在这里需要更高级光学专业知识,如《高等光学》、《傅里叶光学》等。因此,教师在教学过程中针对不同学生层次,要把握教学难度和深度。

2.2坚持课前专业知识巩固,课堂学习讨论,课后上机复习的学习方式

专业光学软件里面涉及到许多专业名词,对它们准确理解,利于参数设置时有清晰的物理意义。这些专业名词的知识来自前期专业理论课程,需要学生课前自主巩固、查阅资料,比如软件中的有效焦距、波前、像差、评价函数等专业名词。在课程上,以实例讨论为主,学会分析问题和解决问题。以ZEMAX光学设计软件为例,可以讨论影响像差的因素是哪些,如何通过调整孔径光阑位置改善像差,以及在设计中如何平衡和分配各类像差等问题。通过实例讲解和讨论的学习方式,除了在课堂上激发学生学习热情和兴趣外,还加强对专业知识综合理解和提高应用软件解决问题的能力。课后布置学生上机复习,一是让学生消化课程上的知识,进一步尝试解决实例中出现各种情形;二是提高学生对软件使用熟练程度。这种学习方式让学生从被动式的课堂听课、上机练习,改变为主动性的课堂学习讨论,课后自主复习和巩固光学软件应用思路,鼓励学生尝试新的设计方案。对教师而言,一是让学生认识到专业软件课程学习的重要性和优势,充分调动学生的积极性和学习兴趣,是主动性学习方法的前提;二是引导课程讨论由浅入深,抱砖引玉。近几年来实践教学反馈,低年级学生意识到专业光学软件学习是光学理论知识与实际应用结合的关键环节,以及在就业方面占据较大优势,这已经形成学生的共识,起着良性循环作用,提高了学生学习专业软件积极性。

3采用多样灵活有效的考核评价方式

专业光学软件课程有着自身的内容特点和教学规律,仅仅采用传统的笔试、上机考试的考核方式是不能很好适应专业光学软件教学考核要求。专业光学软件课程的教学目的是不仅仅让学生熟练使用软件,更为主要的是能结合专业知识应用软件进行光学项目分析和设计。因此,专业光学软件课程的考察就是评价学生的专业知识综合运用与分析能力,包括专业知识的理解、项目的分析和解决能力、计算编程水平等几方面综合素质表现。基于此,我们在教学过程中采取多样灵活有效的考核方式。

(1)小作业。平时主要考察学生对专业光学软件的操作能力和专业知识的理解与应用。这通过课后布置小作业来考察学生平时对知识点掌握情况,同时还兼顾知识小结的复习和巩固。

(2)小组课题。学期快结束时,提前三至四周时间,分小组布置不同课题(或项目),如设计光学镜头(广角、微焦距镜头等)、光波导器件等。在规定时间内,让小组学生自主讨论,查阅资料,最后形成项目文档,提交设计报告。这种考核方式,对个别基础差的学生实现起来有一定难度,但通过小组成员合理搭配(平常成绩好的带动成绩较差的),这不仅提高整体学生的专业水平,更重要的是培养学生个人能力,如沟通、管理、创新、团队协作与领导等。

还要强调的是,教师在最后考核结束时,给予学生提交的项目报告进行点评,应重点评价学生的思维过程,同时帮助学生得到合理的答案,使得对学生的考核成为课堂教学的延伸。

4实践教学中相关问题思考

目前专业光学软件实践教学表明,上述措施的实施,在教学质量和学生受欢迎度方面有很大提高。但仍存在一些更高层次的问题,值得思考与进一步完善。

软件工程专业导论论文第2篇

关键词:软件工程;课程体系;双语教学

中图分类号: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双语教学调查分析

为研究双语教学的影响和效果,我们设计了一套“双语课程教学问卷调查表”,包括教师素质、教学质量与内容、学习态度与影响、教材和综述,以及问题和建议共30个选择性科目,每个科目取值是1~5,表示“非常不满意”到“完全满意”。调查问卷反映了软件工程专业双语课程的问题主要体现在以下三点:(1)师资未能满足双语教学的需求:很多教师虽然在本专业内是专家,但是却面临较为严重的英语表达障碍。学生参加这样的双语课程很难产生融合型外语学习倾向和动机。(2)后进学生存在身份认同问题:部分英语基础相对较差的理工科学生很难适应全英文的环境,课前预习和课后复习没读懂教材,从而导致他们丧失学习的信心和兴趣。(3)双语教材有待改进:目前大学双语教学所用的教材主要采用的是国外原版教材的影印本。从实践的结果来看,大多数学生认为教材太难,以至于教师不得要求学生同时购买对应的中文教材。

软件工程专业导论论文第3篇

关键词: 软件工程; 实践教学; 工程能力; 阶梯式

中图分类号:G642 文献标志码:A 文章编号:1006-8228(2015)11-93-03

Abstract: Aiming at the problems in the training mode of software engineering professionals in the independent college, the objective of application oriented personnel training is defined, and the strengthening engineering capability education and the adjusting the curriculum system structure with the demands from the development of social enterprise are put forward. In the new curriculum system, the practice teaching hours are increased, the ladder type practice teaching mode of "course experiment, course design, comprehensive course design/enterprise practice, graduation design" is proposed, and through the related courses of the course group module, the training of engineering ability is strengthened with obvious effect.

Key words: software engineering; practice teaching; engineering ability; ladder type

0 引言

2010年,我国教育部启动了“卓越工程师教育培养计划”,并逐渐在多个高校的不同专业展开卓越工程师教育,其中软件工程专业也包含其中。“卓越工程师教育培养计划”强调“实践工程能力”是培养卓越工程师的核心,参与到该计划的各高校积极响应会议精神,探索工程技术人才培养的新机制,研究大学生工程实践能力的培养等问题[1]。

独立学院以应用型教育为主,也就是工程教育,要求学生毕业时具备将专业知识和技能应用于所从事的专业社会实践,熟练掌握社会生产或社会活动一线的基础知识和基本技能。这与“卓越工程师教育培养计划”的要求相符,但是对于大部分独立学院来说,工程实践能力的培养还未得到足够的重视。通过调研本校软件工程专业毕业生的就业单位,其人事部门普遍反应学生的理论知识较丰富,但工程实践能力较欠缺,不能将所学知识灵活运用,与企业需求存在一定距离,需要经过一段时间的培训才能正式上岗。本文以本学院软件工程专业教学为案例,针对独立学院软件工程专业的工程实践能力教育存在的问题,提出实践教学环节的改革,使教育更贴近应用型人才培养目标。

1 目前存在问题的分析

虽然独立学院以培养应用型人才为目标,但是在建校初期,大部分独立学院仍依附其母体公办院校,在办学特色、人才培养目标、课程设置上基本一致,基本按照研究性和学术性为主制定教学体系结构。随着独立学院的发展,在软件工程专业教学中,下述两方面的问题逐渐显现出来。

⑴ 实践教学环节薄弱,学生不能做到学以致用。教学模式过于重视理论知识的讲解,忽视工程实践能力的培养,学生往往是被动学习,习惯于教师讲解理论知识,布置课下作业;实验内容大部分是验证性实验,其设计也往往是多年重复使用的题目,不符合软件工程专业快速发展的要求,学生缺乏兴趣,积极性不高,也不知道理论知识如何运用。考核方式偏重理论知识,导致学生的学习重点发生偏差,重视理论知识的记忆,却不知道这些知识在工作中怎么用[2]。

⑵ 课程之间联系不紧密,缺乏工程化教育。专业课程的设置比较全面,但是各门课程教学内容各自为阵,单独开展实践课程,缺乏连贯性,学生不能将所学的知识贯通,不能形成工程概念,与企业实践需求相差甚远[3]。

经过调研和分析发现,独立学院和其母体公办学校的学生有一定差距,自学能力及应用能力较差,更适合在教师指导下开展实践活动,进而理解理论知识,然后加以应用。因此,独立学院软件工程专业同样需要按照“卓越工程师教育培养计划”,加强训练学生的工程实践能力。

2 实践课程体系结构改革

独立学院软件工程专业毕业生是可以从事软件相关产品研发生产的工程型人才,同时也是能够运用专业知识解决实际问题的应用型人才,如程序设计,数据库管理与应用,软件测试,软件开发与项目管理等。实践课是应用型人才培养的重要环节。我们重新制定实践环节课程体系,在新的教学体系中,增加实践教学环节课时,并且通过课程群模块贯通相关课程,使学生逐渐形成工程概念,提出阶梯式实践教学模式,加强实践环节的连续性,循序渐进的提高学生的实践工程能力。

2.1 阶梯式实践教学环节设置

对于软件工程专业专业课的实践环节,通过“课程实验课程设计综合课程设计/企业实习毕业设计”阶梯式的过程逐步完成,如图1所示。

⑴ 课程及课程群的训练

课程的训练通过课程实验和课程设计两个阶段来完成,重点训练学生每门课的知识应用能力,对于综合性较强的课程,其课程设计可以对相关的课程群进行综合性训练,如软件工程等综合应用课程。在旧的教学体系中,专业课程只有课程实验,与理论课程同步进行,导致学生不能宏观的认知和把握整门课程的知识及应用。改革后,减少部分理论教学课时,增加部分专业课程的设计环节,或者增加课程实验的课时,以利于每门课程内部知识点的融会贯通。

课程实验:每门专业课和专业基础课都设有实验课,与理论课同步进行,课时较少,主要是对课程的知识点的验证,加深学生对理论知识的理解,为后续的课程设计打下基础。

课程设计:在理论课程结束后,通过大约两周时间完成课程设计,单独计学分。课程设计重点训练本课程知识点的应用能力,使学生应用课程的知识点解决实际问题。指导教师采用案例讲解+任务驱动的模式,首先通过经典案例讲解项目开发流程,分析问题和解决问题的方法,以及每个阶段用到的知识点的应用方法,帮助学生理解理论知识的实际应用方法和应用价值,提高学生对专业知识的学习兴趣。然后按照“做中学,学中做”的思想,指导教师布置多级难度、创新型、发散性题目,给出明确的任务,学生以小组为单位,分角色完成任务,每个人体验实际工作环境中不同角色的工作内容,训练学生的团队意识和合作能力。课程设计结束时要求提交项目成果,如文档,程序,数据等,还需要作项目汇报,讲解分析问题的过程、方案的设计和实现过程。指导教师按照每个小组提交的成果及每个成员完成的任务,给每位学生打分[4]。

对于综合性较强的课程,题目的设置包括其课程群中多门课程的知识点的综合性题目,帮助学生贯通多门课程的知识点,训练工程实践能力。按照专业课知识点的相关性,将课程划分为课程群,如软件工程课程群,电子商务平台开发课程群,中间件应用技术课程群,Android开发课程群,大数据架构与应用课程群,嵌入式系统课程群等。根据每个课程群包含的课程特点,结合企业需求,确定课程群的训练目标,并且把能力要求细化,提出每门课程的重要知识点。

如图2所示是软件工程课程群实践课程的构成,该课程群由程序设计语言、数据结构、数据库设计、计算机网络、软件体系结构、软件测试和软件工程七门课程组成,每门课程都有实验课程,程序设计语言、数据结构、数据库设计和软件工程四门课程有课程设计环节,计算机网络有组网实践课程。软件工程课程设计是该课程群的终极训练,通过完成一个软件设计与开发过程,融合了软件分析能力、软件设计能力、编程能力、数据抽象及实现抽象数据类型的能力、数据库设计及实现能力、网络设计与搭建能力、软件测试能力和文档组织能力的训练,将七门课的知识点贯通,形成工程的概念,帮助学生进一步掌握专业课程的理论知识,同时理解专业课程在实际应用中的价值,并能够熟练应用,达到所学即所用的目的。

⑵ 综合能力训练

在大三结束后开始综合能力训练,采用校内综合课程设计和校外企业实习两种模式,帮助学生将专业课程的知识融会贯通,学习如何运用专业知识解决实际问题。

校外企业实习模式采用3+1的模式,即大四开始,学生根据自己的能力和兴趣,选择实习模式[5]。

(a) 培训机构培训+企业实习:学院与中软国际科技服务有限公司、达内时代科技集团有限公司,江苏微软技术中心培训基地,南京网博信息技术有限公司,吾曰思程网络科技有限公司等多家培训机构合作,为学生提供多种选择,培训方向有软件开发,软件测试,计算机网络等。经过2-4月的培训,考核合格后,培训机构将学生推荐到企业,学生开始企业实习。

(b) 企业实习生:大三下学期末,部分与学院合作的企业到学校招聘实习生,经过笔试和面试,合格的学生可以在大三结束后到企业参加为期一年的实习,实习结束后,双向选择是否签订劳动合同。

无论学生选择哪种实习模式,通过在企业实际工作环境中锻炼,学生的工程实践能力得到提高,可以在毕业后直接融入就业单位,就业能力得到增强。

校内综合课程设计:大四时,还有一部分学生选择继续学习,主要是参加研究生考试和公务员考试的学生,为了提高这部分学生的工程能力,安排综合课程设计环节,训练本专业综合实践能力。老师提供多个选题,学生也可以自己提供选题,经过3周的集中训练,以小组为单位,完成一个项目。虽然是在校内完成综合课程设计,但是该课程模拟企业实际工作环境,严格按照流程完成,帮助学生初步熟悉企业,提升自身的竞争力。

⑶ 综合能力验证

综合能力验证主要是通过毕业设计这个环节实现。毕业设计于大四下学期开始,学生经过综合能力训练,具备了应用本专业知识解决实际问题的能力。用14周的时间,学生按照学院要求,在指导老师帮助下,确认开题,按照软件工程思想逐步完成课题的开发,并撰写毕业论文,参加答辩。毕业设计主要从论文的质量、实物成果的运行效果和答辩三部分考查学生的综合能力,评判学生应用所学理论知识解决工作岗位实际问题的能力,文献检索、资料查询及运用现代信息技术获取相关信息的能力。

2.2 辅助方案

在教学改革过程中,除了阶梯式实践体系之外,学院还采取了其他方式引导学生积极参与社会实践,提高专业实践能力。

学院鼓励学生参加各类竞赛,锻炼其实践工程能力,如全国大学生数学建模大赛,全国软件专业人才设计与创业大赛,大学生实践创新项目,中国大学生计算机设计大赛等。每个比赛均有专职教师负责指导,针对每个比赛的特点给予辅导,学生的参赛热情也很高,并且取得了不错的成绩。

大二暑期,学院组织学生参加企业认知实习,用时两周,帮助学生熟悉并了解本专业未来的工作环境和工作内容,增强学生对后续专业课学习的认知。

3 结束语

采用新的实践教学体系结构后,我校软件工程专业学生的工程实践能力明显提高。近两年学生的就业率得到提高,通过企业实习的学生基本可以直接与企业签订就业合同;因为工程实践能力的提升,帮助学生加深了对理论知识的理解,有助于学生参加研究生考试,提高了研究生录取率;参加各类竞赛并获奖的人数逐年增加,进一步带动低年级学生的参赛热情。通过实践证明,改革后的实践教学体系结构更符合独立学院软件工程专业的教学,可以进一步推广至其他专业,推进独立学院的各专业发展。

参考文献(References):

[1] 林健.“卓越工程师教育培养计划”专业培养方案再研究[J].

高等工程教育研究,2011.129(4):10-17

[2] 陈玲萍,景新幸,凌惜勤.“大工程观”背景下的独立学院实践

教学探究[J].实验技术与管理,2013.5:8-10

[3] 金国华,金鑫,邓小伟,高梦.大工程观视角下独立学院工程人

才培养模式探析[J].高等工程教育研究,2012.2:43-47

[4] 王晓蔚,李香菊,潘晓卉.以项目任务为主线的课程设计改革[J].

计算机教育,2014.24:62-66

软件工程专业导论论文第4篇

关键词 :软件人才培养;教学规律;培养模式;培养计划

中图分类号:G642 文献标识码:B

软件技术类专业是指在计算机类专业教学中以软件开发、软件维护、软件工程管理等为主要专业定位,或是在此基础上的专业领域软件开发专业(例如游戏软件开发方向等)。近年来,在计算机教育方面,软件开发类专业得到了长足的发展,特别是在规模上,随着全国35所示范性软件学院的建立,全国各地也办了类似的旨在培养应用型软件高级人才的软件学院。然而,目前不容乐观的是,软件人才的培养从数量上说似乎已经满足了软件行业的需要,甚至已经有些过剩,但是从软件企业传来的信息确是软件企业“不招应届毕业生”、大量软件企业找不到合适的人才。这个一个侧面反映了软件类人才培养,还没有从根本上适应市场的需求,培养的人才的合格率还太低。

目前,软件类专业的教学改革可以说是个热点,特别是教育部批准举办的35所软件学院都在教学改革上做出了很大成绩。然而,大多教学研究都停留在实践教学改革,课程体系改革等具体操作的层面上。对于软件教育的规律是什么?软件类专业与其他传统学科有什么区别?研究者大都没有给出系统的结论。

目前,软件人才培养方面的研究和实践,归纳起来有以下几个方面的改革趋势:

(1) 机制创新。国家示范性软件学院和各地方的软件学院都对软件学院教学计划的制定给予了较大的自由度。办学收费标准也较高,使得软件学院的硬件设施普遍较之普通院系优越,这样一定程度上提高了培养质量。文献[1-2]都对此进行了有益的探讨。

(2) 实践环节改革。普遍把到企业实习看作是提高人才能力的好办法。实际上一些重点院校的学生本身素质和能力就较高,直接到企业实习效果较好,而大量普通院校的学生直接到企业实习实际效果并不太好。文献[3-4]分别研究了这方面的改革情况。

(3) 本科教育职业化。把本科教育完全改造成技术培训,完全扔掉本科教育基本培养规格。应该说把软件人才培养向职业培训转化是对原来普通本科教育的一个极端化改革,但是如果没有正确的软件人才培养规律作指导,这种改革势必会造成软件人才理论不扎实、后劲不足,所以,需要在对软件人才培养规律的清晰认识基础上进行改革。

本文分析了软件专业与传统专业的区别,指出了软件专业与传统学科,教学规律和认识规律的不同之处,在此基础上提出了软件类专业教学计划和课程体系编制的指导性原则。希望通过本文能够为同行提供一个新的视角。

1软件专业知识体系、能力提高模式与传统学科的比较

专业教育对学生的作用可以归纳为两个方面,一是专业、学科知识体系的逐步完善,二是解决学科问题能力的提高。图1表示了学生培养过程中专业能力提高和知识能力提高示意图。

图1中虚线表示传统学科的知识水平能力水平提高在大学教育过程中的变化,实线是软件技术类专业的情况。

在学科领域中,传统学科知识体系已经比较完整,工程化设计、计算方法已经相对成熟。学生知识提高的过程与能力提高的过程并不是完全同步的。大学教育单从学科能力提高方面说,可以说是一个比较封闭的过程,也就是没有学专业课之前,几乎无法使用专业的知识体系解决问题,就是说,解决专业问题能力的提高很大程度上是从学习专业课开始的。但是,由于传统学科的设计、计算等都已经比较成熟,对于同一个问题的解决方法基本差别不大,所以在学科基础课学好的前提下,学生可以在很短时间内,就能使专业技术能力有比较大的提升。

软件类专业则不同。一方面,即使没有雄厚的专业理论基础,也可以学会基本的开发技术(专业技术),但是其开发能力、水平的提高,必须在继续学习专业理论且不断实践中得到提高,其提高是缓慢的。可以说是一个渐进的过程。学生入学一年级就可以直接接触专业方法(即编程),具有初步的能力,然后随着专业理论课程的学习,在掌握知识的同时,逐步提高解决问题的能力,和解决问题的质量。也即知识的积累和能力的提高是同步进行、相互促进的。

2对软件学科教学体系的新认识

传统专业知识体系一般可由三部分组成:即自然科学基础、学科基础理论、专业知识和方法。例如针对自动化专业,其自然科学基础包括数学、工程数学、物理等;学科基础知识包括电路理论、电机与拖动、电子技术、控制理论等;专业课主要包括两个方面,一是工程化的控制系统设计方法,二是具体的控制电路及设备的选择或实现技术。这个体系的特点是,专业技术课的学习依赖于自然学科基础(如数学)。专业课的学习依赖于专业基础课的知识体系。也就是说,传统学科的知识体系可以说成是金字塔形。

而软件类专业从大的方面虽然也可以分成自然科学基础、专业理论、专业技术,但是三者之间的关系却和传统专业有本质的不同。专业理论知识依赖于自然科学基础,专业技术能力一定程度也依赖于自然科学基础;专业技术知识的学习对于专业理论的依赖并不明显,而专业技术能力的提高却依赖于专业理论的学习。也就是说,学会专业技术知识并不依赖于太多的专业理论,但是学好专业技术,提高解决问题的能力,专业理论必不可少,并且起到不可替代的作用。

所以,要改革传统软件类专业的教学体系必须先从认识软件类专业和传统学科的差异着手,将自然科学基础、专业基础理论、专业技术课程的传统教学体系,改为自然科学基础、专业技术先行,专业理论适当延后的教学体系。

图2粗略地表示出了两种教学体系的区别。图中横坐标是每个学期的学时数,纵坐标是学生在校的时间。在新的教学规律指导下的新的教学体系应该适当地延后学习自然科学基础的时间。专业技术包括利用开发语言开发平台,后期是专业开发的实践。专业理论逐渐展开,用专业理论课的学习促进学生专业能力的提高。最终,学生的知识体系并没有残缺,但是在学习期间能力的提高更符合软件学科的教学目标。

不难看出,软件技术类专业人才培养与传统学科有着很大的区别。只有理解和遵循这些规律,才能更好地高效率地培养软件人才。这些规律必须反映到人才培养方案的制订中,否则,就不可能培养出符合市场需要的人才。虽然软件类专业目前已经多样化,建立在软件技术基础上的专业和专业方向很多,但是作为软件技术的核心能力和知识体系还是基本相同的。所以,软件类专业的培养计划制订,必须遵守以下原则:

(1) 自然科学基础课程宽厚原则。如数学是软件技术类专业提高逻辑思维能力的重要课程,并且线性代数、离散数学、概率与数理统计等课程都会对程序员解决问题提供灵感。所以,在本科教学计划中,应该把自然科学基础作为软件类专业的最主要课程,同时在开设时机上,要改变过去必须在前两年开设完毕的思维,可以分布在学习的各个学期。

(2) 以核心能力培养为主线,兼顾不同专业方向。软件技术类专业无论专业方向如何,其核心能力都是相同的。概括来说就是两个能力,即程序及软件设计能力和软件工程能力。这两个能力,一方面是软件技术能力,一方面是软件工程能力,软件工程能力也是以软件技术能力为基础的。所以,在进行培养计划制订的工程中,必须把核心能力的培养放在首位,然后通过适当的计算机科学、通讯原理、电子信息等了解性课程拓宽学生的专业领域。

(3) 专业技术课程先期教学原则。这是和传统学科区别最大的一个原则。软件技术课程的学习一般来说并不依赖于软件理论课程,所以,软件技术课程可以先期进行学习。软件技术专业的技术课程很多,各种开发平台、开发语言,不可能在学校都进行学习。那么就只能选其中的一种语言一个平台,并且要彻底学会。具体选择哪种平台和语言反而并不是很重要(如果能兼顾毕业时就马上能用到的技术更好)。因为掌握某种开发平台、语言不是学生的核心能力,软件设计能力才是最重要的。很多本科教育的研究者担心只学习一个技术会使得学生专业面太窄,在计算机技术发展迅速的今天很可能所学的技术在学生毕业时已经成为陈旧的技术,导致学生不能适应社会的需要。这样的研究者忽略了一点,能力需要通过大量的开发实践才能锻炼出来,要进行能力的提高就必须依托一个载体,这个载体就是某一个具体的技术。学会了一个技术以后,就可以在不断的开发练习过程中,提高软件开发设计能力,提高快速适应不同语言和工具的能力。同时在实际工作中提高其社会活动能力、社会责任感、与人沟通的能力、合作能力、系统分析能力等,而这些能力与开发平台和语言是完全无关的。

(4) 专业技术理论适当延后原则。需要说明的是在这里我们使用了专业技术理论,而没有使用专业基础课的说法,这是因为,我们常说的传统专业的专业基础课与软件技术理论课有本质的不同。它不是解决学习专业技术课程的必备基础,而是为将软件设计得更好的理论指导。计算机专业的教师都会有这样的体会,教授软件工程、数据结构、编译原理等理论性较强的课程时,有一定编程经验的学生总是能够收获更大。也就是说,学生必须先会设计程序,才会对怎么才能把软件设计得更好感兴趣。所以,培养计划制订中一定要把这些理论性较强的课程放在学生基本掌握了一些平台和技术以后再进行,这样就可以有效地利用这些课程提高学生的软件设计和软件工程能力。

(5) 加强实践性环节改革,把实践性环节作为提高学生能力的关键环节。能力只能在实践中的得到提高,虽然很多软件学院都在开展实践性教学改革,但是大都没有摆脱“课程设计+毕业设计”的模式。实际上,培养计划的大部分课程都是为了培养学生的软件设计能力和软件工程能力,所以,片面地验证某一门课程的所学知识的所谓课程设计,并不能全面地提高学生的程序设计能力,每门课程的课程设计都是在低水平上的重复内容。所以,改革实践教学环节,要在增加实践环节时间的同时,改革实践环节内容,要使学生的设计能力随着知识水平同步提高,实践环节内容和要求一定要随着学习时间不断提高。

(6) 产学结合,提高学生的软件工程能力。这几年,软件教育方面,大多数学校也都注意到了产学结合的重要性。但是,到底通过产学结合到什么目的,却并不很清楚。笔者认为,软件设计能力的提高必须靠软件设计实践本身来提高,企业中的实际工作更多的是软件工程的能力,是非技术的。例如团队精神、工程规范、软件质量控制等,不到实际的软件生产第一线,是很难有体验的。所以,和企业的合作一定要在学生具有了一定的程序设计能力基础上进行。当然不排除在学习过程中,通过企业参观等方法提高学生的学习兴趣。

3结论

软件学科的工程化水平和其他学科相比还远远不够,软件学科的认识规律与其他学科有着很大的不同,目前的软件本科教育沿用了传统学科的培养模式,给人才培养造成了很大的影响。本文所提出的一些思考和原则已经在笔者所在学校的培养计划编制方面得到应用,起到了一定的作用。今后还需要继续按照这些原则不断改造培养计划,努力使我国的软件人才培养能够得到突破性改革。

参考文献:

[1] 黄细良,骆斌. 坚持机制模式创新 办好国家示范性软件学院[J]. 中国高等教育,2004(4):42-43 .

[2] 汪琳琳,焦慧敏. 软件学院办学模式初探[J]. 重庆邮电学院学报,2005(3):437-439.

[3] 雷敏,宋茂强. 示范性软件学院实践教学改革初探[J]. 计算机教育,2007(6):33-55.

软件工程专业导论论文第5篇

关键词:软件工程;信息管理与信息系统;教学改革

中图分类号:G642 文献标识码:A 文章编号:1009-3044(2013)10-2420-03

“软件工程”既是一个专业,也是一门课程,目前国内开设软件工程专业的学校已超过50所,讲授软件工程课程的专业主要有计算机专业、软件工程专业、信息管理与信息系统专业(以下简称“信管专业”)等。该文所探讨的是信管专业软件工程课程的教学改革问题。

软件工程是一门理论性、实践性较强的计算机核心专业课程,它借鉴工程学思想来规范和指导软件开发过程,是集计算机技术、数学、经济学、法学、管理学、心理学等学科于一身的综合性学科,其培养目标在于让学生了解和掌握软件开发过程以及开发方法和技术,并运用到实践中去。本科生在学习软件工程之前,需要学习和掌握高级程序语言设计、数据库技术、接口技术、建模语言、经济学、管理学等相关课程内容,才能更好的将软件工程理论和实践结合起来学习。

由于不同专业的培养方案和培养目标不同,软件工程课程的教学内容、教学形式和实践参与程度也有所不同。该文结合信管专业的培养方案和专业特色,探讨目前该专业软件工程教学存在的问题,提出教学改革方案和建议。

1 教学现状

1.1 专业定位模糊,学生不知所措

据调查,目前大多数高校信管专业的定位都是培养具有计算机技术和管理能力的复合型人才,开设课程也主要集中在这两个方面,计算机专业核心课程和管理学相关课程。然而由于各学院的优势和历史原因,也出现了与信管专业相关并延伸的专业,如“经济信息管理”,“信息管理”,“图书情报管理”,“林业信息管理”等,它们分别从属于商学院、管理学院、计算机学院或信息学院等,其专业偏向的差别也比较大,有的偏理工科、有的偏管理、甚至有的偏文科,莫衷一是。此外,由于该专业具体的培养目标也不统一,使得目前的信息管理与信息系统得不到社会的认可[1]。

与计算机专业、会计学、金融学专业不同,信管专业涵盖内容多,专业特色不突出,定位不清楚,导致学生认识模糊。据了解,大多数学生反映,信管专业学习课程多而杂,涉及计算机、管理、经济、法律、会计、电子商务等等,但是每门课都学得不深入。虽然笔者一致认为大学课程的学习仅仅是对本专业知识的大科普,但是从就业角度来看,学生就业面宽,竞争力不强,选择留在本专业领域的学生非常少。很多学生一度陷入迷茫,不知道自己该学什么,学什么有利于将来就业,也不知道学了这么多,将来会有什么用处。长期以来,学生们面临“什么都学过,什么都不会”的尴尬局面,培养目标、课程设置,社会实践、就业需求严重脱节。

从信管专业本科生就业方向来看,就业领域分散在计算机、管理咨询、银行、通信等诸多领域,有很多学生甚至转行。可见,学生对信管专业的认识也不乐观。因此,教师应在教学过程中应根据专业特色适当引导,发挥专业优势,体现专业特色,使学生尽早地对该专业有一个客观、准确的认识。

1.2 师资队伍薄弱,教学内容陈旧

目前高校教师年轻化,理论教学经验欠缺,实际项目开发经验不足。而对于教学经验较丰富的教师,常年讲授一本教材,不及时更新授课内容,不讲授新技术和新方法,导致教学内容过于陈旧,课程教学仅仅限于理论,不能更好的开展实践,也跟不上计算机技术飞速发展的步伐,并最终导致学生就业时发现所学知识无用。

1.3 教学方法单一,理论实践脱节

传统的教学形式不外乎于老师讲、学生听,师生之间缺乏深入、广泛的探讨和交流,学生主动性差,不参与、不实践、不开发,从而导致教学方式单一、教学内容枯燥,理论授课与实践指导相脱节。同时学生也反映课程内容抽象,不容易理解。课堂只讲授理论,缺乏实际案例。即使引入案例,也会出现案例来源匮乏、数量少、质量不高、案例陈旧等种种问题。

1.4 实践环节薄弱,团队协作欠缺

实践薄弱的原因在于学生对计算机基础课程掌握不够硬。甚至学生在学软件工程课程之前,还未学过相关基础课程。学习软件工程之前,需要掌握的课程知识有:高级程序语言设计(C语言、Delphi或Java等)、数据库、建模语言、接口技术等。

大部分同学相当重视系统开发,有些同学也积极担任项目负责人,不乏有些同学仅仅是挂名,没有实际参与,根本原因在于技术薄弱。这与信管专业的定位也有很大关系。与计算机专业相比,信管专业更重视管理方法和工程思想,忽略了编程这个基本功,导致很多学生拿到项目后无从下手。

2 课程教学探讨

2.1 结合专业特色,合理定位教学目标

笔者认为,信管专业的定位至关重要。目前将其定位在计算机和管理的交叉学科是没有问题的,但是该专业开设课程多而杂,至少对每门课程学到什么程度应该有个清楚地认识。软件工程的要求是至少熟练掌握一门编程语言、数据库和管理学知识,编程语言可以是VB、C、Delphi、Java等,数据库可以是Access、SQL等,这些课程至少有一门要在前期讲授。另外掌握UML、桌面开发技术、面向对象技术、接口技术等计算机相关知识会更有利于软件工程实践的开展。

信管专业的具体目标应该是:培养在企事业或政府的技术部门、经济部门或管理部门中,从事信息系统的分析、设计、开发,利用和维护的应用型技术人才和/或从事IT的专业人员管理、IT项目和信息资源的开发利用等工作所需要的应用型管理人才。软件工程的教学一定要与该目标结合起来。

2.2 加强师资队伍建设

高质量的教师队伍对软件工程的教学起到至关重要的作用。首先,在选取软件工程任课教师时,应优先选择拥有计算机专业背景、教学经验丰富,有过项目开发经验、对信管专业有一定认识的教师来承担该课程的教学任务。如果这些条件达不到,建议教师到软件开发公司实习和锻炼。

在这里,笔者认为“校企合作”(这里的企业主要是指软件开发或系统开发的公司或企业中的信息系统开发部门等)方法非常有效。定期将教师送到企业参与项目的开发,积累项目开发经验。同时企业的高管也可以到学校讲学,介绍目前的新方法、新技术以及软件开发过程可能遇到的困难和问题。教学过程中也可以推荐学生到企业去实习,真正接触到项目的分析、涉及、开发、测试等工作。实习过程中学生可将课堂上学到的知识得以应用,加深对课堂知识的理解。

2.3 引入案例教学方法

案例教学法最早由哈佛大学商学院推广,后来诸多学科领域采纳并将其应用在课堂教学中,软件工程的课堂教学也不例外。所谓案例教学是在教学过程中,引入一个能够覆盖课程全部内容的问题,通过利用理论知识对问题进行阅读、理解、调查、分析、讨论,最终解决问题的方法。通过案例教学,可以加深学生对抽象知识的理解,同时也可以培养学生的团队协作能力。

案例教学法同传统的教学方法相比,具有亲验性、启发性、参与性、实践性等特点。由于软件工程思想较抽象,理解难度较大,如果在课堂教学过程中引入一个完整的案例,让它贯穿整个教学过程中,通过案例来讲软件开发的过程和思想,会更形象、更具体、更容易让学生理解和吸收,而不会出现死记硬背的现象[2]。

案例选择的成功与否直接决定了课程教学效果的好坏,案例的选择不能具有任意性。一般来说,应该遵循以下原则:1)针对性。最好选择与学生日常学习生活关系密切的、可供学生讨论的例子,如本科生学籍管理系统、库存管理系统、图书馆管理信息系统、学生选课系统等;对于学生不了解或了解不多的最好不选,如科研管理系统、研究生管理信息系统则不适合在教学过程中采用。2)可讨论性。案例教学过程中最重要的是让学生参与进来思考和讨论,案例最好选择教师参与过的项目,结合理论知识可以将案例讲解的更透彻,同时也可以将开发过程中遇到的问题和经验教训与学生分享,使得学生在项目开发过程中思路更清晰,避免绕弯路。3)先进性。目前,在课程教学和教材选择方面都会遇到内容陈旧和知识更新慢等问题,所以在选择新版教材和在案例教学中要适当引入新技术和新方法,与现实接轨。如面向对象性技术、UML、敏捷开发方法等。4)综合性。案例教学过程中既要将计算机技术、管理方法、工程学思想、经济学和数学的知识合理地结合起来,又要将软件开发过程的每一步都涉及到,体现出软件工程的综合性这一特点。

2.3 推行项目教学方法

在上机实验课上,通过分组完成项目,即按照软件工程的思想、步骤、方法和技术来完成一个完整的小型系统开发对于学生理解、深化和应用理论知识起到至关重要的作用,也有利于可以将理论和实践结合起来。“项目驱动”教学法的理论依据是建构主义的学习理论[3]。教师为学生创造条件,将他们置身于真实的环境中解决项目开发中遇到的一个有一个问题,期间教师通过对学生指导、讨论的方式协助他们解决问题来完成项目开发的全过程,实现理论和实践相结合的终极教学目标。项目教学法的步骤有以下几个方面:

1)项目的选择和团队的组成

上机实验课前,应提前为学生讲授上机的形式、内容和目标,即分组形成5-6人的开发团队,选取合适的题目,用自己最熟悉的编程语言、数据库等计算机相关知识完成系统的开发,最后提交、演示并考核。

题目的选择至关重要,教师需提前准备一些相关题目供学生选择,此外,学生也可以自选题目。选题一定要将学生兴趣、熟悉度、有一定业务流程、满足学生将来发展四个方面的内容结合起来。兴趣是学生最好的老师,选择学生感兴趣的题目便于激发学生的主动性和积极性;选择与学生生活和学习相关的、熟悉度高的题目便于学生开展需求分析;项目有一定的业务流程便于学生更好的认识软件开发的过程、撰写整个过程的技术文档、画数据流图。同时题目不能过于复杂,保证在有限的教学时间内完成并看到实际的运行结果。

团队成员限制在5-6人,不宜过多或过少,为每位同学定好角色,分别担任项目管理员、系统分析员、程序员、测试人员,明确任务分工和职责,协作完成,培养学生的团队合作精神,沟通能力和协调管理等能力。通过分组,使学生能胜任研究、分析、开发、设计、生产、测试、管理、咨询、培训等多种角色,使学生能熟练掌握软件工程知识与技能,具备作为软件工程师从事软件开发和维护管理所需的专业技能。

2)项目开发与过程管理

在上机实验过程中,教师结合课程进度和案例讲解,布置具体内容让学生在上机课上以团队形式完成。内容包括可行性分析、需求分析、概要设计和具体设计、编码实现、软件测试,进展的过程中技术文档的撰写必不可少。团队负责人要发挥带领作用,制定开发计划、分工、协调和管理。教师应主动参与到各小组的管理中去,帮助负责人开展项目管理,讲解软件开发技术文档内容的写作,指导相关工具的使用和程序的实现。

3)项目的验收和期末考核

上机结束前,组织开展项目的验收和考核。每组选出一位学生代表对系统进行演示和讲解,包括系统开发的背景、采用的技术、主要功能的实现、系统的创新和与不足、以及团队的分工与协作这五个方面,其他同学结合自己的分工进行补充。最后教师提问和总结,学生即兴回答。这个过程可以锻炼学生的逻辑思维、口头表达以及即兴答题的能力。

从期末成绩来看,平时成绩占10%,上机实验占20%,卷面考试占70%。平时成绩包括学生的出勤、课堂提问和平时作业的提交;上机实验主要考察学生系统主要功能的完成情况和技术文档的撰写情况;由于理论知识抽象,理解难度较大,建议采用开卷考试的形式,要求学生具备利用理论知识解决实际问题的能力。

3 结论

通过以上对软件工程课程教学改革的探讨和分析,我们可以看出,教师和学生在教改中是两个至关重要的角色,一个拥有丰富教学和开发经验的老师,一群积极主动好学、有一定计算机基础的学生,再加上一本好的教材,一个具体的案例,一个具体的项目,将会把软件工程枯燥乏味、抽象难懂的理论知识具体化,并最终拥有一门有理论指导、有实际运用并寓教于乐的教学课堂。

参考文献:

[1] 蒋学锋.谈谈信息管理与信息系统专业的培养目标和课程体系[J].高等理科教育,2003(S2):97-100.

软件工程专业导论论文第6篇

关键词:软件项目实践;专业能力;软件开发;评价

1理论指导下的项目实践

理论知识可以让人站在巨人的肩膀上,并拥有一个智慧的头脑,同样,实践操作可以让人利用智慧的头脑,练就灵巧的双手,开创一个新世界。与传统专业相比,人们从事计算机软件开发的时间并不长,软件开发理论也正在成长过程中。但是,这并不是说软件开发就无章可循,在这短期的发展过程中,人们总结了从事软件开发的诸多经验,并借鉴其他行业(如建筑、管理等)知识,逐渐形成了一整套较为成熟的软件开发理论,软件工程专业也应运而生。

软件开发,实践操作固然重要,但我们应在软件工程理论和规范标准的规范下,培养和锻炼学生软件项目开发的实际工程能力。所以,在强调项目实践的同时,我们也应该把现代化的软件开发理论贯穿其中,让学生在实践的同时,有章可循、有据可依。

1.1软件开发理论

软件开发理论从项目实践中积累起来并用以指导软件开发。20世纪60年代出现“软件危机”,软件产品开发的复杂度提高了,开发周期也大幅度延迟,而且软件错误也在增多,可维护性降低[1]。由此出现了最早的软件开发理论,即结构化分析和结构化设计(SASD)。而后,随着“重用”的提出,出现了软件开发的第二大技术理论,即面向对象的分析和设计(OOAD)。1998年,在“基于构件的软件开发”国际专题学术会议上,人们一致认为软件开发技术离不开构件和体现结构,由此提出了基于构件的软件开发(CBSD)。目前,随着分布式应用的出现,又出现了新的理论体系,即面向服务的架构(SOA)。软件开发的理论是随着实际项目经验的积累在不断完善和发展的,在软件开发过程中应该遵循已有的开发理论。

1.2理论贯穿于实践

不管是哪种理论都是从社会实践中总结、抽象出来的,能够反映大多数的现实问题,软件开发理论也是如此。理论知识概括性强且抽象,如果单纯地以讲解的形式“灌输”给学生,效果不理想,学生对这种“填鸭式”的讲解也不能真正理解,只能是形式化的记忆,因为他们根本没有软件项目开发经验可以参考,因此也就无法更深层地理解理论知识。

听过的会忘记,看过的能记得,做过的才理解。软件开发理论虽然经典,但不应该将其变为单纯的讲解,而应该将理论贯穿于软件项目开发中。以实践项目为依托,在真正的开发中让学生去领悟软件开发理论。比如软件开发的MVC模式,很多学生刚接触时都会排斥这种开发方式,认为做了很多“无用功”,系统的结构和实现太复杂化。其原因在于,学生学习软件开发语言时,接触的都是针对性非常强的小练习、小实验,这些练习和实验不会存在重用、维护、 更新等问题。只有在真正的项目实践中,学生才会遇到软件理论中所提到的、引起“软件危机”的因素。学生遇到实际问题,原来固有的开发方式已行不通,此时,学生自然会接受软件开发理论所提出的观点,或在此基础上寻找到适合自己的软件开发方式。

2提升软件开发基本能力

软件开发最基本的要求是在规定的时间和资金内,完成用户要求的所有功能。具体来说,软件开发专业方向的学生在接触软件开发后,应该具备的基本能力包括以下4条。

1) 运用理论、模型和技术对具体问题进行识别和分析,可以进行软件分析、设计、开发、测试和文档化,交付高质量的软件产品[2]。软件开发是周期性较强的工作,在一个周期的每一阶段都有不同的要求,对应学生不同的专业能力。

软件项目分析是对用户需求进行去粗存精、正确理解的过程,其基本任务就是和用户一起确定要解决的问题,建立软件的逻辑模型,编写需求规格说明书,并最终得到用户的认可。这就要求学生具备很好的软件交流能力和系统分析能力,将非专业的需求叙述转变成专业的描述。软件设计要求学生具备系统设计能力,可以着眼于全局,然后将功能细化,将软件分解成模块,逐步求精;软件开发就是对于软件的实现,把设计转变成计算机可以接受的程序,这就要求学生充分了解软件开发语言、工具的特性和编程风格等;测试的目的在于以最小的代价发现尽可能多的错误,以求软件的稳健性,要求学生可以找出合适的测试用例;文档的编写可以有利于后期维护和更新,也是对所开发的系统是否符合软件规范的一次检验。

2) 理解各种工程设计方法的优缺点,根据情况选择符合安全和经济规范的合适方法。同一软件项目的开发可以有多种模式,比如瀑布模型、原型模型等。瀑布模型其优点在于有利于大型软件开发过程中人员的组织和管理,有利于软件开发方法和工具的使用;缺点在于软件开发初期阶段就要确定全部的需求。原型模型的优点在于可以很方便地统一客户和软件开发人员对软件项目需求的理解,客户可以很快得到其需要的软件模型。[3]

不同的工程设计方法,也决定了软件开发的方式不同,不好评价其优劣性,在开发不同应用场景中的软件项目时,最适合的开发模式可能只有一种。因此在项目实践的过程中,要尽量多地展示不同的软件开发模式,有了切身的体会,就可以通过不同类型实例让学生比对其优劣,自己得出这些开发模式最适合的应用场景。这样做的好处是避免讲解这些开发模式所带来的枯燥、乏味,同时,让学生理解得更加透彻,做到知道、理解、会用。

3) 重视产品交付期限、面对有限的资源、系统和组织能对各种矛盾进行协调、折衷和决策。在项目实践中,所有的工作都要有计划、有组织地展开,尽量避免一个学生同时参与多个实践项目,其目的在于让学生全身心地投入到一个项目实践中,完成一个项目周期的所有阶段,这样做可以让学生遇到、分析、克服一个完整项目应该遇到的所有问题,而不是每次都在原地踏步走。

在开发中,我们可能会遇到各种各样的问题,有的可解,有的不可解,其解决方法也多种多样。在解决这些问题的时候,我们应培养学生独立思考、独立判断、独立求解的能力,训练其自学能力(这也是软件开发人员最为需要的能力),而不是直接告诉其答案或解决方法。我们可以采用形式多样的方法进行求解,比如开讨论会、论坛求助、技术支援,等等。经过几次非传统课堂式学习之后,如果遇到新问题,大多数学生可以独立找到求解的方法。在整个求解过程中,教师只是起到引导和铺垫的作用,真正在解决问题的应该是学生。

4) 遵守纪律、交流和合作、能够评价人和团队的能力,了解团队和团队行为及角色。当前软件项目趋于复杂化、集成化,非个人可以独立完成,需要多人协作完成,需要组建专业软件开发团队。

团队成员之间的沟通和合作将成为影响软件开发进度,以及软件质量的因素。所以,沟通和协助也就成为软件开发人员必须掌握的专业能力之一,在沟通中了解彼此的职责,在协作中了解软件分层和分工协作的优点。在具体项目实践中,我们可以根据学生的特点,让他们自己先分工,找到自己最想要参与的部分,并确定负责制定,以培养其责任心。

3发挥项目实践的导向作用

选取实践项目要针对软件开发的专业能力,做到有的放矢,不要为完成项目而完成项目。项目实践的导向性就是要求每一个项目要有对应的专业能力要求,学生在完成该项目后,可以真正获取相应的专业知识,锻炼相应的专业能力。

3.1项目设计层次化

软件开发专业能力的培养和训练并非一两个学期就可以完成,而是要贯穿大学四年学习,因此,选取的实践项目要具有分层递进的特点。在每个课程模块邻近结束时,要组织相应的项目实践,以强化该课程模块的知识体系。[4]

由浅入深的项目可以将学生逐渐带入软件开发的世界,而不会让学生产生挫折感而惧怕参与实践项目。分层次实践项目的每一个层次都应该对应一个或几个专业核心能力,围绕该能力的训练,我们可以组织多个实践项目,供学生选择。具体层次的划分可以根据专业学生的实际情况而定,一般以三到四个为宜。

伴随层次由低到高,训练学生专业能力的重点也在转移,由开始的专注于属性的抽象、方法的实现、算法的设计,逐渐到模块的设计、分层的设计,最后到整个体系结构的设计。学生专业能力的成长也是从对系统的认知、设计,逐步发展到的最后开发。

3.2项目开发模块化

针对每一个实践项目,在选择的时候应该根据需要而定,选取结构清晰,模块划分比较明确的项目,这样有利于专项训练[5]。低层次项目参与的学生较少,不利于培养学生对系统体系结构的把握,也不利于训练其团队合作与沟通,因此,我们可以把重点放在对软件开发语言的训练上,而高层次的项目重点应该放在系统的设计思路、软件整体的把握、小组成员的沟通等方面。

针对每个具体项目,开发过程可以细分为多个功能模块,即可以按照模块化来开发,在模块内部应该具备较好的聚合,模块之间耦合度相对较低。选取这样的项目,可以培养学生在设计与开发软件时,结合“大事化小,小事化了”的原则来思考问题,这也是在解决复杂问题时普遍采取的策略,“分而治之,各个击破”。所以,模块化结构较好的实践项目,有利于降低设计难度、分工协作和对系统的理解与维护。

对于低层次的项目,我们不易将功能模块划分得过于细小,使简单问题复杂化,对此,我们可以将整个项目看作一个模块,把重点放在对程序语言和知识点的训练上。比如设计制作简易电子日记本所涉及到的内容就不是很多,有三个类(日记本类、文件读写类、管理类)就可以完成,借助这个项目可以很好地训练学生文件读写的操作,而不适合分析设计思路、整体与子系统、子系统间的关系等概念。

对于高层次的项目,要强调系统的分解和模块的划分,而且应将各个模块间的依赖性尽量降低。在开发此类项目时,要着力培养学生系统分析能力,可以将比较复杂的问题,划分为几个相对独立的模块。比如一个完整的学生信息管理系统,一般由信息输入模块、信息管理模块、数据管理模块等组成,在具体到信息输入时可以继续划分模块:单个学生信息的输入子模块、批量导入模块、学生信息扫描模块等。经过不断的细化和求精,最终可以将复杂的系统功能分解为简单的功能模块,便于组织开发和分工协作。

4科学评价专业能力

项目实践可以让学生在训练专业能力的同时,得到更多的“顶峰体验”,获取开发软件的成就感,这也有利于学生自信心和价值感的培养。在借助项目实践培养学生软件开发专业能力的同时,健全或完善专业能力评价体系也是当务之急。

软件开发重在实践操作,而不是理论知识的陈述,它所要求的专业能力最终也是软件开发能力。衡量一个学生的优劣,不能仅参考其掌握多少知识,而是应该将重点放在其对知识的应用层面,也就是实践操作能力上面。

首先,从主观上和制度上改变软件类科目都需要考试的做法,要针对具体科目的特点,区别对待。对于偏重于基础知识的科目,闭卷笔试的方式可以促进学生获取知识,对于理论贯穿于实践开发中,指导软件开发的科目,可以采用综合实践开发的方式进行考察,注重考察学生的学习过程[6],即学生的考核标准参考该学生在软件项目开发过程中的综合评分。

其次,改变软件开发重结果、轻过程的评判标准,实行学生能力评价参数多样化。软件开发需要完成一系列的任务,在每个任务中,重点涉及的专业能力不尽相同,对学生能力的要求也存在差异。如在软件需求分析阶段,学生需要探寻客户的想法,了解他们的问题,并准确表达他们的要求。在软件设计阶段,需要了解系统的整体结构,并可以划分为子系统,这需要抽象和建模的能力。在编码与测试阶段,要求学生对开发工具,编程语言的熟练掌握。即使在这一个过程中,也会有详细的分工,比如有的学生擅长美工,有的爱好编程等。一般的做法就是核查项目有无实行,是否可以运行等,这样的评价太过于片面。

最后,学生的专业能力评价要与社会生产实践接轨,避免大而全的评价体系。软件开发是一个完整的系统工程,涉及很多领域,很难让一个学生独立完成整个项目。所以,科学的专业能力评价应该注重社会对软件开发人员的能力要求,引导学生培养自己的兴趣,注重发展自己的特长。

5结语

软件项目可以让学生在实践操作中,潜移默化地掌握软件开发理论、模型和技术。在选取具体实践项目时应当本着由简单到复杂,由基本知识点练习到整体系统分析的原则。学生的专业能力,在项目开发的整个过程中,历经由低级到高级的转变。最后在衡量学生专业能力水平高低时,应该更加科学,从多种角度进行评价。

参考文献:

[1] 齐治昌,谭庆平,宁洪. 软件工程[M]. 北京:高等教育出版社,2004:1-16.

[2] 董威,文艳军,陈振邦. 软件设计与体系结构[M]. 北京:高等教育出版社,2010:1-20.

[3] 栾跃. 软件开发项目管理[M]. 上海:上海交通大学出版社,2005:20-55.

[4] 李志强. 计算机专业软件开发能力的培养策略[J]. 计算机教育,2008 (14):15-17.

[5] 王晓敏,崔巍,宋燕林. 应用软件开发能力课程体系研究[J]. 实验技术与管理,2009(26):107-109.

[6] 何克抗,李文光. 教育技术学[M]. 北京:北京师范大学出版社,2005:356-376.

Training Students' Software Development Capabilities with Project Practice

ZHU Fengshan

(Jingu College, Tianjin Normal University, Tianjin 300387, China)

Abstract: With project practice, it can fully exercise student's practical ability, improve software development,

软件工程专业导论论文第7篇

关键词:普通院校;实践教学体系;工程实践能力;路线图

软件工程专业在我国高等院校还是一个很不成熟的专业,比起传统的工科专业来说,软件工程专业有更多的技术成分,因此,我们的教学体系和模式就要有别于传统的教学体系和模式。实践教学体系是否合适将直接影响软件工程专业毕业生的质量。对于重点院校软件专业和软件学院实践教学体系已有很多专家学者进行了研究与实践[1-3],而普通院校无论是师资,还是其他教学资源,都不能与重点院校相比[4-5],应该有一套有别于重点院校的实践教学体系。本文将对普通院校软件工程专业实践教学体系的构建进行探讨,并结合我院软件工程专业实践教学体系进行总结。

1实践教学体系构建原则

软件工程专业实践教学体系构建原则可以从4个方面考虑:软件工程专业特点、教指委的软件工程专业规范、软件工程专业的职业定位、人类认识事物的规律。

1) 软件工程专业是一个综合性学科,既有科学的要求,又有技术的要求。从学生的培养目标来看,普通院校软件工程专业含有更多的技术要求。目前国内大多数普通院校软件工程专业还是按照传统的理工科人才培养方式进行学生的培养,忽视软件工程专业知识体系的特点,从而导致学校的学生大多数随能按照培养计划完成学业,成为一名合格的软件工程专业的毕业生,但与企业的要求相差甚远,企业找不到合适的人才的现状。

2) 软件工程专业规范给定的软件工程专业知识体系包括:计算机科学与技术知识、软件工程知识和领域知识。计算机科学与技术专业、软件工程专业是实践性、应用性非常强的学科,要使学生掌握好计算机科学与技术的基础理论知识,应用软件工程技术的基本技巧与方法,就必须确保实践教学的教学质量。

3) 按照现在职场流行的说法,人才分为3类:白领、灰领、蓝领。根据本地区和学校的特色,我院软件工程专业的定位是培养“灰领”人才,因此,学生除了学习传统的计算机科学与技术知识、软件工程知识外,还要学习管理学知识,同时根据我校的特色与定位,把汽车设计与制造过程中信息结构作为应掌握的领域知识。管理学知识将用于团队管理、软件开发过程管理以及信息结构建模等开发活动;汽车设计与制造过程中的信息作为软件开发实践的应用对象,是软件的加工对象。

4) 人类对事物的认识是一个由简单到复杂,由具体到一般的过程,是一个分析与综合的过程,将随着知识的积累逐步深入。这就要求实践教学要按照培养计划进度设置不同的实践内容,而且可以根据学生的个体情况进行少量的调整。

2实践教学体系构建方案

现在高等教育的教育方式正在从以教师为中心转变为以学生为中心,既以学生的目的需要为中心、以学生的能力拓展为中心、以学生的知识结构为中心开展实践教学。因此,我们在设计实践教学体系时,始终注重按照学生理论学习的进度和学生能力提高的需求,依据软件开发过程的特点,分层次开设不同的实践内容。

按照学生能力培养的路线图,实践教学体系始终围绕着培养知识应用能力和创新能力进行构建。能力培养方面分为3个方面,即程序设计能力、软件开发能力、工程实践能力。实践教学课程体系由5个层次的实验构成:课程实验、课程设计、项目实训、开发实践、毕业设计,如图1所示。

2.1课程实验

本类实验主要是加强学生对所学知识的理解,“听过的会忘记,看过的会记住,做过的会理解”。实验内容分为3类。第1类:掌握和运用工具,包括语言类,软件开发工具类等;第2类:理解所学知识,包括操作系统、编译原理、设计模式、计算机网络、数据结构与算法等;第3类:同时兼顾工具学习和知识理解,如数据库原理。这类实验主要是学生按照实验指导书完成规定的实验内容,但也有一部分内容只给出实验目的,让学生自己设计实验内容(设计型),以兼顾学生的不同层次与兴趣。

2.2课程设计

本类实验的目的就是培养和训练学生对所学知识的综合运用能力和学习新技术、新知识的能力,属于规范中的设计型与综合型实验。教师给出课程设计题目、相应的背景描述和课程设计要求,学生在教师的指导下独立完成课程设计项目,时间一般为1~2周。实验内容和要求根据学生的理论课进程安排,如VC++课程在数据结构与算法设计之前开设,因此VC++课程设计要求学生做好类的设计、界面设计,数据存储用文件形式,对软件的效率不做要求;数据结构与算法设计课程设计,除了VC++课程设计的要求外,要增加对算法的效率和存储空间的要求;设计模式与UML建模课程设计除了VC++课程设计和数据结构与算法设计课程设计的要求外,增加软件可靠性与高效的要求等。所有的课程设计都要求界面美观。同时鼓励优秀学生应用一些还没有开设的课程内容。

2.3项目实训

本类实验的目的主要是训练项目的组织能力、工程实践和团队协作能力,着重开发过程的训练,按照软件生命周期,完成各阶段的工作。项目实训放在软件工程和数据库原理等专业基础课程之后,软件体系结构之前。同时开展多个项目,把学生分成小组,在不同的项目中担任不同的角色,教师扮演客户和技术总监的角色,要求学生按时上下班,实验室允许学生加班,学生要负责实验室设备安全。要上交较完整的需求分析与设计文档,特别是各部分的公共信息要完整。可以只实现部分需求,时间安排为2~4周为宜。

2.4开发实践

开发实践在软件工程的专业实验室或校外实习基地进行。2008年我们与东风悬架弹簧公司和武汉天喻软件有限责任公司合作,利用武汉天喻软件有限责任公司的PLM软件,装入东风悬架弹簧公司产品开发的基础数据。学生通过该平台,可以了解企业产品的开发流程,不懂的地方随时可以向企业工程师咨询;可以选定一个模块,按照PLM系统接口规范进行设计开发,然后集成到PLM系统中去。可以是替换原来的模块,也可以是增加新的功能,进行集成测试检验程序的可靠性和效率。时间安排为4~8周为宜,由学校教师与企业工程共同指导。

2.5毕业设计

毕业设计是大学教学过程的最后一个环节,是一个学生自主开发的综合性实践教学环节。通过毕业设计,能使学生综合应用所学的各种理论知识和技能,进行全面、系统、严格的技术及基本能力的练习。我院毕业设计时间安排为16周,鼓励学生把就业与毕业设计结合起来。学生在企业实习阶段参与项目开发,由企业导师进行项目开发的相关指导,回校在校内教师指导下完成论文和答辩。

3软件工程专业实践教学的师资要求

软件工程专业的实践教学要求实践教师既是实践的指导者,又是直接的参与者。要对学生在实践中遇到的各种问题给予解答,包括编程语法、算法逻辑、软件体系结构设计、用户需求分析、团队协作方法等;在实践过程中更多地是站在用户的角度对学生的成果进行验收测试,使学生体会到在现实情况下怎样的软件才能被用户接受,体会到用户怎样检查软件的可靠性、可用性、正确性,用户怎样评价软件的优劣。

软件工程专业的特征要求从事软件工程专业教学的师资队伍是一支具有综合素质的队伍,既有专业理论基础,又要有企业实践背景;要充当软件开发过程的各种角色――投资者、使用者、组织者、设计者、编码者、测试员等。课程实验主要由理论基础扎实的教师担任,课程设计由理论基础扎实的教师和有企业实践背景的教师共同指导,项目实训和开发实践主要由有企业实践背景的教师完成。

4结语

本文介绍的软件工程专业实践教学体系是我校通过几年的不断摸索与改正后形成的。在探索过程中获得了湖北省教育厅项目(软件工程创新型人才培养研究)和学校的支持(2007年软件工程特色专业建设费15万元)。该实践教学体系利用一些基础实验帮助学生理解和掌握专业理论知识,为今后的发展打下坚实的专业基础,同时通过参与各种项目,提供了发展其动手能力的环境,贴近了企业需求,提高了就业率。2009年我校软件工程专业的一次就业率达到了90%。由课程设计、开发实践和毕业设计构成的创新训练体系,使学生获得了科学研究方法和软件开发活动的工程化的经验。

参考文献:

[1] 李红梅. 面向能力培养的软件工程实践教学体系[J]. 高等工程教育研究,2009(2):84-87.

[2] 董玮. 引入实训体系,培养应用型软件人才的探索与实践[J]. 计算机教育,2007(23):10-19.

[3] 董玮,邱建华,杨英鹏,等. 培养应用型软件人才的实践教学体系的研究与实践[J]. 计算机教育,2008(10):16-18.

[4] 郑耿忠,刘秋梅. 地方性院校软件工程专业建设探讨[J].电脑知识与技术,2009,5(30):8477-8478.

[5] 郑耿忠,刘秋梅. 软件工程专业实践教学体系构建探索[J]. 电脑知识与技术,2009,5(27):7690-7691.

[6] 白伟华. 软件工程专业应用型人才培养模式的思考[J]. 计算机教育,2008(22):35-37.

Practice Teaching System of Software Engineering in General Institutes

FU Yong-zhi, WANG Wen-yan, SHI Lü-hua

(Department of Computer Science School of Electrical & Information Engineering Hubei University of Automotive Technology,

Shiyan 442002, China)

软件工程专业导论论文第8篇

关键词:问卷调查;因材施教;多向、分层教学

自20世纪60年代末提出“软件工程”[1]概念至今,为更好地认识软件开发过程,提高软件的开发质量,许多与软件相关的思想、概念、方法和技术应运而生。软件工程导论实训课作为一门实践性课程,对理解和运用软件工程中的思想与方法起着重要的作用。其教学目的在于通过对软件项目的分析建模与设计开发,将软件工程中所涉及的理论、方法和技术综合应用于软件开发的各个阶段。同时,在实践过程中可进一步增强学生综合运用之前所学的数据库技术、程序设计等知识。因此,对于我院计算机专业的专接本学生,如何使其在软件工程导论实训课程中更好地掌握和运用相关知识,提升其实践技能,就成为我们教学研究的一个关注点。

1现状分析

受近年金融危机影响,大学生就业压力日趋严峻,专科毕业生中报考专接本的学生比例逐年增加。而在近两年的教学过程中,我们发现部分学生对软件工程导论实训课程的学习兴趣不高,程序设计与编码能力欠缺。为进一步提高专接本学生的专业能力和整体素质,使软件工程导论实训课程达到更好的教学效果,我们针对2008级的学生进行了相关的问卷调查。调查内容涵盖学生生源、专业喜爱程度、学习动机、学习态度与习惯、软件工程导论实训课程的选修课程掌握情况、软件工程导论实训课程的评价以及个人未来规划等6方面,调查结果分析如下。

1.1生源的专业差异明显

根据调查结果显示,2008级学生分别来自北京的12所高职高专院校,学生的专业分布如图1所示。从图中可以看到,60.9%的学生在专科学习阶段是以网络、多媒体和通信技术专业为主,计算机专业的学生只占36.2%。由于学生原就读院校在专业培养目标、课程设置和教学内容方面的差异性,专接本学生在某些专业基础课程的掌握上存在较大差别,这也是部分学生的程序设计与编码能力比较欠缺的主要因素之一。

1.2专业喜爱程度和学习动机不一

学生对计算机专业的喜爱程度如图2所示。调查统计、分析显示,28.9%的学生对本专业比较喜欢或很喜欢,34.8%的学生不太喜欢或完全不喜欢所学专业,另有36.2%的学生介于中间。从男、女生对计算机喜爱的程度差异看,男生很喜欢和比较喜欢计算机专业的占40.1%,女生则占23.4%;不太喜欢计算机专业的男生约占18.2%,而女生则有42.6%。

学生的学习动机调查结果如表1所示。由于此项是多选题,因此可以看到,学生认同比率占前3位的分别是拿张本科文凭、获得一技之长和提高自己的综合素质。调查结果显示,学生们选择的都是比较现实的因素,这也反映出当前社会的就业压力以及用人单位对文凭的要求等实际因素已影响到学生们的学习动机。

1.3学习态度和学习习惯良好

在进行有关学习态度和学习习惯的调查时,问卷中共设计10多个小问题。调查结果显示,由于考上专接本的学生在专科阶段大都是班上学习较好的学生,因此他们中的绝大部分学生学习态度比较认真,课后能安排时间学习,在某些课程上有自己行之有效的学习方法。但是,受专业差异等因素影响,其中一部分学生基础较差,学习目标不明确,对所学专业不感兴趣,上课不能专心听讲。

1.4先修课程掌握程度不同

对多门先修课程的调查显示,55.1%的学生对数据结构课程掌握比较清楚,但在程序设计、编码时还需要参看资料、手册。C语言和SQL Server是学生学过且较为擅长的两门课程。调查结果说明:在数据库技术方面,大部分学生掌握较好;在程序设计语言方面,学生基本都掌握了面向过程的C语言,但对于面向对象的编程语言,学生们掌握的并不太好。因此,在今后的先修课程中,有必要通过教学内容来进一步加强学生运用面向对象语言进行程序设计的能力。

1.5软件工程导论实训课程的评价比较正面

对实训中不易把握的方面、课程评价、实训时间等方面的调查结果显示,学生们在软件工程导论实训时,不易把握的内容是程序语言与编码、运用面向对象思路进行的类与对象的分析设计,比率分别为55.1%和50.7%。在课程评价方面,58%的学生的选项是学到一些有用知识,将来用得着;26.1%的学生认为课程学习可以提高自己的综合素质和实践能力。在实训时间方面,44.9%的学生希望用2周时间进行;有21.7%的学生希望用3周时间进行;还有17.4%的学生选择了4周。

从调查统计可以看到,学生感觉软件工程导论实训不易把握,有所欠缺的正是先修课程中没有掌握好的部分。关于于实训时间,84%的学生希望实训在2周以上,从此不难看出学生们希望实训时间更充裕,这有助其更好地掌握和运用知识技能。在对课程评价方面,大多数学生给出了正面评价,即学到一些有用知识、提高了自己的综合素质和实践能力,只有少部分学生选择了实践能力提高不多、学过就忘了的负面评价,这说明实训课程达到了一定的教学效果。

1.6个人未来规划较为多样

在个人未来规划方面,调查显示有近三分之一的学生选择从事与计算机相关的工作。在这部分学生选择的具体职业规划中,排前两位的是多媒体或动漫制作(占24.6%)、网站开发或管理(占23.3%)。那些选择与计算机无关工作的学生,首选的职业规划方向是行政管理(占21.7%)。另有17.4%的学生选择考研或出国。

调查结果分析说明,本科毕业后,男生中选择从事计算机相关工作的占45.5%,而女生选择的比率只占25.5%。在具体职业规划方向的选择上,可以看到学生表现出个性发展的多样性,以及与其原专科专业的一定相关性。

2实践教学措施的革新思路

2.1多向、分层的设计思想

从上述现状分析中不难发现,当前在校的专接本学生在生源专业、学习动机及对计算机的喜爱程度上,与前几届的专接本学生已有明显不同,目前大多数学生对计算机的喜爱程度一般或不太喜欢,学习本专业的主要目标就是拿张本科文凭,不少学生的程序设计与编程能力欠缺,而学生在追求个性发展上又表现出较明显的多样性。因此,如何在软件工程导论实训课中增强这部分学生的学习兴趣,满足其个性发展需求,同时,又提高其实践技能,使每个学生都能在原有的基础上获得进步,是我们此次教学改革研究的主要问题。

“因材施教”是我国古代教育学家孔子最先提出的,它强调个体的差异教育。何谓因材施教?因材施教就是指教育者根据教育对象的个体差异性和实际情况有针对性地实施教育和教学的一种原则[2]。近年来,不少高校在部分基础课和计算机基础课上尝试进行分层教学[3-5],并取得了较好的效果。受这些观点启发,针对当前在校的专接本学生现状,我们认为在软件工程导论实训课程中可进行多向、分层教学,这样不仅能体现“以人为本”、“因材施教”的教育理念;同时,也可适合生源专业的差异性,满足学生在学习上的个体差别。对此,在实践教学中我们要依据学生的实际学习能力和学习兴趣,确定出不同层次的项目内容和评价标准,从而实行有差别、共同提高的实践教学目标。

2.2多向、分层的教学措施

软件工程导论实训课作为一门实践性课程,着重培养学生独立分析和解决问题的能力,以及团队合作精神。该课程要求学生以小组形式(一般由2~3人组成)开发出具有一定规模的软件系统,小组成员依照开发过程的各个阶段,分别担当项目经理、需求分析师、系统设计师、数据库设计者、程序开发人员与软件测试人员等角色,逐步完成项目计划、需求分析、系统设计、程序编码、软件测试等阶段的工作内容。通过具体的实践工作,使学生体会软件开发的一个完整过程,从而进一步加深理解并运用软件工程中所学到的知识和方法,提升软件开发技能。

依据我院软件工程导论实训课程大纲,该课程实施时,要求学生已具备计算机专业的基础知识,掌握高级程序设计语言、数据结构、数据库原理等知识和技能,具有一定的编程能力,这样才能综合运用于软件工程导论实训课程中。而根据目前现状分析,可以发现当前专接本学生中有超过半数的学生其原专业是以网络、多媒体技术和通信技术为主,其程序设计与编程能力欠缺,但在我们目前的软件工程导论实训课程中,实训项目内容又多以MIS系统开发为主,另有部分网站开发项目。显然,这样的实训内容对上述学生而言有困难,对此,我们需要对现有的实训项目进行革新,初步的措施设计如下。

1) 项目内容多样。

具体措施是:在实训项目内容中,除了保留以往的MIS系统开发和网站开发项目外,还可将多媒体、动画制作、网络、通信等方面的内容引入进来,例如,在项目内容上增加手机游戏编程、PDA软件开发、制作具有故事情节的多媒体动漫等,这样既可使学生依据自身的学习能力和兴趣选择适合的实训项目,又可促进他们自主学习的动力。

2) 项目要求分层。

根据现状分析,当前专接本的学生在学习基础上存在差异,如何在一门实践性课程中,避免出现基础好的学生“吃不饱”、基础差的学生“消化不了”的现象,这需要我们针对实训项目要求从功能、难度上划分出层次。比如,在每一个实训项目要求上,明确指出完成哪些功能可达到基本要求,增加或完善哪些功能细节可达到中等要求,增加、提高或优化什么功能可达到高等要求。同时,在多个实训项目上也要按照难度划分出层次,确定出实训项目可达的分值范围,这样学生就能够依据自身的学习基础和能力选择比较相适应的实训项目,并在项目中力争达到较高的要求,从而使每个学生都能在原有的基础上获得进步与提高。

3) 评分标准分类、统一。

由于实训项目内容考虑了程序设计、多媒体动画、网络通信等多方面,具有一定的多向性,同时软件开发又具有过程阶段性的特点,因此,对于软件工程导论实训课程的评分标准,我们确定的原则是:过程控制、分类统一。具体内涵有下面两点。

(1) 统一开发过程。即无论学生选择何种实训项目,都要运用软件工程的思想,设立需求分析、软件设计、软件实现及软件测试4阶段的工作内容。教师则按照上述过程对学生在各阶段的工作进行评审,阶段成绩的总平均分与考勤成绩一同作为平时成绩的依据,项目验收成绩与实训报告成绩则作为期终成绩的依据。这样,教师就便于实现实训过程的控制,以及评分标准的统一。同时,这样的评分架构也可充分反映软件工程导论实训课程的特点,使学生在实践中真正掌握软件开发的全过程,以及相关方法与技术。

(2) 评分细节分类。即在统一评分架构后,通过对程序设计、多媒体动画、网络通信等多方技术及其软件开发特性的分析,可以看到在需求分析、软件设计与软件测试这3个阶段,其软件开发特性并不因技术的不同而存在很大差别,因此这3个阶段的评分标准可以完全一致。因技术不同而存在较大差别的主要是软件实现和项目验收这两个阶段,对此,需要根据程序设计、多媒体动画、网络通信等技术的各自特性,在评分细节上进行分类标准的制定,确定出各类技术的侧重点,这样才能确保多向、分层实训教学的实施,达到有差别、共同提高的实训目标。

3结语

教育的本质是启迪智慧、开发潜能,大学教育的根本目的在于培养学生掌握一套适合自身的学习方法与主动获取知识的能力,促进学生认识并实现自身价值。软件工程导论实训课作为一门知识综合性强的实践性课程,其涵盖内容丰富,学生通过该实训课程的实际操作,可初步体会到系统分析师、软件项目管理者、计算机程序设计员、网站开发员、软件测试师、数据库系统管理员等多个IT行业职位的工作,便于他们在学习实践中发现自身的兴趣所在,确定未来的发展方向。我们希望通过在软件工程导论实训课程中进行多向、分层的教学改革,帮助学生真正提高职业技能水平,为他们的就业成才创造机遇。

参考文献:

[1] 张海藩. 软件工程导论(第5版)[M]. 北京:清华大学出版社,2008:5.

[2] 李爱梅,陈宁. 和谐教育理念下的因材施教策略[J]. 内蒙古师范大学学报,2009,22(2):43-45.

[3] 周小玲. 以人为本因材施教:关于高职院校数学课实施分层教学的思考[J]. 辽宁行政学院学报,2006,8(6):116-117.

[4] 张欣,杨秀红,吴凯. 大学英语分层教学的调研与思考[J]. 天津农学院学报,2009,16(3):64-65.

[5] 朱嘉贤,李坚. 分层分类教学法在计算机应用基础课程中的应用[J]. 计算机教育,2008(18):129-130.

[6] 毕硕本. 结合课程特点、学习现状与学生意愿的教学实践[J]. 高教论坛,2008(3):19-23.

[7] 彭声泽,李琼. 培养计算机专业学生实践创新能力的探索[J]. 计算机教育,2007(7):60-63.

Investigation on Introduction to Software Engineering Teaching

ZHANG Yu-hong, WANG Jun

(College of Information Beijing Union University, Beijing 100101, China)