时间:2022-11-27 08:01:47
开篇:写作不仅是一种记录,更是一种创造,它让我们能够捕捉那些稍纵即逝的灵感,将它们永久地定格在纸上。下面是小编精心整理的12篇软件工程专业,希望这些内容能成为您创作过程中的良师益友,陪伴您不断探索和进步。
【关键词】工程认证背景;软件工程;实践课程平台
一、国内工程认证背景下软件工程专业实践课程的发展概述
在新工科背景下,实践教学作为实践性、创造性较强的教学工作,需要在传统工科实践教学模式的基础上进行深入探索和创新,打造符合新工科模式的实践教学平台。国内各大高校学者在工程认证背景下提出了若干工程教育认证与教育教学理念和研究方法。武汉大学计算机学院学者从软件工程专业实验教学定位分析,结合“以学生为中心、以‘创造、创新、创业’为导向”的教育理念,建设基于云的实验教学平台,培养"新工科"学生的核心能力[1]。东北大学软件学院学者结合新工科教育理念提出了软件工程专业理论与实践相结合的计算机网络课程建设与改革方案。湖南工程学院计算机与通信学院学者提出了软件工程课程教学改革整体框架,该框架构建四位一体的教学模式,以学生为中心,从学习资源库、教学团队、角色课堂和评价体系四个方面,全方面提高学生的项目开发实践能力。肇庆学院计算机科学与软件学院学者提出针对学生实际动手能力不足、团队协作意识薄弱的问题,构建了一种基于校企合作的软件工程专业实践教学模式[2]。郑州升达经贸管理学院信息工程学院学者提出了民办高校软件工程专业进行工程教育改革的措施,以培养学生运用所学专业知识解决实际负责工程问题的能力,提高学生走入社会的竞争力。
二、工程认证背景下软件工程专业实践课程的体系构建
结合我院特色,在软件工程传统实践教学模式的基础上进行探索和创新,研究与建设符合新工科模式的实践教学平台。我院软件工程专业设置了大量的实践课程,2018级、2019级、2020级软件工程培养方案中的实践课程分为51学分、54学分、52.5学分,占总学分的比例为31.76%、33.53%、26.38%。在工程认证背景下,专业课程的设置了大量的上机、课程设计、实验、实训、毕业设计等注重学生实践动手能力的教学环节。现阶段专业教师在进行实践课程授课的过程中仍然采用QQ发放作业、收取作业,亟需建立一个满足日常授课、配套的学生练习和成绩考核以及提高学生实践动手能力和创新能力的平台。现阶段软件工程专业实践课程体系包括上机、课程设计、实训、毕业设计4个教学环节。
2.1上机课程
上机课程占比为1/4~1/2课时,为学生巩固所学知识点而开设,其主要内容强调演示证明某个一个算法、设计某一个模块的实验结果。涉及的课程主要为专业课:计算机程序设计基础、数据结构、面向对象程序设计(Java)、数据库原理与应用、网页制作、软件工程导论、可视化建模与UML、JavaWeb编程等课程。覆盖的工程认证毕业要求1工程知识、2问题分析、3设计解决方案、5使用现代工具等[3]。
2.2课程设计
课程设计是在理论课结束后,新开设的实践课程,能够将对应理论课程的内容进行综合的练习而进行课程设计,是实践课程体系中最重要的组成部分。课程设计强调对课程知识点综合应用,实践案例来自企业真实的项目或者国内知名竞赛的题目。涉及的课程有:网页设计课程设计、软件工程课程设计、Java语言课程设计、JavaWeb课程设计、Web前端开发课程设计等。覆盖的工程认证毕业要求3设计解决方案、5使用现代工具、6工程与社会等。
2.3项目实训
项目实训主要开设在第7学期,综合运用多门课程的知识点完成软件工程的项目实训。让学生参与软件的需求分析、设计、实训、测试、维护等软件工程的生命周期,培养学的团队协作、职业规划、沟通、项目管理、终身学习等能力。软件工程专业现阶段的专业方向课程分为web方向课程和移动端开发方向课程,web方向的课程项目实训涉及课程为Java架构课程设计和Java微服务架构课程设计,题目选取了校企合作的企业级应用项目的部分功能,综合了专业基础课网页设计、Java、JavaWeb编程、数据库原理与应用、Web前端开发技术等多门课程。移动端方向设置的Android高级编程课程设计和微信程序开发课程设计综合了H5移动应用开发、Android应用开发、数据库原理与应用、网页设计、移动后端开发等多门课程的知识。其覆盖的工程认证指标点除了课程设计的要求以为,还覆盖了毕业要求8职业规范、9职业规范个人和团队、10沟通等。
2.4毕业设计
毕业设计是软件工程实践教学体系中的最后一个综合性、创造性的实践性教学环节。毕业设计题目从企业中的实践项目中进行选取,采用指导教师和企业导师联合指导的方式进行。毕业设计的整个过程包括选题、开题、中期检查、毕业论文编写、毕业设计项目演示、项目答辩等过程。最后系部邀请企业导师和校内导师联合推选优秀毕业设计,举办毕业设计展等活动。其课程所覆盖工程认证毕业设计要求的指标点除了上机、课设、项目实训的等课程的指标点以外,还加入了毕业要求11项目管理和毕业要求12终身学习。
三、工程认证背景下软件工程专业实践课程的实践平台建设
我院软件工程实践教学平台坚持“以学生为中心、提高实践能力、增强学习能力”为建设目标,采用项目式教学方法来构建学生的知识体系和动手实践能力。该实践教学平台承担上机、课程设计、实训、毕业设计等多个功能,并体现“工程认证”背景中提出的“以学生为中心”的原则。实践教学平台主要包括实践课资源共享系统、实践课在线培训系统、实践课在线练习系统、学生能力分析系统等4个部分。
3.1实践课资源共享系统
软件工程专业实践课各类资源共享系统,对教师、学生开放。主要包括课程介绍、教学大纲周历、教案、演示文稿PPT、、参考资料、课程录音录像等有助于教学提升的资源。该子系统主要包括平台首页、学习资源、翻转课堂和我的审核等模块。在平台首页、学习资源区均能看到课程的相关资源信息,同时支持同学们对某些重难点知识点按照自己的理解录制讲义视频等,通过教师审核后到平台,供其他同学学习。
3.2实践课在线培训系统
实践课在线培训系统与资源共享子系统搭配,通过学生学习的路径设置相应的算法进行评分设置、学分排名等。学生可以通过学习资源信息、完成作业、参与点赞和信息等行为,实时查看班级的排名信息,该分数可以作为教师过程性考核的依据。
3.3实践课在线练习系统
实践课在线练习系统与培训系统搭配,可根据课程内容或知识点进行考试练习。涵盖出题、组卷、考试、导入考生信息、监考、自动评卷/人工评卷等完整流程。可任意指定参与考试班级,指定考试试卷,规定每场考试时间。并可以限定每名考生的重考次数。
3.4学生能力分析系统
学生能力分析系统与在线培训系统搭配,提供督学监控功能,能正确反馈学生的进度、时间,监控每个学员、每门课程的进度等信息。与在线练习系统搭配,为整个班级、每个学生、每次考试进行分析,分析学员的错题情况,对症下药。
四、工程认证背景下软件工程专业实践课程平台的应用效果
该平台应用于软件工程17级、18级、19级等Java语言程序设计1、Java高级编程、JavaWeb开发等3门课程的上机、课程设计等教学过程中。教学过程中取得了相应的教学数据,同时对系统的进一步优化也提供了数据支撑。
4.1教师端和学生端翻转课堂模块
传统的教学模式中,以教师讲解为主。结合课上课下的讲解案例,教师可以将某一门课程的学习资源包括PPT和视频上传到功能区。同时在该模块中允许学生根据自己的理解对该知识点进行重新讲解,通过教师审核通过后该视频资源,使得教学变成双向过程,师生互动更加流畅。同时也将传统的老师讲-学生听的授课模式更改为学生讲-学生听的翻转课堂模式。
4.2积分模块设计
积分模块主要为激励学生学习兴趣设计,在学习过程中进行嘉奖,也能促进学生之间形成良好的竞争,同时为教师课程打分提供一定的参考。积分系统包含了积分获取、学习排行两个功能。积分获取提供两种获取方式,通过学吧论坛点赞互动以及每日签到。学习排行则提供了班级、年级排行等信息。在学生端首页提供了所在班级的学生排行信息,在教师端提供了所教授班级学生的排行信息。
4.3学生练习-测试模块老师可以申请考试教室,等待管理员进行审批,可以查看自己的申请状态,用来查询是否通过审核。申请教室时支持考试试卷上传,学生考试完毕后,将试卷上传到服务器,老师能够查看并批改上传的试卷。本模块支持多个参数查询、成绩报告生成、历史试卷回阅等功能。
4.4学生实践课程练习分析模块
在不断的教学过程中学生能力不断提升,以往采用期中考试、期末考试为学生能力的评估方式,缺乏中间过程有条理、有证据的分析支撑。无法准确获知学生在哪个阶段出现问题,也难以从源头解决。采用学生能力全过程的分析手段,有助于及时发现异常并调整,高效提升学生的综合素质和能力。以上机练习的选择题为例,将错误的选项进行统计形成分析报告,可以帮助教师分析集中的错误知识点,便于教师有目的讲解错误习题。
五、结束语
针对新工科建设和工程教育认证对软件工程特色专业建设和人才培养的要求,以本校软件工程专业实践课程为突破点,针对学生实践能力较低、动手能力不足、团队协作意识薄弱等问题,践行“新工科”工程教育理念、探索培养模式,助力学院向应用技术型高校转型,构建软件工程专业实践课程教学平台,一方面满足软件工程实践课程的日常教学需求,另一方面完善软件工程实践课程的教学体系,加深课程与课程之间的衔接关系,为其他应用型高校软件工程专业提供较好的借鉴和参考模式。
参考文献
[1]熊念,周珊,刘小丽,陆尧胜.基于云计算的跨校区计算机通识课程实验教学研究[J].实验科学与技术,2020,18(03):114-117.
[2]廖卓凡,王静,熊兵.新工科背景下“软件工程”课程教学与实践改革研究[J].计算机时代,2021,{4}(05):81-83+87.
关键词:学科竞赛;软件工程专业;实践教学
一、软件工程专业实践教学中存在的问题
部分高校软件工程专业在课程设置方面不够合理,实践教学只占据了较少的比例,且选择了相对滞后的产业作为实践教学内容。从实践教学角度来讲,大部分实践教学环节是为了验证理论内容,缺乏综合性实验和设计性实验,且依然遵循先理论后实践的顺序开展实践教学,这样就对学生应用能力的培养起到了很大程度的限制作用。具体来讲,包含以下问题。首先,在专业目标培养过程中,对理论知识过分重视,实践训练遭到忽视;对课内充分重视,课外遭到忽视。其次,验证性实验是实验教学体系的重点,设计性、综合性实验较少,对学生动手能力、创新能力的培养起到了阻碍作用。再次,没有严格管理实践教学过程,缺乏相应的质量监控和评价体系。最后,实验教学体系没有得到创新,无法有效训练学生的工程能力和职业素质。针对这些问题,就需要结合学科竞赛,对实践教学中存在的问题积极思考,采取相应的解决措施,实现以赛促教的目的。同时,通过提升实践教学质量,也可以将学生的学习兴趣有效激发出来,促使其实践动手能力得到提升,进而在学科竞赛中取得不错成绩,达到学科竞赛与专业实践教学协调发展的目的。
二、学科竞赛驱动下的软件工程专业实践教学改革策略
一般来讲,专业学科竞赛分为教育主管部门、行业协会及企业组织的学科比赛。其中,“中国软件杯”大学生软件设计比赛、华北五省及港澳台大学生计算机应用大赛、“蓝桥杯”全国软件和信息技术专业人才比赛等是与软件工程专业密切相关的比赛。研究发现,这些竞赛的形式主要是编程实践或是团队、若干个学生组成团队来与其他团队竞争,结合某一个问题,提供相应的解决方案,或者是设计相应的软件作品。学科竞赛活动的开展,主要是对学生知识运用能力、问题解决能力、创新实践能力等进行考核,其可以大力培养学生的信息捕获能力、团队合作意识[1]。同时,通过学科竞赛成绩,也可以将教学计划、教学内容的合理性反映出来,及时将教、学当中的问题找出来,进而采取更加针对性的改革策略[2]。
(一)以赛促教,以赛促学
“以赛促教,以赛促学”是软件工程专业实践教学中不可缺少的一种教学模式,能够有效培养学生的实践能力[3]。在具体教学实践中,综合运用一系列形式,如广泛宣传、跨年级集训、团队选拔等,在竞赛过程中融入社会对软件人才知识的需求,让学生充分认识到软件开发的热门方向。1.营造竞赛氛围。为了提高软件工程专业实践教学质量,在教学实践中,应结合专业实际情况,开展介绍会等活动,对各项专业学科竞赛进行针对性介绍,让学生明白竞赛获得好成绩可以获得的奖励,以促使学生对学科竞赛的初步了解。为了将浓厚的学科竞赛氛围营造出来,还需要将学科竞赛社团创建起来,通过社团活动的开展,促使学生对各项竞赛的特点深入了解,让其意识到要想在竞赛中获得好成绩,需要长期努力和参与,这样可以有效锻炼学生各方面的能力。同时,也可以将高年级学生的传帮带作用充分发挥出来,帮助和指引不同水平的学生,将学生参与实践锻炼和学科竞赛的兴趣、积极性充分调动起来。2.开展培训指导活动。软件工程专业实践教学中,为了全方位保障、开展技能竞赛工作,要依托校内外实训场地平台,指导教师要形成“以赛促学、以赛促教、赛学结合”的教学理念,结合竞赛项目,开展针对性的竞赛培训,让参与集训的学生不分年级,均可参加。在培训过程中,首先将竞赛考核的内容、能力要求等介绍给学生,让其明白竞赛要求,了解如何才能提升个人能力;其次将竞赛中涉及的技术、课程中没有涉及的内容讲授给学生。通过培训指导活动的开展,可以帮助教师对现阶段软件行业技术发展趋势充分了解,与目前教学过程做对比,找出存在的问题,积极改进和完善,达到以赛促教的目的。在培训活动实施中,学生也可以对市场对软件研发人才的需求和要求进行深入了解,和自己进行对比,找出不足,提升学习和实践的针对性,达到以赛促学的目的[4]。3.团队选拔,指导参赛。软件工程专业实践教学离不开学科竞赛活动,学科竞赛活动一般包括程序设计类和作品类两种类型。在程序设计类方面,算法设计是主要的内容,为了提升参赛团队的水平,可以在校内组织一些选拔赛、邀请赛,也可以由社团定期组织练习赛,包括周赛、月赛等,根据参赛结果,对队员进行排名,以此筛选出具有较高水平的学生,督促那些能力不够的学生继续开展针对性训练,提升实践能力。在作品方面,包括较多方面的竞赛内容,如游戏开发、嵌入式系统、网络安全、大数据处理等,教师要结合学生需求意愿及能力水平,组建相应的团队。结合院校实际情况,一般来讲,每个开发大类,都需要组建相应的参赛团队。
(二)促进实践教学和社会需求的融合
1.有效指导教学内容。学科竞赛驱动下,软件工程专业实践教学改革应重视教学内容的更新。从研究程序设计类学科竞赛可以得知,其紧密联系着程序设计语言、数据结构、算法设计类课程。但是在具体教学实践中,往往根据教材内容来设计实验和课程,学生只能够理解和掌握各类算法,无法在网络通信、社交系统等领域内实际应用算法,制约学生动手实践和创新能力的培养。而通过参与学科竞赛,教师可以对教学内容进行重新审视,剔除滞后性较强的内容,将竞赛题内容引入进来。这些新引入的数据结构、算法设计等课程内容,可以将软件产业现状和发展趋势充分体现出来,进而对学生的学习兴趣、积极性有效激发,也可以让学生学会如何在实践中应用书本上的理论知识[5]。总之,通过学科竞赛活动,可以对软件工程专业实践教学内容逐步更新,跟上时展的趋势和要求。2.转化竞赛案例。在软件工程专业实践教学环节中,非常重要的组成部分为课程设计和校内实训,其将课程的各方面内容涵盖起来,甚至可以说,其对实践环节的教学质量起到决定性的作用。过去在实践教学中,往往是对信息管理系统进行开发和设计,没有创新,且不符合软件行业的发展趋势,无法有效锻炼学生的实践能力。而通过转化竞赛作品,将其作为教学案例使用,则可以规避这些不足,既可以让学生对学习到的知识点进行巩固,又充分体现了创新精神的意义,将学生学习的积极性和主动性有效激发出来,从而增强软件工程专业实践教学的实效性。例如,“校园微信平台”案例,作品充分考虑学生的校园生活实际情况和需求,目的是协调管理校园内公共资源,共享校园各个系统的资源,方便师生课后交流等。其在微信公众平台、动态网页爬虫、LBS应用等技术的支持下,可以实现单点登录校园内各个系统,利用云存储分享各种信息,促使学生能够对校内网络信息资源便捷访问,对校园生活服务信息及时了解等。将其作为实践教学的案例,引导学生进行开发实践,可以有效涵盖WEB开发、网络爬虫、云存储等诸多的内容。
(三)完善实践教学管理体系
学科竞赛驱动下,完善管理体系是软件工程专业实践教学改革过程中非常重要的一个环节,对于优化实践教学过程十分重要。为此,首先,高校要充分认识到自身的职责,设置创新必修课,对学生的学习实践能力、创业能力大力培养。结合实际情况,可以将学科竞赛纳入学分分配中,对学科竞赛的地位进行明确,甚至可以要求每一位学生都要参加竞赛活动。将创新创业领导小组成立起来,科学统一管理、筛选、培训各种赛事活动。其次,学科竞赛的成绩要想得到改善,并不是一朝一夕能实现的,需要长期努力,那么就需要将高素质高水平的竞赛指导教师队伍构建起来。在竞赛指导教师选拔过程中,综合考虑知识能力、专业技术水平、责任心等诸多方面的内容,定期让竞赛指导教师接受针对性的培训,以便促使指导教师的知识结构得到完善,实践能力得到提升,从而提升竞赛指导的整体质量。最后,要结合院系实际情况,设立专项资金,保障竞赛的顺利开展。同时,将竞赛资助项目成立起来,奖励那些在学科竞赛中获得好成绩的学生及教师,激发学生、教师参与竞赛的积极性。由此,促使学科竞赛顺利开展,有效提升软件工程专业实践教学的质量。
(四)改革实践教学评价模式
软件工程专业实践教学中,要对过去单纯的考试评价模式进行改革,综合考核学生的知识和能力;结合教学要求和实际情况,综合考核平时作业、项目训练和笔试等多个方面,通过作业成绩考核,可以对学生起到有效的督促作用,笔试考核则考核学生的知识掌握情况,项目考核则考核学生的知识应用能力、动手实践能力和创新能力等。注重过程化管理,依据相应的比重,将三方面的考核成绩综合起来,形成总成绩。由此,确保软件工程专业实践教学评价方法更加科学、准确。
三、结语
社会对软件工程专业人才提出了更高的要求,需要具备较强的动手实践能力和创新能力。因此,就需要以学科竞赛为基础,找出现阶段软件工程专业实践教学中存在的问题,采取针对性的措施,如科学设置实践教学内容、创新实践教学方法等,达到以赛促教、以赛促学的目的,培养学生的实践动手能力和团队合作意识,提升软件工程专业实践教学质量,培养出更多优秀的人才。
参考文献:
[1]白伟华.基于协同的软件工程专业实践教学改革研究[J].科教文汇,2017,5(10):123-125.
[2]杜小坤,徐胜舟.软件工程专业实践教学改革探索[J].现代计算机,2017,3(11):44-48.
[3]张宏明,赵建邦.学科竞赛与教学实践联动的软件人才培养模式研究[J].黑龙江教育,2018,4(10):244-246.
一、目前高职院校软件工程专业建设存在的问题
高职院校经过十几年的高速发展,数量上和规模上有了显著提高,为社会和企业提供了大量技能型人才,为中华民族的腾飞做出了巨大贡献。近几年由于信息技术特别是软件外包发展迅速,软件工程专业也得到蓬勃的发展,具有计算机和信息背景的高职院校普遍开设了软件工程专业。近5年通过调查研究,发现在人才培养方面软件工程专业存在一系列以下问题:
1、院校“同质化”严重,职业特色不够突出
高职院校人才培养模式和专业设置关系着高职院校的生存和发展,在高等教育“大众化”的背景下,高职院校的专业设置“同质化”十分严重,完全没有从区域经济发展的需求,盲目投入巨大资金,造成资源上巨大浪费。现在大部分高职院校软件专业学生的理念、知识和技能与社会和企业的期望差距非常大,无法满足需求,造成“结构性失调”。[2]大部分高职院校重理论,轻实践,照搬本科院校的学历教育,没有显著突出职业教育的特点。高职教育培养第一线需要的高级应用型人才,培养的人才具备与高等教育相适应的基本知识、理论和技能,掌握相应的新知识、新技能和新工艺,有较强的实践动手能力和分析、解决生产实际问题的能力。
2、人才培养与社会要求差距大矛盾突出
企业为了适应社会发展和满足消费者的需求,对创新型高素质技能人才需求极大,提高产品的质量,获取最大的回报。但现实是企业招聘到合适人才的机会越来越小,而中国每年近七百万的大学毕生业大部分找不到合适的工作,特别是高职院校学生就业质量不理想。社会对技术人才需求量非常大和大部分学生找不到合适工作的矛盾,主要原因是院校的人才培养模式落后,所传授知识难以满足社会企业的需求,不适应社会需求。
3、“工学结合、校企合作”层次低
高职院校领导都具有“工学结合、校企合作”的思维,但受多个因素影响,大部分高职院校的校企合作仅仅停留在备忘录或纸面协议,即使有,深度也不够,仅仅是高职院校利用寒暑假组织学生到企业定岗实习,学生在流水线从事简单枯燥的机械式工作,与期望相差甚远,未能充分体现工学结合理念,效果不佳。
二、提高高职院校软件工程专业人才培养模式和课程建设的措施
《教育部财政部关于进一步推进“国家示范性高等职业院校建设计划”实施工作的通知》(教高[2010]8号)中,对专业建设与人才培养模式改革提出了具体要求。陕西职业技术学院通过对软件专业人才培养模式和课程体系建设进行深度改革,促进软件专业建设更上一层楼,具体措施如下:
1、吃透政府政策,立足服务区域产业,准确定位专业建设方向
软件外包产业被称为“高科技、高附加值的绿色产业”。根据《西安软件外包发展规划(2010-2015年)》,西安市软件外包发展的总体定位是成为国际软件外包中心之一,总体目标是成为全球知名的软件外包中心城市,服务区域经济发展。学院应抓住这次契机,为西安市软件外包储备人才。软件产业包含软件测试、软件架构、物联网、云计算、虚拟化、智能穿戴、智能家电、APP等新兴产业。在国家政策的鼓励和社会需求的推动下,新兴产业在未来的10年将有较大发展,成为中国由“中国制造”向“中国智造”产业升级的主力军。但是,目前许多高职院校软件工程专业的课程极少涉及上述核心技术,无法满足社会和企业的需求。高职院校为了提高软件专业学生的就业率和就业质量,领导和教师必须密切关注软件产业的发展趋势和热点,深入到软件企业调研,了解企业真正需求,预测未来几年软件发展热度,做好课程建设方面的知识储备。
2、紧抓市场契机,与企业深度合作,力求实现共赢
陕西职业技术学院处在西部大开发的桥头堡——西安,新的形势为西部高职院校和西部企业提供了合作机会,院校改变办学思维,主动要求相关企业合作办学,特别是软件外包的相关企业,使企业参与到软件工程专业的课程建设和人才培养上,学院根据企业反馈的信息,及时调整课程结构,优化教学内容,使学生第一时间学习企业最急需的技术,毕业后及时融入企业工作环境中,合作企业每年优先从毕业学生中选取优秀毕业生充实到企业中,分享合作办学的硕果,由被动转化为主动,解决“院校热、企业冷”的校企合作办学难题。高职院校对学生的培养目标定位在实用性“蓝领”人才,侧重于培养学生的专业技能、动手能力,院校和企业之间可以采取“联合办学”、“订单式”培养模式,使学生实际操作能力显著提高,院校的就业率得到保障。软件工程专业学生可以与西安高新区多家软件外包企业签订联合办学协议,为学生多方面提供带薪顶岗实习,熟悉企业工作流程。顶岗实习学生可以从最简单的软件测试开始,熟悉软件测试中的单元测试、模块测试、系统测试和集成测试等方法,掌握黑盒测试和白盒测试等技术,为自己就业奠定基础。
3、构建“校企合作,工学结合”的专业课程体系
“校企合作,工学结合”模式是目前高职院校相对成熟的人才培养模式,突出了高职院校教育的职业化,是高职院校公认的“金”模式,核心是骨干课程建设,使毕业生第一时间胜任工作岗位,短时间内获得更大发展空间。
三、结束语
在国家提出部分普通本科高校向应用技术型转型的背景下,针对信息类高校软件工程专业如何保持理论教学及实践教学的有效性,如何通过改革教学方法,如何适应新的教学模式,如何提高教学质量及学习效果,更加适应社会对软件工程人才等问题,本文通过对现状进行分析和研究,结合实际给出一些建议和措施。
关键词
教学模式;MOOCs;软件工程;人才培养
1程序设计教学现状分析
1.1程序设计理论教学不同的课程对教学手段有着不同的需求,对于绝大部分侧重于理论且实践性不强的课程来说,传统课堂模式基本可以满足所有需要。但是,对于计算机程序设计课程来说,传统课堂手段就处处显示出其劣势。计算机程序设计课程不仅需要严密的逻辑思考能力而且更加注重实践动手能力的培养,学生需要在调试程序的过程中学会编程,积累经验,逐渐提高能力。因此,教师的“教”与学生的“练”共同构成整个学习环节,但是传统课堂教学只是强调了教师的教,而学生的“练”仅仅靠学生课下自觉,这种状况很难达到满意的效果。同时,不同教师的授课风格的不同,使不同的学生的理解和接受水平具有显著的差别,学生需要多接触不同的学习方式。
1.2程序设计实践教学通常情况下,理论课授课地点为教室,而实践课则需要到机房上课。实践课一般无教材,课前授课教师会编写一份试验指导书,并在上课时发给学生,学生按照实验指导书的要求完成实践课任务。一般情况下,实验指导书会包含实验内容、练习要点、实验目标及实验要求,同时也包含一些代码及提示信息。关于实践课中实验完成方式一般分为独立完成和小组合作完成两种,若程序工作量不大,就安排学生独立完成,若程序复杂且工作量大则可采用分组完成形式。实践课作为课堂理论教学的练习巩固环节有着极其重要的地位,实践课做得好会对学生未来工作带来直接的益处。
2新教学模式带来的挑战
大规模开放式网络课堂教学开启了新的教育教学模式,自从2008年MOOC这个术语被提出以来,尤其是2011年之后,这种以MOOC为代表的新型在线教育模式有了爆发式的发展,涌现了一批具有影响力的教育教学平台,例如斯坦福大学牵头的Coursera项目、哈佛与MIT共同参与的edX项目,以及较早的免费大学教育企业Udacity。随着一些知名教授等相继上线各类课程,在一定程度上使实体大学的教师们产生了压力,学生被这种在线课堂吸引过去从而出现不来上课,或者不重视学校的传统课堂。因此,在这种情况下,必须采取正确有效的措施,既保证学生的课堂兴趣和学习效果,又能博采众长,提高教学水平,这是对教师提出的紧迫要求。
同时,教育部于2015年4月13日文件《教育部关于加强高等学校在线开放课程建设应用与管理的意见》(教高[2015]3号),②文件规定了各高校要在在线课程建设上需要达到的目标。随着信息技术的飞速发展,以多媒体和网络为代表信息技术对高等教育产生了革命性的影响。“慕课”、“微课”以全新的教学模式和理念,正在“翻转”着大学的课堂,如何应用好这种新的教学形式,促进高校教学与现代信息技术的深度融合也成为教育界普遍关注的问题。因此,按照文件要求各高校不仅需要做到传统课堂阵地不失手,而且要在在线课堂建设上做出成果。为此,教育部西南高等学校师资培训中心分别于2015年10月16日-10月21日、2015年10月30日-11月4日分别在上海和成都举办两期“高校慕课、微课建设与翻转课堂教学应用实务培训班”。对于学员中学习成绩优秀者,将推荐参加由教育部教育管理信息中心每年组织的“全国多媒体课件和微课大赛”,优异的课程将获得开课平台的经费支持,课程建设完成后将在国内知名慕课平台和运行。
3对策与建议
3.1基于大数据的教学方法在教育教学活动中,教师一定要对学生有全面、正确的了解,只有这样才能对教学中存在的问题做到“对症下药”并提高教学水平。因此要注意与教学相关信息的掌握和搜集,只有在大数据的背景下才能分析并找到问题的突破口和解决方案。学校教务部门的各种相关简报是重要的数据资料。以重庆邮电大学为例,目前教务处的各种教学质量季报、教学督导简报都可以在校园网上检索下载,每份简报都包含大量的统计分析数据信息和意见建议信息,目前已经有60期督导简报可供下载。教师要充分利用这些数据资源,了解学生学习问题、了解其他教师教学经验和教训,提高自己的教学水平。
3.2“卓越工程师班”计划目前,重庆邮电大学在程序设计课程教学改革方面的做法值得借鉴。学校成立了“卓越工程师班”,其成员从所有班级同学中挑选优秀学生进入“卓越工程师班”学习,采用不同的教学模式进行教学。同时,“卓越工程师班”的成员不是固定不变的,每学年要有15%左右的淘汰率和补录率,保持了“卓越工程师班”的流动性和先进性。在教学方面,“卓越工程师班”不再将理论课与实践课分开上,而是合为一体,每次课课时为4个学时,包含理论学习和实践环节,两位教师上课,一位教师主讲,一位教师辅导,授课地点安排在机房,兼顾理论学习和实践操作。通过卓越工程师班计划的执行,一方面学生的主动学习热情得到了空前的激发,课堂上不再出现以前的沉闷现象,学生做到了积极思考,互相帮助、主动发问,学习效果明显得到了提高;另一方面学生视在“卓越工程师班”为一份荣誉,为了保持不被淘汰而努力学习,同时那些没进入“卓越工程师班”也在提高成绩努力争取加入“卓越工程师班”,这样形成了一种良性竞争的学习环境,带动了大部分学生学习的积极性。
3.3实践与实训相结合目前大的软件企业不仅开发产品,也在做培训,在线教育也是这些企业的核心业务之一。这些企业做在线教育的天然优势就是可以与实际项目结合,可以让学员进行实际项目开发。这种模式不仅锻炼了学生能力,也在学习过程中培养了企业所需的人才。因此,作为重要环节的实践课,学校可以采用实践与实训相结合的方式,让学生真正学好程序设计。在第一阶段,教师在学校指导学生实践,学生将学到知识在实践中重新梳理并巩固,同时将没有掌握好的知识点弄清弄懂,为参加企业实训打下基础;之后进行的第二阶段就是学校派学生到企业参加实训,让学生体验企业工作方式,在实际环境下解决问题,提高编程能力,也为就业打下基础。
3.4与在线教育结合大规模在线教育的兴起带来了课堂革命,高校及教师要抓住这个机遇,按照教高[2015]3号文件要求,开发在线教育课程。重视在线教育课程不是可以忽略传统课堂授课方式,两种教学方式各有优势,各级教师需要做到将两者有机结合,取长补短,提高课堂教学效果。传输知识,答疑解惑是教师的职责,其中知识的传授方面可以充分利用在线教育的手段,将基础的、简单的知识采用微课形式让学生课下主动学习,课上主要解决学生的疑难问题和不容易懂得重点问题,这种手段也被称为“反转课堂”。这种方式一方面调动了学生学习积极性,也可以提高课堂时间的有效利用率。需要注意的是,采用此方法教学班规模不宜过大,最好控制在50~60人为宜。
3.5灵活的考核手段程序设计不同于其他理论课程,它对动手调试的要求非常高,传统的笔试方式已经不能适应成绩考核的需要。在考核方式上,重庆邮电大学从2013年开始对程序设计课程进行了考核方式改革,改革后采用计算机上机考试的方式,初期具体采用读程序做选择题的方式,考试题目从题库中随机抽取,题库规模超过5000道题,基本涵盖所有知识点,保证参加考试的学生所做题目具有极低的相同几率,机考系统在学生答完题当场给出成绩。同时,重庆邮电大学也不局限于期末机考这种方式进行考核,例如定期在全校范围内举办读程序竞赛,竞赛中获得相应名次的同学可以分别获得程序设计课程的优、良等成绩。
4注重教学内容更新
目前,绝大多数程序设计教材中都是以简单的零散实例来介绍各知识点,这些实例之间没有关联,造成学生无法从整体上把握整个课程的知识。因此,需要设计一个好的教学实例,例如一个MIS系统,该实例要尽可能涵盖所有的知识点。随着授课的深入,知识点的不断学习,该实例不断完善和扩大,到授课结束时形成一个完整的系统。通过这种方式授课,学生不仅把握知识更具完整性,而且也在不知不觉中学习了一些软件工程的思想。学生在校学习阶段就是在学习就业所需的知识和能力。因此,学校需要以市场需求为导向培养人才,不断将课程内容中的陈旧内容用新内容替换。市场是最灵敏的机制,它可以捕捉到任何不易察觉的方向,学校教育不能封闭,必须与市场保持紧密联系,能够获知外界的需求。学校要做到专业设置与产业需求、课程内容与职业标准、教学过程与生产过程“三对接”,以社会和市场的需求进行课程体系设计,这样学生毕业时都能成为市场、企业急迫需要的人才,这也实现了教育的根本目的。
5结语
[关键词]软件工程专业;人才培养;协同育人模式
随着国家新一代信息技术产业发展及其他产业升级转型,软件行业的新应用、新技术、新概念与新模式不断涌现,软件专业人才培养面临着更严峻的挑战。[1]地方经济及企业发展需要大量的信息技术人才。地方高校特别是经济相对落后地区的高校限于区域产业规模、师资、生源等因素,无法直接参照国外校企合作和经济发达地区协同育人模式,且普遍存在重理论讲授、轻技能实践的情况,常常出现无法满足当前企业人才需求、高校毕业生就业难、就业质量不高的双重结构性矛盾。地方高校要主动融入和服务行业企业,紧密跟踪产业升级、结构调整的趋势动态,不断深化与行业企业合作,培养区域产业发展急需的应用技术型人才。[2]
一、地方高校软件人才培养现状
随着社会对软件专业人才应用能力要求的提高,现有软件专业人才培养模式呈现出越来越多的不足。[3-4]目前,地方院校软件工程专业的人才培养现状主要存在以下几方面的问题:第一,人才培养定位不明确。在制定专业人才培养目标时,多数地方高校都强调“创新型、应用型、复合型高端软件人才”,但是限于师资力量、生源类型、社会资源等,上述人才培养目标是很难达到的。同时,培养出来的人才趋于同质化,缺少自己学校的办学特色。实际的人才培养定位应是培养满足区域产业经济发展的应用创新型人才。第二,现有课程体系设置不科学。由于专业定位不清晰,不少地方高校在设计专业课程体系时试图面面俱到,兼顾考研、就业等各类需求。这常常导致专业课程层次不清、重点课程不突出、教学内容冗余陈旧情况的出现,也无法实现人才的专业知识、技能培养与企业需求的“无缝连接”。第三,现有实践教学模式无法推广。地方高校最常见的三类实训模式都存在一定的问题。由于双师型教师的不足和社会企业资源的缺乏,以学校为主导的实训难以真实再现企业真正工作氛围,基本无法有效实现学生实践技能的培养。而以企业为主导的实训,常常面临企业规模有限,企业导师精力有限,少数学生所获指导有限等难题。此外,校外实训还涉及学生校外管理存在安全隐患、难以推广等问题。以培训机构为主导的实训同样面临校外学生管理不便、费用昂贵、效果不如预期、难以持续合作等常见问题。第四,现有教学质量监督体系不完善。传统教学模式是教师通过面授进行理论教学,学生上机实验,并提交程序和实验报告给教师评分。传统教学模式呆板,师生缺少互动,手工评阅作业工作量大,学生没能及时获得反馈,在现代的教学环境下已经显得不适应。信息产业的迅速发展和专业人才需求的旺盛,使探索应用创新型软件人才培养的新模式成为一项非常必要的工作。笔者针对上述问题,以协同创新理念为指导,展开了“政校企”多元化协同软件人才培养新模式的研究。
二、协同创新理念和协同育人模式的融合
“2011协同创新”本质上是一种管理创新[5],通过对各创新主体的资源优化整合和高效配置促进创新要素的有机融合和良性互动,从而实现资源共享、提高创新效率的目标。因此,实现基于协同创新理念的协同育人模式,关键在于充分利用好地方高校现有资源和师资,构建多方协同、多元评价、多面融合的协同创新平台。我们依托广西混杂计算与集成电路设计分析重点实验室,以广西民族大学牵头的广西船联网技术协同创新中心为基础,紧密围绕“需求导向、开放共享、融合创新、技术引领”的中心原则,通过建设和提高东盟多语种信息处理、船舶及河道和港口信息采集、通信和分析的信息化程度,政产学研相结合,为地方培养一批高素质的高科技人才。特别是以提高学生专业技能为核心,构建高效的、服务于船联网及相关产业软件人才培养体系的协同创新主体,探索协同创新主体的运行机制,进行多行业软件人才协同培养体制、人才能力训练体系和人才培养质量保障体系的建设,通过构建“面向船联网产业的软件人才协同培养的创新平台”,实现软件人才培养新模式的改革与实践创新。[2]
(一)基于协同创新的软件人才培养主体模式改革传统人才培养模式的培养主体以专业教研室为主,这种模式通常存在师资专业知识结构相对单一、视野不够开阔、与行业的主流技术脱节的问题。广西民族大学软件与信息安全学院在国家“2011协同创新计划”协同创新理念的指导下,积极释放人才培养主体中的创新要素,突破政府、行业、院校内外各个组织机构之间的壁垒,构建一种以协同创新平台为主体的跨地域、跨行业、跨机构、跨部门的软件人才培养新模式,在不同的主体之间打开一条合作共赢的人才合作培养渠道。广西民族大学软件人才协同育人协同创新平台构成如图1所示。
(二)软件人才培养的课程体系改革整个体系的课程设置围绕创新理念下人才培养体系设计,为后期工程项目实施服务。课程体系的设置具备系统性、渐进性、协同性和模块化的特点,先开的课程是后续课程的前导课程,而不是随意开设。此外,教学案例来源于产业领域的实际项目。在这类项目式教学模式下,多门课程的专业知识会在一个项目的实施过程中集中出现,而学生在多个学年的项目学习阶段也会可能一直用到一门课程内容。通过精心设计,实训案例的功能模块应有每堂课对应的知识点,通过“做中学、学中做”提高学生的综合能力。
(三)软件人才培养的实训模式改革需要强调的是,这里所采用的实训模式并不关注学生所在的训练场所,而是注重构建具有可操作性、标准化、信息化的项目案例实训平台。通过构建一个虚拟的软件公司环境,学生在专业教师和企业导师的指导下逐步完成真实的项目案例,确保实训每个教学案例的考核点都得以有效实施。
(四)人才协同培养的质量保障体系改革由于协同创新理念下协同育人涉及多方单位、部门,保证教学质量一直都是该协同育人模式的痛点和难点。我们通过建立各协同培养单位、部门共同参与的评价体系,引入辅助教学质量监控信息化平台,对理论教学和实践教学中重要、关键的环节进行跟踪、分析和改进,有效确保了协同育人模式的教学质量。
三、协同创新理念下的协同育人方案
(一)人才协同培养平台构建人才协同培养平台以依托软件与信息安全学院所属的船联网协同创新中心的创新团队形式存在,由防城港市工业和信息化委员会、广西民族大学相关院系/职能部门、电子科技大学、兰州大学、防城港务集团有限公司、上海泽众软件科技有限公司等“政校企”单位组成。平台构建主要包括创新团队组建及能力建设、培养方案及教学案例库建设、创新平台的运行体制与机制建设、校内外实训场地及实训平台建设等软硬资源。在人才培养过程中,协同培养平台基于协同创新中心管理制度对创新要素进行协同与整合,构建实现专业链与产业链无缝对接的办学模式。通过校内、校企在专业师资队伍、实验实训基地、课程与课堂等领域的共建,缩短学生从学校到企业需求的距离,真正实现“产教融合、研学交替”的软件人才培养模式。[2]
(二)人才能力培养体系设计1.课程体系设计课程体系包括通识必修(思想品德、创新创业及公共体育等)、通识选修(文化素养)、专业必修、专业选修课程四大块内容,在知识、能力、素质等方面全面培养学生的综合能力和素质。协同育人能力培养课程体系如图2所示,整个体系充分体现了系统化课程框架、模块化课程教学以及递进性实习实训的特点。2.案例资源库建设资源库建设将从教学需求角度按专业知识点对软件项目研发流程中产生的系统功能模块进行归类梳理,形成具有代表性,可操作、可考核的规范化教学案例。在实训教学过程中,每一个教学案例源于真实的软件项目,并有机构成实训体系。学生在实训过程中加深对软件开发流程、具体技术细节等方面的理解。在理顺知识点内在联系的基础上,通过提高主干课程的学习难度和强度,可以提升学生熟练掌握和应用相关知识点的能力。[2]这里,我们以船舶信息管理系统为例阐述资源库的建设方案。完整的船舶信息管理系统包括“设备管理”“热工管理”“人员管理”“工程管理”和“系统维护”等十几大功能模块,为船东和船舶管理公司提供一站式、信息化、智能化、移动化的船舶管理方式。3.实训平台构建整个实训平台涉及软硬件建设,由课程项目和实训项目构成。基础项目来源于教材的案例或课程设计,帮助学生理解和掌握常见应用系统的开发流程、业务知识及研发技能,是应用某门专业课程知识点的媒介,主要培养学生的自主学习能力、工程实践能力以及综合运用能力,一般放在第三、第四学期实施。实训项目来源于标准化的案例资源库,均来自于真实行业级项目,全方位训练学生各方面的知识、素质和能力,一般在第六学期实施。
(三)人才培养质量评价体系构建在传统教学中,普遍的教学模式是教师通过面授进行理论教学,学生上机实验,并提交程序和实验报告给教师评分。传统教学模式呆板,师生缺少互动,手工评阅作业工作量大,学生没能及时获得反馈,在现代的教学环境下已经显得不适应。引入CourseGrading系统,可充分利用信息化教学资源,引导学生课后开展线上学习、积极参与教学讨论。汇集学生在整个培养阶段的学习过程数据、项目实践数据、考试成绩数据等,实现高质量、可量化的教学过程监控。目前,根据教学实际情况,笔者所在学院已经在C语言程序设计、Java语言程序设计、算法设计与分析、数据结构与算法、面向对象与UML等课程中引入该教学软件系统。该系统具备以下功能特点:第一,教学资源管理标准化。通过CourseGrading系统,教师可以课程相关的教学资源,包括课件、教学视频、参考资料等。第二,实践教学过程信息化。在传统的上机实践课中,教师无法了解学生的实践过程。CourseGrading系统中,教师通过系统实验题目和测试数据。学生根据题目完成编程之后上传代码片段,CourseGrading系统对上传的代码进行实时编译和测试。系统后台会记录学生的行为轨迹。这样,教师就可以清楚地了解学生学习过程,包括作业开始时间、作业提交次数、谁最先提交了正确的代码等。CourseGrading系统还可以对代码和文档的相似程度进行判别,防止学生之间的相互抄袭。第二,技能竞赛学习常态化。CourseGrading系统的子系统OnlineJudge系统是目前软件比赛常用的比赛系统。题目之后,OnlineJudge系统可根据提交正确代码的先后次序、错误代码的罚分规则等,引导学生在尽量短的时间内写出正确的代码。目前,广西民族大学软件与信息安全学院已经全面将OnlineJudge应用于学科竞赛选手的参赛资格竞选,通过积分淘汰机制,提升竞赛培训的效果,让专业技术过硬、编程兴趣浓厚的优秀学生能够进一步提升自己的技术水平。本文基于“2011协同创新计划”理念构建真正意义上的政校企协同人才培养平台,破解以往传统校企合作人才培养模式的弊端,从而实现学校人才培养和企业岗位需求的无缝对接。基于耦合理念的课程体系设计、源于真实项目的教学案例资源库建设、多阶段实训体系构建、基于信息技术的人才培养质量评价体系,改变了传统缺少过程监控管理的人才培养质量评价模式,较好地保证了人才培养的质量。
参考文献:
[1]魏士伟,柯捷,马莉.软件工程专业应用型人才培养模式研究[J].科教导刊,2019(8):75-76.
[2]吴俊君.基于CDIO的数字医疗软件人才协同培养新模式[J].计算机教育,2014(5):78.
[3]张素莉.应用型软件工程人才培养的改革与实践[J].现代计算机,2018(6):68-70.
[4]马帅旗.基于协同创新的地方高校应用型人才培养模式研究[J].河南教育(高教),2019(2):93-95.
关键词:课程群;Web程序设计;教W改革;教W实践
中图分类号:G642 文献标识码:A 文章编号:1006-8228(2011)09-56-02
0 引言
高校软件工程专业的培养目标之一,是面向我国的软件产业培养大量的程序员,为我国软件产业的发展培养大批的急需人才。随着软件行业的快速发展,Web应用开发成为了软件行业中的就业亮点。如何提高课程教W质量,使W生掌握更多的Web开发的理论和应用知识,就成了软件工程专业Web开发课程教W改革的目标。为了有效完成Web开发类课程的教W任务,提高教W质量,培养实用型、复合型人才,我们提出了为软件工程专业建设Web程序设计课程群,从课程群的教W内容、实验内容体系和教W模式体系三个方面开展了教W改革和实践。
1 Web课程群教W内容体系改革
1.1课程群的内涵
课程群建设是近年来课程建设改革的一个发展趋势,它注重系列课程的整体优化和交叉性,对积极推进高校课程教W改革、师资队伍管理和教W资源的优化配置具有明显的指导意义。“课程群”的概念有别于传统的“系列课程”。一般认为“课程群”是为完善同一施教对象的认知结构,而将本专业或跨专业培养方案中若干门在知识、方法、问题等方面有着逻辑联系的课程加以整合而成的课程体系。课程群具有两大内涵:一是关联性,课程群虽以课程间的知识、方法、问题等逻辑联系为结合点,在课程群建设未实施前,这一关联尚属内隐,而在课程群建设伊始,这一关联不断外化,并在实际教W中促使W生的认知迁移实现贯通;二是整合性,课程群通过对课程的重新规划、设计,填补原先课程间的空白,删除原先课程间的重复,体现群内一门课程对另一门课程的意义,并使W生更好地把握一门课程与其他课程以及整个课程群的关系,从而达到整体大于部分之和的效果。
1.2课程群知识体系建设
由于种种原因,软件工程课程教W中仍存在着许多问题,如相关课程定位不明确,课程之间内容交叉重复等问题,着力进行软件工程课程群的建设是解决上述问题的必要措施。我们从现有的人才培养方案入手,研究Web课程群中各门课程科目的设置情况。现有的课程包括“高级语言程序设计”、“数据结构”、“算法设计与分析”、“数据库原理与技术”、“JAVA程序设计基础”、“JAVA Web程序设计”、“Web程序设计”、“Web数据库技术”、“动态网页设计”、“SQL Server 2003编程”等。这些课程科目之间,是存在着一定的内容交叉重复。例如,“JAVA Web程序设计”介绍了JAVA
Web开发环境的编程实现,而“Web程序设计”课程中主要介绍了ASP编程实现Web应用,“Web数据库技术”课程中则主要介绍了PHP+MySQL技术实现Web开发。“动态网页设计”课程与以上三门课程有交叉内容。因此,以此为基础,一方面我们需要修改人才培养计划,设计出更加科W的课程群的课程科目;另外一方面,从主要知识点一主干课程一课程群的构建思路着手,达到目标明确、层次分明、定位正确、强化基础、拓宽专业知识的应用型人才培养的要求。
我们将Web课程群的课程科目分为了两个模块:基础知识模块和应用技术模块。Web应用开发也是程序设计。程序设计中不能忽略算法设计。目前软件工程专业的课程开设中,往往是在已经开设了编程语言设计课程之后,才开设“数据结构”课程,结果直接导致了W生非常重视编程语言的语言和命令的使用细节,却忽视了算法设计的重要性,这也使得W生在头脑中建立算法的意识非常淡薄。为了强调程序设计和算法的重要性,建议将“数据结构”、“算法设计与分析”、“高级语言程序设计”安排在第一至第三W期,加强对W生算法能力的训练,培养他们良好的思维习惯。在进行Web数据库编程之前,要开设“数据库原理与技术”课程,为后继的数据库编程打下基础。“JAVA程序设计基础”与“JAVA Web程序设计”这两门课程应该设置为相邻两W期的联系课程,在开设了“JAVA程序设计基础”课程之后,在W生具备了面向对象编程思想,并掌握了JAVA基础编程后,再开设“JAVA Web程序设计”课程。JAVA编程技术内容非常多,“JAVA Web程序设计”课程将重点介绍JAVA在Web环境的应用开发,以满足当前大量Web应用开发人才的需要。“Web程序设计”、“Web数据库技术”“动态网页设计”课程针对ASP、PHP技术做了介绍,与JAVA Web平行,故建议在此三者中选择其一作为重点,增加理论与实训课时,进行持续性教W。
2 课程群实验内容体系改革
根据工程人才培养模式改革的要求,为培养Web应用开发方面的应用型人才,加强W生对Web编程技术的掌握,有效培养W生的实践动手能力,在进行理论教W内容改革的同时,我们也对实践内容进行了改革。
Web开发课程群的实验教W内容的改革遵循以下原则:一是能帮助W生理解和掌握理论知识;二是能让W生通过实践掌握可以应用在产业开发中的编程工具、编程技能,培养W生的系统编程思维。基于以上原则,我们尝试了将试验课程体系分解为四个层次:基础性实验、设计性实验、综合性实验和专业创新性实验。
第一层次―基础性实验,重点是培养W生的相关W科基本实验技能、操作规范和动手能力,增强实践意识,加深对理论课程教W内容的理解。
第二层次一设计性实验,它是基础性实验的延升,侧重专业技能的培养,提高W生分析问题、解决问题的能力,并培养他们初步的系统分析和设计能力。
软件工程专业高层次应用技术和技能人才数量严重不足,同时应用技术和技能人才培养的学历层次不高不能满足企业实际需求。地方高校软件工程专业定位和人才培养目标不明确、教学方式方法缺乏科学性、系统性,实践教学体系不完善,没有与行业就业有效对接,导致培养的人才无法满足社会生产实际需求,导致“软件工程专业毕业生无职可就,软件开发行业以及相关软件应用单位招不到满意的员工”现状普遍存在。
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校企合作运用项目方式指导学生做毕业论文(设计)毕业论文(设计)是对学生的专业知识掌握程度与提升高度的一次全面的考核,同时也是培养学生综合运用所学知识,独立地分析问题和解决问题的能力的一次全面的实训。但是传统的教育模式导致大多地方院校工科专业学生毕业论文流于形式,与实际脱节。通过与企业合作运用项目方式指导学生做毕业论文(设计)弱化学生对毕业论文(设计)的抵触情绪,可以进一步让学生了解行业企业实际运作规范及最新技术,进一步加强对学生实践和技能能力的培养,为毕业后从容就业夯实基础。
4结语
关键词:编译原理;软件工程;项目管理
编译原理是软件工程专业的一门重要专业课程,与其他计算机学科关系紧密,其相关技术在很多领域都有广泛的应用,如软件工程、逆向工程、软件再工程等。这门课主要内容是程序设计语言编译程序的构造原理,包括形式语言、有限自动机、自上而下和自下而上的语法分析、LR分析方法、属性文法和语法制导翻译、语义分析和中间代码产生、存储器的动态分配与管理、符号表的组织与管理、优化问题、代码生成等内容。在软件工程专业设置本课程的目的,在于系统地向学生介绍编译系统的结构、工作原理以及编译程序各组成部分的设计原理和实现技术,使学生通过本课程的学习之后,既掌握编译理论和方法的基本知识,也具有设计、实现、分析和移植编译程序等方面的初步能力,为从事计算机软件开发工作及理论研究工作打下坚实的基础[1]。
由于编译原理课程本身逻辑性强、理论性强、理论实现偏难,学生普遍存在畏难情绪,教学效果不理想。本文就编译原理课程教学中的问题,结合软件工程专业的特点,就教学方式展开深入的讨论。
1编译原理课程教学存在的主要问题
1.1学生前期课程学习不足
编译原理课程的先修课程包括程序设计语言、离散数学、汇编语言、数据结构、计算机组成原理等。其中某一门课程的基础没打好,就会影响编译原理课程的学习。
1.2课程本身理论性强
本课程涉及不少理论知识,如形式语言和自动机理论、语法制导的理论等,内容抽象,学生学习与理解有一定的难度,特别是语法制导定义(或翻译方案)的设计。由于课程的理论性太强,难以激发及调动学生学习的兴趣,甚至致使部分学生放弃本门课程的学习[2]。
1.3实践性环节薄弱
编译程序是大型复杂的软件系统,在教学中要把它拆开成各个部分,分阶段地讲解,以便减低学习难度,但这样做常常导致学生不清楚各部分是怎样在整个系统中协调工作的。因此,上机编程时,大部分学生没有思路,无从下手,一部分同学还产生依赖思想,并出现抄袭别人程序的现象。
1.4教学手段单一
传统教学手段主要是以课堂教授为主的“灌输式”教学,很少采用启发式、讨论式教学方法。编译原理理论性强,学生上课时感觉听懂了,但在课后作业和实验环节,学生的表现说明他们没有真正理解。
此外,由于课程本身具有一定的理论深度和难度,而且学生普遍认为学习该课程仅仅是为了构造编译程序,认识不到其在培养科学方法和严谨思维方面的重大潜在价值,学生缺乏学习的积极性[2]。
2具有软件工程专业特色的教学方式
欲改善上述局面,就应结合学生的专业特色,即在软件工程专业教学过程中,把工程化的思想纳入到本课程中来,增加学生对课程目的性的认识,提高学生的积极性。
2.1在思想上提高学生的学习兴趣
为了消除学生对编译原理课程的畏难心理,教师的第一堂课非常重要。在第一堂课的组织中,教师应以引导性为主,比如把“编译”和两门语言间的“笔译”相类比,“解释”和“口译”相类比,这样可以增强学生的理解的记忆。然后,需要强调课程在软件工程专业开设的重要性,避免部分学生对本课程认识不足,投入精力不够。在语言组织上,尽量把复杂的问题简单化,可以添加些有趣的实例,增加学生的兴趣。让学生在第一堂课就减少一些抵触情绪,建立学好编译原理的信心。
2.2教学上采用软件项目开发小组的方式
为了更好地和软件工程专业相融合,在本课程的教学中,建议采用软件项目开发小组的方式。首先对学生进行分组或学生自行组织队伍,一个小组以6~8人为宜,固定一个组长作为项目经理,项目经理的职责是与老师沟通,是小组的领导者、决策者。教学过程中,老师除了教学外,还要承担项目委托方(需方)的角色,管理时多数时间与小组的项目经理沟通。在理论学习过程中,教师对每个章节的内容学习以及课后作业提出要求,各个小组给出解决方案,小组之间竞争,选出最好结果作为中标的供方,以提高学生的学习兴趣。在实验教学过程中,教师负责提出需求,并给出解题思路;小组的项目经理负责给组内成员分配角色,主要包括系统分析员、系统设计员、程序员、质量保证工程师、测试人员等,针对类似算法,要求小组内人员轮流执行不同的职责,保证每个学生都能训练到;实验课结果的提交采用项目答辩的形式,由各个组长和老师组成评审团,进行评审。在课程设计阶段,在小组内不同基础的同学分配不同的职责,以减少困难度,具体操作与实验类似。这种学生组织形式,有利于提升学生之间的团队合作精神,并且能很好地提高学生学习兴趣,团队之间的竞争大大激发学生的学习动力。
2.3理论教学采用实例教学
实例教学的依据是学习的一般规律。对编译原理这种理论性强的课程来说,采用实例教学是一种非常有效的方法[3]。其实际操作方式为:首先,教师通读教材多遍,并做完每章后习题;其次,参考其他同类教材,在此基础上选择在时量和知识影射方面最佳的例子;最后,强调学生自主学习,上课时教师只是快速的“过一遍”相关定义,而不是照本宣科地讲。接下来,课堂上的大多数时间用来讲解实例(这里的实例主要是相关知识点的应用例题,比如分析某个给定文法的二义性),让学生听懂例子、理解例子,学生再实践。最后,教师对课堂内容进行小结,归纳出一般性规律(理论知识),并让学生与前面的定义对比,这有助于其巩固对理论的理解,另外,可以让学生去看前面的定义、定理,这样回过头读这些理论知识要轻松很多、容易很多[3]。实际授课时,建议相关定义采用幻灯片形式,加大知识点的容量;而实例的讲授建议采用板书形式,思路更清晰。
2.4实验课有层次化,主要针对算法
本课程包含很多算法,有LL(1)分析算法和各种LR(1)分析算法、DFA化简算法、计算开始符号集合和后继符号集合的算法、各种数据流方程的迭代求解算法。由于实验课时间不连贯,实现编译器大型软件,只能将其分成几部分进行,鉴于学生理解上有困难,因此,建议实验课主要针对课程中的算法进行。实验组织形式上沿袭软件开发小组的模式,针对不同的学生情况分配任务,比如对于LL(1)分析算法,可以让编程能力强的同学先做开发,其他同学做辅助工作(测试、管理等),并学习相关代码程序;在做类似的LR(1)分析算法时,就转换角色,让前面没有做开发工作的同学参照LL(1)做相应的开发工作。这样就能使每个同学都能深刻理解相关知识点。
1 概述
随着国内软件市场不断扩大,软件企业也越来越规范,软件产品正逐渐成为软件企业生存和发展的核心。人才市场需要大量的软件测试人才。高职软件工程专业毕业的学生也绝不仅仅只限于从事低端程序,在软件工程专业,软件测试逐渐成为一个新的就业方向和就业趋势。凭借软件工程专业,加大建设软件测试课程的力度,同时对软件测试的投入力度也要加大,进而使得培养出的软件测试人才都具有扎实软件测试理论知识,同时掌握测试软件的方法,并且具有一定的测试软件的经验。
2 高职院校软件测试课程现状分析
多年来,软件测试技术课程一直按传统的教学方法以讲授为主进行教学,学生缺乏学习动力,依赖性强、易受外界环境的干扰,工程意识、工程素质没有得到有效锻炼,不能利用所学知识和技能对软件项目进行测试实施。软件测试技术方面的教材近年来出现了一些,但质量也良莠不齐,高职的软件测试课程大多设置为选修课或者考查课,课时相对较少,并没有作为重点内容来要求。软件测试课程的教学目前大致为两种状态,一种测试理论和测试方法是高校教师授课的重点,在软件测试案例和软件测试经验方面比较匮乏,在教学过程中很少涉及重要的实践环节,系统的训练相对比较缺乏。与软件公司的测试人员相比,学生还有很长的路要走。另一种是从软件公司聘请多年从事测试的高级人才来任教。他们直接用企业的测试项目对学生进行讲解,但高职软件工程专业的学生之前都很难完成实用性的具体项目,更没有扎实的测试理论和方法做依托,不能将实用的测试技术深入的消化理解,灵活运用。如何将这两种教学现象很好的融合,是软件测试课程能否使高职软件工程专业学生成为软件测试实用人才的关键所在。另外,学生对软件测试技术的掌握程度直接受到对软件测试认识的影响。不懂编程的人才从事软件测试这是所有学生的共识,在一定程度上影响了软件测试技术的学习。恰恰相反的是,能做测试的高端人才,正是对编程有着深刻理解的全能型人才。
3 教学方法
为了确保培养的软件测试人才符合社会的需要,在一定程度上满足高职院校学生职业能力的要求,可以从以下几个方面进行改革:
3.1 加强软件测试的课程建设。可以设立《软件测试理论、方法》、《软件测试系统训练》和《软件测试实战项目》等多门课程。适当增加实验实训的学习时间,对教学目标、教学内容、教学计划和教材选择等进行重新制定。在软件开发过程中,要让学生了解软件测试的重要性,熟悉软件测试的基本概念和理论,同时掌握软件测试的技术和方法,能将软件测试技术用于实际测试问题,并指导软件测试职业的特点和对软件测试人员素质的要求。软件测试课程应该在软件工程课程结束之后开始,安排在第三学年。最好同步能安排生产实习。
3.2 合理组织教学内容,实施案例教学。在知识点方面,软件测试技术涉及的比较多,并且通过大量的规范的训练才能理解和掌握这些知识,最好的办法是进行分阶段教学。前期的基本概念和基本知识、单元测试、集成测试以及自动化测试工具的使用等是教学内容的基础。后期包括需求测试、设计测试、系统测试、可靠性测试、验收测试以及静态测试中的同行评审等。多利用各种测试案例进行教学。建立案例库等。
3.3 严格实践训练,实施实训练习。按照测试对象,要求学生设计相应的测试用例、编写测试程序、测试和书写测试报告。在高职院校教育中,认识实习和实习是两个重要的实践环节,利用这两个环节,组织对软件测试感兴趣的同学进行测试,进而提高技能,在一定程度上激发他们对软件测试的兴趣。生产实习则需要有经验的软件测试工程师能实际指导学生进行项目测试,通过训练使学生认识到实际项目的测试,找出自身差距。
3.4 加大培养与引进软件测试师资的力度。通过派遣的方式,让该课程的授课教师到优秀的软件测试培训机构参加相应的培训,然后到正规软件公司的软件测试部门进行实习。另外,坚持软件测试实战项目聘请有经验的软件公司的测试工程师来校任教。
关键词:普通院校;实践教学体系;工程实践能力;路线图
软件工程专业在我国高等院校还是一个很不成熟的专业,比起传统的工科专业来说,软件工程专业有更多的技术成分,因此,我们的教学体系和模式就要有别于传统的教学体系和模式。实践教学体系是否合适将直接影响软件工程专业毕业生的质量。对于重点院校软件专业和软件学院实践教学体系已有很多专家学者进行了研究与实践[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)
关键词:软件工程;课程体系;双语教学
中图分类号: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)双语教材有待改进:目前大学双语教学所用的教材主要采用的是国外原版教材的影印本。从实践的结果来看,大多数学生认为教材太难,以至于教师不得要求学生同时购买对应的中文教材。
关键词:软件工程专业;专业综合改革试点;移动互联网
中图分类号:G642 文献标识码:A 文章编号:1009-3044(2014)34-8245-02
1 建设目标
韩山师范学院地处广东省粤东地区,是粤东地区唯一的一所本科师范院校,2013年韩山师范学院的软件工程专业获得广东省教育厅质量工程项目立项,该项目依托韩山师范学院“广东省计算机工程实践教育中心”, 引入全新的KAP-CDIO软件工程人才培养理念,通过创新人才培养模式,加强师资队伍和教学资源建设,优化实践教学体系,推动教学方法改革和教学手段创新,把软件工程专业建设成为广东省省内有影响力并且在地方院校同类专业建设中具有行业特色、起引领作用的实用型、创新型专业人才培养基地,培养一批掌握移动互联网开发与应用的软件工程师。为广东省尤其是粤东地区移动互联网[1][2][3]的产业发展、产业创新服务,培育移动开发软件应用的市场环境,推动移动开发软件产业的发展。
2 措施与进展
2.1 教学团队建设
引聘名师: 从达内科技有限公司、广东天盈信息技术有限公司、潮州电信等企业邀请企业老总和工程技术人员进行移动互联网方面的专题讲座、暑期项目实训、课程培训,强化专业的应用特色。
培养骨干:一是选取、选拔骨干教师到重点院校的移动互联网相关专业和方向进行学习深造,攻读学位;二是对于没有相关专业实践经验的骨干教师以脱产或半脱产形式,直接在合作企业进行项目训练,丰富、提高教师的工程实践知识和实践技能;三是以老带新、以强带弱。对学科带头人和骨干教师进行重点扶持和培养,并以学科带头人和骨干教师作为导师,指导中青年教师,定期对中青年教师进行实习、实训、课程建设、学术等方面地培训,以提高中青年教师的教学和科研水平。
双师型教师培养:对现有教师实施分类循环培养机制,做到教师培训五年一个循环,按照培养应用型、复合型人才的目标,提倡教师专岗化。教学团队中2位老师获得网络综合布线高级讲师认证,1位老师获得教育部就业指导中心颁发的创业指导教师资格,2位老师获得物联网技术骨干教师认证,为双师型教师培养充实了力量。
2.2 平台建设
2.2.1 课程与教学资源平台
培养方案制定:依据我校软件工程专业培养移动互联网软件工程师的人才培养定位,完成了2014版软件工程专业培养计划的制定。培养方案更加突显课程结构模块化、块内课程群组化,分模块、分群的特色。
建设开放、立体的网络教育资源平台:完成了软件工程专业综合改革试点项目专题网站的建设。 围绕移动互联网方向构建课程群,依托Moodle网络教学平台,建设了软件工程、计算机组成原理、UML等网络课程, 安卓手机应用开发网络课程正在建设中。进一步完善了《面向对象程序设计》、《计算机网络》精品课程的建设。
教材建设:校企联合共同开发具有创新性、综合性,有利于培养学生综合应用能力的实训教材,如《计算机网络实验教程》、《安卓手机软件应用开发》、《WEB程序设计》等教材 。
2.2.2 学生课外创新实践平台
在广东省计算机工程实践教育中心,广东省计算机实验教学示范中心、计算机应用研究所的基础上,以学生课外科研立项、天盈创新基金及各类课题为牵引,建设学生课外创新型实验平台,在系大学生创新实践中心专门设立了移动互联网开发小组,并在课外科研项目和经费上重点扶持,实现本专业学生早进课题、早进实验室、早进团队、早进社会。
2.2.3 实习基地建设
与知名企业进行校企合作、校企融合,是专业综合改革试点工作的重中之重,为此我们积极与国内知名企业进行合作,2014年与中国最大的IT解决方案与服务供应商东软集团签订了实习基地合作协议。
2.3 多项目融合,协同建设
为整合资源,高效率、高质量的进行专业综合改革试点工作,在改革过程中我们将专业综合改革试点项目与 “软件工程卓越工程师班”、“广东省计算机工程教育实践中心”等项目进行融合,协同建设,取得了良好效果。项目实施以来,共招收了2012和2013级两届软件工程卓越工程师班共30名学生,并采取小班授课形式,专门邀请了达内科技的资深工程师为软件工程专业“卓越工程师班”的同学进行软件项目培训,邀请广东天盈信息技术有限公司工程师为软件工程专业学生进行了”安卓软件应用开发讲座”,并每学期举行软件工程卓越工程师班作品汇报会。通过这种资源整合、项目融合、协同建设的方式有效地促进了专业综合改革试点的完整性和质量提升。
2.4 以竞赛为抓手,培养学生创新实践能力
组织学生参加国家和省内外各类竞赛,如挑战杯大赛、全国移动互联网产业大赛、广东省高校杯软件设计大赛,以竞赛为抓手,提高学生运用所学知识解决实际问题的能力、统筹和协调的能力,培养学生的创新意识和实践能力,专业综合改革以来,软件工程专业的学生在国家和省级学科竞赛中取得了较好成绩。
2.5 项目引领,积极创业
在学生科研项目的选取上,我们确保项目具有好的应用价值和市场需求,并具有孵化和转化为产品的可能性。在项目的研发商,通过引入企业软件工程项目研发流程,培养学生项目研发能力。项目研发实行双导师(专业教师、企业技术人员)制,依照企业开发流程,采取严格质量监控过程,科学评判机制,争取进入创新中心的项目转化为产品,并将产品与市场需求和实际应用相结合,积极鼓励学生将项目与产品,产品与创业紧密结合。项目实施以来,软件工程专业学生在广东省挑战杯创业大赛和实际创业中都取得了非常不错的成绩。
3 下阶段工作
1)按照专业综合改革试点项目评价指标,认真进行项目的完善和后续工作的开展。
2)以“大师”+“团队”建设思路,培养具有较高水平的软件工程专业带头人,努力打造以教学骨干、中青年教师为主体的软件工程教学团队,使软件工程教学团队成为在省内有特色、有一定影响力的教学团队。
3)围绕移动互联网课程群进一步进行各类教学资源的建设。
4)进一步加强与知名企业的校企合作力度、长期和实质性的开展校企融合工作, 拓展校内外实训平台。
5)争取配套经费,建立模拟企业实训环境、项目开发流程的软件工程实训平台。
6)以项目-竞赛-创业为引领,通过专业改革和建设,培养和提升学生的创新实践能力和创业能力,在培养移动互联网软件工程师的同时,通过创业服务移动互联网市场。
7)争取与中山职业技术学院的“2+2”联合办学能取得成功。
参考文献: