软件工程学论文3900字
导读:软件工程学论文3900字应该怎么写?相信对于当下的很多这方面的作者来说,基本上都是需要撰写一篇相关的论文来获得晋升机会的,所以写作论文也就尤其重要了,本论文分类为软件工程论文,下面是小编为大家整理的几篇软件工程学论文3900字范文供大家参考。
软件工程学论文3900字(一):程序设计教学中如何应用软件工程学论文
程序设计教学(编程教育)已经成为信息技术教学的核心内容之一。在以信息经济、低碳经济等经济形态为主导的当代社会背景下,从人的全面发展出发,人才的培养核心是核心素养。程序设计教学成为信息技术学科核心素养——计算思维培养的重要途径。而在中学程序设计教学中,还存在一些不足甚至错误做法,严重影响着信息技术教学效果,无法达到预期的育人目标。无论是从宏观课程设计,还是从微观教学内容来看,借助软件工程思维有利于摆脱纯粹的理论教学,重构课堂,培养学生统筹规划、综合设计、分析推理等关键能力。
软件工程学是一门研究用工程化方法构建和维护有效、实用、高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。软件工程学借鉴传统工程的原则、方法,以提高质量、降低成本和改進算法。其中,数学用于构建模型,计算机科学用于设计算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。软件工程学定义的软件开发过程,通常包括需求分析、概要设计、详细设计、编码、测试、交付维护等阶段。
下面以一个简单的程序案例为例,详细分析软件工程思维与传统程序教学的差异。案例背景:学校举行一个“1分钟投篮班级对抗赛”,每班参赛选手5人,每人1次投篮机会且限时1分钟,共有10个班级参加比赛。比赛成绩以班级所有选手投中总数进行计算。请设计一个小程序,实现成绩统计和排序工作。
软件工程思维更关注需求分析和概要设计
传统的教学方式,教师往往将上述案例问题简化为“每组5个数求和,10项求和结果排序”,然后就直接进入程序语法教学环节了。而对于软件工程思维来说,需求分析要解决做什么和怎么做的问题。学生要自己分析这个案例,找出解决方案,得出设计思路。通过分析,学生可以发现需要设计哪些功能,如输入、求和、排序等。然后,要明晰这些功能可能涉及的编程语言知识。
第一,通过具体问题的分析,学生发现所学内容能够解决实际问题,是有实际意义的,从而避免了传统教学中用编程解决纯粹的数学问题的情况。需求分析能够激发学生学习兴趣,使得程序设计不再是单纯的语法练习。从核心素养角度来看,有利于培养学生开发或运用技术来解决问题的能力(技术素养),引导学生研究问题,并找到创新、有效的问题解决之道(创造性)。前期的需求分析可以有效解决程序设计的盲目性和“无从下手”之感,便于学生对整个程序的理解,其实也能够为后续教学节约时间。也许,这个案例过于简单,尚不能体现需求分析的重要性。若将案例扩展为运动会成绩统计程序这样的大案例,则会超出学生的设计能力,反而不利于学生学习。在小案例学习过程中,可以引导学生类比、类推,达到举一反三的目的,彰显小案例的典型性和代表性特点。
第二,概要设计是一名设计师根据用户交互过程和用户需求来形成交互框架和视觉框架的过程。简单来说,就是将软件模块、功能、层次关系用视觉化的方式展示出来。一般情况下,概要设计不需要使用编程语言,常见如流程图。对应传统教学,流程图设计往往只是算法解析描述的工具,很少用来展示整个程序的功能设计。如果引导学生运用流程图进行功能的模块化划分,有助于培养模块化程序设计思维。通过概要设计可以进一步明确程序的模块构成和功能,便于确立各部分的实现方法(算法选择)。在设计环节还要决定程序设计使用的变量名称、类型甚至取值范围等细节问题。为便于后续阅读程序,变量命名不仅仅要“见名知意”,还要系统规划变量名称的分类以及大小写规范等,这能够锻炼学生良好的规范表达意识。这与平时教学中变量名使用无意义的单字母等对学生习惯的影响有很大不同。
软件工程思维更突出编码的模块化设计和软件测试
软件工程对程序教学的一个很大的意义是形成良好的程序设计的代码文化与素养,形成日渐深厚的计算思维。其中,程序的模块化设计是良好的程序设计过程技能,而编码测试则是良好性工程人员的代码文化素养。
第一,编码的模块化设计,是指在进行程序设计时按照功能将一个复杂程序划分为若干程序模块,每个程序模块完成一个确定的功能,模块之间通过必要的联系和互相协作完成整个功能的程序设计方法。与通常的简单程序设计要求不同之处在于,模块化设计主要体现在两个方面,一是程序设计尽量使用函数、子过程、子程序,少使用全局变量;另一方面,尽量将代码按照模块划分并做好注释。
以“1分钟投篮班级对抗赛”为例,可以将输入、求和、排序分作三个小部分。与平时相比,代码书写不一定减少,但会让编程作者和阅读者都能清晰了解整个程序的架构,有利于错误排查和分工协作。如果遇到诸如“运动会成绩统计”这样有一定复杂度的程序设计,通过调用某个功能模块(如函数、子程序等),则能较好地解决不同比赛项目的人员分组、成绩输入、排序打印等问题。而没有模块化的程序设计,可能要重复设计相应功能,存在大量的重复代码,会降低运行效率,且在遇到问题时不容易检查。
第二,软件测试是对编码程序的正确性、效率、容错能力等的测试。程序设计很可能遇到代码错误甚至算法错误,在教学中应该注意培养学生观察分析程序运行结果、错误提示的能力,对不同的数据结构、算法选择进行优劣评估等。在常规教学过程中,我们多数使用验证性实验进行教学。
如前面投篮的案例,程序设计完成后,一般会要求学生输入3到5组的“正常”数据进行验证。验证仅仅限于证明语法结构可能没有错误。这种知识巩固式的教学模式,使得不少学生养成一看到出现预计结果就终止实验的习惯,其实是不利于培养学生的程序测试意识的。参考软件工程思维中的程序测试,我们在要求学生进行数据验证时,一方面要提高验证的数据量和运行次数,另一方面要尽量使用“边界值”或“异常值”进行验证。仍以投篮案例为例,如果程序设计时限定了数组(或列表)上下限值,则在验证时要在上下限的边界选择数据进行验证。例如,根据生活实际经验,我们设置了1分钟投篮的上限为100次,那就可以使用三位数(如127)作为测试数据验证我们的设定是否有效。除此之外,验证数据还应包含负数、小数等,以避免程序运行时错误输入带来的错误结果。从软件工程视角来看,程序设计要关注编程安全问题,如分母为0、超出数组界限、变量取值超出范围等情况。而在程序设计教学中,这些也恰恰是不易被发现的“易错点”。可见,测试数据的作用是非常大的,设计有效的检验数据,既能检验程序设计的规范性和算法的合理性,同时能够让学生强化测试意识,避免测试的随意性,为以后解决复杂的具体问题奠定基础。
通过引入符合实际情况的测试数据,可以有效检验程序的健壮性。而要提高健壮性,就要进行容错设计,从而使得程序设计从简单功能向复杂功能过渡,拓展学生的思维强度和广度,激发学生的学习兴趣。在上述案例中,负数或小数作为无效输入,如何解决因此类输入所导致的程序结果错误呢?学生很容易想到,在输入错误时进行提示并要求重新输入。由此,再讲解相关程序语法,学生就更容易接受。同样,在大量数据输入时,不仅仅会出现错误输入,还可能会出现漏掉数据等情况。这就要求我们不仅仅要检验输入数据的合法性,还要跟踪数据的数量。必要的时候,还可以在程序关键步骤设置“断点”,以随时跟踪数据的变化。遇到错误不容易判断时,可以灵活运用数据跟踪,更容易发现问题根源。根据现实中可能遇到的问题,学生思考解决方案的过程中,不知不觉地拓展了程序功能,很多知识的学习也变得顺理成章。
综上所述,我们可以看出,在程序设计教学中运用软件工程思维,并不是只有复杂程序才需要,也不是只有专业人士才可以做到的事情。在任何程序设计中,都可以渗透软件工程思维。而这样的思维方式,不仅仅有利于加深学生对程序设计的理解,强化应用技术解决实际问题的能力,也将大大提升我们的程序教学效率。我们相信,程序设计对于学生来讲不再是枯燥乏味的学习体验。
苍山点题
如果我们说一线教师的专业水平与学术水准在新一轮课标下已初见端倪并不准确,如果说已经硕果累累也为时过早。怎样评价才合适呢?透过本期解码推荐的这两篇重磅文章,我们不妨去用心感受这“新星闪烁”般的思维光芒。
第一篇文章,一句泛“计算思维”时代,把我们对计算思维的认识的局限一下就打开了。首先是寻根溯源,提出计算思维是什么、要培养什么的问题。内容不再复述,只提那一个视频折半浏览找水杯的例子,就见其精彩绝伦。然后是高屋建瓴,问:计算思维就是算法吗?就是编程吗?尤其是,以实例说明在数据与计算模块之外的模块中也可以深入培养计算思维。例如,信息系统与社会中同样可以培养计算思维;又如,网络基础选修里面的网络安全部分也可以深化培养计算思维。这对我们是一种怎样的启示?
第二篇文章,给我们一种暂时离开计算思维去软件工程学寻找程序教学的深邃。在程序设计教学中如何应用软件工程学呢?软件开发过程包括需求分析、概要设计、详细设计、编码、测试、交付维护等阶段。其中,软件工程思维更关注需求分析和概要设计,软件工程思维更突出编码的模块化设计和软件测试,只这两点就够我们把程序设计教学提高到一个比较专业、比较深邃的境地,这不是一个巨大的惊喜吗?
信息技术教育沧海茫茫,必有新的浪花;信息技术教育天空辽阔,必有新的星辰。我们一起前行、一起探索,藍调解码期待您的浪花与光芒一起造就新的信息技术教育风景。
软件工程学毕业论文范文模板(二):软件工程学课程多层次实践教学体系的构建论文
摘要:实践教学是培养学生应用能力和创新能力、实现素质教育和创新人才培养目标的重要环节。针对软件工程学课程实践教学中存在的问题,本文提出一种基于建构主义学习理论的多层次实践教学体系改革方案,详细讨论课程实验、软件工程专业实习、开放式工程实训和科研素质训练等四个阶段实践教学环节的设计、组织和实施方案,并分析了建构主义理论对实践教学的指导意义。
关键词:软件工程;建构主义;实践教学;教学改革
作者简介:张琳,女,讲师,研究方向为软件工程、软件体系结构;贾瑜,男,副教授,研究方向为计算机软件理论。
1背景分析
软件工程学是指导计算机软件开发全过程的一门综合性课程,具有极强的实践性,目前已被广泛列入计算机及相关专业的教学计划。如何组织好软件工程学课程的实践教学,对于培养创新型软件人才具有重要意义。
对于应用型本科院校,软件工程学的教学目标要求学生掌握实用的软件开发方法和原理,学习如何开发出高质量的软件,授课内容涵盖了软件开发过程中应遵循的标准、规范和准则以及经典的软件开发方法学等,为学生从事计算机大规模软件开发与维护工作打下基础。尽管教师在授课过程中反复强调软件工程学的理论对于指导软件开放实践的重要性,但通过观察学生的反馈,笔者发现学生对这门课程的学习兴趣并不高,尤其是在实践中灵活运用所学理论的能力不足。造成这一现状的因素很多,在此结合我院实际从以下三个方面进行讨论:
1)课程的理论和实践环节比例设置失当。应用型本科院校的学生,其理论分析能力往往有所欠缺,这就要求教师在课堂上既要阐述理论的分析、原理和作用,又要提供基于理论的处理方法,比如提供项目案例,给出开发流程的详细说明,从而熏陶学生软件分析、设计的思路及技巧。由此,需要改革传统的课程学时比例安排,采用更新颖的教学模式,将实践环节和理论授课巧妙地编织在一起。
2)缺乏后续工程实践训练,理论知识得不到有效巩固。在现有的教学计划中,该课程和本专业其他课程的关联度偏低,既定学时授课结束后,后续实践训练环节未能跟上,导致学生从课程中习得的内容得不到进一步的巩固和加深,不容易学以致用。根据艾宾浩斯的“遗忘曲线”理论,遗忘具有先快后慢的规律,单纯注重当时的学习效果,而忽视了后期的保持和再认,同样达不到良好效果。因此,为该课程构建更加科学的实践教学体系,从多角度、多层面对学生进行训练,让学生的软件开发技能有施展的舞台,对于培养其分析和解决问题的能力,提高理论与实践相结合的能力有积极意义。
3)考核机制亟待改进。对于软件工程学这类实践性较强的课程,采用传统的应试教育考试方式,如闭卷笔试,会将学生的注意力引导至死记硬背、生搬硬套的方向上去,和课程设置的预期目标相违背,无法全面检验教学成效。相比之下,学生更加欢迎方案公开、自由选题的考核方式。考核方式应体现学生是考核的主人,强调以学生为中心,考查其创新精神和在不同的实践情境下应用所学理论知识的能力,更注重实践能力、协作精神的培养。
2多层次实践教学体系
实践教学不仅能传授知识、验证理论、培养技能,而且相对于理论教学具有直观性、实践性、综合性、设计性与创新性[1]。实践环节对于软件工程学这类工科课程尤为重要。针对上节讨论的该课程教学中存在的问题,在我们已有相关教学研究与实践的基础上,本节介绍一种基于建构主义学习理论的多层次实践教学体系。该体系着眼软件人才市场的需求,旨在培
养学生的创新意识,铸造应用型软件人才。图1是该实践教学体系的二维结构图,其中垂直方向为四个阶段的多层实践教学环节,即软件工程学课程的基本实验、软件工程专业实习、开放式工程实训以及科研素质训练;在水平方向上,上述四个实践层次被划分到当前软件系统开发比较主流的两种技术平台(.NetFramework和J2EE)进行实现。下面首先简述建构主义学习理论的原则,再围绕四个阶段的实践教学过程进行详细说明。
图1多层次实践教学体系结构图
建构主义学习理论是国内外教育学专家近年来的一项重要研究成果。该理论认为,知识是学生在一定的情境下,利用必要的学习资料,通过意义建构的方式获得。该理论提倡以学生为中心的学习,其中,教师只是意义建构的促进者,学生则是信息加工的主体、意义的主动建构者。笔者所参与的教学研究团队对该理论进行了深入学习和研究,并已将其应用到本学院的相关课程改革中,收效良好[2]。
2.1课程实验
课程实验是为配合软件工程学的理论教学而设置的。为解决该课程理论知识点枯燥难懂的问题,提高学生兴趣,我们将课程实验由原来的8学时加大到16学时,理论课堂上仅简要阐述理论难点,让学生通过课程实验来消化这些理论知识,顺应建构主义学习理论的要求,将学习的主动权让位于学生,教师则通过组织、辅导和答疑辅助学生进行有意义的知识构建。
课程实验从应用角度分为三种类型:验证性实验、设计性实验和综合性实验。验证性实验用于巩固和加深学生对于特定理论知识点的理解程度。设计性实验旨在循序渐进地强化学生的分析设计和上机操作能力,在本课程的课程实验中,这一类型的实验占有较重的比例,例如根据需求设计系统的数据流图、软件结构图;依据面向对象的设计原则建立系统的对象模型、交互模型和功能模型等。软件工程学在一定程度上将本专业的先修课程,如程序设计、数据结构、面向对象开发以及计算机算法等有机结合起来了,因此,有必要设置一个综合性实验贯穿课程始终,注意与先修课程的呼应,增强课程之间的关联度。该实验可以选择一个中等规模的项目(如网上图书销售系统)作为案例,让学生通过案例的分析和设计,结合教材各章的知识点,实现理论与实践的有机融合,再选用熟悉的技术平台.NetFramework或J2EE实现系统,从而理解并巩固课堂中介绍的软件开发技术,将其运用到实践中,并学会编写各阶段文档。三种类型的课程实验相互配合,既可有效覆盖课程的重难点,又接近软件开发的工程实际需要,使学生了解软件生命周期中的各阶段活动,掌握各个文档的撰写方法,充分激发兴趣,调动学生学习积极性。
2.2软件工程专业实习
学生在课堂以及课程实验中所学的专业知识通常只是入门基础,企业需要的不仅是这些基础技能,更需要员工具备较强的学习能力,能在工作中快速上手。随着计算机相关技术的飞速发展,很多知识的学习仅靠课堂的有限学时远远不够,因此需要让学生全程参与相关项目的设计与开发,在实践过程中逐步熟悉和掌握软件开发所必需的原则、方法和技术。然而,学校所能承接的企业外包项目毕竟数量有限,不可能为每个学生都提供参与机会。为此,我们在软件工程学课程学期的期末设置了为期3周的软件工程专业实习,让学生体验IT业界的氛围和一线软件开发人员的工作环境,锻炼其工程能力。这个层面的实践环节仍然以集中式训练为主,实习地点设在校内,方便统一管理和考核。
软件工程专业实习采用新颖的实战岗位培养方式,为学生还原一个完整的软件系统开发场景,让学生通过预设项目的开发提升经验值,完善知识结构,更好地与企业需求接轨。该实习的实施过程充分运用建构主义学习理论,具体步骤如下:1)召开软件工程专业实习动员大会,实习指导教师向学生介绍项目背景,但不给出具体设计方案,要求学生利用已有知识以及信息获取手段自定义项目的开发方法。2)学生自由分组,针对实验案例展开小组讨论,各组努力达成较为统一的意见或方案。3)组织一次集中交流活动,由小组代表介绍小组讨论方案。以学生发言为主,教师启发引导为辅。在学生代表发言过程中,教师和学生均可提出问题,也可以进行一些自发辩论,在轻松的教学氛围中激发学生的评论性思维。最后由教师进行点评,使讨论中暴露的问题得到及时修正,让学生获得正确观点和系统认识,进一步加深学生对基本理论的理解。4)依据上述活动结果,形成项目的分析、设计等相关文档,由教师统一打印分发。5)在规定的实习时间内,学生以小组为单位,在机房开展软件项目开发各阶段的活动,严格考勤,实习结束后,由学生提交实习报告,教师组织考核评分。
在建构主义理论指导下,我们对软件工程专业实习的考核评价方式进行了精心设计。强调学生是考核的主人,通过考核,让学生把课堂学到的基本知识和技能综合起来解决实际问题,让考核成为一个促进学习和提高综合素质的过程。考核方案公开,给学生充分的自由度。学生可以选择采用书面或口头答辩的方式进行考核,在全班同学面前介绍自己的软件开发思路和设计原理,并接受学生和教师的提问。考核没有统一答案,学生可以充分发挥创造力,运用发散性思维来解决问题。这为学生创设了一个有利于意义建构的情境,能激发学生的创新精神,加深对基本理论的理解,对促进学生实践水平的提高具有积极意义。
2.3开放式工程实训
软件工程专业实习给学生提供了一个集中的软件开发实践环境,通过教师全程跟踪统一指导,学生从课堂和课程实验中所了解到的软件生命周期各阶段开发流程等知识得到了进一步强化。在开放式工程实训阶段,我们贯彻“走出去,请进来”的方针,与相关软件企业密切协作,共同设计实施实训课程,培养学生的综合性工程能力。这一阶段侧重于理论知识的灵活运用和实践能力的培养。
在开放式工程实训环节,我们采取多种形式的校企合作。一是参观学习,与本地知名的IT企业联系,组织学生参观学习企业的现状与发展、项目研发过程与管理、人事管理模式、企业文化、团队精神与创建等,让学生比较深入地了解软件企业的运行环境及要求,对未来就业有个初步的定位;二是项目开发,针对企业成熟的项目或正在研发的项目,由企业工程技术人员做项目经理,组织学生完成,全面参与项目开发与管理的全过程。学生开发团队参与从需求管理、软件项目管理、软件配置管理、软件项目跟踪与监控、软件质量保证、软件分包管理、集成化软件管理到同行评审等过程的实践活动;三是研讨与评测,对工程实训做出评估。将企业技术人员请到学校,和校方教师、参加实训的学生一起,对实训进行全面总结,涉及到项目完成情况汇报、项目开发与管理中出现的问题讨论与总结、学生具备知识点的优势与不足等,通过讨论和评测,对企业人员素质需求与教学之间的间隙有更清晰的认识,学生的应变能力得到锻炼,教师也能了解企业的最新动态;四是鼓励学生结合未来的就业动向、个人专长与兴趣爱好,选定合适的实习单位,3~5人为一小组,自行确定实训内容,制定计划,自我管理,自我组织完成实训教学任务,独立解决实训中遇到的各种困难和工程技术问题,变被动学习为主动学习。
通过和企业合作,教学活动面向社会需求的目标变得更加明确,也促进了校企在教学和科研等方面的合作,能为学生提供更好的环境,更高质量的工作平台,也有益教师教学科研水平的进一步提高。
2.4科研素质训练
在上述三个层次实践教学体系的基础上,我们提倡教师平时应向学生强调“学研结合”的重要性,提高其科研创新素质。大学生中间蕴含着巨大的创新潜能,大学生科研活动是培养和发挥这种潜能必不可少的途径。
在“学研结合”提高学生科研素质和创新能力方面,我们的改革思路如下:首先,学校及院系应积极主办大学生课外科技活动和科技竞赛,给学生创造展示的舞台,培养学生的实践能力和创新精神;其次,在相关课程中适当增加面向提高和创新型的实验项目,鼓励学生结合课程所学积极申报大学生科研项目,发表学术论文、撰写研究总结报告;第三,让学生有机会参与到教授们的研究中来,承担相应的任务,全程跟进真实课题;第四,大力支持学生参与各种级别的竞赛活动,对优胜获奖学生给予奖励,提高就业竞争力。
3实践教学成果
自2010年9月起,在院领导的大力支持和相关教师的密切配合下,我们对本院软件工程专业2008
级学生进行了为期一年的软件工程学课程实践教学改革。学生反馈和成绩表明,在建构主义学习理论的指导下,我们所采用的多层次实践教学体系的各个阶段相互渗透,发挥优势,有效调动了学生的积极主动性;其次,为理论联系实际找到了结合点,培养的学生更能适应软件人才市场的需求,目前已有30%的学生参入到教师或企业的实际软件研发项目中,发挥着重要作用;再者,有效锻炼了学生分析问题与解决问题的能力,学生积极参加各级学科竞赛活动,并在国家工业信息化部组织的“全国软件专业人才设计与开发大赛”初赛中取得了3个一等奖、3个二等奖、6个三等奖的好成绩,并在积极备战全国总决赛。
4结语
实践教学是培养学生应用能力和创新能力、实现素质教育和创新人才培养目标的重要环节,在加强对学生的素质教育与培养创新能力方面有着理论教学不可替代的重要作用[1]。怎样充分利用多种实践形式的优势,将实践过程有效融入理论授课,逐步引导学生深入学习研究,是需要授课教师不断探索的课题。下一阶段,我们将着重针对授课教师项目背景经验少,实训知识不系统等问题,强调教师深入软件企业进行工程实训的重要性,增强教师的专业素质,更好地为软件工程相关课程的教学服务。
-
随机阅读
- 1网络工程导论论文2100字
- 2计算机犯罪论文4500字
- 3安全信息化论文2200字
- 4安卓软件开发论文2200字
- 5数字多媒体技术论文3300字
- 6计算机维护论文2400字
- 7大学计算机系论文3400字
- 8物联网工程论文2800字
- 9计算机微软论文3100字
- 10软件工程学论文3900字
服务热线:18078928157 客服微信:18078928157 客服QQ:1475317676
特别声明:本站不是任何杂志官网,不涉及出版事务,特此申明。