APP下载

新工科背景下软件工程专业教学模式探究

2020-04-05袁嵩庄子健

计算机时代 2020年2期
关键词:软件工程动手能力新工科

袁嵩 庄子健

摘  要: 在新工科背景下,为了培养能够适应软件产业发展需求的高素质应用型人才,分析了当下软件工程专业教学模式中填鸭式教学和一锤定音的考核形式的弊端及问题,提出采用研讨课、电脑课堂、阶段性测试等新型的教学模式,以及模仿学习高质量代码、提高团队协作能力、在竞争中开拓创新思维、双线齐下的企业项目实训等措施,来提高学生的实践动手能力和创新能力,为我国软件产业的发展提供智力和人才支撑。

关键词: 新工科; 软件工程; 教学模式; 动手能力

中图分类号:G642          文献标识码:A    文章编号:1006-8228(2020)02-95-03

Research on the teaching mode of software engineering specialty in the

background of new engineering

Yuan Song, Zhuang Zijian

(College of Computer Science and Technology, Wuhan University of Science and Technology, Wuhan, Hubei 430065, China)

Abstract: In the background of new engineering, in order to cultivate the high-quality applied talents who can meet the needs of software industry development, the disadvantages of the current teaching mode for software engineering specialty, such as spoon-feeding teaching and one-stroke assessment, are analyzed, new teaching modes such as seminar, “computer classroom” and periodical achievement test are proposed with the measures such as learning high-quality code by imitating it, improving teamwork ability, developing innovative thinking in competition, and double-line enterprise project training etc., to improve students' practical ability and innovation ability, so as to provide the intellectual and talent support for the development of China's software industry.

Key words: new engineering; software engineering; teaching mode; hands-on ability

0 引言

現如今,世界范围内新一轮科技革命和产业变革加速进行。人工智能、大数据、云计算……已经逐渐成为了科技的代名词。2017年形成的“复旦共识”、“天大行动”和“北京指南”构成了新工科建设的“三部曲”,奏响了人才培养主旋律,开拓了工程教育改革新路径[1]。同时,对高等工程教育提出了新要求、新思路。

经过10多年发展,软件工程专业成为新技术、新产业、新经济的基石,被誉为“新工科的探路者”。培养能够适应软件产业需求发展的高素质应用型人才,强化学生的实践动手能力已成为目前的主要任务。面对当前软件工程专业教学模式日益凸显的缺点和短板,必须做出相应的调整与创新。

1 现有的软件工程专业教学模式存在的问题

1.1 “填鸭式”教学易导致同质化

目前大部分高校课堂采取的仍是传统的“填鸭式”教学模式,教师在讲台上以灌输的形式给学生讲述知识。“灌输”很大程度上是单向“做功”,容易导致师生之间缺乏交流,教师难以收集到学生反馈回来的不同思想,个性化的培养也就无从谈起。长此以往,“填鸭式”教学培育出来的学生几乎都是一个模子刻出来的,同质化现象十分严重。

1.2 “一锤定音”的考核模式导致学习具有“目的性”

目前高校的考核制度大多是以期末闭卷笔试的形式进行,在这种形式下,考试重点就成了学生学习知识的“方向标”,一些考试没有涉及到的,但是同样重要的知识点就会被选择性地忽视掉,造成知识体系的不完整。并且,为了应对考试,学生在巩固知识点的时候会局限于纸面上的题目,而忽视实际中对知识点的运用。如此恶性循环,就会导致毕业之后只会“纸上谈兵”但是实际动手能力较差。

1.3 缺乏工程实践经验

对大部分人来说,大学毕业意味着步入社会。因此,在大学期间的社会预热是很重要的。但是目前软件工程专业的教学模式存在工程性缺失的现象,实践环节较为薄弱,致使学生在校期间过于注重理论知识,忽视了实践的重要性,缺乏工程实践经验,不了解企业的项目开发流程。这些毕业生融入社会的过程中就会经历很多挫折,最终出现“学生找不到工作,企业招不到人才”的怪象。

2 软件工程专业课程教学创新

2.1 研讨课模式

2018年11月教育部在《关于政协十三届全国委员会第一次会议第4004号(教育类380号)提案答复的函》中指出高校可通过研讨课模式培养学生分析和解决问题的能力、表达沟通能力、终身学习能力、道德反思能力和全球化视野[2]。为响应国家政策,现就软件工程专业实践动手能力要求较高的课程,尝试开展研讨课模式。

在研讨课之前,教师可将学生进行分组,对一个大的课程设计进行模式或者功能的分工。在研讨课上,小组通过报告或是PPT的形式对自己开发的部分进行功能展示以及细节描述,包括数据结构的选择,算法设计实现遇到的困难。教师和其他小组的同学可就任意的疑难点随时与发言者进行讨论。等所有的小组都展示完毕后,教师可对表现优秀的小组进行肯定,对不足的地方提出改进意见。学生在听取其他小组的功能报告后,对自己未实现的部分也有了一个大致的了解,再去实现时,就能够以此为借鉴去探索更加优化的开发途径。

这种以学生为主体的研讨课模式,学生即老师,老师即学生。学生可以听取别人的想法,并将自己的想法糅合进去,开发出有自己创意的课程设计;教师在指正的同时也在不断吸收学生所提供的新思想,以便归纳总结并传播,从而形成一个互利双赢的局面。

2.2 “电脑课堂”

软件工程专业相关课程对学生的动手能力要求很高,无论是在学习一门编程语言(C、C++、Java等),核心课程(数据结构、操作系统等),还是网站开发(.NET架构、Java EE等),都需要大量的动手操作。

在学校条件允许或是学生可自备电脑的情况下,设计“电脑课堂”的构想。在课前,教师将编程任务布置给学生(如给出算法的思想或伪码要求学生编程实现或是将一个完整程序中的某一小块核心代码挖去后由学生补充);在课堂上,教师先统计调试成功的人数,然后选出质量最好的代码进行课堂讲解。在解决调试中遇到的问题时,教师可以利用电脑投屏软件,让所有出现的错误在全班面前呈现出来;在纠正报错时,可先由调试成功的同学进行解答,如果遇到的问题比较经典或是重要,则由教师负责讲解。通过这种“电脑课堂”的形式进行授课,一方面能够更全面地见识问题,以至于更快地发现问题并解决问题,同时能够调动学生在课堂上的积极性并提高学生的编程能力。

2.3 新增阶段性测试,“4+3+3”式考核

突击应对期末考核是造成学生基础不扎实、应用能力弱、实践能力差的主要原因[3]。为了提高编程能力需要平时多加练习,因此提出“阶段性测试”的考核方式,主要包括:①日常算法设计:教师可在部分章节学习完毕后,根据所学内容提出一定的需求,旨在运用课本理论知识解决实际问题,要求学生自行设计算法(需给出详细注释以及算法设计思路)并规定提交时间;②在线编程测试:教师通过在线测试网站,在限定时间范围内指定若干道编程题让学生进行在线编程。评定时,前者根据算法合理性、代码规范化、功能及扩展情况进行评分;后者根据系统上提交成功并调试通过的题目数量进行评分。最终将两部分的分数综合,作为阶段性测试的成绩,占比40%。根据平时的出勤以及作业完成的认真度计算平时成绩,占比30%。最终通过期末考试,对全书的知识点进行统一考查,占比30%。三个部分加起来,构成该门课的最终成绩。课程成绩构成如图1所示。通过这种阶段性的考核模式,能有效提高学生对知识的掌握程度以及应用能力。

3 软件工程专业学生动手能力的加强措施

3.1 学会模仿

阅读和维护高质量的开源软件。刚开始动手编程时,很多学生面临着无从下手的窘境。此时可以在网上寻找一些高质量且具有一定规模的开源代码,根据对开源软件的理解进行代码标注、代码质量分析,并对其进行维护,完善其功能,纠正其缺陷[4]。通过学习别人编写的高质量代码以及代码风格,就会对编码规范和软件设计模式有一个大体的认识,从而可以模仿着写出类似的代码。通过不断地模仿,摸索其中的经验并总结在维护中遇到的问题,对以后的编程生涯会有很大帮助。

3.2 贴近企业化开发,从团队协作开始

一个复杂的软件系统往往是由一个分工明确、高度协作的软件团队按照工程化的方法共同完成的。团队协作能力是贯穿整个大学生活以及职业生涯的主旋律。教师可通过布置团队合作项目,或是指导学生组建团队参加大学生课外科技活动竞赛,采用企业化项目管理模式,实施团队分工协作,培养学生的团队协作能力、集体工作或项目的领导和参与能力(包括参与讨论、提出自己的观点、参与执行),并且遵循软件开发编程规范及原则,按照软件开发流程,提高软件开发、运营和维护的效率。

3.3 形成竞争氛围,在竞争中开拓学生的创新思维

竞争氛围是一种催化剂,往往能激发学生的创新思维。在学生掌握了一定的基础理论知识以后,教师可布置课程设计任务,例如给出一个软件APP的部分需求或雏形,要求学生自由组队、讨论、设计、分工,最终实现。期间教师可抽查小组的工作进度,可参与讨论或给予适当的引导。最终选出最有创意,设计最完善的作品进行展示,并对其他作品的特色之处进行点评。一旦形成竞争氛围,学生就不会仅仅满足于实现基本功能,往往会别出心裁,出奇制胜。

3.4 “双线齐下”开展企业项目实训

校企共同制订培养计划,研讨实训内容,采用“双线齐下”的方式对学生进行工程实践指导和疑难解答。线上,企业将项目内容以文档的形式呈现出来,内含程序框架、组成模块、开发环境、部分核心代码的伪码以及程序运行效果图。在学生对项目基本了解之后,再通过企业提供的项目开发视频,听取企业项目工程师对部分项目内容的开发讲解,学习他们的开发经验,最后自己动手实现项目。线下,安排企业教师就学生在开发项目过程中遇到的问题进行答疑解惑,可就学生遇到的普遍性问题进行重点讲解。

通过线上与线下交叉进行的方式引导学生进行项目开发,让学生更深层地了解企业项目开发流程,适应企业的开发强度,对学生将来步入社会有很大的帮助。

4 結束语

在新工科背景下,软件工程专业需要通过教学模式改革来培养满足未来软件产业需要的高素质应用型人才。坚持以学生为中心的教学理念,问学生志趣变方法[5],采用新型的课程教学模式,提高学生课堂参与度,调动学生的积极性。增加阶段性测试,强化日常编程训练。加强团队协作、形成竞争气氛、积极开展企业实训,最终提高学生的实践动手能力,为我国软件产业发展提供智力和人才支撑。以新工科建设为重要抓手,持续深化工程教育改革,是目前高等工程教育发展的必然趋势,基于新工科理念的教学模式仍需要不断的探索和完善。

参考文献(References):

[1] 新工科建设指南(“北京指南”)[J].高等工程教育研究,2017.4:20-21

[2] 教育部印发《关于政协十三届全国委员会第一次会议第4004号(教育类380号)提案答复的函》[EB/OL]http://www.moe.gov.cn/jyb_xxgk/xxgk_jyta/jyta_jyfzyjzx/201901/t20190122_367767.html,2018-11-1

[3] 张其文,张秋余,顾群.面向新工科的软件工程应用型人才培养模式研究[J].西部素质教育,2018.4(15):159-160

[4] 毛新军,尹刚,尹良泽,张春元,毛晓光.新工科背景下的软件工程课程实践教学建设:思考与探索[J].计算机教育,2018.7:5-8,13

[5] “新工科”建设行动路线(“天大行动”)[J].高等工程教育研究,2017.2:24-25

猜你喜欢

软件工程动手能力新工科
面向新工科的Python程序设计交叉融合案例教学
新工科形势下高校二级学院毕业设计管理探索
新工科背景下大学生创新创业教育探索
动手能力在高职计算机教学中的培养
“折纸”中蕴含的数学思维与动手能力
依托工作室的软件工程实践教学研究
基于工程教育认证的《软件工程》课程教学质量建设研究 
小学美术教学中如何培养学生的动手能力
关于如何创新和完善计算机软件工程管理的探讨