计算机类专业数据结构课程教学改革初探

2016-04-06 16:05张巨萍
内蒙古教育·职教版 2016年3期
关键词:数据结构

张巨萍

摘 要:《数据结构》课程是计算机类专业的专业基础课,在其课程体系中占有重要地位。财经类院校的该专业学生由于数学基础和计算机硬件知识的薄弱、个人学习的畏难心理以及课程本身相对抽象等因素影响,造成对《数据结构》课程中存储结构部分的学习困难,严重影响了后续课程的学习。本文从改进存储结构的教学方式入手,采用在大的逻辑结构分类内,以存储结构为主线,逻辑结构为辅线的教学模式,强化学生对存储结构代码设计的理解和使用。经长期教学实践表明,取得了较好的教学效果。

关键词:数据结构;逻辑结构;存储结构

【中图分类号】G 【文献标识码】B 【文章编号】1008-1216(2016)03C-0084-02

一、问题的提出

《数据结构》课程是计算机类专业的专业基础课之一,在计算机类专业的课程体系中起着承上启下的作用。该课程强调锻炼学生的动手能力,提高其程序设计水平,是后续的编程类课程的基础。对于学生实践能力和理论水平的后续提高具有极其重要的作用。

存储结构是《数据结构》课程里实现算法功能的重要基础。因为好的存储结构能够提高数据的存取效率,进而提高算法的执行效率。在传统的教学模式中,将数据结构从逻辑上分为四种,分别是:集合结构、线性结构、树形结构以及图(网)状结构。但主要讲解的存储结构有两种:顺序存储结构和链式存储结构。目前的教学模式中,大都是以数据的逻辑结构为主线,依次介绍线性结构、树形结构、图状结构以及基础的搜索和排序算法。在介绍每种数据结构的过程中,讨论其在不同的存储结构上的定义以及相关的实现算法。这种教学模式存在的主要问题就是容易造成学生在两种存储结构实现上的混淆。例如,在线性结构的教学中,首先进行线性表的顺序存储结构实现——顺序表的讲解;接着再进行线性表的链式存储结构——链表的讲解。对于链表这部分内容,学生在课程设计中,常常会出现使用顺序存储结构进行定义,而用链式存储结构的算法实现的现象。即:程序中在定义存储结构时,使用顺序存储结构定义部分的代码,但在算法实现过程中,使用的是链式存储结构实现的算法。常常是线性结构尚未完全讲授完,学生已经陷入了混淆状态。而在后续内容的学习中,只要出现两种不同结构的定义,学生就会出现混淆的情况。

二、问题产生的原因分析

在财经类院校的计算机类专业课程设置中,《数据结构》是提高学生编程能力的重要课程之一。经过对学生学习过程中遇到问题的详细分析,我们发现与其他院校的计算机类专业相比,财经类院校计算机类专业的学生在学习中存在问题主要有以下几方面的原因:

(一)学生个人的原因

在财经类院校中,《数据结构》课程是计算机类专业的学生所接触到的第一门理论课,与语言课相比,较为抽象,另外还需要综合利用先修课的内容,因此,有比较严重的畏难心理。例如,有的学生由于先修语言课的学习有困难,程序设计的思维还没有完全建立起来,这时,尝试去编制更大规模的程序从学生心理上就是一个很难完成的任务。

(二)课程本身的问题

首先,由于《数据结构》课程是介于数学、计算机软件以及计算机硬件之间的交叉课程,本身就是综合了上述几门课程知识的综合性课程,如果其中有一门课程的知识掌握不到位,就会影响这门课的学习效果。其次,在程序设计语言课程中,由于指针这种数据类型比较抽象,不容易理解和想象,使用上也不如数组直观,尤其是学生对于存储地址的理解,不能与其生活中的地址进行对比理解。另外,指针是链式存储结构的核心类型,学生对单个的指针变量尚且不能较好地理解和使用,进入《数据结构》学习后,指针都被嵌套在结构体或类中,更增加了学生的理解难度。由于课程的教学目的不同,先修语言课主要注重基本的变成思维和语法功能的掌握,而在《数据结构》中则更加注重算法设计能力的培养和如何进行数据的优化存储和高效存取。

(三)院校自身特点导致的问题

在财经类院校中,学生的数学基础相对薄弱。计算机类专业课程对学生的数学基础有一定的要求,而财经类院校由于文科类专业占较大比重,导致数学类课程的教学要求普遍较低,造成学生数学基础相对薄弱,从而对数据结构和算法的理解程度不够,导致学习效果不佳;另外,硬件方面课程开设相对较少。与其他理工科院校相比,财经类院校在硬件方面的师资和设备都相对薄弱,导致学生在学习与硬件相关的课程时,理解深度不够;这也间接造成了《数据结构》课程教学中,学生对于存储结构的理解困难。

三、教学方法改进和教学实验

(一)教学方法改进

对于由前述原因造成的学生学习上的困难,可以根据困难产生原因来一一进行解决。首先,针对由于学生先修课基础不足的问题,可以对学生所需先修课的内容进行抽取整理,在课程开始时提供给学生作为课程的辅助材料,在学习过程中遇到困难可以随时查阅,以免问题越积越多。其次,对于学生的思想困扰,需要在课程开始时,先进行全面的课程概述,让学生充分了解课程的目的和意义,重点与难点。在对课程有了清晰的认识后,学生就会树立“课程并不难,努力就能学会”的信念。同时,对于硬件基础薄弱问题,也可以通过课堂讲解的方式,将部分课程所涉及内容用较少时间突出讲解,也鼓励学生使用手头现有条件,观察硬件设备,以得到直观的印象。解决了学生的思想困扰与先修课理解不足所造成的问题,接下来,就可以寻求更容易为学生所接受的教学模式,以彻底解决学生存储结构的混淆问题。

在教学过程中,笔者发现学生对于逻辑结构的认识比较清晰,容易接受。因此,在大的逻辑结构分类内,尝试以存储结构为主线,逻辑结构为辅线进行讲解。还是以线性结构教学为例,由于学生对线性表、栈以及队列的各自逻辑特性把握比较清晰,但在程序实现时,容易混淆顺序存储与链式存储。因此,我们首先讲解线性表、栈以及队列的基本操作在顺序存储结构上的实现。通过对顺序存储结构的反复类似的操作,学生对于顺序存储结构的定义和使用有了比较深刻的理解和认识。接下来进行线性表、栈以及队列的链式存储结构的教学,同时加强学生对于语言中指针等数据类型的理解。通过对线性结构的这三种不同结构在链式存储结构上的反复实现,学生能够形成清晰的链式存储结构概念,了解存储器构成,从而能够游刃有余地进行数据的存储和使用。

(二)教学实验

对内蒙古财经大学计算机信息管理学院2013级计科专业和电商专业的平行班分别进行两种教学法的授课,在线性结构的教学结束后,通过上机试验和课程考试的结果,分别统计了对应平行班在两种教学法下,混淆了两种存储结构的同学人数,经过比较研究,考察是否新的教学方法更适合于我校学生的学习程度。

实验结果如下表所示,计科专业的35名同学,有2人在实行新教法后出现了混淆现象,所占比例为5.7%;而平行班的37名同学,有8人出现了混淆现象,所占比例为21.6%。且实行新教法后,学生学习兴趣明显提高,对课程后续内容惧怕心理减轻。

四、结论

《数据结构》是计算机类专业的核心基础课,存储结构则是该课程的重要核心内容。学生对于存储结构的掌握直接影响着他们对数据结构课程的学习效果,进而影响后续课程的掌握和学习。但是在存储结构的学习中,由于种种原因,出现了对于两种常用存储结构在使用上的混淆。基于此问题,在存储结构的教学过程中,引入在大的逻辑结构范畴内,以存储结构为主线,以逻辑结构为辅线的教学方法,使学生不再发生两种存储结构在算法实现中的混淆问题,增强了学生的信心,提高了学习效率,激发了学生的学习兴趣,也拓展了他们的视野,在教学实践中的实验结果证明,该方法取得了良好的教学效果。

基金项目:内蒙古财经大学2014年教育教学课题(JXC1416)。

参考文献:

[1] 张铭, 赵海燕, 王腾蛟. 北京大学 “数据结构与算法” 教学设计[J]. 计算机教育, 2008, (20).

[2] 阚娜. 链式存储结构在 数据结构中的教法[J]. 大观周刊, 2011, (10).

[3] 邱劲, 王平, 徐展. 数据结构 课程教学改革与实践探索[J]. 西南师范大学学报: 自然科学版, 2013 ,(1).

[4] 郭群. 数据结构课程实践教学模式改革研究[J]. 福建电脑, 2015, (6).

[5] 杨秋格, 吴鹏, 鹿玉红. 数据结构 教学中存在的问题及解决措施[J]. 课程教育研究, 2015 ,(10).

猜你喜欢
数据结构
欧洲专利局OPS服务专利法律状态数据结构分析
数据结构线上线下混合教学模式探讨
重典型应用,明结构关系
为什么会有“数据结构”?
MOOC平台下数据结构的教学研究
数据结构课程教学网站的设计与实现
“翻转课堂”教学模式的探讨——以《数据结构》课程教学为例
高职高专数据结构教学改革探讨
CDIO模式在民办院校数据结构课程实践教学中的应用
TRIZ理论在“数据结构”多媒体教学中的应用