数据结构课程教学改革的探索与实践

2019-11-30 04:55:22王秀珍
计算机教育 2019年11期
关键词:数据结构军事算法

鱼 静,夏 良,王秀珍

(陆军炮兵防空兵学院 信息工程系,安徽 合肥 230031)

1 数据结构课程的专业地位及教学中面临的主要问题

IEEE计算机分会和ACM计算机学会制订的CC2001计算机科学体系[1]以及后来我国制订的CCC2002体系[2]都强调数据结构在计算机学科中的作用与地位。数据结构课程目前是承担学历教育的军事院校计算机科学与技术专业的重要专业核心基础课,它不仅是学生后续毕业设计和实际项目开发的重要基础,还与学生后续的任职培训、岗位培训、学历提升密切相关。该课程理论度较高、内容抽象,且由于人才培养方案的调整,指挥类和军事类课程占比的提升,数据结构的教学学时普遍压缩,课时量的骤减给任课教员和学员带来新的挑战。通过对教学过程的调研、座谈,发现教学中主要面临如下问题。

(1)学生的知识和技能储备不足,先修课程遗忘比较严重,如算法描述采用的C语言,还有相当一部分学生编程的能力较差。

(2)课程内容本身高度抽象,描述工具亦高度抽象。数据的逻辑结构常以抽象数据类型进行表示,而抽象数据类型又多以数学符号进行描述[3],使得本就抽象的结构更加难以理解,最终造成学生理解困难。

(3)学生对课程在未来任职中具体用途不清楚,没有学习动力。

(4)教学手段单一,学生体会不到数据结构课程在计算机软件开发领域的价值。

2 教学方法探索

2.1 深奥理论通俗化

数据结构课程当中包含了很多的深奥理论,在教学中如何将这些深奥的理论讲解为学生能理解并便于记忆的内容,是教师面临的最大挑战之一。教师通常可以采用类比法、联想法、案例法等,并运用各种通俗化比喻,有效启发学生从形象思维过渡到抽象思维,从而掌握知识的规律性,形成科学的理论体系,使抽象概念由短时记忆转换为长时记忆。

在讲解排序算法时,为了让学生对冒泡排序、选择排序等算法有直观的认识,并领略两种算法之间的差异,可以让学生在课堂上用按照身高排队列的方式体会。最终目标是按照从高到低的顺序排好一个班的队列。

方案一:相邻的两位同学两两比较,若是逆序则交换,这样在比较过若干次之后队列就完全形成了从高到低的形式。

方案二:每一趟都是从待排队列中选出身高最低的人,顺序放在已排好的那一部分队列的最后,这样等全部人都排完毕,也可以形成一个按照身高排序的队列。

学生发现:尽管最后达到的效果是一样的,但是两种算法的思路截然不同,方案一是冒泡排序,方案二是选择排序。在整个课程设计中,教师可以大量采用这种深奥理论通俗化的方式,如在图论中结合航空路线图、在树中结合家族谱系等,从直观到抽象、从感性到理性、从现实到理论,帮助学生层层剥掉抽象的外衣,尽可能多地运用形象直观的分析来帮助学生理解算法思想的本质及其实现的过程。

2.2 思路演示动态化

动态化是指运用动画、视频等多媒体手段,将讲解转化为动态的、形象的演示过程。相比较单纯的理论讲述和板书,动态化的演示常常能达到事半功倍的效果[4]。学生通过观看和参与算法的演示过程,自主输入数据,观察结果,能更好地体会算法的本质。为了实现这一目标,授课团队开发和下载了很多数据结构动态演示系统,包括顺序表模块、二叉树遍历模块、构建哈夫曼树模块、排序模块等,使抽象算法利用动态化演示之后的理解难度大大降低。二叉排序树和尾插法的动态演示如图1所示。

设计开发的动态演示软件,大部分的输入是可以由学生自主控制的,这样做的目的是通过不同的数据输入,可能导致算法执行的语句不同、演示过程不同、输出结果不同,这种多样性恰恰也是数据结构课程特色的体现。

2.3 内容逻辑图示化

科学研究已经证明:相同的内容,图像要比文字更容易记忆,也记得更牢固[5],尤其像数据结构这种本身内容逻辑性就很强的课程,更应该始终将图示贯穿在整个教学过程。图示可以直观地把问题展示给学生,使问题和算法的求解形象化,一目了然,并展示内容逻辑。教师应坚持将简洁生动的图示应用于教学当中,如思维导图、结构图等。数据结构求解问题的过程如图2所示,如果用文字来描述,既冗长又抽象,学生理解起来十分困难,但是用图示既清晰又简洁,直观形象地表现出数据结构抽象的问题解决过程。

图示与代码相结合可以清晰表达图示变化和代码表达间的关系,强化对学生由图到代码和代码到图进行转换的训练,提高学生对数据结构的逻辑结构、物理结构的理解,加深学生对相关知识的掌握[6]。

图1 二叉排序树的生成和尾插法建表动态演示

图2 数据结构求解问题的过程

2.4 算法实现程序化

只有对算法的原理有深入理解,才能用计算机语言对算法进行设计和实现。上机实验既加深了学生对数据结构概念和算法的理解,也是从理论到现实的升华。在实验过程中,将程序与动态演示相结合,程序每运行一步,都用左边的视窗来同步更迭。以哈夫曼树和哈夫曼编码为例,其过程如图3所示。学生对每一句程序的执行情况有了最直观的体验,也对算法采用的逻辑结构、物理结构有了更深层次的理解。

图3 哈夫曼树及编码的程序演示

根据难易程度将上机实践题型分为3种:学生独立完成的题目;教师提供部分源代码,学生完成其余部分的题目(类似英语的完形填空);教师提供全部源代码学生学习模仿的题目。每次课选择其中的一种或几种形式布置学生的实践内容,难易度的不同区分也满足了不同水平学生的需要。

2.5 价值塑造人文化

数据结构从课程内容上来看,是一个典型的理工类课程,但是仅仅讲授理工内容显然是片面的。育人是一个全方位的过程。为了培养学生的人文气质和战斗精神,在课程中加入了相关励志、怡情等内容。Dijkstra是几位影响力最大的计算科学的奠基人之一。1994年有人对约 100 0 名计算机科学家进行了问卷调查,选出了 38 篇这个领域最有影响力的论文,其中有5篇是 Dijkstra 写的。图论中求取最短路径的Dijkstra算法就是他在陪家人购物的间隙设计出来的。借用他的事例教育学生要珍惜时光,珍惜青春,抓紧点滴时间学习。

再如,David Huffman发明的Huffman编码使数据传输数量减少到最小。哈夫曼算法也广泛应用于传真机、图像压缩和计算机安全领域。但是Huffman却从未为此算法申请过专利或其他相关能够为他带来经济利益的东西。结合此处引导学生思考奉献的本质是什么,经济利益是不是人生追求的最高目标,从而树立从军报国、无私奉献的远大理想。这些人文内容的引入,既丰富了课堂内容,也完成了育人的高层次目标。

3 教学内容改革——大量引入军事案例激发学生学习动力

数据结构课程教学中首要解决的是学生为什么学的问题。教材选择了普通高等教育本科国家级规划教材,尽管内容的编排没有任何问题,但是全书案例无一与军事相关,导致学生的学习兴趣不高,在座谈中普遍反映与自己的职业生涯距离太遥远,无法产生学习兴趣和学习动力。教师要让学生看到,这门课程主要目的在于培养学习者的数据抽象能力以及学会用计算思维思考问题的能力。这些能力对以后的任职工作的影响是潜移默化的、是长久的。信息技术在军事领域得到了广泛应用,引发一系列深刻变革,以往依靠传统经验和历史统计数据解决的问题,迫切需要科学的算法支撑和理论支持。为了将这一理念渗透到课程中,设计启用了大量既紧贴教学内容,又紧跟军事前沿和时代发展的军事案例。

在图论中以下面的军事新闻作为例,以物流运输总是要满足经济效益与军事效益最大化为目标,所以要寻找两点之间的最短路径来引出即将讲解的Dijkstra算法,结合当前的导航技术等,学生一下子就明白了该算法在军事上重要而广泛的应用空间。

京东物流与空军后勤部达成战略合作 自建物流模式获认可

2017-10-28 00:00 人民空军网

10月23日,京东物流与中国人民解放军空军后勤部达成“物流军民融合”战略合作。5年内,双方将在运输配送、仓储管理、物资采购、信息融合、科研创新、力量建设、拥军服务、配套支撑等方面展开深入合作,最终达到后勤物流“成系统、整建制、全覆盖”融合的目的,真正将军事物流打造为国民经济向空军战斗力转化的纽带。

在讲解Flody算法时,直接让学生来解决具有军事特色和现实需要的问题(如图4所示)。这个问题是工程化思维解决军事问题的一个典型案例。学生通过这个问题的分析和解决,学会对军事问题如何抽象出其核心和本质,如何分析、如何解决。让学生明白军事问题的核心本质可能仍然回到了工程问题,解决方法也依然可用工程化的思维来解决。指挥与技术二者之间并没有天然的壁垒,反而是相互促进的。

图4 Flody算法的军事案例

设图4中的顶点表示不同的军械仓库所在村庄,有向边代表交通路线,若要在这些仓库中选择一个位置建立一个综合联勤保障指挥中心,试问建在哪一个村庄能使得各仓库到保障中心的总体交通代价最小。

这些案例在课堂上承担了导入、启发、引导、演示、总结等多重角色,大大提高了学生的学习兴趣,拉近了课程内容与未来任职需求的距离。通过这些案例的解决过程,学生深刻体会到数据结构与军事问题的密切联系,学习动力和兴趣得到极大提高。

4 教学工具的探索——雨课堂的使用

“雨课堂”软件是清华大学和学堂在线共同推出的新型智慧教学解决方案,旨在让教与学释放更多能量[7]。这种全新的教学模式通过使用微信实现推送教学内容、实时答题、与学生多屏互动等功能,将学生课前—教师课上—学生课后的每一个环节都给予了全新的体验,让课堂互动永不下线。“雨课堂”作为理论授课、上机实践之外的有效补充,受到了学生的广泛欢迎。考试成绩与往年相同专业、相同试卷难度的对比来看,平均分提高了5.7分。“雨课堂”实现了PowerPoint与微信的完美融合。教师通过微信群建立一个班级,然后将视频、语音、习题的幻灯片推送到学生的手机上。表1给出了“雨课堂”的使用时机和内容。

表1 “雨课堂”在数据结构课程的使用时机及内容

5 结语

数据结构课程对于初次接触的军校学员来说,理论性强、抽象度高,在解决具体问题时常常感觉力不从心。基于此,在教学方法上力求将深奥理论通俗化,思路演示动态化,并融入人文军事内容;在教学内容上根据学员未来的任职目标和岗位需求,案例选择军事化,极大地提高了学生的学习兴趣和积极性;在教学工具的选择上,应用了目前广泛采用的“雨课堂”软件,使师生的互动性得到了很好的满足。这一系列的改革和措施取得了很好的教学效果,实现了价值塑造、能力培养、知识传授“三位一体”的教育目标。

猜你喜欢
数据结构军事算法
基于MapReduce的改进Eclat算法
Travellng thg World Full—time for Rree
进位加法的两种算法
“翻转课堂”教学模式的探讨——以《数据结构》课程教学为例
一种改进的整周模糊度去相关算法
高职高专数据结构教学改革探讨
中国市场(2016年45期)2016-05-17 05:15:48
TRIZ理论在“数据结构”多媒体教学中的应用
《数据结构》教学方法创新探讨
河南科技(2014年5期)2014-02-27 14:08:57
军事幽默:局
军事文摘(2009年9期)2009-07-30 09:40:44
军事