课程思政元素挖掘与教学实践

2022-03-21版权声明我要投稿

  摘要:结合课程思政建设,从立德树人视角挖掘“Python数据结构与算法”课程的思想政治元素,以强化法规教育和践行工匠精神为主线,聚集新时代工匠精神的内涵,建立课程专业知识点和思想政治教育的契合点。通过精心设计教学案例,在恰当的教学过程和教学环节中融入思想政治内容,使得课程思政教育做到自然有效,如盐化水。教学实践表明,课程思政与专业知识教学有机融合、相辅相成,有利于提升教学效果和育人成效。

  关键词:课程思政;数据结构与算法;立德树人;工匠精神;

  2020年5月,教育部印发《高等学校课程思政建设指导纲要》[1]。纲要指出:把思想政治教育贯穿人才培养体系,全面推进高校课程思政建设,发挥好每门课程的育人作用,提高高校人才培养质量。高校在加强思政课程的同时,着力课程思政建设,赋予专业课程价值引领的重任。专业教师须寓价值观引导于课程知识传授和能力培养的全链条、多维度教学过程之中,帮助学生树立正确的世界观、价值观、人生观。每所高校、每门课程、每位教师都要守好一段渠、种好责任田,形成协同效应,构建全员、全程、全方位的育人格局。

  “数据结构与算法”一直以来是计算机相关专业的核心专业基础课,是计算机学科公认的主干课。为服务国家交通强国发展战略,适应“互联网+交通”大数据新时代发展背景,培养交通工程领域具有研发创新能力的多学科交叉型专业人才,具备运用相关计算机软件与仿真工具对复杂交通工程问题进行分析、建模与仿真的知识和能力,“Python数据结构与算法”课程应势而开,成为东南大学交通工程专业人才培养体系中的一门专业基础课。

一、以强化法规意识教育和践行工匠精神为主线

  从法规层面讲,遵守《计算机软件保护条例》是所有计算机从业人员职业道德的最基本要求,作为交通工程领域未来从事交通仿真及软件开发的人才,交通工程专业的学生也应对此有清晰的认识。软件是程序员高度智慧的结晶,其开发需要投入大量的智力和财力。与有形财产一样,软件也受到国家法律的保护。尊重软件著作权,提高开发者的积极性和创造性,才能促进软件产业的健康发展,从而促进人类文明的进步。科研诚信和学术道德是治学的起码要求,作为学生,体现在具体行动上,就是在实际的学习、科研活动中自觉遵守学术规范、法律法规。

  此外,作为优秀的软件开发人员,应追求比程序正确更高的目标,如更高效的算法、更健壮的软件、可复用性的模型和可灵活配置的组件等。体现在技术探索上就是要不断研究性能更好的算法、更优的数据结构和更灵活的模型结构,而不仅仅是实现功能,这是一种对科学孜孜以求的工匠精神。作为新时代的大学生,一定要继承和弘扬这种精神[2,3,4,5,6,7,8,9]。

  作为授课教师,需要深入钻研,结合专业培养目标,明确课程的德育目标,做好新时代发展背景下课程专业培养目标和德育培养目标相融合的课程规划设计,挖掘课程体系结构和知识内容中的德育元素。在本课程中,“数据结构+算法=程序”是一个公认的概念,但对于大学二年级的学生来讲理解起来还是比较抽象的。授课教师需具有精益求精的工匠精神,利用信息技术和人工智能技术积极推进思想政治教育与专业教育深度融合,通过设计编程实践、项目案例和情景模拟等教学方式,变抽象为具体,让学生在理解数据结构和算法的重要性、掌握数据结构概念内涵的同时,吸引学生主动参与到富含思想政治元素的课堂教学中来,实现知识传授和价值引领的有机融合。

二、聚集新时代工匠精神的内涵,精心设计教学案例

  深刻理解工匠精神的时代内涵,从立德树人和思政育人的视角,建立本课程与工匠精神核心内涵之间的契合点,实现二者有机融合。

  (一)数据结构优化和弘扬精益求精科学精神的关系

  对于任何问题,程序员优先考虑数据的表示,找到表达该问题最恰当的数据结构,同时追求逻辑的极简、时间的最少和存储的最省,并懂得其中的平衡,真正做到精益求精。下面结合词梯问题做详细阐述。

  问题描述:单词接龙Word Ladder问题。1878年,“爱丽丝漫游奇境”的作者Lewis Carroll发明了一个单词游戏:从一个单词演变到另一个单词,其中的过程可以经过多个中间单词,演变中要求相邻两个单词之间有且仅有1个字母的差异,如FOOL变SAGE:FOOL→POOL→POLL→POLE→PALE→SALE→SAGE,目标是找到单词变换最短序列。

  问题分析:问题求解目标是最短转换序列。看到最短目标序列首先想到的就是广度优先搜索,而广度优先搜索的对象则是图。但是本题并没有直接给出图的结构,因此需要把问题抽象成图的模型。

  创建该问题的图表示有多种方式。假设有一个单词列表,其中每个单词的长度都相同。首先,为每个单词创建一个顶点,如果两个单词只相差一个字母,就在两者之间创建一条边,将它们连接起来,因此我们只需要把满足转换条件的点相连,就形成了一张图。对于只有少量单词的情况,这个方法还不错。但是,假设列表中有几千甚至上万个单词,将一个单词与列表中的其他所有单词进行比较,建图的时间复杂度为O(n2)。

  对问题进行深入分析,参考处理冲突的开散列方法,对数据结构进行改进:创建带标签的桶,其中标签是某一个字母被通配符“_”下划线代替的单词;一个桶可以存放若干单词,即所有匹配标签的单词都放到同一个桶里;将单词列表中的所有单词依据标签与桶匹配就位后,对同一个桶内的单词之间建立连接边即可。教学算例的单词列表包含5110个单词,采用初始的方法构建数据结构模型,共有26112100(5110×5110=26112100)条边需要做判别;改进后,图中只需构建53286条边,边的数量是原模型的0.2%。新模型的时间复杂度和空间复杂度均得到了很大的优化。

  课堂教学过程中,通过插播《大国工匠》中贺潇强精准求精为国铸剑的视频,引导学生在数据结构设计上以贺潇强为榜样,不忘数据结构模型设计的初心,多思考,反复实践,追求完美。

  (二)算法创新与追求卓越创新精神的关系

  作为一个优秀的程序员,掌握主要算法技术的基本原理,养成钻研、好奇、创新、动手等优秀习惯,才能真正做到传承精华,守正创新。下面结合自动售货机找零兑换问题做详细阐述。

  问题描述:兑换最少个数的硬币问题。设计一个自动售货机找零程序,要求每次找给顾客最少数量的硬币。例:某次顾客投进100¥,买了31¥的东西,需要找零63¥。假设低于100¥的币值种类即硬币体系有[1¥,5¥,10¥,25¥]。

  贪心策略:贪心策略是一种直观求解优化问题的方法。算法核心就是每次都试图解决问题的尽量大的一部分。对应找零兑换问题,具体步骤为:从最大面值的硬币开始,用尽量多的数量;有余额的,再到下一个最大面值的硬币,还是用尽量多的数量;一直到最小面值为止。经计算,本例中的找零硬币最少组合为:2个25¥+1个10¥+3个1¥。对于上述找零兑换问题,贪心策略在美元、人民币等硬币体系下表现尚好。然而,当出现一些特殊面值的硬币,如21¥时,贪心策略会失效。按照贪心策略找零63¥需用6个硬币,而实际上最优解是3个面值21¥的硬币。

  算法设计及改进:针对特殊的货币体系,贪心策略会有失效的情况,那么,如何在不依赖某种硬币体系时求得问题的最优解呢?在课堂教学中,教师积极引导、鼓励学生对算法进行改进和创新,深入思考、突破常规,提出更好的解决方案。经研究发现,递归是一种可行的方法,可通过递归得出找零问题的最优解。首先,确定递归结束条件:若需要兑换的零钱,其额度恰好等于某个货币单位面值,则递归结束。其次,对问题减小规模:具体方法就是采用枚举法,对每种面值的硬币都尝试兑换1次。假设硬币体系为[1¥,5¥,10¥,25¥],则找零减去1¥后,求兑换硬币最少数量(递归调用自身);找零减去5¥后,求兑换硬币最少数量(递归调用自身);找零减去10¥后,求兑换硬币最少数量(递归调用自身);找零减去25¥后,求兑换硬币最少数量(递归调用自身);最后选择上面结果中最小一个。

  递归方法虽然可行,但它的运行效率却非常低。上述案例中,兑换63¥零钱,递归程序需要进行67,716,925次递归调用,笔者笔记本电脑用时26.9秒才找到最优解。为分析算法低效根源,对算法进行深入分解,发现程序执行了大量的局部重复计算。通过引导学生发现算法存在的缺陷,组织学生动手改进和对程序执行时间精确统计,最后,通过缓存方法,将找零兑换63¥所需的递归调用由67,716,925次降低至221次,算法的时间性能得到极大提升。

  在该案例教学中,从算法分析及算法优化等方面,激发学生对算法改进、创新的兴趣和热情,进而引出工匠精神和追求卓越创新的重要性。同时,在课堂上适时补充介绍交通分配问题求解算法的发展改进历程,使学生认识到算法分析和优化在交通工程领域的重要作用。

  (三)分组实训与培养协作共进团队精神的关系

  协作共进的团队精神是新时代工匠精神的要义。所谓协作,就是团队成员的分工合作;所谓共进,就是团队成员的共同努力、共同进步。“智慧校园导航导览系统”设计与实现是本课程的一个综合实训课题。课题要求以小组为单位,分工完成各项任务,并最终以小组为单位完成综合实训的答辩和评分。

  问题描述:智慧校园导航导览系统。学校校园占地面积大,校园内学习、生活、办公等活动场所众多。然而,各楼宇和道路的方向指示牌不明确,访客很难通过口头指路和VI导牌快速准确地找到目的地。本项目设计并实现一个智慧校园导航导览系统,为访客提供服务。

  因为项目的难度较大,在布置任务时,教师带领学生分析项目实现的关键点和解决方法,并鼓励学生对其完善、改进和创新,提出更好的解决方案。另外,对项目任务和流程做进一步的明确,具体包括需求分析、数据流图设计、功能模块设计、数据结构和算法设计、代码实现与调试、实验报告撰写、程序演示与汇报答辩等。

  课程培养目标和德育培养目标有机融合:作为课程的综合实训项目,需要学生灵活掌握所学各种数据结构并能综合运用,强调培养学生良好的编程习惯和动手解决实际问题的能力。同时按小组方式开展和完成一个实用系统,指出项目实施过程中沟通和合作的重要性。此外,从开发一个系统的完全工作流程中,进一步引出小组齐心协力攻克难关的重要性和集体智慧的优势,并通过项目过程中不断遇到困难和挫折的事例引出化压力为动力的决心。最后通过各小组间的评比打分,培养学生的竞争意识和创新意识。

三、结语

  课程思政是一种“大思政”教育理念,其对课堂教学提出了更高的质量要求。除传授专业知识和专业技能外,把思想政治教育拓展到专业课教育教学过程中,拓宽学生接受思想政治教育的空间,是课程价值观功能实现的一种有效形式和基本路径。

参考文献

  [1] 教育部关于印发《高等学校课程思政建设指导纲要》的通知[EB/OL].(2020-05-28)[2021-02-13].http://www.gov.cn/zhengce/zhengceku/2020-06/06/content_5517606.htm.

  [2]吴海峰,张翠娟.“C语言程序设计”课程思政教育的内涵[J].安庆师范大学学报(自然科学版),2020,26(4):109-112.

  [3]刘卫国,奎晓燕,严晖,等.“计算机程序设计基础”课程思政教学设计[J].工业和信息化教育,2020(11):1-5.

  [4]苏春,陈斌.课程思政的素材挖掘、内容组织与教学实践——以《系统可靠性分析与设计》课程为例[J].东南大学学报(哲学社会科学版),2019,21(S2):145-148.

  [5]李旭芳.数据结构课程思政建设研究[J].现代职业教育,2019(27):72-73.

  [6]王琬茹,陈香凝.高校计算机类课程“数据结构”中开展课程思政建设的探索[J].科教文汇(上旬刊),2019(5):78-79.

  [7]汤琳,周鹏,洪玲.新工科背景下计算机类专业课程思政建设思路与实践路径探索——以“数据结构”课程为例[J].绵阳师范学院学报,2020,39(10):42-50+55.

  [8]章英,汪毅,陈仲民.程序设计类课程“课程思政”教学探索与实践[J].教育教学论坛,2020(3):157-158.

  [9]徐琴,朱霞,张才华.“Python程序设计”课程思政探索[J].教育教学论坛,2020(53):298-300.

作者:童蔚苹 陈淑燕 杨帆 林柏锦 单位:东南大学交通学院 东南大学道路交通工程国家级实验教学示范中心

【课程思政元素挖掘与教学实践】相关文章:

1.药学专业中微生物与免疫学课程思政元素的挖掘

2.航空类机械工程专业课程思政德育元素的挖掘及融入

3.广播播音与主持课程中融入思政元素的路径探索

4.新闻学课程内容建设与综合教学手段在课程思政教育理念下的实践

5.课程思政融入《动力电池管理与维护技术》教学的改革与实践

6.理工科院校大学英语阅读与写作课程思政教学理念的设计与实践

7.市场营销学课程思政教学改革探讨与实践

8.“苗木生产技术”课程思政教学改革与实践

9.大思政模式下高职课程思政教学改革的实践与思考

10.数字电子技术课程思政教学改革探索与实践

11.高职院校“军事理论课”课程资源库建设

12.大学英语教学中培养学生的跨文化交际能力