数据结构课程学习与教学方法探讨

数据结构课程学习与教学方法探讨

摘要:“数据结构”是计算机专业必修的核心课程之一,根据目前学生学习“数据结构”的现状及呈现问题,结合已讲授数据结构课程的经验和心得体会,提出一种学生学习数据结构类型定义的三步法,提出一种“问题启发法、任务驱动法、案例解析法、动画定位剖析法、网络教学法、实践上机法”相结合的教学模式,以上教学方法在课堂上容易开展实现,经过具体的课堂实践取得良好的教学效果,对推进“数据结构”课程的教学与学习意义深远且重大。

关键词:数据结构;课程教学方法探讨;教学模式;类型定义

“数据结构”是计算机专业必修核心课程之一,数据结构与算法是编程的灵魂;数据结构是一门实践技能要求较高的课程,既需学生掌握基础理论及算法,又要求运用于实践解决具体问题。数据结构是考研必考科目,大型企业公司招聘计算机开发员工的笔试、上机测试及面试均会涉及数据结构算法内容考查,故对“数据结构”课程学习及教学方法的探讨具有深远的现实意义。学习该课程学生需先修“C语言”,掌握基本数据类型、循环体、结构体、数组及指针的定义及使用方法,有助于理解与掌握算法核心代码及过程;该课程从实际问题出发,分析出数据对象的逻辑结构后,选择合适的物理结构存储数据,根据解决问题思路设计出相应算法,最终写出可执行代码解决问题,分析出所写算法的时间复杂度和空间复杂度以评价算法优劣。

一、目前“数据结构”课程授课现状及问题

由于数据结构课程基础理论与算法颇多,目前授课存在的问题:1.学生先修课程《C语言》基础薄弱;2.基础与算法理论性太强;3.理论与实践课时分配不合理;4.实践上机强度低;5.数据结构类型定义抽象性太强。针对以上问题,结合已讲授数据结构这门课程的经验和心得体会,提出一种学生学习数据结构类型定义的三步法,提出一种“问题启发法、任务驱动法、案例解析法、动画定位剖析法、网络教学法、实践上机法”相结合的教学模式,此模式极大地提升了学生对该课程的兴趣度、参与率和互动响应率,以有趣且透彻的方法剖析算法的过程与核心,学生深刻理解与掌握算法后上机实践解决实际问题。

二、数据结构类型定义的三步法

数据结构的数据类型定义比较抽象难懂,经研究提出三步法,提升了学生对类型定义的理解度和掌握度,以数据结构课程难点之一(无向图的类型定义)为实例分析。第一步:分析出该数据对象的逻辑结构为无向图结构,各顶点间关系是多对多,边无方向,如图1所示。第二步:为了合理存储顶点及边,选取邻接表存储结构,无向图各顶点采用顺序存储结构vertex数组(图2中左边为顶点位置序号即vertex数组的下标),各顶点分别建立一个单链表存储邻接关系,故与A顶点有邻接关系的顶点是序号1(B)、序号2的(C),顶点间有弧即互为邻接关系。第三步:写出无向图具体的数据类型及变量定义;无向图定义需针对表头结点、邻接结点、顶点数及边数,表头结点包含数据域data(顶点信息),firstarc指针域(第一条邻接边的地址信息),不同类型的变量融合应使用结构体;邻接结点包含adjvex(邻接顶点的序号)和next指针域(下一个邻接顶点的地址);顶点数和边数均为整数,为int数据类型;无向图所有顶点由表头结点构成,故一维数组类型与表头结点相同。

三、新教学模式介绍与分析

若采用新教学模式解析栈结构,以火车进站与出站的实例引入启发学生思考总结栈的特点及规则,后用动画定位法剖析栈的基本操作算法过程及核心,熟练掌握后剖析栈应用的经典案例--数制转换(十进制转二进制)加深巩固所学知识,最后实践上机完整实现此案例。此教学模式能有效帮助学生掌握概念、算法及其应用,经过具体的课堂实践也达到了良好的教学效果。以下是所采用教学方法的相关介绍:(1)问题启发法。在引入和讲解数据结构新知识时,教师要善于发问引发学生思考,培养学生分析与解决问题的能力;例如解析栈和队列时,启发学生思考其与线性结构的联系与区别。以板书图示突出特点辅助解析,启发学生思考单链表、循环链表及双向链表的联系与区别。(2)任务驱动法。数据结构经典教材是严蔚敏主编的《数据结构》,但结合高职高专学生的学情需求,采用了洪运国编著的《数据结构》,每章节由具体任务构成,章节前有实例引入,章节后有经典实训案例练习,极大地激发了学生对这门课程的兴趣;例如栈的递归,以汉诺塔的圆盘移动任务展开递归的讲解与剖析。(3)案例解析法。队列结构,以同学们在超市购物结账和银行存取款为例介绍队列的特点及基本原则,直观形象;例如解析冒泡排序算法,请几位同学上讲台随机站位配合教学,以学生身高数据模仿冒泡排序过程步骤,实际代入能够帮助学生熟练掌握冒泡排序算法的思想及核心。(4)动画定位剖析法。单链表的插入算法,一般教材均是图示解析,教师可通过代码标号或者板书画图解析,不够清晰具体,此动画资源融合了算法的总体功能解析、核心思想分析、每行代码功能解析、变量变化情况、内存分配情况图示、返回值等,是教学与自主学习参考的重要网络资源,教师可单步播放动画或动画定位,辅助板书标号画图解析,可清晰展示算法的思想和核心过程。(5)网络教学法。网络教学法运用于数据结构课程的教学中指的是,一是可利用视频、博客或动画等网络资源辅助课堂讲授;二是用蓝墨云班课创建数据结构的网络课堂,学生可看课件、看视频、做题赚取积分,极大地提升了学生对该课程的兴趣度、参与率和互动响应率;三是为课堂引入慕课或者微课,帮助学生透彻理解数据结构算法的思想、过程及核心。(6)实践上机法。实践是检验真理的唯一标准,将所学算法应用于实际问题的解决中是真正学会和掌握此算法的唯一标准,教材的应用实例及网络经典案例是实践上机的重要工作,实践上机法能够如实反映出学生们对算法掌握的情况,教师可根据上机反馈针对性地加强讲解,帮助学生掌握算法过程及核心。

四、总结

基于数据结构课程理论性强、难度大、学生学习兴趣度低的情况,类型定义三步法有效帮助学生学习类型定义;“问题启发法、任务驱动法、案例解析法、动画定位剖析法、网络教学法、实践上机法”相结合的教学模式,能够从根源上帮助学生更好地吸收和接纳数据结构的知识内容,能清晰地认识、理解和掌握算法的思想、过程及核心,经过课堂实践也取得了良好的教学效果,不同的知识点适用的教学方法不同,可选择教学模式里最适用的教学方法解析,以达到最佳教学效果。

参考文献

[1]张西芝,刘敏娟,郭淼.《数据结构》课程教学方法改革探索[J].产业与科技论坛,2016,15(09):154-155.

[2]王晓艳.关于高校计算机专业数据结构教学改革的探讨[J].黑龙江科技信息,2017(04):170.

[3]容青,熊冬春,李广原,邓育林.以提高学生创新创业能力为目的的数据结构课程教学实践研究[J].中国现代教育装备,2018(19):81-83.

作者:龚玲 张真真