思政教学在算法设计与分析课程的探索与实践
——以广西师范大学为例
2022-06-15王金艳
王金艳
(广西师范大学 计算机科学与工程学院,广西 桂林)
为深入贯彻落实习近平总书记关于教育的重要论述和全国教育大会的精神,把思想政治教育贯穿人才培养体系,2020年5月教育部印发《高等学校课程思政建设指导纲要》,明确指出,落实立德树人根本任务,所有高校、所有教师、所有课程都需承担好育人责任,守好一段渠、种好责任田,使各类课程与思政课程同向同行[1]。随后广西壮族自治区教育厅印发《全面推进广西高等学校课程思政建设的实施意见》,广西师范大学印发《广西师范大学关于全面推进学校课程思政建设的实施方案》,课程思政建设已在全校范围内全面开展。《算法设计与分析》课程是计算机相关专业的一门重要的专业基础课。该课程要求学生具备扎实的数学能力以及良好的程序设计语言和数据结构基础,通过系统学习算法设计和分析的原理和方法,培养学生独立设计算法和正确分析算法计算复杂性的能力,从而提高学生用算法解决实际问题的能力[2]。在课程教学中融入思政元素,培养学生树立正确的世界观、人生观和价值观[3];培养学生的爱国情操,树立政治认同、家国情怀;培养学生精益求精的工匠精神、勇攀高峰的无畏精神和团队合作的意识。
一 《算法设计与分析》课程思政建设
在课程思政建设过程中,需要以学生为主体,实现课程思政与专业知识的有机衔接,达到思想教育、知识传授和能力培养目标的紧密结合。本门课程使用的教材是王红梅和胡明编著的《算法设计与分析》(第2版)[4],该教材是普通高等教育“十二五”国家级规划教材,下面将介绍本门课中思政元素与课程内容的融合以及融入方式。
(一) 思政与课程内容的融合
结合课程内容,深入挖掘思政元素,具体如下:
第一章:概述以现代科技的飞速发展,人们生活的衣食住行引出算法,鼓励学生努力学好算法,为改变人们未来生活方式做出贡献,实现科技强国和科技兴国;用德国数学王子高斯求和案例引出课程目标[5],设计算法和分析性能,引导学生做人做事,要善于思考,精益求精;根据图灵奖获得者的事迹,展示科学家对科学事业的热爱,鼓励学生不怕困难,脚踏实地,努力拼搏,勇攀高峰;介绍算法竞赛,观看慕课视频,鼓励学生自主学习,突破自我,提升动手能力和解决实际问题的能力。
第二章:算法设计基础。从算法特性,引导学生对待问题要全面思考,不能顾此失彼,并强调团队合作的重要性;从算法设计的一般过程,启发学生要有精益求精的工匠精神;从算法是推动人类发展的关键,激励学生要像计算机学科开创者一样,善于转换思维,勇于创新。
第三章:算法分析基础。从算法的渐进分析方法,引导学生解决问题要善于抓住事物的关键;从易解问题到难解问题,引出世界难题NP=P猜想,鼓励同学努力学好专业知识,攻克科学难关。从非递归和递归算法时间复杂性分析方法,引导学生运用马克思主义原理,把握问题的特殊性,具体问题具体分析。
第四章:蛮力法。以百元买白鸡展示蛮力法的设计思想,启发学生追求工匠精神,精雕细琢,提升效率;从0/1背包问题,引导学生学会取舍,收获成功和幸福;从任务分配问题,引导学生要善于管理,合理分配任务,保证团队的高效运行。
第五章:分治法。从分治法的设计思想,启发学生解决问题,要分而治之,逐个击破;完成任务,要贡献力量,共创未来,激发集体荣誉感;以快速排序算法发明者霍尔的事迹,培养学生探索未知、勇攀科学高峰的责任感和使命感。
第六章:减治法。从减治法的设计思想,引导学生解决问题要分清主次,抓住关键问题;以堆排序中的筛选法思想,鼓励学生努力提升自我,勇争先锋。
第七章:动态规划法。从动态规划法的设计思想,引导学生努力完善自我,局部最优才能达到全局最优,培养家国情怀;以海盗分钻问题,培养学生胸怀他人,摒弃私利的道德情操;从最短路径问题,鼓励学生设计优化算法,培养创新意识;从最长公共子序列问题,引出新冠病毒基因序列比对,培养爱国主义精神和社会责任感[6]。
第八章:贪心法。从贪心法的设计思想,培养学生积极的人生观,做到不悔过去,不惧未来,不负当下;从图着色问题,引出学习强国中的每日人文地图,培养爱国主义精神[6];以最小生成树问题,引出国家在铁路和通信等方面的建设,激发学生的民族自豪感[7]。
第九章:回溯法。从回溯法的设计思想,培养学生积极向上的人生态度,勇敢往前,当遇到失败时,要能够重整旗鼓,另辟蹊径;以八皇后问题,引导学生正确的交往之道,保持一定距离,生活更美好。
第十章:分支限界法。从分支限界法的设计思想,培养学生的道德修养和法律意识。
(二) 思政内容融入方式
当代大学生受社会、网络媒介等因素的影响,具有鲜明的性格特点,思维活跃[8],但也存在诸多不足,具体表现在:心理承受能力弱,自主学习意识不强,责任意识淡薄等[9]。针对当代大学生的思想特点,本课程将专业教学和思政元素有机融合,本着以学生为主体,激发学生的求知热情,让学生树立正确的世界观、人生观和价值观,培养学生的家国情怀、精益求精的工匠精神和勇攀高峰的责任感等为原则,设计相应的教学实施方法。①线上线下混合式教学。课前利用QQ等方式布置专业知识和思政内容,通过查阅资料,慕课,在线视频等方法进行学习和思考;课上通过讲授和互动对知识进行理解和消化;课后通过线上交互和评价分别对知识进行巩固和对课程进行持续改进。②多种教学手段灵活运用,激发学生的学习兴趣。将案例教学、启发式教学、分组讨论等方法应用于课堂,增强学生的主动性,让学生乐于学习。③利用算法竞赛,激发学生自主学习意识,培养团队合作精神。在实践教学中,根据教学内容,引入算法竞赛题目,采取个人和组队竞赛方式完成相应的学习内容,并鼓励学生在洛谷、牛客和AcWing等平台上进行学习和训练,参加学科竞赛。
二 课程思政融入具体案例
案例1:突破自我,勇攀高峰。在课程介绍中,列举科技的发展,阿尔法狗战胜世界围棋冠军,无人驾驶等,以及我们吃穿住行等使用的APP软件,引出算法,展示计算机的发展很大程度都是算法在起作用。进而讲述图灵奖获得者的人物事迹,吸引学生学习算法的兴趣,努力提升算法设计和分析的能力,勇攀高峰,为社会主义现代化做贡献。接着介绍全国软件和信息技术专业人才大赛、团体程序设计天梯赛、国际大学生程序设计竞赛和中国大学生程序设计竞赛等,以及相应的算法竞赛练习的在线评测系统,观看北京航空航天大学慕课视频第四范式创始人戴文渊博士访谈—ACM-ICPC世界冠军的修炼之道[5],鼓励学生利用课余时间积极投入到竞赛学习,突破自我,提升逻辑推理、数学建模和编程能力,培养创新能力、解决实际问题的能力和团队合作能力。
案例2:敢于创新,攻克难关。在算法分析基础,讲解算法时间复杂性时,利用旅行售货商TSP问题,让学生开展讨论,提出解决的方法。随后总结求解问题的可能路线的数目是(n-1)!(假定有n个城市,旅行商从某一个城市出发)。学生初学算法,对算法复杂性没有具体概念,通常认为计算机执行速度那么快,解决这种问题肯定没问题。为了让学生理解难解问题,用具体实例展示,当n的规模增大到一定程度,就算使用超级计算机,也没办法解决该类问题。进而讲述P类问题和NP类问题,引出世界难题NP=P猜想,同时介绍NPC问题,列举命题可满足性SAT问题等具体科研问题,并展现当前研究进展,鼓励学生学好算法,敢于创新,攻克理论计算机研究的难关。
案例3:精雕细琢,精益求精。在学习蛮力法设计思想时,让学生分组讨论,设计求解百元买白鸡的算法,请小组代表讲解算法,同学们一起进行时间复杂性分析。从最初需要三重循环的算法到只需一重循环的算法,让学生体会算法的精妙之处。设计算法就是要精雕细琢,精益求精,深入挖掘其中隐藏的已知条件,才能设计出高效的算法。鼓励学生,做人做事,要端正态度,脚踏实地,要有精于工、匠于心、品于行的工匠精神。
案例4:自练组练,提升能力。在实验教学和课后学习环节,利用算法竞赛题目和模式,让学生个人或组队在规定的时间内完成相应的算法题目,随机抽取个人或小组进行题解分析,有效地增强学生学习的自主性,锻炼克服困难和顽强拼搏的精神,并提升团队协作能力。
三 课程思政教学成效
自2019年以来,通过思政教学的实施,学生的学习兴趣和主动学习意识明显增强,达到了较好的教学效果。学生对该课程的评教情况如表1所示。同时,学生利用算法解决实际问题的能力得到很大的提升,积极参加大学生创新创业训练计划项目的申报和各种算法类竞赛,包括国际大学生程序设计竞赛、中国大学生程序设计竞赛、团体程序设计天梯赛和蓝桥杯全国软件和信息技术专业人才大赛等,近两年的竞赛获奖情况与以往相比有了突破性的进展,以蓝桥杯为例展示我院学生的获奖情况,如表2所示。
表1 2020-2021学年上学期算法设计与分析课程的学生评教情况
表2 我院2016-2021年蓝桥杯竞赛获奖汇总表
四 结语
在算法设计与分析课程的教学过程中,通过深入挖掘思政元素,将科技发展的新技术与课程内容自然衔接,展示时代发展;将中国优良品德等与课程内容相融合,坚定四个自信;将哲学思想有机融入,提高分析问题和解决问题能力;注重工匠精神和专业素养的培养,提升专业技能;将算法竞赛融入课堂,培养自主意识和团队合作精神;将科学前沿有机相融,培养创新能力。