软件工程专业课程合集12篇

时间:2023-01-16 19:22:52

软件工程专业课程

软件工程专业课程篇1

【中图分类号】G642 【文献标识码】A 【文章编号】1006-9682(2011)11-0011-01

一、引 言

计算机学院从2005年开始招生软件工程专业的学生,现在软件工程专业学生已达到我院学生总人数的70%以上。“培养学生成为基础扎实、知识面广、实践能力强、综合素质高、能适应信息产业和软件产业需求的系统设计和开发的高级人才”是我院一直以来对软件工程专业学生的根本要求。这里的“基础扎实、知识面广”包括软件和硬件两个方面。特别是现在的软件开发越来越偏向不同的硬件平台做专业开发。而作为系统开发的人员必须掌握一定的硬件知识。对于完全不懂硬件的软件工程学生来讲,就业前景和发展都会受到极大的制约。

但是,我院硬件课程相对较薄弱。具体存在以下问题:①课程的内容深、难且不实用。学生理解计算机硬件较困难,学到的知识停留于空洞的概念,没有得到技能的提高。②技术发展迅速,硬件课程教材和实验设施严重滞后。现在的硬件教学教材还停留在70年代8086/8088阶段。③实验困难。与软件实验不同,硬件实验需要一定规模的计算机设备,同时课程教学上也没有足够的课时进行实验。④培养目标与社会需求存在差距。计算机硬件教学已严重脱离了硬件技术的发展实际,学生学习计算机硬件的基本原理的基础知识,不会开发电子产品,不会做工程项目。⑤学生的兴趣和教学的内容严重脱节。现在学生对于计算机硬件的最新技术比较感兴趣,但是硬件课程讲授的是过时的知识,学生无法在课程中体会到硬件的好处,感觉硬件课程像“鸡肋”。

基于以上分析,对计算机科学学院软件工程专业硬件课程进行改革已迫在眉睫,要培养适应社会要求的软件人才,应该而且必须加强相关硬件课程的建设,这样才能培养出全面的人才。所以,经过两年的教学实践,对于软件工程的学生应该掌握哪些硬件知识、软件工程中的硬件课程如何设置等进行了一定的探索,下面就相关内容进行简单探讨:

二、硬件课程改革的措施

我校软件工程专业硬件系列课程设置了数字逻辑、计算机组成原理、汇编语言、微机接口技术4门课程。这些课程设置虽然相对独立,但所提供的课程内容划分不明确,相互重叠现象较严重。如基本原理和指令系统的内容,在多门课程中都有出现。

所以,硬件课程改革的目标是:将4门硬件课程整合、筛选,组合为1门综合型的硬件课程,达到内容精炼、重点突出、减少重复的要求。目的是将硬件系列课程作为一个整体统一考虑,建立一个完整的、系统的课程内容体系,这对提高教学质量和压缩学时都非常有效。

1.硬件课程教学模块的设置

具体设置以下模块:数字逻辑与数字系统(核心);数据的机器级表示(核心);汇编级机器组织(核心);存储系统组织与结构(核心);接口与通信(核心);功能组织(核心);多处理和其他系统结构(核心);性能提高技术(选修);网络与分布式系统结构(选修)。

2.硬件课程教学内容的设置

教学内容:①计算机概论:计算机概述、运算基础;②数字逻辑基础:卡诺图、组合电路、时序电路;③运算器:半加器、全加器、算术逻辑部件、定点运算器、浮点运算器;④汇编语言程序设计基础:指令系统、汇编语言语法、汇编语言程序设计基础;⑤存储器系统:存储器芯片、存储器层次结构、内存接口技术;⑥控制器:中央处理器的组成和功能、指令流程、硬连线逻辑、微程序控制器;⑦输入/输出技术:I/O接口与端口、输入/输出控制方式、三种简单接VI芯片、中断系统与中断接口、总线;⑧可编程接口芯片及其应用:可编程接口芯片的几个基本概念、可编程并行接口芯片、可编程定时器/计数器、通用同步/异步接收/发送器、模/数转换器、芯片组;⑨实用接口技术:主板、硬盘接口、高速串行总线;⑩计算机系统结构概述:计算机系统结构基本概念、流水线技术、并行计算机系统结构、提高处理器性能的技术。

实验环节:①数字逻辑(时);②汇编语言程序设计上机练习(时);③接口实验6~8个(18~24学时)。

3.课程实施中需要关注的问题

(1)注意学生共性和个性的关系。该课程体系规划是针对软件工程专业的基本要求编写的,反映了软件工程专业对计算机硬件的共性要求,不同学校的软件工程和计算机软件专业还可根据本校培养特点做不同的选择与增删,以适应本校培养的个性要求。

(2)处理好理论讲授和实验的关系。各校根据本校培养的方向和实际条件,组织不同要求的实验教学,可进行单个实验,也可组织小系统实验。

(3)注意基本内容稳定性和新技术、新知识反映的及时性的关系。课程的基本内容(即计算机的基本理论和基本技术)必须稳定,而随着计算机技术迅速发展不断出现的新器件和新部件必须在教学中及时反映,必须考虑如何处理两者关系。

三、结束语

软件工程专业课程篇2

[3] 李慧仙.论高校课程群建设[J].江苏高教, 2006(6):73-75.

[4] 张怡文,贺爱香,王美荣.基于软件课程群的合格课程建设——《C++程序设计》合格课程建设[J].电脑知识与技术, 2012(5): 46.

[5] 肖宿.软件工程课程教学方法初步探索[J].电脑知识与技术, 2012, 8(14).

软件工程专业课程篇3

一、新工科背景下软件工程专业发展

随着云计算、物联网、人工智能、大数据等新兴技术的飞速发展,社会生活、经济和产业结构发生重大变革,从而对高等教育人才培养提出了新的需求。据统计,我国92%的高等学校设置了工科专业。为推动高等教育工科专业教育改革创新,2017年2月18日,教育部组织高等院校召开研讨会,提出了工程人才培养的“新工科”教育理念,达成“复旦共识”。“新工科”主要包括两层含义:在新的传统工科专业中增加没有的新专业;在原有的工科专业中革新教育理念、标准、模式;等等。在此背景下,我国各高等院校积极进行工科专业改革,培养工程实践能力强、创新能力强的高素质复合型“新工科”人才。软件工程是信息时代的核心技术,对各工科专业的发展起到促进作用。在“新工科”背景下,软件工程学科要注重与其他工科专业的交叉融合,从而使传统工科智能化、信息化。因此,在此背景下,该专业需要培养科学基础厚、工程能力强、具有多学科整合能力的复合型软件工程人才。

二、软件工程课程体系建设存在的问题

课程体系建设是培养新型工程技术人才的关键环节,但传统软件工程课程体系建设存在以下问题。(1)课程体系设计不合理:没有做到以学生为中心,软件工程课程的设置缺少培养学生某项能力的课程目标导向,没有建立能力达成与课程体系之间的对应关系[1]。(2)课程体系建设与产业对接不够:信息技术发展迅速,软件工程部分课程设置不能满足企业技术使用的需要,课程内容更新慢,导致毕业生到相关企业必须重新学习新的技术。(3)课程体系建设专业内容局限性:软件工程课程内容设计虽然遵循软件工程逻辑,但没有注重学科的交叉融合,存在课程内容过窄过细的弊端。

三、软件工程课程体系建立的制度和程序

课程体系是专业培养方案的重要内容,按照《哈尔滨理工大学人才培养方案修订与动态调整制度》《哈尔滨理工大学关于修订2010版本科人才培养方案的指导意见》(索引),在收集汇总与人才培养有关信息的基础上,本专业开始修订2015版培养方案的课程体系。修订过程采用动态评价修订方式,课程体系的架构要求以学生为中心,基于OBE理念,根据毕业要求反向设计;能力方面要求既重视学生专业能力培养,又要重视非专业能力培养,要将解决复杂工程问题作为大背景,重视工程实践能力和创新能力的培养;课程体系修订过程不仅要求专业教师参与讨论,同时还要有企业行业专家的参与。2015版培养方案课程体系的修订过程如图1所示。专业课程体系修订过程中,与产业界对接,邀请了东软集团睿道黑龙江分公司、哈尔滨圣邦微电子公司、哈尔滨工业大学、哈尔滨工程大学等多家企(事)业单位及各高校专家对课程体系设置进行评估,各位专家结合当今社会软件工程产业的发展需求,对开设的课程、课程的教学内容、课程目标及教学执行计划提出了宝贵的意见。针对提出的问题,本专业各课程组教师进一步修改完善相关内容,最终形成新版课程体系。本专业根据《哈尔滨理工大学人才培养方案修订与动态调整制度》的规定,每4年对人才培养方案进行一次修订,课程大纲的修订周期与培养方案修订周期一致。一旦形成了培养方案并重构了课程体系,按照《哈尔滨理工大学教学大纲编制规范及要求》,制定新版课程教学大纲。本专业形成了课程内容动态调整机制,根据软件技术发展、行业需求等,对教学内容进行动态调整,从而修订课程教学大纲。新制定或修订的课程大纲由学院教学指导委员会审查,通过后提交教务处备案。本专业课程大纲包括中英文课程基本描述、教学目标、课程目标与毕业要求的对应关系、课程的主要特点、教学方法、知识点与学时分配、案例设计、讲授提示及方法、作业设计、实验设计、考核与成绩评定、课程考核对课程目标的支撑等内容。课程大纲的内容充分体现了对学生能力的培养途径及达到的预期目标,其严格执行可满足课程目标对毕业要求指标点的支撑。

四、建立基于能力培养的软件工程课程体系

(一)建立理论与实际结合的教学计划

本专业课程体系主要包括通识课、专业核心课、专业选修课和实践教学四大类。课程体系执行过程中注重理论联系实际,实践性教学环节贯穿教学的全过程,使学生把本专业理论与解决软件工程实践问题紧密结合。通识课使学生掌握工程设计的共性知识;专业核心课使学生掌握软件工程领域的理论知识和基本方法;专业选修课和实践教学涵盖了软件工程领域的主要知识和技术,培养学生在某一专业方向或应用领域上从事工程实践的能力。

(二)建立课程体系对学生毕业要求的支撑

本专业以毕业要求对知识能力的要求构建课程体系,每门课程都要对毕业要求有明确的支撑。对每门课程确定课程目标、选择课程内容,明确各门课程的目标对毕业要求指标点的支撑关系。本专业重点课程包括“离散数学”“数据结构”“数据库系统”“操作系统”“计算机网络”“编译原理”“软件创新设计”“系统分析与设计”“软件体系结构”“软件质量保证与测试技术”“软件项目管理”和两类实践课程:“课程设计”和“毕业设计”13门重点课程,这些课程支撑了12个毕业要求中的26个指标点,反映了这些重点课程对本专业所需工程知识和能力有较强支撑,也体现了重点课程对毕业要求达成的重要作用。重点课程中的“离散数学”“数据结构”“数据库系统”“操作系统”“计算机网络”“编译原理”属于基础课,这几门课程涵盖了软件工程学科中的数理逻辑、算法分析、语言的形式化表示方法等内容。这些课程教学培养了学生抽象思维和逻辑思维的能力;对复杂软件系统的数据结构和算法流程进行设计的能力;对复杂软件的系统架构和功能结构进行设计的能力,能够使学生运用软件基础知识进行系统的分析和设计。重点课程中的“系统分析与设计”“软件体系结构”“软件质量保证与测试技术”“软件项目管理”属于专业平台课,这几门课程的内容包含了软件过程的基本原理和开发阶段、软件体系结构的设计与实现技术、软件质量评估体系、白盒测试、黑盒测试等具体测试技术,以及软件过程管理、软件配置管理、项目风险管理等内容。课程的学习,使学生运用系统的观点、方法和理论,对软件开发的全过程进行计划、组织、控制和实施,从而培养学生运用软件工程的知识解决实际项目问题的能力。重点课程中的“课程设计”和“毕业设计”是重要的实践性教学环节,通过课程设计和最后的毕业设计的训练,使学生能够综合运用所学的专业理论知识和技术,进行软件系统的分析和设计,即培养学生具备软件工程所需的技术和技能,进一步提升信息获取和职业发展需要的自我更新知识能力,最终使学生具备解决复杂软件工程问题的能力。

(三)加强实践性教学环节

软件工程专业课程篇4

软件专业课程体系建设是深化计算机软件工程课程改革、提高软件工程教学质量必经之路。从协同创新视角而言,计算机软件工程专业的大课程体系是一个协同体系。在实践操作层面,软件工程专业体系的每一个内容模块都会影响软件工程专业大课程体系的建设成效。软件工程专业的大课程体系每个内容模块可以构建相应的创新平台,通过各内容模块的创新与发展,能有目标、有步骤地推进软件工程专业的大课程体系建设。

1国内外研究现状

根据年度毕业生就业数据报告显示,在就职业过程中,计算机软件工程专业的毕业生适应性差,课程与市场需求脱节,实践与理论脱节,工程实践与技术应用脱节等方面,大部分无法满足企业对于毕业生的需求。这是目前计算机软件工程专业教学中亟待解决的问题所在。软件工程专业的人才培养方案是使得培养的学生能够适应社会主义经济社会发展的需要、能够在德智体美劳等五个方面进行全面的发展、能迅速掌握计算机科学与技术等计算机专业方面的基本理论和基本技能,能进行计算机软件设计开发和应用,还会具有较强实践操作动手能力。学生学会软件的设计方法、学会软件的开发方法以及学会软件工程管理方面的基本训练方法[1]。除此之外,学生还会学会软件系统的研究和开发的基本能力,能壮大软件工程师的队伍,还可以在相关的信息产业部门、企事业单位从事软件工程项目的分析、设计、开发和管理工作,为我国软件产业持续、健康、高速的发展贡献微薄力量。

2协同创新体现在软件工程专业课程建设中的两大模块

大学校园为现在的科技社会输送了许多的人才。一个学校的创新能力是与社会的发展息息相关的。在学校里开展协同创新的专业课程建设有助于提高学生的创新能力的培养。目前,学校的软件工程专业的人才培养方案目标就是培养学生的实践动手能力和自主创新能力以及团队合作意识,明确自己的专业发展方向,了解社会对人才的需求,开展实训教学、实训室建设等一系列协同教学模式,教师提升自己的教学水平,努力开发软件工程专业学生的实践动手能力,协同创新以适应社会的发展需求[2]。2.1软件专业课程体系教学软件工程专业的课程教学首先需要了解课程设置问题。课程的设置需要从三个方面来进行设置,分别为职业技能结构、专业知识体系和课程教学模式3个维度。这三个维度是围绕遵循软件工程规范和研究职业技能结构的课程建设思想以及构建以核心技能为主题的3个层次的专业课程体系为中心的。专业知识体系包括基础课程、核心课程、方向课程、技能课程等。开展职业技能是为了让学生多多了解验证性实验课程、熟悉综合性实验项目、掌握课程设计。在上完理论课之后,验证性实验课程的开展会让学生加深理论课所学到知识的理解过程。开展综合性实验项目,是为了让学生的设计能力和综合能力有所提高,学生应用理论课知识,根据实验研究目的和要求,自行设计实验方案。课程设计最能体现团队合作精神,课程设计的开展,是为了培养学生的综合知识运用能力,以及团队意识和创新能力培养的重要手段[3]。教师的课程教学要注重改革教学方法和教学内容。采取多种考核方式,如课程设计答辩、课程设计成果验收、课程案例分析等方法。改革传统的刻板单一的教学方法,缩小教师与学生之间的距离感,激发大家的学习兴趣,共同探讨知识。最终,学生知识的运用能力得到提高,,学习环境和学习氛围得到改善,实践创新能力也会得到了提高。软件工程专业课程建设也可在协同创新平台的建设上去完善软件工程专业人才培养目标,进而去探索软件工程专业协同创新性实践教学体系。从课程实验教学、实训平台建设、创新训练、协同培养等方面来开展软件工程专业多维实践教学模式。其中,课程实验包括了验证性实验、综合设计性实验和课程设计三个方面。实训平台建设包括了建设软件开发实训室、软件研发中心、校外实训基地。创新能力训练包括了开展各类科研训练和学科竞赛[4]。2.2软件更新管理,建设实训基地开展实践教学,软件要更新,实训基地要建设。目的都是为学生搭建实践动手能力的操作平台、为学生创建发挥创造能力的锻炼平台。作业计算机专业的学生,尤其是软件工程专业的学生,首先要攻克程序关。也就是说,学生应该多多编程上机实现。因而在人才培养方案中的重中之重便是要求软件工程专业学生进行项目实训,提高动手实践编程能力。编程是将所学的抽象专业知识具体化。因则,学院要高度重视实训基地的建设,要努力搭建好实训平台,多多培养学生的动手实践操作能力。学校还可以与企业共同合作来搭建实训的基地,引导学生自主创新,发挥自身的潜力和特长。除此之外,我们还应该来共同来树立协同创新观念,规范软件工程专业的管理制度,整合资源,优化资源,建设学院素质教育实践基地和课程的评价机制,以构建利益共享机制[5]。

3协同创新在软件工程专业建设中的应用

现代社会经济的发展要求计算机软件工程专业培养的人才具备全面的综合素质。应用型本科大学,更加应该注重协同创新型人才培养。软件工程专业课程建设协同创新指的是六个方面为一体的协同创新机制,包括"教师与教师协同、教师与学生协同、学生与学生协同、课程与课程协同、课程与实践协同、校内资源与校外资源协同"等。这些机有助于提高学生学习的积极性,有助于激发学生的创造性,更有助于提升教学质[6]。3.1推崇校园文化,实施协同创新训练每个学校都有自己的文化,每个学校的每个专业也都有自己的特色。软件工程专业的学生的课程建设中明确规定学生需要加强创新能力训练。与此同时,学校应该为学生搭建创新平台,积极开展丰富多样的科技创新活动和竞赛活动。比赛的目的是为了培养学生将所学知识运用于工作与生活中,同时也可达到增强学生的创新意识和实践动手能力的要求[7]。3.2拓展学生综合素质,实施协同创新计划学校可以邀请企业来校参与学校的专业人才培养方案制定和实施。共建校企合作机制,搭建学校与企业合作的应用实训创新平台,协同培养具有实践能力、创新能力和团队精神的应用型人才。软件工程专业人才培养计划中明确了“工学结合、校企合作”。实则是要求学校要与企业共同来制订计划,共同来建立相关软件专业的实训室与开发平台,成立研究开发机构与部门,共同来为社会培养可塑人才。因此,企业必须和学校达成共识,深度开展人才交流与技术交流,充分利用工作环境和培训平台来为学生的创新性培养创造条件,形成协同局面。学校可以聘请企业的软件工程师来为学生授课,讲解在实际工作中企业中所遇到的问题,如软件开发的案例、软件的开发方法和开发过程。讲授案例的同时还可以模拟企业是如何来解决在实际开发过程中所遇到的各种问题的[8]。学校也要全面性了解并且掌握目前市场上对软件开发人才的需求现状,据此来安排专业课程,按需培养学生,为企事业单位输送软件的开发人才,为积极推动社会经济的不断向前发展贡献微薄力量。最终,企业和学校就会实现双方互利共赢的双赢局面。通过学校的培养,企业的参与,学生大学的学业完成后,走出校门走向社会后也不再迷茫[9]。

软件工程专业课程篇5

摘 要:针对国家和军队信息化建设对软件工程人才的迫切需求,以及软件工程专业课程面临的知识与工具变化快、项目实践要求高、强调协同与合作等特征为目前在线课程模式和平台带来的挑战性问题,分析研究2014版软件工程知识体(SWEBOK)对在线课程建设的影响,分别针对大规模公开在线课程(MOOC)和小规模私有在线课程(SPOC)的建设提出一系列建设思路与方案。

http://

关键词 :软件工程;在线课程;软件工程知识体;MOOC;SPOC

第一作者简介:董威,男,教授,研究方向为可信软件工程技术、软件分析与验证,wdong@nudt.edu.cn。

0 引 言

随着软件在各种领域迅速发展,软件的类型、规模、复杂度都急剧增长,在有限的时间和成本约束下开发出高质量的软件被人们高度关注,因此提高各类信息化系统开发人员的软件工程能力越来越受到普通和军队高等院校的普遍重视。然而,由于软件从业人员所需知识更新快以及大量软件开发人员接受软件工程教育的经历不足,仅靠传统的高校课堂内授课方式,难以满足社会和军队信息化快速发展对软件工程人员的需求。研究如何通过建设软件工程专业在线课程加快软件工程人才的培养、优化软件工程课程资源的配置,对于我们国家和军队未来的发展具有重要价值与深远意义。

1 软件工程教育的发展与主要问题

软件工程指将系统的、规范的、可量化的方法应用于软件的开发、运行和维护的过程[1]。ACM和IEEE/CS成立联合工作组,在2004年制定了计算教程软件工程卷CCSE (computing curriculum-software engineering)[2],并把软件工程作为计算学科下与计算机科学、信息技术、信息系统、计算机工程等并列的学科。2014年,ACM和IEEE/CS推出软件工程知识体SWEBOK 3.0版[3],知识领域与2004年版SWEBOK相比从10个增加到15个。此外,由ACM和IEEE主导,国际一些著名高校和企业的专家针对软件工程硕士教育制定《软件工程研究生学位教程指南》(GSwE2009)[4],描述软件工程硕士需掌握的核心知识体系和相应教程。我国从2001年开始建立示范性软件学院,并于2006年推出《计算机科学与技术本科专业规范(软件工程)》[5]。2011年,软件工程专业经国务院批准增列为一级学科。

软件工程师目前在国内外都是最具吸引力的职业之一,如美国著名的就业网站CareerCast在2012年进行调查,从收入、工作环境、发展前景等因素评选出的十大最佳职业中,软件工程师名列第一[6];在我国近来对本科毕业生的职业调查中,软件工程师的收入也一直名列前茅。尽管近年来软件工程教育有了很大发展,但国内外的软件工程教育还存在诸多挑战性问题,主要包括以下几方面。

(1)现有的软件工程课程从学时数、教学安排等方面都难以达到实际职业对软件工程深度、广度和实践能力的要求,相关培养方案的制订较少考虑企业的实际需要,针对性不强。

(2)尽管聘请企业中有丰富经验的软件工程师授课是一条有效措施,但整体来看,软件工程授课老师普遍缺乏软件开发实际经验,甚至很多都未从事软件工程领域的研究工作。

(3)软件工程目前存在众多不同的开发方法学,它们各有特点和优势,并且软件工程相关技术发展迅速,新的方法不断出现,这使得教学内容的选择和准备变得非常困难。

(4)当前国内外软件工程教材多是对众多方法和技术的描述,对具体技术的深入程度不足且无法适应软件技术、工具的快速变化,对学生进行实际项目开发帮助有限。

(5)企业的软件开发中使用了众多的软件工具,并且对于重要领域的软件开发,很多企业采用商业化工具。在教学过程中,这些昂贵的、专用的商业工具较为缺乏,并且在有限课程时间内学生难以接触到众多不同类型的软件开发工具。

(6)软件工程教育资源非常不平衡,在教育和经济发达地区,聘请优秀软件工程师进行授课、使学生参与到企业的实际开发中是可行的,但对于大量其他地区高校就难以实施。

(7)软件工程技术和工具发展迅速,很多软件从业人员从程序员开始起步,未接受过系统的软件工程教育或所受教育很快过时,因此需要持续性的、具有一定灵活性的优质教育资源适应这种情况。

由软件工程教育面临的以上挑战,我们可以看出传统的高校课堂内软件工程教育虽然还是必不可少的,但是必须找到新的软件工程专业课程教学方式,以满足其知识变化快、人员基数大、持续时间长、资源不平衡等特征。通过互联网在线课程的形式实施软件工程专业课程的教学,无疑是应对上述问题一种有效、可行的方式。

2 软件工程知识体对在线课程模式的影响

软件工程可以作为一门单独的课程进行讲授,而软件工程专业一般包含一系列的课程,如需求工程、软件设计与体系结构、软件构造、软件测试与验证等。软件工程专业课程如果作为在线课程进行建设会遇到众多问题,其中主要包括对实践环节的要求非常高、追求在真实平台中解决有一定规模的问题、需要团队合作以及项目管理等,而目前在线课程的教学方式和平台在这些方面有一定欠缺,需要我们进行深入的研究以提供解决方案。

软件工程课程应该覆盖一定的知识领域,表1对SWEBOK 3.0版中包含的15个知识领域和子域进行初步分析,判断其是否适合于目前一般性的MOOC在线课程教育模式和平台。表1中第2列的知识子域适合目前在线课程教学方式,第3列中的知识子域需要对当前在线课程模式进行适当改进才能适用,第4列中的知识子域则需要对当前在线课程模式和平台进行较大改进。对于不适合(需对模式和平台进行改进)的知识子域,笔者在第3节中将研究讨论应对方式和措施。

表1中最后两个知识领域计算基础和数学基础作为软件工程理论基础的一部分,由于一般放入与软件工程课程相独立的课程中讲授,如离散数学、编译原理、操作系统、数据库原理等,其相关课程也都有较为系统、完善的体系,因此这里我们不进行特别考虑。

3 软件工程专业在线课程的建设

目前已经出现一些软件工程的在线课程,如UC Berkeley的软件工程MOOC课程于2012年在Coursera、后来在EdX上线,并在此基础上发展、延伸出多个小规模私有在线课程(small private online courses, SPOC)[7]。国防科技大学也已有软件工程相关课程在内部网络上线,供部队和军队院校一定范围内的人员在线学习。

3.1 软件工程专业MOOC课程建设

从对相关知识领域的分析可以看到,目前一般性MOOC授课方式与平台难以适应的软件工程知识子域主要包含以下特点。

1)难以完全通过讲授使学生接受,如需要动手进行实践才能深入体会的技术以及与经验密切相关的过程、管理、度量等内容。

2)内容变化频繁的知识如一些软件开发技术、工具等总在持续发生变化或出现新的版本,课程每次新开时都可能需要调整。

3)需要团队式的协作与交流完成内容,如版本控制、需求获取、协同开发、团队交流等,仅靠讲授或个人作业难以达到效果。

4)软件工程教育强调具有一定规模和复杂性的项目实践,这对于教学辅导人员的数量和指导能力要求较高,不仅仅是普通答疑能完成的。

5)对于很多技术和实践来说,其结果是开放式的,软件设计、实现、测试、维护等任务一般不存在唯一结果,这给作业评价和成绩评定带来困难。

面向上述特点,根据目前国内外已有的相关实践、效果以及已经实施的建设情况,我们总结出一些供参考的解决方案。

(1)制订MOOC教学计划时应遵循持续改进的原则。传统课堂教学讲究制订教学计划时一次到位,但由于软件工程内容变化快,因此分解教学内容、视频、作业时应该使其能够适应快速变化,不要期望一次建设就大功告成。此外,在线课程需要了解大量学生的反馈意见和教学效果,这也需要不断的改进。如果可行,可采用自行编著的电子教材和 http://

参考文献,使得每次开课时学生教材也可以尽快进行相应修订。

(2)在线课程平台与软件协同开发环境的有机融合。对于需要协同、交流才能完成的内容,实际由于许多国际化企业的软件研发人员遍布全球,因此已有相应的平台(包括开源软件工具、开源社区等)支持地域分布的人员进行协同开发。教师可选择所需的协同开发环境,与软件工程在线课程平台集成在一起,提高对团队和协同任务的支持。

(3)对课程进行分而治之的划分。教师可以把课程按照其内容是否适合在线授课划分为一些小的子课程,每个子课程更偏重于适合或不适合(如理论内容和实践教学内容分到不同子课程),以减少整个课程设计的复杂性。在线课程偏重适合讲授的子课程,不适合已有在线授课模式的内容,可以通过其他方式实施(如其他高校单独开设实践课程、采用适合的平台或投入更多教辅人员等)。

(4)采用新的教辅人员委托模式。由于软件工程课程的实践性强,对教辅人员数量和质量要求高,因此仅靠开课学校的课程组难以完成。教师在实践中可以考虑招募在高校内或通过在线课程已经完成课程学习、成绩优秀的志愿者,通过一定的激励或者提高影响力等方式激发他们的热情。事实上,从开源软件的蓬勃发展以及Berkeley软件工程MOOC课程的实际效果看,该方式完全可行、有效。

(5)加强自动化结果评估和成绩评定系统的开发与应用。教师可一方面采用各种自动化软件工具,如通过测试驱动的开发工具、软件编码规范检查工具、基于服务的方式等对课程作业进行自动评估;另一方面可以让学生参与到开源软件社区的开发活动中,通过开源项目对其完成工作和贡献采纳情况等进行评价。

软件工程专业MOOC课程建设面临的问题众多,需要教师通过具体实践逐步研究和完善其在线课程的建设过程。

3.2 软件工程专业SPOC课程建设

软件工程在实际实施中所面向的领域背景非常重要,而不同领域的软件系统各有特点,一个软件企业一般有其针对性的领域,采用的软件工程过程、方法、工具、管理等都有各自的特点。因此,非在校学生的软件工程在线课程学习者可能在一般性的理论之外,希望学习更多对其背景有促进作用的知识。再者,MOOC课程学习者中有相当一部分本身就是高校教师,他们会借用MOOC课程的内容,然后在自己的课程中进行一定改造并增加项目实习等内容,形成适合其学生学习的课程。此外,国防领域未来基于信息系统的体系中,软件工程人才将会包括科研人员、技术开发人员、管理人员、保障人员、作战和指挥人员等不同类型[8],还会针对战机控制、舰船控制、车辆控制、指挥自动化等不同应用背景,对软件工程知识的要求都有不同。上述情况都要求能够在MOOC课程的基础上进一步建设小规模私有在线课程(SPOC)。UC Berkeley就在其软件工程MOOC课程基础上发展了多个SPOC课程,包括在本校以及在其他高校中开设的课程。

对于建设软件工程SPOC课程,教师可以遵循以下一些原则和策略。

(1)对于公共的知识讲授,尽可能利用MOOC课程完成,以减少SPOC课程的建设工作量,充分利用优质资源,提高课程的复用程度。

(2)加强每门SPOC课程的针对性,如针对具体学校学生的培养目标或针对具体领域背景选择相应的软件工程技术、工具、标准规范进行讲授。

(3)加强课程实践和项目开发环节的建设,这是MOOC课程本身具有的不足之一,但在SPOC课程中可以进行有效的弥补。

(4)课程成绩的评定可以把MOOC和SPOC课程的学习情况结合起来考虑,对学习者对软件工程共性理论和特定目标知识的掌握情况进行综合评价。

在未来在线课程发展中,软件工程专业MOOC课程可能并不一定很多,由能提供优质师资资源的机构开设,但针对具体背景领域的SPOC课程可以更多,因为毕竟软件作为现代社会无所不在的组成,软件工程面向的领域众多,都需要有针对性地培养软件工程人才。

4 结 语

软件工程专业课程具有变化快、对实践要求高、需要团队协作等特征,这些使建设软件工程专业在线课程具有更高的难度。MOOC课程和SPOC课程都是未来软件工程专业在线课程所需的模式,尽管已经有一些相关实践,但是如何建立较为系统、各门课程完善、质量高的软件工程专业在线课程,还需要更多的研究与实践。目前对SWEBOK中知识子域对在线课程建设影响的分析还较为初步,下一步还需要更具体地针对所包含的知识点研究如何通过在线课程进行讲授。此外,软件工程专业在线课程应该与软件协同开发环境有机结合,这还需要我们进一步进行研究,针对知识点要求形成科学的集成平台体系框架并进行建设。

http://

参考文献:

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

[2] IEEE Computer Society. Software engineering 2004[EB/OL]./sites.computer.org/ccse/.

[3] IEEE Computer Society. Swebok V3[EB/OL]./www.computer.org/web/swebok/v3.

[4] Graduate Software Engineering 2009(GSwE2009). Graduate software engineering 2009[EB/OL]./www.gswe2009.org.

[5] 教育部高等学校计算机科学与技术教学指导委员会. 高等学校计算机科学与技术专业发展战略研究报告暨专业规范[M]. 北京: 高等教育出版社, 2006: 248-330.

[6] Brienza V. The 10 best jobs of 2012[EB/OL]./www.careercast.com/jobs-rated/10-best-jobs-2012.

软件工程专业课程篇6

2软件工程专业课程体系理论设计

以行业、企业实际对人才需求为引导,软件工程专业毕业生真实就业情况调查为依托,地方高校软件工程专业课程一线教师众多教学研究成果为参考,专业教师在企业挂职学习经验体会为借鉴,围绕地方高校软件工程专业课程教学体系存在事实问题,来对地方本科院校软件工程课程体系建设进行设计建设。设计建议如下:

2.1学科建设

以专业相关的行业、企业人才的实际需求和当前使用的主流开发工具或技术为依托来不断调整专业架构,优化专业人才培养方案,完善人才培养目标,对专业进行合理定位,系统性调整教学方式方法,从而实现以行业、企业对人才的需求来引导地方本科院校软件工程专业的学科建设。

2.2校企办学

学科建设以输出满足行业、企业需求合格的应用型人才为目标,通过校企联合办学,对学生进行定向培养、训练,专业课程体系嵌入资格认证课程模块,实训课程以企业开发项目方式贯穿培养环节以达到提高专业人才的实际动手能力。

2.3师资建设

采取教师企业挂职锻炼参与企业项目研究开发,共同承接开发项目等方式锻炼提高师资队伍实战能力。教师在企业实战经历和相关经验成果带入到日常的教学环节,不仅能促进专业教师学术、科研能力提升,还能够最大程度丰富、提高专业学科建设[2]。

3三层结构课程体系建设

软件工程专业课程体系建设以工程教育理念为指导,项目实战为背景,社会需求为导向,提高学生专业素养、理论知识体系以及实践能力为宗旨。学生完整地专业培养环节结束后具有程序设计,系统分析,软件设计、开发,项目管理,网络和移动通信终端应用开发能力。课程体系模式结构如图1所示。

3.1基础理论由公共基础课程和专业基础课程构成:①公共基础课程主要涵括地方高校各现行必修公共课程,②专业基础课程是专业课程坚实的理论基础,专业必修前导课程,是对软件工程专业基本“计算”概念理解、掌握,问题计算求解能力和构建中小规模软件系统综合能力的初步培养。

3.2专业理论以市场对人才需求为导向、行业最新前沿技术为引领、专业骨干课程为核心、专业素质全面拓展和综合素养整体提高为目标来对专业主干课程进行建设[3],主要包括以下几类课程:

3.2.1面向行业认知能力培养课程主要包括对行业、企业认知学习以及计算机专业知识学习等专业认知方面课程。一般包括行业相关法律、法规,从业道德规范,行为准则,经营管理常规模式,软件项目开发流程等认知类课程。

3.2.2计算机编程与算法设计能力课程算法设计类课程主要包含离散数学、数据结构、算法分析以及数据结构课程设计等方面的课程;编程课程主要包含C语言程序设计、面向对象程序设计等传统程序设计语言课,还包括当下企业应用最为广泛的,最流行的技术前沿课程。

3.2.3软件工程专业系统分析课程系统分析能力课程主要包括操作系统、计算机网络,软件工程、数据库原理等系统类课程。

3.2.4系统实现与集成能力课程系统实现与集成能力方面课程主要包括网络编程、移动互联开发编程、编译技术、软件开发以及软件测试等课程[4]。

3.3实践以校企联合培养为手段,一至两学年时长为周期,贴近企业实际需求为指导,综合技能全面提高为目的来对专业学生进行实践能力培养,方式如下:

3.3.1校企共同建设实训课程以项目介入为主线,企业实际效益项目和高校产学研项目为实际授课主体。引进企业优秀项目人才或具有企业项目实战经验的教师来对专业人才展开课程实训,全面提高学生专业技能水平,综合素养。校企共同培养模式不但能够提高学生工程实践能力,知识转化生产实际速度,同时反向激发学生探究、学习知识的热情,最终提高就业竞争力[5]。

3.3.2合作企业岗位实训针对毕业学生和部分专业老师做岗位综合实训:①学生岗位实训:让学生真实参与企业项目实战,充分消化吸收前期所学理论和技能知识,进一步提升学生综合能力,为就业夯实基础。②老师岗位实训:专业老师参与企业项目研发,并将企业项目开发经验和技术进行梳理总结、编纂成册,运用到实际日常教学环节,促进教学质量提高,有利于缩短理论转化实际成果周期。

3.3.3校企合作运用项目方式指导学生做毕业论文(设计)毕业论文(设计)是对学生的专业知识掌握程度与提升高度的一次全面的考核,同时也是培养学生综合运用所学知识,独立地分析问题和解决问题的能力的一次全面的实训。但是传统的教育模式导致大多地方院校工科专业学生毕业论文流于形式,与实际脱节。通过与企业合作运用项目方式指导学生做毕业论文(设计)弱化学生对毕业论文(设计)的抵触情绪,可以进一步让学生了解行业企业实际运作规范及最新技术,进一步加强对学生实践和技能能力的培养,为毕业后从容就业夯实基础。

软件工程专业课程篇7

在信管专业中,软件工程主要指导学生进行管理信息系统的分析、设计、实施及维护,侧重系统的研发和维护的原理和方法。管理信息系统课程则是让学生全面认识管理信息系统,涉及的知识面广,但内容浅显。两者在系统开发和维护部分的内容上存在交集,部分院校因此未将软件工程加入专业培养计划。另外一些院校为强化学生的系统开发能力,将“软件工程”与“信息系统分析与设计”课程同时开设,出现课程重复的现象。这些都是软件工程定位不清晰的结果。

2.课程时间安排不合理

信管专业中的软件工程与诸多信管专业基础课程联系密切,需要较强的专业基础知识,但目前部分院校的课程体系将软件工程与管理学、程序设计等专业基础课程安排在同一学期显然不合适,教学安排缺乏层次性。

3.师资力量存短板

信管专业教授软件工程的教师几乎都毕业于计算机专业,不仅缺乏管理学相关知识且在教学思想上沿袭了理工科的风格,偏重程序研发流程,忽略管理信息系统开发过程的多学科交叉特点,导致学生把管理信息系统等同于一般的计算机软件,使得学生对管理信息系统的内涵认识不足,甚至产生误解。此外,大多数教师并没有实际参与大型管理信息系统项目的开发,缺乏实际的研发经验,故难以全面、深入地介绍管理信息系统研发过程和特点。

4.适用教材缺乏

一方面现有信管专业软件工程的教材大都沿用自计算机专业,着重从理论方面介绍各种经典分析和设计方法,所选案例也缺乏与管理学等其他相关学科结合,且很少结合最新的设计方法和工具进行介绍。这种教材选择方式难以和信管专业内的其他课程有机结合,自身形成知识孤岛,无法体现信管专业管理为主、计算机为辅,多学科交叉的特点,同时也不能反映信管专业与计算机专业的本质区别。

5.教学方法古板,实践不足

软件工程的教学内容多为以往研发经验的概括和总结,知识点多以各种概念、原则、规则和要点等形式出现,缺乏完整案例,内容抽象晦涩,教师多采用单向注入和强行灌输的教学方式,不利学生的理解和应用。此外,信管专业课程体系庞杂,无法为软件工程分配足够的实践课时。其他系统开发相关课程,或因项目过小而无需使用软件工程思想,或因课时限制而侧重系统的实现和测试方面。这些问题导致软件工程思想难以完全付诸实践,使学生缺乏系统性和全面性的训练。

6.学生评价机制不合理

成绩评定是评估学生学习效果的重要依据,也是反映教师教学能力的参考指标。本校统一采用“平时表现+期末笔试”的考核机制,比例为3:7。其中,平时表现包含期中考试成绩、日常考勤、课后作业和实验成绩等。这种成绩评定机制存在诸多问题:(1)期末考试比例过大,不能全面客观反映学生的表现。(2)闭卷理论笔试不利于扩展学生的知识面,难以考查知识的实际综合运用能力。(3)笔试为主的考核机制容易诱使学生产生应试教育的倾向。

二、《软件工程》课程教学的若干对策

针对信管专业软件工程课程的问题,结合本校教师的教学经验提出相关的应对措施。

1.明晰教学定位

信管专业的定位是计算机和管理的交叉学科,管理信息系统是信管专业关系最为密切的信息系统。软件工程在信管专业中的主要任务是为了培养学生使用软件工程的思想分析、设计和开发管理信息系统。鉴于学生培养目标的不同,信息系统开发能力并非所有学生所必须掌握的。因此,软件工程在信管专业中的定位不能搞一刀切,必须因方向而异。系统开发方向的学生应把软件工程作为专业必修课,而信息管理方向的学生则作为专业选修课选修。

2.优化课程安排

软件工程的目的是指导管理信息系统开发,学生选修前需具备基本的编程能力和数据库知识。而且,管理信息系统的开发需要结合管理、会计和运筹等课程的相关知识。因此,软件工程的安排应置于数据结构、数据库、程序设计、管理学和运筹学等课程之后,信息系统课程设计之前。在课程设置上,软件工程与面向对象程序设计、管理信息系统、信息系统课程设计等相关课程组成课程群,相关任课教师以团队方式备课。每学期期初和期末,同一课程群的教师互相交流教学效果和存在的问题,根据学生的情况各自调整后序教学内容,有针对性地开展教学。课程群方式可以有效加强课程间的平滑衔接,强化教师间的团队合作,实现知识的有机结合,提高课程安排的层次性与合理性。

3.建立合理的教师培养机制

教师培养采用“走出去,引进来”的方针,加强与兄弟院校和相关企业的交流。围绕构建应用型本科院校的目标,引入高职院校中的“双师型”培养机制,将科学研究和实际应用相结合,组织软件工程及相关课程组构成的开发团队,积极参与校内外的合作项目的研发,如校内各部门的信息系统开发项目、校外实习基地的合作开发项目、科研项目的系统实现等。在教学任务之外,学校应鼓励任课教师定期到实习单位参加项目见习,甚至直接参与项目研发,提高教师的研发能力,更新知识储备。同时,教师的考核体系应根据教师的授课内容进行分类评价,软件工程等应用性课程的考核机制应加大对实践的要求,鼓励科研与知识应用的结合,真正实现应用型培养的发展方向

4.改进教学方法,强化实践教学

根据软件工程理论和实践要求都较强的特点,采用案例驱动的方法开展教学,将理论知识融入到具体案例当中,通过“学中练、练中学”的模式将抽象的知识通过具体的项目展示,方便理解和消化吸收。此外,单纯的理论知识学习是不够的,需要通过实际的项目训练进行提高,进而达到巩固所学知识,灵活应用的目的。项目训练以学生分组的方式进行,在学习的同时培养学生的团队意识和协作精神。项目类型以中型管理信息系统为宜,来源可出自教师自身的项目或者协作单位项目中的子系统,也可以学生提出由任课教师审核通过。项目结束时,学生必须能够提交可正确执行的程序,同时提交相关的系统开发文档,文档要求严格按照国标GB-T8567-2006编写。在实践过程中,教师应以项目管理人的角色监督项目的进度,及时发现并纠正存在的错误,同时回答学生在实践中遇到问题。这种方式既让学生清楚了解课程开设的目的和意义,也强化学生对所学知识的理解和应用。

5.完善教学资源

信管专业软件工程课程的教学资源(如教材、辅导资料、教学案例等)的安排和设计应按本专业的需求进行改进和完善。首先,调整教材内容的编排。软件开发技术知识点需要与时俱进,已被淘汰的知识点应予以删除或以概述的形式介绍,同时增加近年出现的新技术和新方法,并对其中的典型方法进行重点介绍,并配上相应的案例进行讲解。其次,修改教材内容的编写方式。采用案例驱动的教学模式,将以往逐条罗列的抽象理论融合到具体的教学案例中,让学生通过分析案例提取出知识要点。该方法既有利于对枯燥知识的理解和吸收,也为进一步的知识应用提供极好的参考素材。第三,修改配套案例。案例选择中等规模的管理信息系统的完整研发过程较为合适。案例规模不宜过大的案例,否则不适宜初学者学习;规模太小则细节不足。案例可以取自教学参考书,也可以是教师自身的项目研发经历,还可以源自合作单位的项目。第四,建立信息化教学实验平台。通过云计算等先进技术构建的软件工程教学实验平台,师生能够无时间、地域限制地实现教学课件和视频等资源的共享、作业和课程实践的实时监控和学生疑难问题的解答,极大方便了师生间的交流,对提高教学效果具有重大现实意义。

6.改革学生评价机制

课程成绩对学生在课程学习过程中的表现和效果的综合评价,对学生学习起指向性作用,必须秉承公正、全面、客观的态度。第一、全面考虑学生评价要素。在教学过程中,除考勤情况、期中成绩、期末成绩等常规项目外,学生的课堂表现、作业完成质量和上交情况,实践项目的完成情况等也是衡量学生的学习成绩的重要依据。因此,软件工程的考核体系可综合为以下三方面:(1)平时表现,包含出勤情况、课堂提问和作业完成情况等;(2)实践成绩,包含课程设计和实验的质量和文档的编写情况;(3)卷面成绩,包含期中和期末考试的笔试成绩。第二、合理分配评价要素的比重。评价要素的比重定量反映了课程各教学环节的重要性,能够对学生的学习起导向作用。为了突出软件工程以“理论为基础,重在实践应用”的特点,实践成绩的比重应与卷面成绩相当,也可以考虑使用课程实践成绩代替期末笔试。第三、客观评定评价要素。学生的评价要素通常分为定性和定量两种。其中,各种考试成绩和作业成绩、考勤情况等定量评价易于给定。相对而言,平时表现等定性指标需教师主观评定,易受到教师个人情感的影响,需要教师秉持公正客观的态度。对学生的主观评价一般以良为基础,表现突出的学生可给予优,存在迟到早退、作业应付或缺交、课堂纪律不佳等情况的学生则酌情给予中或差的评价。第四、丰富考核形式。除传统的闭卷笔试外,软件工程的考核形式还可采用以下几种:(1)课程论文:以个人为单位,就管理信息系统研发和管理中的某个环节提出自己的观点并展开论述,完成3000-5000字的课程论文。(2)课程设计:参考教学案例,采用软件工程思想,以团队方式开发一个管理信息系统,完成从需求分析到设计实现的完整过程,并编写相关软件文档。(3)开卷笔试:以论述和应用题为主要题型,主要考察学生解决系统分析、设计、测试和维护等环节中具体问题的能力,如按要求绘制程序流程图、软件结构图和系统流程图等分析设计图表,设计测试用例等。学生允许携带一定数量的参考资料,但不允许携带电子设备。任课教师可根据教学目标和学时安排综合使用上述方式。总体而言,以课程论文或课程设计代替期末笔试进行考核更符合学以致用的教学目标。

软件工程专业课程篇8

1高等院校应用型人才培养模式研究

在互联网飞速发展的今天,开发实用性强的软件呈现爆炸式的增长趋势,软件人才的培养需求在不断增加,传统的软件专业技术人才的培养模式过于强调对计算机科学知识体系和计算机领域理论的要求,对于人才技能的培养是否能更好满足现代化社会发展的用人需求的分析研究不够。高等院校必须打破软件工程专业人才培养的常规模式,按照应用型软件人才的知识需求、学习需求、实践需求、个人能力发展需求进行专业人才培养模式的探索和改革实践,在实践中不断完善、优化专业人才的培养模式。高等院校应用型专业人才的培养必须要能够促进地方经济的发展、满足企业生产的需求,通过对学生实践应用技能的培养和提升,让学生能够综合运用知识、培养学生的创新能力。按照“企业环境、双导师制、工学结合、创新项目驱动”为主要原则,构建将学校学习与企业生产实践融为一体、将学生的学习环境与工作环境融为一体、将学校教师与企业工程专业融为一体、将教育专业培训和学生职业培训融为一体的产教有机融合的专业人才培养模式。高等院校应用型人才的培养模式要以区域性社会经济发展为主,以应用型专业技术人才为培养目标,加强学校与企业之间、学校与政府之间、学校与学校之间形成紧密的合作关系,以高等院校的专业为单元体,实现学校与社会相应企业之间的无缝对接。高等院校的应用型专业技术人才培养的专业设置、招生计划安排、专业技术人才培养方案的拟定、教学计划的拟定及其实施等工作都要广泛征求合作办学企业的意见和建议。高校应用型人才培养必须充分发挥高等院校和企业的优势资源,不断拓展人才的服务能力,将校企合作育人的科技成果转化为促进地方经济建设的支持和保障,积极拓展学生的社会实践活动和专业实践平台,为应用型专业技术人才的培养提供优质条件。

2高等院校应用型软件工程专业技术人才培养模式研究

2.1优化应用型软件工程课程体系

2.1.1专业课程体系设置高等院校的应用型专业技术人才的培养模式可以采用“3+1”的形式,这种培养模式是学生前三年在学校进行文化课程的学习与实践,最后一年到企业进行实习实训。在这种人才培养模式下,如何进行专业课程体系建设,如何在学校、企业、政府与培训机构之间架构起有效的沟通桥梁,如何建立校企联合培养的实践教学模式,都是高等院校需要解决的问题。高等院校的软件工程专业本身就是以广泛应用于工程建设为主要特征的专业,要想把实践教学渗透到课程体系的每一个模块中,必须让每门专业课程都为应用型人才的培养进行服务。基于这个原则,高等院校可以针对课程体系建设进行优化调整,第一学年的第一个学期可以开设专业的引导课,第二学期可以开设基础性专业课程;第二学年的第一个学期开设强化型专业课程,第二学期开设基础性工程课程;第三学年开设专业核心课及专业方向课程;第四学年安排学生进行校内、校外实习实训。将学生学习的四个学年度根据发展的需求进行合理调整,将课程设计、软件项目开发、校内及校外的专业技能实习实训、综合技能训练、深入企业实训等内容都纳入到课程体系建设中。软件工程专业的课程体系建设必须要将企业的文化、生产等内容纳入到课程体系建设中,如第一学年可以开设职业教育课、企业文化课等,激发学生的学习兴趣,提高教育教学的质量和效果。2.1.2课程资源的开发高等院校专业技术人才培养的质量是通过师资队伍的整体水平、课程体系建设和课程教学质量等方面综合反映出来的。高等院校的专业技术人才培养必须要通过课程教学来实现,课程体系建设的优化与课程资源的有效开发是民办高等教育学校实现应用型转型发展的关键所在。目前,很多民办高等院校都十分重视课程体系的转型建设,但是效果并不明显。课程资源的有效开发是课程体系转型发展建设的关键要素,它不仅能够满足学生对知识和技能的学习需要,同时还能有效促进教师的专业成长。课程资源的开发不能局限在教科书的编写上,更不能局限在学校内部资源的开发上,课程资源的开发建设必须包括基本资源和拓展性资源两个方面,它是指学生在学习和生活中,涉及对学生成长有利的一切课程实施内容,以促进教育目的的达成。课程资源的形成是课程及教学内容最直接的素材,其包括课程的教学思路、课程教学的内容与方法、教学过程所需要的基本资源等。民办高等院校的课程资源开发必须着力于学生的创新意识培养和学生的实践应用能力的培养与提升。在课程资源的开发过程中必须要以优化工作过程为体系的应用型课程资源开发为切入点,将软件工程作为专业课程的核心重点,建立并完善课程资源的项目开发标准,不断改革与创新教学方法和教学模式,创新考核评价方式,通过示范、引领作用全面助推课程体系的转型建设,构建科学的应用型专业人才培养体系,打造高素质的专业技术人才培养模式。

2.2课程评价方式的改革创新

高等院校的软件工程专业课程评价体系必须要建构多元化的课程评价方法,将期末的一次性考核变为学生学习过程的多次评价,实行分段教学、多次考核、多样考核的课程评价体系,确保课程评价体系更加符合学生的成长需求。在日常教育教学中,可将学生的分组研讨、实习实训、技能考核、实战演练等学习、实践过程纳入学生日常学习考核中,综合每一阶段的考核评价结果作为学年或年度该学生的学习质量评价成绩,尽可能减少理论性的试卷考试,尤其是理论性的闭卷考试科目,将闭卷考试与开卷考试相结合,使学生的理论与实践技能操作相结合,重点考核学生的综合实践能力和应用创新能力。

2.3课程教学模式的改革研究

教师在教学中,要将原有的多门类软件理论课程进行教学资源的重组,将系统化、工程化的制作案例作为教学的主体思路。重点强调各科目理论课程的有效衔接,将理论知识教学融入到工程的开发与实践中,实现理论知识与实践应用相结合、相协调发展。软件工程的课程设计、软件项目的开发、校内及校外的专业技能训练、学生的综合技能实习训练等科目内容要作为学生学习课程的主线,通过深入分析课程教学项目的实际需求,进行创新设计并应用到实际教学中,让学生在学习过程中将理论知识运用到实践操作中,并能在实践操作中深化理解理论知识,更好地促进学生知识、能力与素养间的协调发展。

3结语

为了促进民办高等院校的办学质量和品质,保证民办高等院校能够走健康、可持续发展之路,民办学校的软件工程专业必须紧紧把握专业自身的创新发展优势,根据现代化社会的发展需求,创新专业人才的培养模式,建立专业的以培养学生能力为中心的专业人才培养目标,改革课程体系,充分调动师生教与学的积极性和自主性,切实提升课堂的教学质量,不断提升学生对问题的独立思考、分析、解决问题的能力,适应社会和企业对专业人才的需求。

软件工程专业课程篇9

1研究背景

目前,很多高校软件工程专业人才培养片面追求规模大而全,盲目拔高,过于注重基础理论知识的研究和学习,学生理论有余,实践不足,因此软件人才结构性矛盾日益突出,人才无法适应企业的需要。为满足国家对软件工程专业人才的需求,必须在教育和人才培养体制上进一步完善[1-2]。

很多高校的软件工程专业都开设Web开发类课程。但该类课程实验训练面宽,需要的人力物力也较多,因此相当多高校以理论为主,实验为辅。另外,因课时、师生比等的限制,一般高校把该类课程作为语言类课程教学,仍以介绍语法为主线,配上一些语法应用示例的简单程序,缺少系统训练,没有编程和调试过程的真实演示。理论和实际不能有机结合,根本谈不上提高Web开发能力,即使学习程度较好的学生也都成了“语法的巨人,开发的矮子”[3-5]。

2课程教学改革

我校从2007年正式招收软件工程专业学生,经过几年的摸索和实践,笔者课题组在软件工程专业Web应用开发类课程教学模式方面积累了一些实践经验,希望能够起到抛砖引玉的作用。

2.1课程体系的设置

结合软件工程专业人才的培养目标和特色,Web开发方向课程体系建设要努力体现学科发展潮流和市场需求。作为软件工程专业课程设置的重要组成部分,课程群的设置要强调科学性、层次性、完整性,注意课程群体间的衔接,避免内容的重复。

从大三的第2学期开始,Web开发类课程体系前导课程并行开设了C#程序设计语言和网页设计,中间是.Net Web项目开发,处于核心地位,最后是两周的实训。这种课程群安排改变了“什么工具都学,什么工具都没有学精”的情况,以真实项目贯穿整个学期,课程之间联系紧密。C#程序设计语言和网页设计分别关注项目的编程语言和界面设计,.Net Web项目开发则从工程的角度实现完整学习项目的需求、架构、编程、测试等全过程的学习,最后的项目实训以学生为主体,完成整个项目。

2.2授课方式的改进

1) 授课时间调整。

我们采用“做中教,做中学”的教学方法,培养学生的职业技能,为了避免理论和实验分开授课及两次课之间周期太长的问题,笔者课题组采用4学时每课制的课程安排形式,边讲边练,在实验室把理论教学与实践教学融合为一体,避免学生直接面对枯燥的理论和语法知识,提高了学习效率。

2) 授课方式调整。

为充分利用实验室资源,尊重学生的个性化差异,我们让两个班约50名学生一起上课,但采用了两个授课教师外加一个实验教师的教师配置,基本满足1∶15的师生标准配比。小班教学能创造良好的学习环境,教师和学生能充分交流,有充分的时间找出问题,使深度学习型和表面学习型学生都受益[6]。

3) 授课过程调整。

为了保证以“做”带“学”的效果,“做”的过程控制尤其重要。我们采用以下教学步骤:

首先,教师用20分钟讲解和演示知识点。教师让学生对开发软件的功能和界面有一个感性认识,在演示过程中告诉学生如何应用知识点,并录制了视频录像,以备没有听明白的学生课下重看。

接着,学生思考和消化10分钟。让学生把思考后的想法写下来,以备后面的实施。教师也会在课堂中巡视,查看学生们的共性问题。

最后,学生利用一半时间重复实现教师讲过的内容,强化练习,加深印象。在剩下的时间里,学生还可以扩展教师讲解的知识点,完成教师没有讲到但相似的内容,并要调试通过。

总之,工程化的思维和编程能力是训练出来的,练习对问题进行分析、综合,编程,调试,然后才能体会到关键问题所在,这些都是单靠讲授不能获得的。所以,采用实验室实验授课模式是改革Web开发类课程体系的关键。

2.3真实项目驱动教学的实践

一般院校讲授的案例都是小型软件系统,在规模和复杂度上远远不如实际开发的系统,学生只需写少量代码,很难体会开发一个实际项目的艰辛。因此,学生容易轻视Web开发的难度和价值[7]。

我系引入了大连海辉公司的实际项目――客户资源管理系统,使工程概念贯穿了整个教学过程。该项目把程序设计和用户需求、文档设计、工具使用、模块集成、资源库与模块重用、测试等紧密地捆绑在一起,形成了一个开发链。在开发过程中,学生需要熟练掌握从需求分析、架构设计、开发环境配置、Web编程、数据库访问、调试测试和安全性配置到交付整个过程中涉及到的技术和非技术知识,还要撰写该软件的工程规范文档和实验报告,以备考核。

2.4课程考核方式的改革

考核体系包括3部分:

1) 平时表现。占30%,包括平时出勤率和实验操作考核。按照学生的出勤情况和实验报告上交情况给分。本类课程贴近于实际,对想要就业的学生有帮助,所以很受欢迎,出勤率较高。另外,每次上课都要完成客户资源管理系统的一个模块,下课前通过作业提交系统提交上来,教师要检查完成情况,也作为平时考核的一部分。

2) 大作业。占30%,采用小组方式,并配有一定数额的项目虚拟启动基金。大作业强调学生的团队协作能力,注重学生的学习参与性、团体合作性、实践性,培养学生的表达能力、思维能力、团体合作能力[8]。学生要利用从项目中学到的知识和经验,编制一个.Net软件。教师给每个小组分配一定数额的虚拟基金,由组长按照每人工作量的大小分配,避免学生偷懒,也有利于教师给每个学生打分。大作业要求最后上交软件、项目文档,并安排表达力强的学生陈述项目的设计过程,回答教师提问。整个项目建设应作为一个探索和试错过程,让学生在实践中体会工程思想。比较优秀的组可以以实际课题作为大作业,如齐齐哈尔大学校办网站、.Net课程网站等,本学期结束后,学生小组将在大作业的基础上继续深入研究,也可以作为毕业设计课题。

3) 在线考试。占40%。按照国际惯例,像此类实践性强的课程不宜进行闭卷考试。笔者课题组使用.Net编制了在线开卷考试系统,用选择题和填空题考察语法知识,用规定时间内完成某模块的功能考察编程能力。这种考察方式一方面减轻了教师的批卷压力,可以快速统计学生成绩,另一方面避免出现“高分低能”现象,受到实践能力强的学生的欢迎。

以上考核方式比较全面地评估学生的专业能力和潜在的发展能力。通过提交作业、软件工程文档、口头演讲、小组研究、在线考试和软件等,学生展示了自己的学习成果。考核结束后,教师要将考核结果及时反馈给学生,指出学生的成就和不足,帮助学生改进和提高。

2.5开放性实验室的管理

目前,许多学校的实验室只在有实验课时开放,平时几乎不开放,实验室及仪器设备利用率很低,造成资源闲置浪费。因此,软件工程实验室除了完成常规教学任务外,还应采用教师轮流值班,学生兼职管理的办法,帮助或组织学生完成上课未完成的任务,或自己找项目做。开放实验室比宿舍环境更好,配套教学软件齐全,还有教师帮助指导,可以更好地发挥实验室的基础平台和支撑作用。学生们的大作业大多数是在开放实验室完成的。

3实践效果

这种开放式、多层次实验教学模式有利于学生积极参加活动,提高整体素质。它使抽象的软件编程形象化,提高了教学质量和效率;提高了学生的学习积极性,帮助学生加深对理论知识的理解;提高了学生的实践能力,强化了软件开发的实战能力,实现了从学校到企业的无缝结合。在做完“客户资源管理系统”项目后,学生都感觉收获很大,特别是在软件架构设计和软件工程规范文档书写方面。在“黑龙江省第二届大学生计算机应用大赛”中,我系学生获得桌面类一等奖1项,桌面类二等奖1项,Web网站类二等奖1项,桌面类三等奖和优秀奖若干项。

4结语

软件工程专业Web开发类实验教学模式将教与学融合在一起,增强了教师和学生间的互动,提高了学生的实践能力。通过调整授课时间、地点,小班教学,项目驱动和改革考核方式,学生在掌握扎实理论的基础上又提高了职业技能和素质。

注:该论文受到黑龙江省新世纪高等教育教学改革工程项目“软件工程专业应用型人才培养模式的改革与实践”支持。

参考文献:

[1] 熊伟,洪玫. 大学本科软件工程专业建设的探索与实践[J]. 理工高教研究,2010,29(1):59-61

[2] 晏立. 从社会需求的角度探索软件工程教育[J]. 教育与教学研究,2008(22):141-145.

[3] 刘建华. 计算机语言类课程教学模式初探[J]. 高教论坛,2005(1):91-93.

[4] 何明昌. 可视化程序设计实验教学改革[J]. 实验室研究与探索,2009,28(3):88-90.

[5] 张雅琴,曹志清. 实践教学内容改革的实践与思考[J]. 实验技术与管理,2003(3):59-62.

软件工程专业课程篇10

0、引言

软件工程专业本科生的培养目标是面向软件产业界对软件工程专业技术人才的需求,培养具备扎实的计算机科学技术基本知识,受过良好的软件设计、开发和工程管理方法基本训练的应用型高级技术人才。

Java程序设计是软件工程专业的一门重要课程,该门课程的课程设计作为实践教学的重要环节,对培养学生的学习能力、问题分析与解决能力、实践创新能力起着重要的作用,同时还可以培养学生的软件工程思想,提高学生的软件开发能力。

1、什么是课程设计

课程设计是学生在学完课程之后集中一两周时间,以个人独立完成或团队分工合作等方式,围绕某一设计题目进行专业实践活动,旨在巩固、强化、拓展所学知识,提高学生实践操作能力和自学创新能力,培养学生团队合作意识。

课程设计是针对性较强的实践教学环节,将课程基本理论与工程实际相联系的综合训练,是培养应用型人才的一个重要步骤。课程设计可以使学生通过查阅资料、分析题目、确定设计方案等一系列步骤将理论知识与工程实践相结合,从而加深对所学知识的理解与巩固,提高整体思维能力、综合应用能力和创新能力。

2、Java课程设计大纲的制定

根据Java程序设计课程的教学大纲要求,制定相应的课程设计大纲,明确课程设计的目的、任务要求、时间安排、设计文档要求、考核方式、备选课题等。由于课程设计以个人独立完成为主,因此课程设计的难易程度应适当,保证学生在指定的时间内能顺利完成。根据计算机技术的应用范围与学生当前的知识储备情况,备选题目可设置多种类型,如小型桌面软件类、管理系统类、网络编程类等题目,当然,学生也可以自拟题目。课程设计文档是学生对自己的作品在系统总体结构、功能模块、程序流程图、类图、主要算法、遇到的主要问题与解决方法等方面进行说明的文字材料,同时要求学生在文档的最后总结在完成课程设计过程中的心得体会。

3、Java课程设计方案

Java课程设计的实施主要由选题、指导、考核3个环节组成,其中,选题是首要的步骤,指导是教师了解学生遇到的问题和完成进度并给予辅导建议的过程,考核是对学生的作品进行检查与评价。

3.1 选题

Java课程设计题目的设置要与软件工程专业培养目标和Java课程的教学大纲要求相一致。课题应尽量满足理论知识与专业技术相结合、软件工程理论与项目实际需求相结合的要求,既要全面覆盖理论课程所学知识,适合实践教学和启发创新,又要联系工程实际,并适应本专业的发展趋势。课题应具有一定的可操作性、设计性、灵活性、挑战性和趣味性。课程设计内容难易程度的确定要以中等水平的学生在规定时间内经过努力能完成任务为依据。

另外,课题应尽可能地与学生的实际学习、生活相关,这样学生在调研、分析设计时更容易了解需求。例如,学生成绩管理系统、图书信息管理系统、宿舍管理系统、ATM柜员机模拟程序等课题与学生的学习、生活相关,在使用计算机时常用的计算器、画图板、音频或视频播放器等都可以作为选题。

在学生明确课程设计的大纲要求后,根据自己对Java语言知识的掌握程度与感兴趣的研究方向,可以从课程设计大纲的备选题目中选择适合自己的题目,也可以自拟题目。

3.2 指导

在课程设计中,学生是主体,教师是主导,因此指导应讲究方法与艺术,最大程度地发挥教师的导向作用与学生的主动性与创造性。指导分为两个阶段,第一个阶段是对学生选题的指导,第二个阶段是学生在完成课程设计的过程中教师对学生的集中辅导与答疑。指导过程同时也是教师对学生进度的检查与监督过程。

1)选题指导。

教师在指导学生选题时要说明各种题目的难度与要求,根据学生基础与能力的不同,因材施教,推荐不同的题目,帮助学生把握好方向。

对于理论基础好、动手能力强的学生,可以给他们提供难度较高、有挑战性的题目;对于理论基础好动手能力一般的学生,难度较高、可操作性强的题目可以激发他们的探索精神、提高动手能力;对于理论基础与动手能力都一般的学生来说,难度中等、有可参照原型的题目较适合他们;基础差的学生要独立完成设计比较困难,因此教师可以建议他们选择源于教材、难度低的扩展性题目。

2)设计指导。

学生在课程设计的具体执行过程中主要由个人独立设计与教师指导两个部分构成。个人独立设计是学生利用课余时间对自己的课题进行设计实现。除此之外,在课程设计期间,教师安排每周2次,每次4~5学时在实验室集中指导与答疑。通过这样的方式,教师可以参与到学生的设计中,了解并开拓学生的思路,发现问题并引导如何解决问题,还可以发掘学生的潜能,同时也可以对整个课程设计的过程进行监督与管理,提高课程设计的质量与效果。

在Java课程的教学过程中,教师应该逐渐了解学生的学习态度与学习情况,因此,鉴于学生态度与基础不同,教师在设计的指导上也要因材施教,有针对性。对于理论基础好、动手能力强的学生,教师可以引导他们进行深入的探索与研究,进行创新性的设计,而不仅仅局限在基本设计要求上。教师要参与他们的设计中,听取他们的思路,对有一定创新性、合理的想法给予鼓励,并给他们提出建议,推荐有关的资料。由于这类学生对新技术的求知欲强,但新技术在最初应用时容易出现问题,所以教师在听取学生的思路时,要及时发现并纠正他们设计中的不合理成分,引导他们朝着正确的方向前行。

对于理论基础好动手能力一般的学生,他们在系统分析与设计中一般都能够完成得很好,但是编程实践的能力欠缺,因此教师通过启发式的方法引导学生,发挥学生的理论水平进行创新性的设计,在系统实现时给学生推荐参考资料,加强对基础知识的应用能力。

对于大部分理论基础与动手能力都一般的学生,教师要帮助学生加深对理论知识的理解,同时在设计上多加指导与启发,引导学生更为完善地完成设计,并在设计中或多或少地表现出一些自己的特色,然后在编码实现时给予更多实际操作性的指导。

在课程设计的指导中,除了教师的指导,也可以采取“强帮弱”的形式,让能力较强的学生参与能力较差的学生的系统设计与实现中,促进他们之间的交流与帮助。

3.3 考核

学生在规定的时间内完成课程设计之后,教师要对学生的作品进行考核,考核的目的不仅仅是为了检查学生完成的情况,更重要的是给他们一个讲解其设计思路并演示作品的机会。考核主要采取学生讲解作品分析设计思路并演示说明作品、教师提问的答辩考核方式,这有助于学生加强知识的全面理解,培养其语言组织与表达能力、应变能力等。

答辩过程要求全班学生参加,分为学生自述、教师提问、学生提问3个环节。首先由学生针对其作品从系统分析、设计、关键技术与算法、存在问题等方面进行讲解,然后演示作品。之后,教师与其他同学可以对答辩人的作品从设计思路、功能、性能、代码与技术等方面进行提问。通过答辩,并结合学生的设计说明书、答辩水平、动手能力、独立分析问题与解决问题的能力、创新精神与学习态度等进行综合考评。对优秀设计者,给予表扬与鼓励,并号召其他同学学习,在评分时适当加分,以调动学生进行课程设计的积极性;对仅完成基本要求的学生,肯定他们的努力,并鼓励他们多实践;对未达到要求的学生,要求其进行整改或限期令其重做。

4、关于Java课程设计的几点思考

这几年Java课程设计的教学效果表明,课程设计为学生巩固所学知识并能学以致用、提高综合应用能力提供了重要的实践平台,教师也从课程设计实践教学中获得了一些有用的经验,为进一步完善课程设计教学提供帮助与参考。

1)注意因材施教,根据学生的基础布置不同的课题。

制定课程设计大纲时,首先制定一个对于大多数学生都比较合适的基本实践要求,然后再针对不同学生的基础设置难易程度不同的课题。这样对大多数学生来说,他们既不会感到实践要求高不可及,又感觉到有一定的难度,比较有挑战性。

2)及时发现并总结问题,积累经验。

在课程设计的整个教学环节中,教师要善于从中发现并总结问题,给予及时、到位的指导。例如,在指导学生完成课程设计时,对于大部分学生普遍遇到的问题,教师要及时发现并进行讲解;从学生上交的课程设计文档中发现学生利用面向对象技术进行程序设计存在的问题,分析问题产生的原因,以改进教学方法;在课程设计答辩考核之后,教师还要对全班课程设计的情况进行全面总结,不断改进。总之,在课程设计的任何一个环节,教师都要善于发现问题,总结经验。

3)教师要不断完善自己的知识结构。

从课程设计的大纲制定、任务布置到指导与考核都需要教师付出很多时间与精力,而且对教师的专业知识与能力要求也很高,因此要想保证课程设计的质量与效果,很大程度上取决于教师的责任心和知识结构的完善。

4)在课程设计中培养学生的软件工程思想。

JaVa程序设计是软件工程课程的先修课程,在讲授程序设计语言时,教师可以适当灌输一些软件工程的思想,让学生对软件开发的基本过程有初步的认识,避免学生陷入“学习程序设计课程只是学编程、软件开发就是编程”的思想误区。实际上,学生在课程设计过程中对系统进行分析、设计、编码、测试等都体现了软件工程思想的运用,程序设计是软件开发过程的一个阶段,通过课程设计能够加深学生对程序设计语言的理解,同时也能较好地培养学生的软件工程思想,为后续软件工程课程的教学打下良好的基础。

5)根据任务的大小,可适当采取小组协作方式。

软件工程专业课程篇11

中图分类号:R318-4

我校开设医学信息工程专业,该专业是一门以信息科学和生命科学为主的多学科交叉与融合的新兴综合性学科。为医疗卫生行业培养既掌握计算机技术,又掌握医学专业技术,还熟悉医院管理流程和临床科研数据处理的复合型人才[1]。

《软件工程》课程是该专业的专业核心课程。软件工程是指导计算机软件开发和维护的一门工程学科[2]。学生学习这门课程是要求他们掌握软件工程的概念、原理、技术和方法,从而经济、高效地开发出高质量的软件并有效地维护它。该类课程理论较多,同时其综合性、实践性要求较高。如何教授好这门课程是一个值得思考的问题。

1 《软件工程》课程教学中存在的问题

软件工程课程内容主要是许多概念和原理,教材上涉及的方法与技术并没有多难理解,但教学过程中仍发现有如下问题:

1.1 学生对软件工程类课程感觉概念、原理太多,难以记忆

软件工程课程主要讲解软件开发中的原理、方法、技术,很少涉及软件算法和程序设计。学生在学习时有个误区,觉得这门课既然是介绍各种概念和原理的,死记硬背就好了。而大量的概念和原理光靠死记硬背反而容易混淆,学习效果并不好。

1.2 教学模式单一,缺少有专业特色的固定的教学案例

目前软件工程课程仍以教师课堂授课为主,学生听课为辅,教学内容侧重于理论。实验学时较少,学生的实践多在课后完成,较难落到实处。课堂使用案例也多为教材上给出的小案例,实用性不强,缺少专业特色,学生很难接触真正的医学信息系统开发项目的实例。

1.3 学生缺少对相关课程间关系的理解

目前的教学模式是各门课独立讲授,对于软件工程课程而言其综合性很强,其理论与应用与许多课程相关,但学生在学习时是单独学习的,在头脑中没有形成完整的课程体系,不能把已学过的知识融会贯通的使用。

1.4 学生实践能力较差,难以满足专业需要

软件工程课程实践性要求高,而学生在学习的过程中,仅仅抽象的学习软件开发的过程,很少有机会参与软件开发的整个过程,从而实践能力较差。

2 解决办法

2.1 注重教学方法和教师的课堂感染力,结合学生实际教学

当课程内容不够吸引学生时,授课的效果就更依赖于教学方法和教师的个人魅力。教师要教授好一门课程,仅仅对课程内容的深入理解是不够的,有时要向一位演员一样的表演。声音抑扬顿挫的变化可以使本想打瞌睡的学生清醒。在教学中适度的加入一些“包袱”,博得满堂一笑,同样可以使涣散的注意力重新集中。学习软件工程课程的目的是为了让学生了解和掌握开发一个高质量软件的过程、方法及使用的工具。那么对于“高质量软件”要给学生一个定义,如果仅从理论上来解释将枯燥无趣。笔者在上课时以学生所熟悉的MS office、QQ等软件作例子,让学生从用户的角度讨论“高质量软件”的特性,将软件工程设计和实现阶段的一些基本原理、概念和启发规则引入进去,引起学生的共鸣,加深学生对这些原理、概念、启发规则的理解,在不用死记硬背的情况下轻松记住教学内容。

2.2 结合其他课程内容,使学生对所学内容融会贯通

软件工程课程的综合性和实践性都比较高。在教学中结合其他课程内容,并与其他课程教师交流共同教学,学生能将所学知识融会贯通,灵活应用,效果会非常好。例如在讲述软件工程需求分析阶段建立数据模式时引入数据库原理中的知识,解释数据对象、属性及数据对象间相互联系,以及它们对应到应用中的实现形式;在讲述设计与实现阶段内容时,可引入算法设计与分析课程中的知识对设计思想、代码的构造进行说明;讲述实现效率时,引入算法设计与分析中的时间复杂度和空间复杂度的概念来讨论效率问题,讨论存储效率时还可引入操作系统中存储调度的原理加深学生的印象。

在我校医学信息工程专业课程计划中,软件工程是在大三上学期开设,大三下学期还有《J2EE架构设计与开发》和《综合课程设计》两门课,结合这两门课,让学生分组以软件工程方法开发一个软件,并交付相应文档,从而再次巩固学生在软件工程课程中学习的知识并加以应用。

2.3 采用项目驱动模式,结合项目实例,使学生学以致用

采用项目驱动模式教学时应注意以下几个问题:

(1)尽量使用实际案例,虚拟的案例因为没有需求方,学生在需求分析和需求定义时很容易流于形式,体会不到获取需求有多么的困难,反而会觉得获得需求很容易,难在编程。在我校的教学中,软件工程前期有《医学信息系统》课程,为学生介绍医院的一些管理流程,并指导学生开发相应的软件;同时学院经常组织学生去医院实地参观;学院教师也经常与医院或企业有一些软件开发的项目。这些都为软件工程课程提供了很好的实际案例。

(2)指导学生分组,学生分组时最好不要任由学生自由分组。学生自由分组时,往往编程能力好的同学抱成一组,其他的同学以关系疏密来确定分组。导致一个项目组中只有个别学生起到作用。使整个教学过程流于形式。可以先让学生自由报名担当项目负责人,然后以公开竞聘的方式确定项目负责人,这个过程中,需要老师对学生有一定了解,对竞聘方式和过程加以引导,确定有组织能力和负责任的同学担任。然后再由个人向项目负责人申请职位(如软件设计人员、软件架构人员、程序员、软件测试人员等),一般一个项目组5-6人,由项目负责人决定小组人员,项目负责人负责项目的整体管理和协调工作。因为职位都是自己申请的,所以最后在项目实施时,各人职责明确,不会出现人浮于事的状况。

(3)定期检查工作进度。如果没有定期的工作进度检查,学生可能会直到课程快结束时才赶紧写各类文档交付了事,达不到教学目的,学生无法体会到软件工程在实际应用中的意义。所以要求各个项目组跟随课程的进度按时间段完成包括可行性分析报告、需求规格说明书、总体设计规格说明书、详细设计规格说明书、测试计划、源代码等各类文档。学时允许的话,安排几节课作为工作汇报会。适度的工作汇报会可加强小组间的交流,让学生从别人的工作中发现自己工作的优势和不足。每次汇报会的发言人由每小组成员轮流担任。笔者认为通过软件工程课程教学提高学生汇报工作的能力和与人交流的能力也是很重要的。教师对学生的文档和汇报予以总结和点评,在对学生的工作予以肯定的基础上提出对学生所给方案的改进意见或建议。毕竟软件开发的过程中没有唯一标答,学生的思路与老师的不同是很正常的现象,不要一味否定从而打击学生独立思考的能力。以开放的思想与学生讨论,更能促进学生更深入的思考。这样既能加深他们对软件工程理论的理解,同时也提高对这门课程的兴趣。

3 结束语

《软件工程》课程是一门理论知识较多,综合性、实践性要求高的课程。笔者从目前教学中存在的问题着手分析,思考并实践多种教学方法,提出了几点行之有效的解决问题的教学方法。在今后的教学工作中还将更多的研究、探索其它优秀的教学方法,积累经验,以期取得更好的教学效果。

参考文献:

[1]周毅,刘燕.医学信息学的研究领域及人才培养[J].医学信息学,2005,18(8):856-858.

[2]张海潘.软件工程导论[M].清华大学出版社,2008,2.

[3]李洪进.案例驱动式方法在软件工程教学中的应用[J].软件导刊,2013(6).

软件工程专业课程篇12

一、应用型本科院校引入翻转课堂教学的必要性

(一)应用型高校对软件工程专业人才培养的要求

应用型本科院校的软件工程专业,应力求在遵循统一指导方案的同时突出与应用型人才培养相适应的知识结构特色以及课程体系,以培养适应市场需要的应用型软件专业人才。宿迁学院正处于应用型本科高校建设发展阶段,按照教育部的卓越工程师教育培养计划[3]要求,我校软件工程系积极探索并建立了3+1人才培养模式,对课程设置、教学形式等进行了调整和改革,强化了企业的深度参与性培养以及学生的工程能力和创新能力的培养,着力打造一批批能直接上一线工作的本科高素质应用型人才。

对于软件人才的培养,进行引导性、启发性以及贴合实际的实践训练是很有必要的,为此,我校软件工程系加强了课程改革建设,从课前、课中、课后多角度改进教学方法,让学生提高自主学习的能力,通过对知识点的内化转换为自身的实际技能。在这种背景下,教学模式的改革就呼之欲出了。

(二)传统课程教学模式中存在的问题

以我校软件工程系的大多数专业课程教学为例,大多的理论和实验课都是按照传统教学模式开展教学的,理论课主要是以教师讲为主,上机实验围绕课堂上讲解的案例,学生按步骤操作完成,教学方法单一。

这种传统的教学模式存在有不少弊端[4],课堂教学效果不佳。课堂上仍是以老师教授为主,属于填鸭式教学,学生难以主动融入,学习效果不好,不利于培养学生的实践和自主学习能力。学生在实践课上主要是围绕理论课上的案例进行学习,这样就不能让学生自主发挥和进行创新性的深入学习,属于被动式的接受知识,也不能进行个性化教学。受实验室使用的局限性和课时的影响,学生在2~3节上机课上无法完成一些复杂的环节,如从系统建模的角度对数据库项目系统进行需求分析、软件设计等。

这些教学问题成为制约课程建设、学生能力培养的瓶颈,所以探求一种新的教学模式成为我校软件工程专业课程改革的必然趋势。

(三)翻转课堂教学模式的引入

翻转课堂教学模式下,教师在课前进行知识传递[5]即教师按照教学内容的知识点进行细化、整理,录制小视频,学生课前观看视频教学,在此过程中教师还可对学生进行在线辅导。课堂上,主要是进行知识的内化[5],教师根据学生前期学习的困难情况组织课堂教学,主要采用引导式、研讨式教学方法给予辅导,促进学生知识的内化。课后,通过项目练习等作业形式达到让学生巩固知识的目的。翻转课堂教学模式充分发挥了教学中学生的学习主体性,加强了学习中的互动性,让学生获得了个性化教育,真正达到了以学生为中心、因材施教的教学效果。翻转课堂教学模式的出现,为我校软件工程系3+1教学改革带来了新的思路和方法。

二、翻转课堂教学模式实施的基础

(一)教学内容及方法的改革

教学内容的选取应注重理论联系实际,要根据企业和市场对软件人才的需求,将重要的知识点和相应的技能训练联系起来进行讲解和实践。例如,教学数据库系统原理课程,在讲解知识点时可以用学生成绩管理系统、图书管理系统、题库管理系统等为载体设置教学内容,以项目驱动教学,将理论知识融入项目开发中,通过项目案例的分析、设计来启发和引导学生去思考和建模,让学生了解数据库课程的原理最终要如何应用到项目实践中,同时锻炼学生独立思考和创新的能力。而上述的教学内容和方法的改革与翻转课堂教学的理念是一致的,这样就为专业课程构建翻转课堂教学提供了改革的基础。

(二)信息化网络平台的保障[6]

我校有泛雅网络学习平台,该平台为实施翻转课堂教学提供了便利的支撑。教师可以在网上课件、教案、视频等教学资源,可以根据知识点布置任务、作业,与学生交流讨论并提供答疑,还可以进行阶段性的测验等。该平台还有手机APP端,学生可以随时随地进行同步自主的学习。泛雅网络学习平台为数据库课程翻转课堂教学提供了软硬件环境的保障。

(三)学生自我学习的能力的保证

文献[7]调查显示了大学生自主学习状况,其中64.13%的学生能主动完成学习任务,22.34%的学生能在教师督促下完成学习任务。我校的定位是培养应用型人才,学生大多要通过在校专业课程的学习掌握知识和技能,然后能直接到一线工作,所以学生的学习需求性和主动性较强。学生根据各自对专业课程的学习需求定位,对所学的知识点的学习要求也有所不同,翻转课堂教学的实施可以保证学生利用碎片化进行个性化学习。

三、翻转课堂教学模式的实施构建

在翻转课堂教学模式的实施构建中,以我校软件工程系实施构建的数据库系统原理翻转课堂教学为例,在课程开始时做好小组分配,因为软件专业的学生大约有50人左右,所以每班就分为10个小组,每个小组配有相应的组长,负责组织和督促小组成员的学习和集中性的讨论。[8]

(一)课前的知识传递和自主学习[9]

教师主要是将每次课(理论课和上机课)的重难点进行碎片整理,每个知识点制作一个相应的短小视频,在课程资料中还可放入教案和幻灯片课件等扩展资源。例如,在第一章节中我们给数据库基本术语做了一个短小视频,附上了相应的术语的幻灯片课件,教师提前一周通知,要求学生在指定时间内即课前根据视频和课件完成自学,达到前期知识传递的目的。

学生在课前自主查看和学习,并根据自身的学习和掌握情况制订学习进度,下载教师事先准备好的教学资源。为了确保学生的课前学习效果,在进行任务点设计时,都会有相应的问题设计,这些问题也要体现出层层学习、循序渐进的过程,要求学生回答部分或全部的问题,在此过程中教师可对学生进行答疑和引导性指导。例如,在基本术语任务点中,教师提供了5个选择题、5个填空题,让学生在看完视频后完成小作业,教师通过网络学习平台上统计的作业成绩开始设计课堂教学环节。

(二)课堂知识点的内化

翻转课堂的核心就是要使得学生最大限度地内化知识点,因而在课堂教学中需要学生高度参与。进行数据库理论教学时,首先在刚上课时我们会让学生进入泛雅手机APP端,要求学生现场完成10~15题的选择题。这些选择题的设计难度要超过学生在自学时的作业难度,题目设计要体现出由浅入深的过程,且要能够体现出这次课的重难点,学生在做好后直接能看到自己所错的选题以及正确的答案,也就明白自己所学知识点哪些掌握得不透彻,继而在课堂中就知道自己要特别注重哪部分知识点的理解了。而教师可以利用统计功能查看到每题做错的人数,教师会根据错误结果对共性的一般知识点做统一示范讲解,对扩展性知识做引导性、启发性讲解,对个性问题进行小组化指点。

实验课的翻转课堂教学采用的是项目训练研讨式[10]教学,教师也是先提供实验内容的基本素材,和理论课程的翻转课堂教学模式相似。不同的是,实验操作中教师是通过小型项目驱动教学的,这些项目既要覆盖教学目标,又要有拓展训练的余地,对于设计性、综合性的实验可通过小组分工协作完成。教师通过实验课上各个小组的进程和面临的问题进行小组个别化指导。

(三)课后的巩固复习