冀荣华,高万林,孙瑞志,郑立华
(中国农业大学信息与电气工程学院,北京 100083)
算法分析与设计是中国农业大学计算机科学与技术学术型硕士研究生的专业学位课。该课程通过讲授典型算法的基本原理、设计和实践方法,使学生理解并掌握算法设计的基本技术,并能灵活地加以运用,解决科学研究中的实际问题,从而培养学生独立的科研能力。然而,课程教学过程中也存在一些问题,主要包括:学时有限(32 学时)、算法多且更新速度快、学生在计算机和数学方面的基础参差不齐、学生希望能够学以致用等。
混合式教学是一种将在线教学与传统教学优势相结合的教学方式,通过线上和线下两种教学组织形式的有机结合,能够有效引导学习者开展深度学习。因此,该课程采用混合式教学方式,以弥补学时不足的问题。实践结果表明,在计算机课程中实施混合式教学能够有效改善教学效果,从而提升学生综合能力。案例式教学方法根据课程教学目的,选取真实案例进行典型化处理,形成便于学生分析与思考的实用案例,可有效帮助学生学以致用。对于研究生教学,采用研探讨式教学能够帮助学生尽快进入学术研究状态。而在专业课中融入思政元素,可有效培养学生的家国情怀,令其建立自信。本文通过多年教学实践,将上述多种教学方法糅合形成混合式教学模式,帮助学生通过学习、实践、修正、再实践和总结的过程,全面掌握算法分析与设计的关键环节,在学习基础理论和掌握实用技能的同时,培养其算法设计灵感,并全面提升学生的实际辩证思维及解决实际问题的能力。
本课程为中国农业大学计算机科学与技术相关专业研究生的必修课程,教学对象为硕士一年级学生。招生录取记录显示,学生中有80%以上来自不同高校的计算机科学与技术或相关本科专业,其余学生则来自非计算机科学与技术相关本科专业。这种状况直接导致了学生学习基础的差异性,如何促进具有不同专业基础水平的学生快速进入课程学习角色、在短暂课程期间获得最好的学习产出则成为本课程教学方法改革的目标。
为验证混合式教学方式的教学效果,本课程自2015年开始持续实践三轮次,每轮次均将学生划分为试验班和传统班两个小班进行对照教学。考虑到非计算机科学与技术相关专业的学生基础相对薄弱,为更好地激发其主动学习的能动性,这些学生均被分配到试验班。2015-2017 年两类班级学生人数分布如图1所示。
可以看出,两类班级人数基本相当,试验班略多1~2名。课程采集了两类班级学生基本信息并进行统计学对比分析,结果如表1所示。
Fig.1 Distribution of students图1 学生人数分布
Table 1 Statistical analysis of students'basic information表1 学生基本信息统计分析
通过分析发现,P 值均大于0.05,说明两个班级学生在性别比、年龄和入学成绩等方面无显著统计学差异。同时,由于本课程由同一教师任教,教学大纲与教学内容均保持一致,区别仅在于教学方法,因此具有一定的可比性。
两个班级分别采用传统式和混合式两种不同教学方法。其中,传统班采用传统教学方法,即课前学生预习教材相关内容,课堂以教师讲授为主,采用PPT 形式授课,教师详细讲解典型算法原理、设计及实践方法,并对所涉及典型算法的实践过程进行指导,学生课后自行复习总结。试验班则采用混合式教学方法,将师生纳入到共同教学主体。将课前、课中与课后,线上与线下,授课教学、案例教学、研探讨教学进行全方位混合。教师在开课前进行教学资料梳理、知识重点/难点梳理、教学方法设计,以及案例选择与设计。案例大多来自教师本人的科研课题,并辅以经典案例。通过精心设计与整理,选择最具代表性和启发意义,且与实际应用场景密切相关的案例作为典型算法的典型应用。课前要求学生自学典型算法基本理论及典型案例,并针对典型案例进行算法设计与实现;课中以Seminar形式开展课堂教学,师生共同进行研探讨,对不同解决方案进行对比、推敲与分析;课后要求学生根据讨论结果进一步完善典型案例的设计与实现。
整个混合式教学过程分为课前、课中和课后3 部分。通过充分调动学生积极性,实现师生共同研探讨和生生合作交流的良好互动式教学,以达到人人学有所得、学有所用的目标。
教师上传课程相关资料(视频、电子书、核心网址及算法开发工具包)至网络教学平台;设置课程电子调查问卷,以充分了解本届学生的实际情况;建立微信群以加强师生内部的实时交流。
第一次课以教师为主导开展教学,目的在于帮助学生了解完整的知识体系,掌握课程学习的工具和方法,并建立课程学习与研探讨框架。教师首先介绍本课程安排和学习方法等基本情况,然后将试验班学生分为6 个小组,每组3~5 人,由一名小组长负责组织交流,最后以第一个典型算法为例讲解相关基本理论、分析案例,并进行算法设计与实践的完整过程。实践结果证明,保证第一次课的教学效果能够充分调动学生的学习积极性,帮助学生快速进入主动学习的状态。
第2-7 次课分为课前、课中和课后3 个阶段开展教学。本课程在整个混合式教学过程中,通常会开展3 个案例的学习与讲解。
课前,教师提前一周将本周要讲解典型算法基本理论的微视频、典型案例及相关资料、任务要求等发布在网络教学平台,供学生学习。学生以小组为单位进行任务分工,相互讨论、交流形成文档和代码,具体要求如下:①调研报告。利用教师提供的资料及各种数字资源进行文献查阅,了解算法基本原理、发展现状及存在问题等,要求阅读不少于5 篇近3 年的中英文参考文献,形成不少于3 000字的调研报告;②算法设计报告。针对案例的算法设计与实现方案,要求至少包括:案例特点分析、选择算法的依据及基本原理、算法设计思想;③算法实现代码。要求该算法能够实现案例要求的基本功能,代码可运行;④算法测试与评价报告。给出算法代码测试过程、所用测试用例及算法评价;⑤汇报报告。以PPT 形式汇报上述4 份报告的核心内容。
课中,教师按照以下过程组织课堂教学:
(1)汇报。随机选择两组作为主讲小组,汇报并展示本小组的课下成果。
(2)讨论。教师引导学生围绕两个小组的汇报情况开展讨论。鉴于目前学生提出问题的能力较弱,而能够有效提出问题是从事科学研究的重要素质之一,因此要求其余每个小组至少提出两个不同问题。教师有时需要引导学生提出尚未提及的案例算法的关键缺陷问题,并针对这些问题在课堂上展开热烈讨论,形成一个多维互动的课堂讨论情景。
(3)汇总。讨论后随机选定一个小组汇总讨论内容,形成讨论报告。
(4)评价。随机选择一组学生对主讲小组的汇报情况进行评价,形成评价报告。
(5)点评。教师对课堂讨论情况进行总结,以促进下一次讨论课更加高效及富有成果,同时对案例算法设计中可进一步优化之处进行点评,以推动学生更深入地思考问题、扎实掌握算法设计精髓,并逐渐形成自我驱动的习惯。
课后,学生根据课堂讨论结果进行总结与修正,形成最终报告。
课程以综合作业形式进行考核,在最后一次课前,教师给出结课作业及要求,课上学生分小组进行汇报,并提供调研报告、算法设计报告以及算法实现、测试与评价报告各一份。
最终课程成绩由平时成绩与结课作业成绩两部分组成,具体如表2所示。
Table 2 Composition of course scores表2 课程成绩组成
在课程结束时,以匿名方式对试验班和传统班学生进行问卷调查,通过学习态度、专业知识和综合素质3 方面共14 个项目反映学生对课程教学效果的评价。每个项目按照学生收获多少分为多、一般和少3 个等级,学生选择一个等级对教学效果进行评价。表3 为3 轮教学实践中两个对比班级的学生评价结果。
Table 3 Teaching effect evaluation表3 教学效果评价 (%)
将试验班与传统班学生在“收获多”这一项上作差值进行比较,结果如图2所示。
Fig.2 Differences in students'achievements between experimental class and traditional class图2 试验班与传统班学生收获差异
可以发现,试验班学生各方面能力均较传统班有一定程度提升,其中在算法知识获取方面相差不大,但在综合素质和学习态度方面提升显著。综合素质能力正是研究生培养目标所在,说明混合式教学模式更适用于研究生教学。
3 年的对比教学实践结果表明,使用混合式教学模式能够帮助学生更好地跟踪算法设计发展前沿技术,更系统地掌握算法分析与设计基础知识,更深入地理解并掌握典型算法的精髓,并有能力运用典型算法对复杂问题进行求解。同时,混合式教学模式提升了学生主动学习和独立思考的积极性,按照研究生应有的学习规律,培养并强化了学生科学研究的能力,具体表现在:
(1)独立获取知识的能力。逐步掌握科学的学习方法,阅读并理解算法课程设计与实践方法及开发技术相关的教材、参考书和科技文献,不断扩展知识面,增强独立思考的能力,有意识地追踪最新算法技术并更新知识结构,能够写出条理清晰且具有自我思考与见解的读书笔记、小结或小论文。
(2)科学观察与思维的能力。运用算法分析与设计的基本理论和基本观点,通过观察、分析、综合、演绎、归纳、科学抽象、类比联想、实验等方法培养学生发现与提出问题的能力,使其对所涉及问题有一定深度的理解,能够灵活运用已有知识,同时发现尚需补充的知识和技术,并能够判断研究结果的科学性与合理性。
(3)分析与解决问题的能力。根据软件工程问题的特征、性质及实际情况,抓住主要矛盾进行合理的简化,选择合适的算法或基于实际问题提出新的解决方案,建立相应的逻辑实体模型,并用形式语言和程序设计语言进行描述。
综上所述,在专业硕士学位课“算法分析与设计”中开展混合式教学改革,可有效利用学生已有的知识和学习能力,充分调动其学习的主动性,培养其独立获取知识、挖掘有价值的科学问题并提出解决方案的能力,尤其对于学生学术研究与创新能力的培养具有一定优势。