课程《数据结构》的教学方式探讨

2018-01-15 10:18陈畅
科学与财富 2018年35期
关键词:数据结构实践

摘 要:数据结构是计算机专业重要的基础课程,也是从事软件开发工作的内功,但是该课程学习内容概念众多,各种结构抽象难懂,算法实现复杂。在教学过程中,要注意联系实际趣味引导,采用多种形式将抽象的内容具体化,注重实践性教学,合理安排教学进度和难度以达到好的效果。

关键词:数据结构;抽象与具体;实践;

0 引言

《数据结构》是计算机软件相关专业的基础课程,从计算机专业设立开始至今,很多的专业课程随着技术的发展逐步淘汰,《数据结构》是一直开设的少数课程之一,其重要性不言而喻,但是该课程学习内容非常抽象,以致于学习困难也是大家的共识。如何结合该课程的特点,分析教与学中遇到的困难,找到合适的能够真正用于教学实践的教学方式与教学手段是值得探讨的问题。

1 课程教学需要解决的问题

数据结构是计算机存储、组织数据的方式。该课程研究数据的逻辑结构和物理结构以及相应的运算,好的数据结构可以带来更高的运行或存储效率。具体来说,学好数据结构可以把现实中的实际问题抽象为计算机能够理解的数据模型,然后选择适当的算法来高效地解决问题。

抽象是数据结构这门课程最主要的特点,也是导致学生认为课程难学的原因之一。数据结构这门课介绍了线性表、栈与队列、二叉树、图、散列等多种逻辑结构,每种逻辑结构又有顺序和链式存储结构,不同的存储结构对于同一种操作有不同的算法,不同的算法就有不同的效率。教学内容复杂概念众多,很多学生虽然能够掌握一些基本知识,但往往不明白学习该课程有什么用途,觉得远不如学习Java、C等语言实际。

数据结构这门课也是实践性很强的课程。在学习这门课之前,学生都已经学过C、C++或者Java编程语言,数据结构的算法需要采用编程语言来实现。在实际教学中,编程语言一般开课课时80学时左右,大部分的学生只掌握了基本的选择、循环和数组,对于在数据结构算法中大量使用的结构体、指针、函数递归、文件等内容没有学或者仅仅是有一些了解,在调试数据结构算法时,程序无法通过或者无法理解,学生产生很强的挫败感,大大降低了学习的兴趣。同时,教师可能会因为课时有限等原因,重理论思想而忽视代码讲解,导致学生算法实现困难。

2 教学措施

根据对课程学习中存在问题的分析,教学内容抽象、教学实践没有落实是最主要的原因。数据结构的教学主要从以下几个方面采取必要的措施:

首先,趣味引导是提高学生学习兴趣,将现实世界与抽象内容联系起来的纽带。尼采曾说过:“人们无法理解他没有经历过的事情”。从学生熟悉的知识出发,一个场景、一段视频、一个趣题或是一个故事作为每个教学主题的开始[1],让学生了解学习的内容与客观世界的关系,了解实际问题如何抽象成数据模型,提升对进一步学习算法的兴趣。

其次,抽象内容直观具体化是让学生充分理解学习内容的关键。在认识过程中,有了感性具体,才可能有思维的抽象,感性具体是思维抽象的前提。但是数据结构里面的概念、算法都是抽象的结果。让抽象内容变得直观具体可以采用下面几种方式。

(1)“静图”变“动图”。在教学形式上,画图是最常用的方法之一,每一种结构、每一个算法都采用直观的图形来体现,大部分的教材都采用了这种方法。借助多媒体手段,可以将单一的“静图”变成“动图”,更能夠直观的体现数据之间的关系以及算法执行中的变化过程,同时也提高了趣味性。

(2)教具的使用。教具是用来讲解说明某事物的模型、实物,直观教具可以使知识具体化、形象化,为学生感知、理解和记忆知识创造了条件。直观能促使学生的具体感知与抽象思维相结合,减少学生掌握抽象概念的困难,帮助其形成明确的概念,发展其观察能力和思维能力。传统的数据结构教学中,很少使用教具,同时市面上也没有专门的课程教具,需要教师自己来设计教具。可以采用收纳盒表示变量、贴上写好变量名,用很多的小方块或是写好数字的卡片来表示数据,随着每一步算法的实施,变量的值发生改变,这样可以演示整个执行的过程,学生会得到直观的感受。

(3)情景立体教学。现在的教学资源非常丰富,很多内容可以融入到教学中。比如,排序是数据结构非常重要的内容之一,各类排序算法很多,我找了到一组排序舞蹈视频,组织学生观看后讨论,充分理解排序算法的思想,组织学生进行表演,了解数据的变化过程。这样课程也变得有趣多了,也提高的学生的学习主动性。

最后,需要强化实践性教学。数据结构的教师往往有一个误区,认为只要讲好算法的基本原理就好了,至于编程如何去实现,应该是C、C++或Java老师的事情。同时,因为算法的实现比较复杂,学生往往心有余而力不足,就会很快放弃。教师主要从以下两个方面入手,让实践性教学落到实处。

(1)精心选择,算法内容实现分层。根据算法的难度和教学大纲可以把算法分为基础训练、简单应用、综合应用三个层次,教学过程中循序渐进,提出基本要求和更高要求。应用题目贴近生活,鼓励学生拓展思维,采用多种方法解决问题。

(2)算法精讲。教师首先思想上要认识到算法实现也是数据结构课程非常重要的一方面,不能仅仅只讲原理,实现过程也要精讲,复杂的算法更要精讲。教材上如果只提供零散的代码片段或伪码,教师可以提供完整的代码参考。

3 结束语

学习数据结构实际上是逻辑思维能力的锻炼,更重要的是学习如何把现实问题转化为计算机语言的表示,所有的算法必须基于数据结构生存。我们需要合理利用各种资源,与时俱进不断改进教学方法与教学手段,培养学生分析解决问题和创新的能力。

参考文献:

[1]程杰. 大话数据结构. 清华大学出版社. 2011

作者简介:

陈畅,女,湖南长沙人,副教授,研究方向:软件开发

猜你喜欢
数据结构实践
数据结构线上线下混合教学模式探讨
数据结构课程教学网站的设计与实现
语文教学要在不断的反思中成长
后进生转化和提升的实践与思考
初中政治教学中强化新八德教育探讨
体验式学习在数学教学中的应用研究
生物专业师范生教学实习的问题与对策研究
校企协同实施高职专业课程改革的实践研究
“翻转课堂”教学模式的探讨——以《数据结构》课程教学为例
高职高专数据结构教学改革探讨