疫情防控背景下数据结构课程思政教学案例
2022-02-21刘雯敏
刘雯敏
(武汉职业技术学院,计算机技术与软件工程学院,湖北,武汉 430074)
0 引言
目前,在党中央的正确领导下,多地疫情清零,但“疫情清零”并不意味着彻底消灭了新冠肺炎病毒。专家判断,疫情将长期低水平存在。近期,我国新疆和香港的疫情出现复燃,这说明,任何一个地方都不敢打包票做到“零反弹”,做好持久、充分的防控直到疫情彻底结束是非常有必要的。“零状态”只是动态的,不是永恒的。在疫情防控背景下,在线教学模式和方法得到了快速的发展,与此同时也涌现出了大量优秀的课程思政元素。本文在课程案例中进行了思政元素融合的相关探索,有效、自然的将思想政治元素融入到“数据结构”的课程教学中。
1 疫情防控下的课程思政
习总书记在2016年12月的全国高校思想政治工作会议中强调,高等教育的核心问题,就是坚持把立德树人作为中心环节,做到把思想政治工作贯穿教育教学整个过程,真正实现全员育人、全过程育人、全方位育人[1]。目前高校普遍将教学重点放在了专业性和技术性领域,但在专业课教学大纲中除了提出培养学生专业知识与能力目标外,还提出了素质目标,目前的教学重点仅仅在于专业知识和能力的培养,忽略了思想政治素养的培养。若将实时的思政元素融合到专业课的教授中,提高学生思想政治素养的同时可解决普遍存在的思政理论课程学时不够长,融入专业课程不够深入等问题[2]。
1.1 疫情防控中课程思政元素
疫情期间,全国人民跟着党走,上行下效,令行禁止。在中国共产党的正确领导下,全国执行了快速高效的疫情防控策略,全国动员执行严格的居家隔离措施减少人员流动封锁感染源,跟踪调查每个病人的流行性病史、一个不漏地排查、组织井然有序的全民筛查还有严格的隔离观察。这些都是时代当下的正能量,确保了中国人民打赢这场没有硝烟的战争。将这些思政元素融入到课程教学中,不仅紧跟时代脚步,更让复杂难懂的计算机专业课程接地气,让学生在学习专业课的同时,了解党的指导政策,践行社会主义核心价值观,为国家培养有理想、有信念、有担当的社会主义接班人。
2 数据结构课程概述
“数据结构”是计算机专业的一门专业基础课、专业核心课,它介于数学、计算机硬件与计算机软件之间。不仅是学习编程的基础,也是学习数据库、编程框架、计算机操作系统等知识的基础。在本课程的培养目标中,需要学生具备良好的逻辑思维能力,基本运用计算机进行数据处理的能力。如掌握数据的逻辑结构和物理结构。其特点是理论知识点多、具有一定的抽象性[3]。本课程在课程体系中具有承前启后的作用,其前导课程为计算机文化基础和Java程序设计,后续课程包括 JSP编程、数据库等。
本课程主要研究计算机中数据存储的特征及数据元素之间的关系,内容涉及了数学、计算机硬件、计算机软件3方面的知识。主要知识点包括:线性表、栈和队列、串、矩阵、广义表、树和二叉树、图、查找和排序等基本数据结构和算法。在本课程中实现基础算法使用到Java编程语言,要求学生具有Java编程基础。“数据结构”是一门理论知识较多、逻辑思维要求高、相对较难的专业课,要想在课程中开展课程思政教学实践,必须坚持教学性质不变、知识点不变,挖掘课程中的逻辑、原理、科学精神等,融入当下思政元素[4]。本文通过探索与研究,在“数据结构”课程中融入包含思政元素的案例,并开展课程思政实践教学工作。结合当下疫情发展情况,精心选择了思政内容与切入点,并合理设计实践环节,主要将疫情期间有序的全民筛查、流行性病史跟踪调查、密接人员隔离观察等内容引入了课程。
3 数据结构教学中融入课程思政案例
3.1 队列——间隔1 m的美景
队列是一种操作受限的线性结构,只允许在线性表的一端进行插入,而在另一端进行删除。结构特点是“先进先出(First In First Out)”,即先入队的元素会先被删除,后入队的元素后被删除[5]。2020年5月14日至6月1日,武汉市对9 899 828名居民进行了核酸检测,在这次全民检测大会战中,每个社区随处可见间隔1 m的“队列”。新冠肺炎病毒排查时间紧、任务重,排队使公共场所有了秩序,使咽拭子采样工作能有序、高效地进行。
在课前发布队列基础学习微视频,并布置课前案例作业。武汉市某小区安排全社区人员进行核酸检测,F下班后赶来排队进行咽拭子采样,在他所站的队伍里:A、B已完成采样;C正在采样;D、E正在排队等待。学生分组进行讨论,要求给出F入队过程、F出队过程和整个队伍出队的序列。
课程中,首先学生分组分享课前作业的完成情况,并详细讲解采样排队、F入队、F出队的过程,在分析后都能够得出正确的出队序列:ABCDEF。然后教师分析队列中新增元素(入队)、删除元素(出队)的详细操作过程,统一讲解整个队列的存储结构和操作的相关算法。最后一起进行Java代码实现,特别是顺序存储中的循环队列概念。课后布置编程题,在循环队列中实现入队、出队和整队遍历输出操作,巩固Java编程基础。
通过课中分组探讨新冠肺炎核酸检测队列中“入队”“出队”的过程,让学生不仅学习到队列这一数据结构的基础特点,也潜移默化中深入体会了遵守秩序的重要性。“懂规矩,守纪律”才能保证社会的有序运行,社会有了各种规章制度,人们生活才能安定有序地进行,国家有了各种法律法规,人们的生活才有了安全保障。有序的队列才能保证武汉全民核酸检测高效、快速的进行,保证全体人民的生命安全。
3.2 图的遍历——新冠肺炎密接人员排查
图G是顶点集合V(G)和边集合E(G)组成的,记作G=(V(G),E(G)),简写为G=(V,E)。其中,V是顶点的有穷非空集合,E是2个顶点之间的关系,即边的有穷集合。新型冠状病毒肺炎是一种传染性极强的传染病,而传染病的传播路径就是一个典型的有向图。图的深度优先遍历,可以应用到新冠肺炎密接人员排查中,更加快速高效地排查大量与患者接触的人员。
讲解图的遍历前,学生已学习并掌握图的基本概念、性质和图的存储。在课前发布图的遍历基础学习微视频,并布置课前案例作业。对2020年1月10日感染的患者A进行密切接触者追踪,对于A的密切接触人员逐个进行隔离排查,根据A的生活轨迹抽象出有向图(图1)。所有密切接触者并且仅被排查一次,分析并写出排查的顺序。
图1 新冠患者A的密接人员分布有向图
课程中,首先学生自由分享求解排查人员顺序的思路,并详细讲解人员排查顺序分析、有向图遍历的过程和最终遍历结果。根据被排查且仅被排查一次的原则,学生得到多个遍历序列,分布如下:
①ABCDEFGHIJKLMN;
②ABGCDEFHLMNIJK;
③ABGCDEFHNMLIJK。
随后教师进行分析:这3种遍历序列都是正确的将所有结点访问且仅访问一次,其中②和③是正确的深度优先遍历。统一讲解图的深度优先遍历的特点和实现算法,特别是栈辅助实现算法。最后一起完成使用Java代码实现图的深度优先遍历,由于在计算机中有向图存储的唯一性特点,程序执行出来的深度优先遍历序列为②。课后布置编程题巩固栈的使用和图的深度遍历,熟练Java语法实现。
在课程中学生自主完成案例并提交答案,然后进行总结,讲解图深度优先遍历的特点、过程、算法和具体代码实现。结合现实疫情密接人员排查情况,不仅让学生学习了图的基本结构以及具体应用,也强调了传染病传播渠道和路径,如何利用图数据,科学地进行传染病病源追踪和传播范围预测,做到科学防范。
3.3 哈希表——隔离房间散列安排
哈希表(Hash)是在记录的存储位置和它的关键字之间建立一个确定的对应关系,以求取的哈希值H(key)作为关键字为key的记录在表中的位置。其中最常用求取哈希值的方法是除留余数法,除留余数法是用求余/模(%)运算得到哈希值,其哈希函数为H(key)=key %p,p≤m,其中m为存储单元数。当不同关键字计算出的哈希值相同时,就会产生冲突,即该地址已经存放了其它数据元素,就要去寻找另一个空的散列地址来解决冲突。常用的解决冲突的方法有线性探测、二次探测、双散列等。
为更好地观察新型冠状病毒肺炎密切接触人员,疫情期间均对其进行隔离观察和管理,每个人都被分配到不同的房间。将人员手机号信息抽象为关键字,通过除留余数法计算出其对应的哈希值(也就是房间号)。在被观察人员和房间号之间形成一一对应的关系,可以快速地通过个人手机号码信息查询到其所住房间。
在课前发布哈希表学习微视频,并布置课前案例作业。由于疫情排查需要,安排表1中的人员入住酒店A进行隔离观察。其中取每个人手机号的最后两位为关键字key,酒店还剩7个空房间,房间号分别为0—6,使用如下哈希函数计算哈希值,H(key)=key %7,当发生冲突时,采用线性探测法解决冲突,即Hi=(H(key)+di)%m,di=1,2,3,…,m为表长。
表1 酒店A隔离人员信息
课程中,首先学生自由分享哈希值的计算过程和最终的房间安排情况,并详细讲解每个哈希值的计算、处理冲突时如何计算新的哈希值。大部分同学都能够正确地计算出每个人正确的房间号,但仍有部分同学在解决冲突时碰到问题,错将关键字key带入计算。
然后教师讲解分析哈希函数与冲突解决函数的区别,逐步演示每个哈希值和冲突解决时新哈希值的计算过程,对于易犯错误重点讲解。其中,最常见的错误是在解决冲突时把key值带入计算,正确做法是将上一步中计算得到的有冲突的地址带入重新计算出哈希值。具体计算过程如表2所示。
表2 哈希值计算详情
课后布置拓展题,巩固课上所学有关哈希值计算和解决冲突方法的知识点。在课程中学生自主完成哈希值和冲突地址的计算并提交答案,然后教师进行总结讲解:哈希表的特点、哈希值计算、冲突解决函数和常犯错误。结合现实中疫情密接人员隔离房间安排的应用,不仅让学生学习了哈希表的基本概念,也强调了人员隔离与对应房间号之间一对一的关系,密切接触者接受严格的隔离,才能更有效地控制新冠肺炎传播,高效、快速、准确地找到被感染人员。
4 总结
课程思政是在教学中实现立德树人根本目标的必然选择,也是课程教学改革的必然趋势。课程思政教学改革使得思政课与专业技能课的互通变为可能,架起了思政课与专业课的沟通桥梁。疫情期间涌现了大量思政内容:有序排队的良好公共秩序、传染病的防控路径、密切接触者的隔离观察等。从“数据结构”课程的基础内容出发,将疫情期间的思政元素合理融入到案例教学中,取得了一定的效果。在日后的专业课教学中,需要进一步加强课程思政的水平、内涵和深度挖掘。只有不断加深课程思政的实施范围和深度,才能在教会学生专业技能的同时不断提高学生道德品质、思想水平、政治觉悟和文化素养,把学生培养成为德才兼备、全面发展的人才。