面向应用型人才培养的数据结构“一核心,六维度”课程思政及实践*
2022-02-08姚俊明
邢 丹 姚俊明 徐 琦
(济宁医学院医学信息工程学院 日照 276826)
1 引言
计算机应用的目的是解决实际问题,而数据结构表示实际问题中信息及其关系,算法则是描述问题解决方案。数据结构与算法是计算机科学的支撑,掌握和应用该课程可以为深入学习其他专业课程奠定基础[1]。“数据结构”作为计算机科学与技术的专业基础课,能够为其他专业课提供常用工具,学生在课程中除学到专业知识外,还可以掌握工作和生活中所需的思维方式。“数据结构”课程中的相关问题比较抽象和难于理解,而激发学生学习兴趣、找到学习的内在驱动力,则是克服课程学习困难的关键。本文针对上述问题从多个维度进行课程思政教学探索。
2 课程中存在的相关问题及解决方案
2.1 存在的问题
数据结构课程教学存在的主要问题包括:概念抽象、难于理解;学生学习积极性不高,未深刻理解数据结构课程在计算机学科中的重要作用;编码过程中遇到的bug无法调试通过;学生编码过程中难以灵活运用C语言,无法理解抽象数据类型的定义和使用,上述问题限制了计算机科学后续课程的学习。
2.2 解决方案
学科知识一般是由基本概念及基本概念之间的联系构成的。信息化时代信息繁多,如何充分利用相关信息将知识讲清楚并同实际应用紧密联系是当前高校教师必须解决的问题。有计算机科学家指出,要成为领域专家需要学好并真正学懂基础知识和理论。数据结构课程概念学习重在理解其内涵和用意[2]。这就需要课堂教学设计贴近生活,抓住概念的基本要点及知识链接等。数据结构课程基本概念、原理及方法抽象、较难理解,需要教师在讲授过程中使用通俗易懂、言简意赅的语言,所举例子尽可能贴近工作和生活,不能单纯从概念到概念进行讲解,而应更多地从应用角度去阐释概念内涵和外延。在教学过程中可通过充分挖掘课程内容应用场景,从多角度充分理解基本概念[3];通过类比方式,将熟悉与不熟悉的内容之间做类比,实现从已知到未知的转化并寻找适合的学习方法;强调从应用角度理解基本概念并将新概念融入原有知识网络中,以此加深对课程中概念、思想和方法等内容的理解。提升学生内在学习驱动力,通过充分挖掘课程中蕴含的德育元素,从一切优秀文化成果中寻找与课程相通的地方,激发学习热情,最终实现价值引领,提高学生学习主动性。
3 面向应用型人才的数据结构课程培养目标
3.1 基本目标
以应用型人才培养目标为导向,夯实学科基础,通过典型数据结构及算法的学习及训练,使学生逐步掌握根据不同应用场景和实际提炼数据和选用适合的数据结构,进行信息整合,配置相应的运算和处理算法,最终完成信息化系统集成。
3.2 实现路径
更深入地完成该目标的前提是掌握课程中的基本内容,主要包括基本概念、基本结构及基本技术[4]。其中基本概念的掌握要按照由浅入深、由表及里、从具体到抽象的原则进行,以符合认知规律。其中抽象数据类型处于中枢位置,集中体现了软件工程分解、抽象和信息隐蔽基本原则,围绕抽象数据类型设计、实现和应用展开教学,注意分析对比不同存储结构的优缺点,揭示主要算法求解思路,分析对比不同算法用到的相同技术。其基本结构主要分为线性与非线性结构,其中最常用的是表结构。基本技术中最重要的是递归技术及查找排序中的经典算法。递归是计算机思维区别于人类思维最本质的特征,因此对其讲解和掌握的透彻程度是课程教学的关键问题之一。常见概念及经典算法中体现的方法论对工作和生活均有指导作用。
4 基于“一核心,六维度”的数据结构课程思政教学探索
4.1 课程思政“一核心,六维度”原则
“一核心,六维度”原则中的“一核心”是指以计算思维能力培养为核心,“六维度”是指以课程中体现的方法论、传统文化中体现的数据结构思想、辩证思维、大自然中蕴含的数据结构、热点问题、科学家及工匠精神6个维度进行探索,从中挖掘出对课程内容理解最恰如其分的案例。
4.2 教学案例
4.2.1 “一核心”计算思维的教学案例设计 计算思维是指在学习和应用计算机学科理论和技能的过程中所体验和获得的思想方法和做事方法。在未来超级智能时代,高效的学习方法是找到等价问题,实现举一反三,达到一通百通的目的。计算机科学中的精髓就是递归思维[5],将大事分解,自顶向下设计,再自下而上回归。计算思维核心的递归案例设计如下。案例名称:积累的重要作用;知识单元:栈和递归的实现;思政目标:递归的过程实质与《礼记·大学》中的“古之欲明德于天下者,先治其国。欲治其国者,先齐其家。欲齐其家者,先修其身。欲修其身者,先正其心。欲正其心者,先诚其意。欲诚其意者,先致其知;致知在格物。物格而后知至,知至而后意诚,意诚而后心正,心正而后身修,身修而后家齐,家齐而后国治,国治而后天下平”具有相通之处。案例详细内容:递归中体现的自顶向下的思想是计算思维中最本质和核心的。递归在程序设计中应注意的3个要点分别是:自顶向下、分叉和层层递进。自顶向下倒推是重要的工作方法。强调做好顶层规划和每一个步骤。
4.2.2 维度一:方法论课程思政案例设计 案例1名称:选择的智慧;知识单元:二叉树的遍历;思政目标:培养学生学会选择正确的事,不同的选择会有不同的人生,人生就在选择之中;案例详细内容:二叉树的遍历算法能够从某一个结点出发访问二叉树的所有节点。而人生的选择之路却是选择了一条就没办法再走另外一条。从西方诗“未选择的路”中,提示大家要选择好要走的路,做最好的自己。阐释选择一方面是选择好一条路,另一方面是走好所选择的路。案例2名称:提高效率就要少做事;知识单元:快速排序;思政目标:效率=产出/所做的事情。人的产出是很难提高的,但是所做的事情是可以减少的;案例详细内容:通过讲解快速排序思想理解提高效率的方法。计算机算法和组织的管理乃至社会的管理,在道理上有相通性,想要提高效率就要少做事情。提高管理效率,最简单的办法就是对每一个人进行区分。案例3名称:分而治之,统筹合作;知识单元:归并排序;思政目标:培养学生统筹规划及协作能力;案例详细内容:将一个复杂问题分解成多个简单问题,逐一解决,最后比直接解决复杂问题要节省时间。案例4名称:从量级中改进工程方法;知识单元:算法效率的评价;思政目标:工程上的本质区别是量级之间的差距;案例详细内容:通过比较芝麻、橘子、西瓜、大象、大山、地球、太阳、银河系之间的差别,类比其量级之间的差距,通过成就=成功率×事情的量级×做事的速度公式,大部分人做不到的是提高事情的量级。而一个好的工程师能够梳理出一个难题中各个因素在量级上的不同,去除掉无关紧要的事情。案例5名称:智能时代高效学习的方法;知识单元:算法的编码实现;思政目标:充分理解数据结构中经典算法的重要价值;案例详细内容:通过讲解算法概念,引导学生不是从简单的个人习惯角度去写程序,而是先去学习那些经典的、验证了无数次和优化过的答案,掌握别人已经写好的高质量代码,才能够事半功倍。
4.2.3 维度二:传统文化课程思政案例设计 案例1名称:二叉树的分叉与阴阳对称;知识单元:二叉树的定义、折半查找、归并排序;思政目标:从《易经》中汲取常用数据结构工具——二叉树中相似的本质特征,强调中华优秀传统文化中许多内容能够跨越时空、国界,富有永恒魅力,具有当代价值。教育学生要具有高度的文化自信;案例详细内容:二叉树,其左子树和右子树可看成原始事物发展的两个方面(即阴阳),也可以看成0和1问题。而利用最优二叉树可以形成最优编码,实质是将通信问题转化成数字问题。折半查找中通过将原始问题归结成前一半和后一半,前一半和后一半再各分一半,直到找到或找不到待查找记录为止,本质也是在二叉树结构上去完成。同理类似于归并排序,先划分记录再两两归并,最终是在一棵树型结构上完成。很多问题虽然最初没有树型结构,但是在不断操作过程中形成一棵树。案例2名称:平衡对称思维;知识单元:平衡二叉排序树;思政目标:掌握易经中阴阳两个方面相辅相成,相互推移,不可偏废。《易经中》讲“中行无咎”,意即不要过分走极端,也不能不及;案例详细内容:根据二叉排序树的特点构建对称型树形结构,而平衡的二叉排序树,就是将其调整成平衡、对称的。这与走中道“不偏不倚”的思想是一脉相承的。在10亿数据中只需要进行10几次比较就能查找到目标,因具有极高效率,平衡的二叉排序树成为信息技术中广泛使用的数据类型。红黑树则是一种近似的平衡二叉排序树,Java集合中的TreeMap和TreeSet都是这种结构,同时B-树作为平衡二叉排序树的扩展,是被广泛应用的一种m叉多路查找树,广泛应用于外存文件索引中。这些均是平衡对称思想在课程中的体现。
4.2.4 维度三:辩证思维课程思政设计案例 案例名称:时间和空间复杂度中蕴含的辩证思维;知识单元:算法效率的度量;思政目标:辨证看待时间和空间复杂度的提升,恰当运用中庸辩证思维;案例详细内容:时间和空间复杂度的度量是辩证统一的关系,算法效率的提升或者是通过时间换空间,或者使用空间换时间。凡事都要辩证看待。
4.2.5 维度四:大自然中蕴含的数据结构课程思政案例 案例名称:自然界中蕴含的递归思想;知识单元:递归;思政目标:递归的本质是自相似性,体会大自然中的美,体现在计算机中则是数学与艺术的完美结合;案例详细内容:以常见树为例,一棵树与它自身上的树枝及枝杈,在局部形状上没有大的区别,大树与树枝这种关系在几何形状上称之为自相似关系。日常还有很多常见例子,如菜花、蜗牛壳、龙卷风、银河系等都是以分形几何学常见的图片展示。整个宇宙以一种出人意料的方式构成自相似结构,将数学上的美与美学上的美进行有机结合。从本质上理解递归问题在于大问题和小问题之间存在自相似性,求解递归问题也是利用这种自相似性,只要给出递归终止条件和递归体就能解决最终问题。递归原理在很多情况是使用递归的原则设计,递推的原则实现。
4.2.6 维度五:热点问题课程思政案例设计 案例名称:应用排序算法设计;知识单元:排序算法综合比较;思政目标:对比各国对突发公共卫生事件的控制情况,增强民族自豪感,做到增强“四个自信”,引导学生具有家国情怀、团队和大局意识;案例详细内容:在对各种排序算法比较之后引入应用,对各国突发公共卫生事件控制情况进行排序比较,凸显我国“以人为本”及大国担当。在实践探究过程中体悟精益求精的科学精神[2]。
4.2.7 维度六:科学家及工匠精神课程思政案例设计 案例1名称:敢于走别人未走的路;知识单元:哈夫曼树;思政目标:体会原始创新的重要性及对我国发展的作用,培养家国情怀;案例详细内容:哈夫曼放弃对已有编码的研究,转向新探索,形成新的编码思想,并很快证明方法的有效性。通过这个实例可以印证“科技创新特别是原始创新要有创造性思辨的能力、严格求证的方法,不迷信学术权威,不盲从既有学说,敢于大胆质疑,认真实证,不断试验”。案例2名称:中国获得图灵奖的算法大师姚期智;知识单元:算法基本概念;思政目标:以中国大师、中青年学子在该课程领域取得的成绩激励学生,增强民族自信心;案例详细内容:在概论的生活中的算法部分,以“图灵奖”相关算法为示例,以此为切入点引入课程思政。强调人应该具有奋斗精神、工匠精神以及体现社会主义核心价值观的敬业精神。
5 课程思政教学效果及反思
5.1 教学效果
对2019级计算机及相关专业合堂一(计本、信本、医信工)及合堂二(软件外包、智能物联、大数据、人工智能)的问卷调查分别显示91.5%和91.9%的学生认为教师引入的案例能够很好地联系实际,引起学习兴趣。分别有79.8%和86.6%的学生认为中华传统文化的引入恰到好处,能够引起学习兴趣。由此可见采用“一核心,六维度”进行课程思政,能够有效解决存在的问题。
5.2 反思
课程思政的教学设计仁者见人,智者见智。无论在教学中渗透何种思政元素,始终遵循的目标是恰当、自然。数据结构课程的特点及课程的学时限制决定了课程思政需要在总体上实现显性和隐性相结合,需要对教学进行精心设计。内容可多可少,可以是简单的一句话或者简单的一个思考题,看似无意实则意味深长。在课程教学中从各种应用角度充分理解数据结构用途,例如从常用的手机导航功能引入最短路径问题;从百度毫秒级搜索速度引出索引的重要作用;由如何从淘宝网中奖励前10名购买记录最多的顾客引出堆排序;从哈夫曼树的编码策略谈投资中的策略——将最优质的资源用到使用最多的信息上;从最早期的商业对人员和财务报表的管理谈线性表使用;从系统各个要素之间关系谈拓扑排序;从网络中寻找骨干网络谈最小生成树;从计算机诞生后的13年才发明的快速排序,引导学生理解高效的方法不是冥思苦想而是擅于学习;从良好的编码规范中谈职业素养等。
6 结语
“数据结构”课程程思政案例库建设仍处于探索中,还未形成完善和成熟的体系。课程思政教学设计应遵循因时、因地、因人的原则,充分根据学校办学定位、学生特点、教学阶段以及教师教学经验和课堂教学情况,实时恰到好处地融入才能起到润物无声的效果。