APP下载

软件工程专业教学思考与实践

2020-07-14应时李小红刘伟李晓伟

软件导刊 2020年1期
关键词:建构主义学习理论

应时 李小红 刘伟 李晓伟

摘 要:围绕软件工程知识体系及其学习、构造、再造和应用等方面的特点,在建构主义学习理论的指导下,结合工程学科特点,讨论学好软件工程专业知识并铸造专业素质的价值观念,探讨突出和强化专业知识学习的教学方法,通过总结教学实践工作体会,提出亟待解决的一系列教学问题。

关键词:软件工程知识体系;建构主义学习理论;专业知识学习

DOI: 10. 11907/rjdk.192729

开放科学(资源服务)标识码(OSID):

中图分类号:TP434

文献标识码:A

文章编号:1672-7800(2020)001-0015-03

0 引言

2018年5月4日,国务院学位委员会办公室制订并发布了《工程类博士专业学位研究生培养模式改革方案》与《关于制定工程类硕士专业学位研究生培养方案的指导意见》,文件就工程类博士的基本知识要求指出:“学位获得者应掌握本工程领域坚实宽广的基础理论、系统深入的专业知识和工程技术基础知识;熟悉相关工程领域的发展趋势与前沿,掌握相关的人文社科及工程管理知识…”。对于工程硕士的培养,国务院文件也明确指出:“在高校制定的培养方案中,要突出理论方法扎实、技术应用过硬的工程类硕士专业学位研究生培养特色[2]。

从软件产业对软件工程专业人才的要求来看,扎实的专业知识是软件工程师的必备素质。如华为公司明确要求应聘者“熟悉软件工程领域理论知识,熟悉大型软件系统架构知识及实现方法,熟悉软件框架的设计和编码论证”;北京京航计算通讯研究所招聘计算机软件专业技术人员的一个基本要求是“应聘者要在软件工程,尤其要在软件测试与分析方面,掌握系统深入的专业知识”。

为培养软件工程知识扎实的专业人才,众多教育者从不同角度进行了多种探索。有的通过改革教学方案,创新教学模式,采用先进的教学技术增强学生学习软件工程的兴趣[3];有的通过实验教学、案例教学和实践教学,加深学生对专业知识的理解[4];有的选择采取校企合作和国际办学措施等。但是,无论采取什么对策和措施,对于学生来说,专业知识内容的学习是最核心内容。对于教师来说,引导学生学好专业知识内容永远是一切教学方法的出发点和归宿。

实验教学与实践教学的作用和意义毋庸置疑。软件工程知识体(SWEBOK)把“软件职业实践”也放人其中,“软件职业实践”也是一种知识。与其它类型的知识一样,这些知识也可通过知识学习的方式掌握,工程和项目实践不是培养学生实践开发能力的唯一道路。对于案例教学和实践教学,在课程资料准备完善和实践环境搭建成熟的基础上,同样可以通过知识学习的方式,完成重要内容和基础性内容的学习。师生均应培养直面困难的勇气和創造力,充分准备,把知识学习做到极致,而不是回避、绕开,甚至是有目的地设法间接替代困难。

本文结合教学实践工作体会,围绕软件工程知识体系及其学习、构造、再造和应用等方面的特点,探讨建构主义理论下的教学方法,总结实践教学中遇到的问题,以期为软件工程专业教学改革提供参考。

1 强化知识学习的必要性

突出和强化软件工程专业知识的学习十分重要,具体表现在以下方面:

(1)虽然对于培养实用技术型人才的高等职业学校,可以强化实践教学,但对于培养软件工程高层次人才的一流高校,强化知识学习是十分必要的。

(2)对于具有软件工程扎实知识基础和丰富实践经验的人员,其新知识学习应该以知识学习方式为主。

(3)对于立志成为软件工程高层次科研开发人才的人,必须具备把专业知识学好的意识和能力。

(4)对于参加实践工作多年、知识基础薄弱的专业技术人员,在其继续教育过程中,尤其需要突出并强化专业知识学习。

2 教学方法

2.1 指导意义

建构主义学习理论[5]认为:学习的目标是学习者把客观知识及结构内化为自己的知识。学习是学习者构建知识的过程,学习者不是简单被动地接受信息,而是主动构建知识的意义。学习者根据自己的经验背景,对外部信息进行主动选择、加工和处理。学习者基于个体经验背景建构对知识的理解,取决于特定情境下的学习历程。

最典型的学习方式是探究式学习。探究式学习是基于问题解决活动构建知识的过程。在教学过程中,应该通过有意义的问题情境,让学习者通过不断发现问题和解决问题,学习与探究问题相关的专业知识,形成解决问题的专业技能,以及自主学习专业知识的能力。换言之,探究式学习要求学习者积极主动地参与,主动地体验。通过这些活动,形成特有的学习方式、完成知识内化。

除探究式学习外,情境教学也是一种很有效的教学方法,它是建立在有感染力的真实事件或真实问题基础上的教学。知识、学习与情境化的活动联为一体。学生应该在真实任务情境中发现问题、分析问题、解决问题。情境教学要求学习者全身心地沉浸到学习情境中。

2.2 面向软件工程专业的教学方法

本文将软件工程知识分为以下8大类:理论性知识、理念性知识、原则性知识、方法性知识、技术性知识、过程性知识、技能性知识和关于能力及其培养的知识。软件工程的知识教学目的是:引导学生系统、正确、深入地掌握专业知识。“系统”是指在整体上,知识是成体系的;在局部上,知识是有完整性的;在知识点上,知识是被透彻理解了的。“正确”指概念学习正确、内容理解正确、知识构建正确、知识应用正确。“深入”指融会贯通(知识内容上的贯通、知识发展历程上的贯通)、理解本质、学以致用。

由于软件工程学科知识大多实践指向非常强,为了使学生读懂、悟透、用活书本上的专业知识,在教学中,应努力引导学生把自己原有的知识和经验,作为新知识的生长点,引导他们从原有的知识和经验中,主动构建新的知识,同时学生的学习应是多维度、多层次、多粒度、反复迭代的。为此,本文基于建构主义学习理论,对教学实践探索进行总结,提出引导学生关联其它知识、掌握软件工程知识的教学方法。

(1)引导学生从多个角度融会贯通地掌握软件工程知识体系,工作方法的要点是:不但要让学生学好知识体系中的各个知识点,还要让他们掌握这些知识点之间的关联知识,了解基于历史发展轨迹的知识点演化关系和演化过程,使学生多角度、深入、准确地掌握专业知识,可从自己原有知识和经验中,主动建构新的软件工程知识。

(2)引导学生把软件工程知识与其它专业骨干课程知识关联起来进行学习,从而使学生围绕软件工程知识,构建更大的知识体系网。尽管软件工程课程强调与程序设计课程的区别,从而使学生能够超越编码层次,在更全局性和抽象性的层面掌握软件工程知识,但同时也应注意到程序设计范型是各种不同软件工程方法的基石,程序设计方式和能力在深层次上影响软件设计和需求分析的技术和方法。引导学生把软件工程课程知识与系统软件课程知识(操作系统、编译原理、数据库系统、中间件)关联起来学习十分重要,不但有助于学生形成软件工程知识体系,也有助于其形成完整的计算机专业知识体系,更加深入地领会支撑软件工程知识的科学思想。

(3)引導学生将软件工程知识与新的热点前沿专业领域知识关联起来进行学习。软件工程教材内容通常滞后于软件工程和计算机技术发展、应用步伐,更落后于软件工程在其它学科中的创新发展。因此,引导学生把软件工程知识与新的热点前沿专业领域知识关联起来进行学习,可激发学生学习热情和动力。与新的热点前沿专业领域知识的关联学习主要包括:与云计算/云服务的关联学习,与大数据、机器学习的关联学习,与深度学习、人工智能的关联学习等。具体包括:①深度神经网络中计算单元的级联层次结构与软件系统的层次化结构;②深度神经网络的误差反向传播算法、逐层传播误差修正要求、梯度与层次化软件系统控制过程的逐层调用和数据参数的逐层传递;③深度神经网络中控制过拟合和模型训练时间长的Drop-out方法及其算法与软件工程师利用软件设计工具逐步求精地设计软件体系结构,以及自适应软件根据情境变化,自动更新软件体系结构的结构单元及其连接关系等。以上内容彼此具有很多相通和共同的地方,因此可引导学生进行关联学习,使学生更加深刻地理解软件工程专业知识,并感知软件工程知识鲜活的时代价值。

(4)引导学生将软件工程知识投射于新闻热点问题和实践问题,以提高学生学习兴趣。这种在有感染力的真实事件或真实问题基础上进行的教学,是在建构主义学习理论指导下的情境教学方法。如当代大学生十分熟悉京东和天猫等电商购物平台,可引导学生关注电商平台能力及建设发展历程。天猫2018年仅用1小时16分37秒,“双11”的成交总额就突破了912亿元。该数据超过了2015年“双11”全天的成交额,可利用这个事实数据进一步引导学生发现问题、分析问题并解决问题,包括引导学生从软件工程专业角度,思考软件开发和软件运维等多方面问题,思考应应用哪些知识才能实现平台多项功能。情景式教学还有利于学生全身心地沉浸到学习中,进一步学好高性能高可用软件架构设计、软件服务平台在线维护和优化等软件工程知识点。

(5)引导学生把软件工程知识与其它学科知识关联起来进行学习。软件工程的许多思维方法、知识内容特点与其它学科知识在实质上是相通的。因此,学生已理解并掌握的共性知识可作为学好、用好软件工程知识的背景知识基础,如程序代码设计与文章写作、软件系统开发与文学著作创作、软件系统智能运维与智慧医疗诊断等;还可利用软件工程知识的普适性和通用性,引导学生把软件工程过程管理与学生学业过程管理、科研论文写作过程管理进行关联;把对软件系统的理解、创新和优化与对计算机软件类科研论文及其成果认知、优化等进行类比学习,从而使学生更好地掌握软件工程知识及应用方法。

3 教学问题

(1)软件工程专业知识大都内容抽象,在实践教学中,少有学生针对实践问题进行提问,师生互动较少,这使知识教育无法深入强化,更无法确认学习成效。由于学生主动投入不够,讨论式、问题探究式的教学方式难以实施。

(2)目前部分软件工程教材存在一些知识性错误,导致教学出现尴尬与矛盾,使学生热情受挫。因此有必要针对全国本科教育软件工程专业,组织教学经验与行业实践经验丰富的人员统一编写教材,并辅助编写知识读本。

(3)在教学组织方面,专业课程课时不足。学时数严重不足长期困扰着软件工程课程与很多其它核心基础课程,导致教师无法充分展开内容教学,更无法多层次多角度地围绕重难点讲解更多实例,也无法针对知识点进行必要的重复和贯通,无法旁征博引,促使知识点融合。

(4)实践课程缺乏反思环节。当实践教学的具体工作或项目进展不顺时,大部分学生没有从知识层面反思其知识理解和知识应用方面存在哪些问题,应该如何做才能更好地掌握相关专业知识,甚至还有错误的观点认为“多做就自然会了,多做就自然好了”。

4 结语

软件工程专业以计算机科学为基础,知识点理论性、工程性、技术性强,学习和教学难度大,对教师知识水平、专业能力和综合素质等方面提出了很高要求,同时,在进行专业知识内容学习的过程中,对学生抽象思维、系统思维、学习能力、理解力、想象力等方面也提出了巨大挑战。本文基于建构主义学习理论,提出引导学生关联其它知识、掌握软件工程知识的教学方法,同时对实际教学中存在的问题进行了总结。

软件工程知识学习意义重大。如何激发学生学习兴趣,加深学生对基础知识的理解和掌握,增强学生对软件项目的实际开发能力,需要师生、高校等多方协同努力。

参考文献:

[1] 国务院学位委员会办公室.工程类博士专业学位研究生培养模式改革方案[EB/OL].http:// http.sciencenet.cn/mobile.php? cat=news&id=412 149&mobile=l&type=detail.

[2] 国务院学位委员会办公室.关于制订工程类硕士专业学位研究生培养方案的指导意见[EB/OL].http://www.moe.gov.cn/s78/A22/A22_gggs/A 22_sjhj/201805/t201 8051 1_33 5692.html.

[3]方芳,刘袁缘,赵一石,等.基于MOOC的软件工程专业教学模式创新实践[J].计算机教育,2018(8):82-85.

[4]侯雪梅,李志博,于磊,等.软件工程课程群案例库建设和实践教学方法研究[J].大学教育,2019( 10):11-13.

[5] 莱斯利·斯特福,杰里·盖尔.教育中的建构主义[M].高文,徐斌燕,程可拉,等,译.上海:华东师范大学出版社,2002.

(责任编辑:江艳)

基金项目:国家自然科学基金项目( 61672392)

作者简介:应时(1965-),男,博士,武汉大学计算机学院教授、博士生导师,研究方向为大型软件系统的智能化运维管理、软件工程智能分析与优化等;李小红(1974-),女,博士,武汉大学计算机学院副教授,研究方向为软件工程。

猜你喜欢

建构主义学习理论
建构主义学习理论下如何培养职教英语应用能力
用建构主义学习理论指导 多媒体教学网络下的中学生物课堂教学
学术论文撰写课程的“翻转”教学设计与实施