王雨潇 成丽君 李萱
摘 要:教育部高等教育司在计算机等多个学科领域提出的“系列101计划”已于2023年4月正式启动,各科教育教学改革正逐步开启全新局面,加强基础学科人才培养已成为教育工作重点之一。在这个工作中,各科如何找准教育发展新定位、助力实施教育新部署、把握教育新要求、优秀完成教育新任务成为亟待解决的问题。针对软件设计与体系结构课程,本文提出了一种基于上下文的教学方法,该方法结合“新工科”“立德树人”的理念,通过打造学科上下文、学习成果上下文、课程内部上下文、教师上下文、育人上下文、学习形式上下文,为构建全员全程全方位育人大格局贡献力量,开启软件育人新篇章。
关键词:软件设计与体系结构;上下文;教学改革
Abstract:The "Series 101 Plan" proposed by the Department of Higher Education of the Ministry of Education in many disciplines such as computers has been officially launched in April 2023,and the reform of education and teaching in various disciplines is gradually opening up a new situation,and strengthening the training of talents in basic disciplines has become one of the priorities of education work.In this work,how to find the new orientation of education development,help implement the new deployment of education,grasp the new requirements of education,and excellent completion of the new task of education has become an urgent problem to be solved.For software design and architecture courses,this paper proposes a contextbased teaching method,which combines the concepts of "new engineering" and "foster character and civic virtue",and contributes to the construction of a wholeprocess and allround education pattern for all students by creating disciplinary context,learning outcome context,curriculum context,teacher context,educational context,and learning form context.Under the guidance of this method,a new chapter of education in the software field will be opened.
Keywords:Software design and architecture;Context;Teaching reform
1 概述
“软件设计与体系结构”是软件工程专业的专业必修课程[1],聚焦软件生命周期中的软件设计阶段,致力于提升我国软件工程专业人才的软件设计能力,是软件开发中的重要环节之一,对开发出满足需要的高质量软件起关键作用[2]。
目前“软件设计与体系结构”课程无法引起学生重视[3],对其在软件工程中的地位和作用认识不足,学生更注重开发语言和相关技术等的学习,轻视甚至忽略偏理论的软件工程开发的相关课程,这和软件工程的相关课程分布相对分散有关系。因此,本文提出基于上下文的课程教学方法,基于这样的教学方法,能够帮助学生更好地整合所学知识、完善软件工程思维,进一步培养出知识、能力、素养齐备的三位一体式学生。
2 现状分析
2.1 学生对课程的重要性认识不足,热情不够
“软件设计与体系结构”课程应用对象为大型、复杂软件,而学生在本科阶段的学习中遇到的大多是简单项目,即不经过设计也可以成功开发,容易造成本课程可有可无的假象,从而导致学生学习热情低下的局面。
2.2 课程安排分散,课程之间联系弱
“软件设计与体系结构”的应用时机为需求分析之后,实现软件之前,当前软件开发相关课程安排分散,教学时无法体现课程在具体工程开发中的应用时机,导致学生难以搭建本课程与其他课程之间的联系。再加上课程内容理论知识偏多,学生很难在紧凑的学习过程中迅速了解本课程的定位,同时难以快速掌握相关知识并进行运用。
2.3 知识点散落、教学内容抽象
软件设计与体系结构课程学习内容多,知识点密度高,且教学课时有限,导致学生接受起来具有一定难度。再加上课程内容相对抽象,学生难以将所学知识转化为具体的工程开发能力[3]。
2.4 教学内容专业性强,实事结合难
软件设计与体系结构课程内容专业性强,缺乏实事热点案例的插入点,相关育人案例少[4],因此,如何合理地做育人于无形,是本课程教师亟须找到突破的难题。
3 改革措施
3.1 打造学科上下文
目前,大多数高校软件工程专业中软件开发过程的相关课程包括软件工程导论、软件项目管理、软件需求分析、软件设计与体系结构、软件质量保证与测试等,而这些课程的开设情况基本分为两种:一是处于不同学期分散开设,二是处于同一个学期同步开设。对于第一种情况,课程安排相对分散,课程相关性难以得到体现;对于第二种情况,课程的先后关系难以体现。这两种方式都导致学生无法清晰构建软件开发过程的知识体系,对相关课程的重要性认识不足。
针对上述问题,山西农业大学软件学院实行如下改革。大三上学期,开设软件工程导论,对整个软件开发的相关过程进行导引式讲解,使得学生清楚软件开发需要经历的时期。在大三下学期以四周为一个周期,即将整个学期分为三个周期,每个周期同步开设两门课程,共六门课程,每一周单门课程开四节课,具体开设情况如下:在第一个周期内,开设软件需求分析以及软件项目管理;在第二个周期内,开设软件设计与体系结构以及团队激励与沟通;在第三个周期内,开设软件质量保证与测试以及人机交互软件工程方法。从开设情况可以看出,这三个周期又分成两条主线,一条是开发主线,包括需求分析、设计、质量保证与测试;另一条是开发辅线,包括项目管理、团队激励与沟通、人机交互软件工程方法,辅助补充开发主线。
上述课程开设形式的改革为“软件设计与体系结构”课程成功打造了学科上下文。这种先总述再分开一主一辅两条线路深入拓展的方式,即先讲软件工程导论,再通过短周期六门课的双线快速迭代的方式,准确地把握了设计课程的上下游,补充完善了学生在软件生命周期中的盲点,使得课程间衔接更为自然,可以让学生快速搭建软件开发相关过程的联系。“软件设计与体系结构”这门课于开发主线的第二周期进行开设,此时学生已经拥有需求分析的课程背景,可以让学生认识到软件设计与体系结构在整个软件开发中所占据的承上启下的重要地位,可以进一步提高学生的学习热情,并且能够快速吸收新的知识。
3.2 打造学习成果上下文
在整个软件的开发过程中,每一个阶段都有明确的文档记录作为当前阶段的里程碑,比如,需求分析阶段提交的文档是需求规格说明书,软件设计阶段提交的文档是设计规格说明书等。文档记录可以表明某一阶段结束,下一阶段开始,同时也便于在软件开发出现问题时进行问题追溯,同时在软件维护时起到重要作用。
当前,多数高校软件开发过程相关课程的考核还是以期末考试为主,这种考核方式多是对知识点及其相关应用的考核,对当前软件开发过程的文档记录缺乏重视。为进一步促使学生重视软件开发相关阶段的文档交付,“软件设计与体系结构”以及相关课程均增加期中考试,其形式为文档,通过这种形式来达到让学生熟悉文档内容的目的。结合一主一辅两条路线、三个周期的学科开展模式,各科基本按照软件生命周期的顺序进行开展,如此形成学习成果上下文。
这种学习成果的上下文有助于学生打通软件开发的相关“关节”。学生可以选定一个项目,依次完成软件开发各阶段的月考文档,通过这种形式,促使学生进行思考,使其主动进行总结归纳,清除知识盲点,进一步完善软件开发知识体系。
3.3 打造课程内部上下文
当前关于软件设计的相关课程,部分单纯关注代码设计,主要内容为程序模式设计,偏向代码开发实现的相关内容,部分单纯关注软件体系结构,相关内容相对枯燥,偏向理论,缺乏实践案例。这样关注点单一的课程其好处是可以挖掘学生在某个软件设计知识领域的深度,但其缺点是课程关注范围局限,没有为学生建立起软件开发中概要设计和详细设计的联系,知识点不够连贯。
本课程致力于覆盖软件开发全过程中的设计内容,整合软件设计的相关知识点,从软件生命周期可以知道,软件设计包括概要设计和详细设计。本课程讲授知识包括软件体系结构、详细设计以及相关内容的评审,为软件质量保驾护航,即打造设计课程内部的上下文,使得学生将关注视野放大,从一个知识点放大至软件设计全内容,从而达到设计知识连贯的效果。
本课程意在覆盖软件设计的上下文,除了这个目标之外,课程教师已经熟悉院系所制订的人才培养方案,了解相关教学安排,明确学生已经掌握的知识内容,对于学生已经进行了深入学习的课程。比如,设计模式、数据库设计等都进行合理弱化,只做知识的串联,避免知识点的重复,从全局的角度提升学生具体的工程开发能力。对学生在之前的学习过程中没有涉及的内容进行进一步讲授,明确培养与教学的重难点,合理丰富教学案例,争取在有限的课时内讲解更多学生没有接触过的内容。除此以外,课程组还定期举行会议,根据最新的教学经验,结合学生的学习反馈,进行课程教案及大纲的更新,使得教学安排愈加合理,不断提升教学质量和效果。
3.4 打造教师上下文
当前,大学教师选择教授哪一门课的自由度较高,并且具有流动性,教师可能这个学年教授这门课,下个学年就不再教授了。这种做法的好处是,教师可以选择自己更有优势、了解程度更高的课程来进行教授。同时,学生可以得到更优质的教育,而这样做的劣势在于对于多门联系较强的课程,课程教师的随机、分散以及流动性强的特点,使得教师的知识体系不够完善,同时可能会影响学生对课程间联系的理解。
针对上述问题,山西农业大学软件学院建立了软件工程专业核心课课程组,课程组内的教师维持相对稳定的状态。这种方式并不是将教师与课程绝对捆绑,相反,该方式随时欢迎新鲜血液,更欢迎教师切换教授课程。只不过,这里更倡导课程组内的教师在核心课程内进行切换,这样经过几个教学轮次后,教师们会进一步了解核心课程之间的相关性,教师的知识背景得到进一步补充完善。
这种组建核心课程组教师的方式成功打造了教师上下文,同时也创建了一种小型课程——教师生态,进一步紧密教师与课程间的联系。教师上下文使得教师对核心课程拥有全局视角,课程内容理解更为深刻,课程间联系把握更为到位,相关知识体系更加完整,教学效果更优。
3.5 打造育人上下文
软件工程专业中专业课程占比高,均有较强的工科特点,包括软件设计与体系结构在内的核心开发课程更是兼备强烈的工程开发与工程技术特色,缺乏突出、明确的实事切入点。
如何激发教师队伍“主力军”,如何布局课程建设“主战场”,如何创新课堂教学“主渠道”[5],如何将育人教育落实到软件设计与体系结构这门课中,从而获得更佳教育效果等仍旧存在停滞点,即当前主要问题是育人效果不明显。
做好育人最重要的是要找准思政切入点,本文提出一种基于育人上下文的建设方法,即从软件开发核心课的广角来整体规划想要达到的效果,然后再在各个核心课中找到对应的融入点。结合学科上下文,即两条线路三个周期的学科开展模式,系统、快速、多次地围绕总目标开展教育。
通过这种育人上下文的构建,有利于进一步做好工程伦理教育,把握学生思想的上下文,培养实事求是、质量优先的大国工匠精神,提升对学生影响的深度和广度,拔高学生文化自信的高度,提高民族热爱的温度,厚植精益求精的大国工匠精神,使得学生能够以科学严谨的态度对待每一个软件开发的环节,最终开发出能担当社会责任的高质量软件。
3.6 打造学习形式上下文
当前,多数高校“软件设计与体系结构”课程的教学仍旧是以课堂为主,学生在课上被动地接收知识,然后通过作业辅助进行知识整理、回顾与总结。这种学习形式在任课教师优秀、彻底的交底式教学以及学生非凡的学习热情下可以获得良好的学习效果。而现实情况是课程覆盖面广导致各部分知识深度不够,同时大量知识点灌输使得学生的学习热情只能维持很短的时间,学习效果不佳。
针对上述情况,提倡教师在课堂上着重讲解重点内容,即重点内容重点讲解,非重点知识鼓励学生主动探索,结合教学翻转,以生讲师评的方式约束学生进行发散式学习,拔高学生知识高度。除了教学翻转外,“软件设计与体系结构”课程组还构建了线上课程资源,针对课程知识点进行视频录制,学生可以结合知识点视频进行进一步学习,同时鼓励学生结合当前主流视频软件作为学习的补充形式,充分运用网络资源丰富自己的知识储备。这种教师重点知识重点讲解+教学翻转+线上线下混合式教学的方式成功打造了学习形式的上下文。
这种学习形式上下文使得教师和学生进一步解耦,实现了一种松散耦合的关系,即学生学习并不单纯完全依赖授课教师,还把知识讲解、理解的任务分散给了学生以及线上的现代教学手段,如此达到了更好地教学效果。
结语
基于上下文的软件设计教学方法,从学科上下文、学习成果上下文、课程内部上下文、教师上下文、育人上下文、学习形式上下文六个角度,有效提高了学生对课程重要性的认识,增强了学生的学习热情;进一步完善学生的软件开发知识体系;软件开发相关课程之间的联系得到增强,知识点得到有效整合;进一步紧密了教师与课程间的联系;育人的深度和广度得到提升;实现了教师和学生关系的松散耦合,获得了更好地教学效果。该方法为培养知识、能力、价值三位一体式[6]学生提供了具体可操作的方式,为培养德智体美劳全面发展的社会主义建设者和接班人的事业贡献一份坚实力量。
参考文献:
[1]王鹏亮,张黎平,段淑萍.基于“OBE+积极教学法”视阈下“系统分析与设计”教学分析[J].信息系统工程,2023(11):145148.
[2]董威,文艳军,陈振邦.软件设计与体系结构[M].北京:高等教育出版社,2017.
[3]丁智国.翻转课堂在软件体系结构课程教学中的实践[J].计算机教育,2017(03):6871.
[4]刘伟,胡为,李小智,等.融入课程思政的软件设计模式课程教学研究与实践[J].计算机教育,2021(09):610.
[5]中华人民共和国教育部.教育部关于印发《高等学校课程思政建设指导纲要》的通知[EB/OL].(20200601)[20231226].http://www.moe.gov.cn/srcsite/A08/s7056/202006/t20200603_462437.html.
[6]云少君,曹谨玲,程艳芬,等.新工科背景下“食品卫生学”课程开展思政教育的路径探索[J].食品工业,2023,44(09):197200.
基金项目:2024年山西农业大学软件学院项目——《软件设计与体系结构》课程思政项目(项目编号:SXAUSW2023006)
作者简介:王雨潇(1994— ),女,汉族,山西清徐人,工程硕士,助教,研究方向:图像处理;成丽君(1980— ),女,汉族,山西太原人,工学硕士,副教授,研究方向:智慧农业;李萱(1994— ),女,汉族,山西运城人,工程硕士,助教,研究方向:自然语言处理。