应用型本科数据结构课程教学改革的探索

时间:2022-09-23 06:24:35

应用型本科数据结构课程教学改革的探索

摘要:在大众化教育背景下,在应用型本科高校中,提高计算机专业主干课程“数据结构”的教学效果是非常重要的。该文以计算机专业应用型本科的培养目标为出发点,分析了目前数据结构教学中存在的问题,对数据结构课程从教材到教学方法上进行了初步的改革探索,提出了几点思考,以期望能够使学生更好地掌握该门课程。

关键词: 数据结构;教学方法;实践

中图分类号:G642文献标识码:A文章编号:1009-3044(2009)32-9017-02

A Exploration for Teaching Reform of Data Structure Course in the Application-oriented Undergraduate Colleges and Universities

WANG Jun, ZHOU Ming-zheng

(Dept. of Comp. Sci. & Engn, Anhui University of Technology and Science, Wuhu 241000, China)

Abstract: Under the background of popular education, it is important to improve teaching effectiveness for computer major courses "data structure" in the application-oriented undergraduate colleges and universities. In this paper, for the purpose of cultivating application-oriented undergraduate, analyzing the problems in the current teaching data structure, a preliminary exploration of the reform is put forward for data structure course materials and teaching methods with some thoughts, which is expected to enable students to have a better knowledge of the course.

Key words: data structure; teaching method; practices

在当今的大众化教育大背景下,对于应用型本科高等院校,计算机科学与技术专业的培养目标已经发生了改变,其主要培养的不再是理论性的研究型人才,而是培养掌握计算机硬件、软件与应用的基础理论、基本知识、基本技能和方法,有一定系统级的认识能力和抽象能力、具备很强的设计能力和工程实践能力的应用型人才。

针对这种情况,“数据结构”课程在整个专业中的教学体系也要随着这种培养目标的改变而改变。“数据结构”是计算机学科的一门综合性的专业基础课,也是计算机学科的核心课程,在整个学科知识体系中占据非常重要的地位。通过该课程的学习,不仅为后续课程打好理论基础,而且相对于培养目标的“很强的设计能力和工程实践能力”来说,提高学生对数据的组织能力,利用程序设计处理数据的能力更为重要。

本文在分析当前应用型本科计算机科学与技术专业“数据结构”课程教学中存在的问题的基础上,针对数据结构课程内容的高度抽象性和实践性强的特点,从教材到教学方法进行了一系列的改革实践。不再强求对数据结构中抽象数据类型的重点掌握,而是从应用出发,着重强调培养学生对数据的组织和处理能力的提高,以编程实践为主要实践手段,达到提高学生解决实际问题的应用能力和工程实践能力。

1 应用型本科计算机专业“数据结构”教学中存在的问题

“数据结构”课程内容多、概念多、方法多、逻辑性强、高度抽象、技巧性强、实践性强。沿袭精英教育的“数据结构”教学多以传授知识、抽象描述数据结构及算法为主, 辅以一定的编程实践, 大部分学生在学完该门课程后, 普遍感到能看懂数据结构的算法描述, 却无法根据实际问题动手设计数据结构及其算法, 更不用说应用所学知识编程解决问题了。造成这种原因是多方面的,笔者根据大学扩招已来几届学生的数据结构的教学体会,认为主要问题表现在以下几个方面:

1) 数据结构的预备知识掌握不牢。由于其前导课程掌握不好或没能熟练掌握,导致学习本课程困难。数据结构所需的预备知识对不同的专业可能有所不同,但一般必须要先行修过“离散数学”和一门高级语言的程序设计(如PASCAL、C、C++等)。计算机作为以数学和电子技术为基础发展起来的学科,里面用到很多数学理论,在进行抽象数据类型的介绍时,要有一定的代数理论;作算法分析时,就必须有一定的概率理论作基础;作非线性结构的分析时,就必须用到离散数学中的树形结构和图论的知识。而作为计算机专业的最基本的程序设计语言来说,“数据结构”中的算法大多由类PASCAL或类C、C++语言描述而成,在学习数据结构前PASCAL或C或C++已经讲授过了,但由于学生刚刚开始接触程序设计语言,对程序设计语言的掌握往往集中在计算机语言的语法上,而忽略了程序编写能力的培养,实践能力很弱,没有建立起基本的程序设计思想,不能利用计算机解决问题,更谈不上把所学的知识融会贯通,学生在学完程序设计之后,甚至对程序设计有了恐惧情绪。

2) 教材理论性、抽象性太强。在“数据结构”课程教材的选择上,很多高校沿袭精英教育时代选择清华大学严蔚敏老师的《数据结构》教材,该教材曾获“第二届普通高等学校优秀教材全国特等奖”和“1996年度国家科学技术进步奖三等奖”。严蔚敏老师的教材理论完善,逻辑性、抽象性强,对培养计算机专业学生的逻辑思维,数据抽象能力有很好的效果,成为中国高等院校计算机专业的最为经典的教材之一,累计发行超过了100万册,对我国的计算机教育的发展作出了杰出贡献,笔者当年也从该教材中获益匪浅。但从1992年出版已来,实质内容一直没有发生根本的改变,只是根据算法的描述语言进行了修改。在大众化教育的今天,在以培养应用型的计算机工程技术人才的普通高等院校,该教材笔者认为在理论上显得深了些,特别是该教材严格采用算法设计的语言来描述算法,对于计算机语言不是很熟练,程序设计思想尚未完全建立的学生来说,很难将课本的中的含有一定设计技巧的算法转换为程序,上机调试通过,在一定程度上挫伤了学生编写程序的积极性,阻碍了学生实践能力的提高。

3) 教师本身的教学方式和方法单一,不能充分地调动学生的情绪,使学生的思维跟上教师的思维。在传统教学中,教师为了让学生理解相关的概念、算法等内容,常需要大量的板书配合文字、图表等加以说明,学生随着教师的思路分析问题,,能有充分时间作笔记,但由于课程内容抽象难懂、教师多忙于板书和讲解,学生忙于作笔记,双方严重缺乏互动,课堂气氛沉闷,学生提不起学习的兴趣,往往出现“一边教师唾沫横飞、嘶声力竭,而学生则唉声叹气、一脸困惑的情景”。采用多媒体课件后,教师可以充分利用多媒体技术将算法、图表等内容形象、生动地表现,学生学习兴趣也有很大提高,却又容易导致学生既要关注屏幕内容又要忙着作笔记,无暇思考问题,课后难以消化,“听课”则又变成了“看课”。

2 应用型本科计算机专业“数据结构”教学的几点思考

大众化教育大背景下,由于普通高校生源质量的下降,对“数据结构”课程的预备知识掌握不牢,对于应用型本科高等院校“数据结构课程”的教学,不能再强求对数据结构中抽象数据类型的掌握,而是从应用出发,选择合适的教材,采用多种教学手段的综合,着重强调培养学生对数据的组织和处理能力的提高,以编程实践为手段,达到提高学生解决实际问题的应用能力和工程实践能力。

2.1 教材的选择

由于应用型本科高等院校的计算机专业培养目标是很强的设计能力和工程实践能力的应用型人才,因此教材的选择,笔者认为理论性、抽象性太强的教材不一定适合这一层次的高校使用。一方面学生的学习能力不能和研究型大学相比,理论性、抽象性太强的教材学生往往不能够掌握,学得很吃力。另一方面教师不仅要将算法原理讲述清楚,有时,为了学生能够将算法转换为程序,还需要额外的学时将算法如何转换描述清楚,甚至要补讲程序设计语言的内容,造成学时不够。例如,在算法描述的时候,对于数据类型,绝大部分的教材都是利用抽象数据类型的形式描述算法,这样学生在实践的过程中将算法转换为程序时,出错较多,基础差点的甚至根本就不会转换,给学生造成该门课程我用的错觉,打击了学生学习的积极性,不利于学生编程能力的提高。因而,应用型本科高等院校的“数据结构”教材,在描述算法时,应该尽量用贴近编程语言的形式描述算法,降低学生将算法转换成程序的难度,同时为了兼顾算法的描述,可以对比较复杂的算法以流程图的形式先行介绍算法思想。

2.2 教学内容的组织

在教学中,始终以算法实现的两种基本的存储结构顺序结构和链式结构为主线,对数据结构的三种数据组织形式线性结构、树型结构、网状(图形)结构,以点线面体的形式进行立体组织授课。整个教学体系是在线性表、树、图各个数据结构知识点的基础上,以数据组织的两种存储结构为贯穿整个课程的两条主线,注重培养学生掌握各个知识点之间的联系,形成数据结构的理论教学面;在数据结构的实验教学方面,同样采用顺序和链式两种存储结构为主线,以编程实现线性表、树、图的数据组织和算法为手段,提高学生的动手能力;最后将理论和实验两者结合起来进行数据结构课程的课程设计实践,进一步提高学生解决实际问题的能力。例如对线性结构的教学,重点讲授线性结构的两种存储结构下的实现,而对线性结构的抽象表示以线性结构特征的形式体现即可。由于数据的线性组织方式是整个“数据结构“课程的基础,务必让学生掌握透彻,提高对该门课程的兴趣。在完成理论教学之后,实践上以应用为切入点,提出线性结构的数据组织和处理的实例,进行编程实践,培养学生的工程实践能力。

2.3 综合运用多种教学手段

根据数据结构这门课的特点,在不同的教学阶段运用不同的教学手段。单一的教学模式和教学手段在数据结构教学中是不适合这门课的特点的,效果也肯定不会很佳。勿庸置疑,现代教学手段能提高教学效果,现代的多媒体教学课件,网络资源,立体化教材等,对提高某些课程的教学效果作用很大,但对理论性很强的数据结构课程的课堂教学,只能起一定的辅助作用。在讲某种数据结构,如线性表、树、图等,是可以辅以多媒体课件直观表示,但完全用多媒体教学效果就不一定好,在讲述算法思想的时候学生更喜欢教师用粉笔边写步骤边解释。现代教学手段有它的用武之地,也有它的适用范围,不应在什么方面都用现代教学手段。笔者认为,对数据结构中的数据的组织形式和算法的实现可以利用多媒体进行演示,而对于算法思想的讲述,在黑板上虽然讲解速度慢但比多媒体对学生的影响更深刻,这样结合,可发挥两者的长处。

3 结束语

《数据结构》是一门理论性和实践性都很强的课程,笔者认为,对于应用型本科而言,理论教学固然重要,但应将着重点放在实践环节,强调学生编程动手能力的培养。以培养学生的动手实践能力为主线,兼顾理论教学,在实践中总结理论,综合运用多种教学手段比较适合应用型本科学生的接受能力,也符合培养目标的要求。

参考文献:

[1] 汪军,周鸣争,《数据结构》课程教学方法的改革与实践[J].兰州工业高等专科学校学报,2004(3):20-22.

[2] 周鸣争,汪军,计算机科学与技术课程综合化的尝试[J].高等工程教育研究,2003(4):74-76.

[3] 严蔚敏.数据结构[M].北京:清华大学出版社,1997.

[4] 秦锋.数据结构[M].合肥:中国科技大学出版社,2007.

上一篇:基于PostgreSQL数据库的几种数据加密实现方法 下一篇:基于VRML技术的虚拟校园研究与实现