APP下载

信息管理与信息系统专业《数据结构》课程教学改革研究

2013-12-03邱祥庆福建江夏学院电子信息科学学院福建福州350108

长江大学学报(自科版) 2013年22期
关键词:信管数据结构知识点

邱祥庆 (福建江夏学院电子信息科学学院,福建 福州350108)

1 《数据结构》课程教学的现状及普遍存在的问题

1)数据结构的预备知识掌握不牢 《数据结构》课程一般在大学二年级开设,要求学生先修一门程序设计语言,但由于学生在大学一年级的时候刚刚开始接触程序设计语言,没有建立起基本的程序设计思想,不能利用计算机解决问题,更谈不上把所学的知识融会贯通。很多同学甚至对程序设计产生了恐惧心理,只要看到程序,不管程序的难易就先入为主地觉得自己不会,因此在学习数据结构时,往往只理解了某数据结构的概念,一旦碰到用具体程序来描述某数据结构或算法时就显得力不从心。

2)教材理论性、抽象性太强 虽然目前市面上有很多优秀的《数据结构》教材,如清华大学严蔚敏教授组织编写的《数据结构》等国家“十一五”规划教材,然而这些教材的理论性都比较强,教材中严格采用算法设计的语言来描述算法。这对于国内“一本”大学的计算机专业的学生来说理解起来也许难度不大,但对于那些应用型本科高校的非纯计算机专业学生来说很难将课本的中的含有一定设计技巧的算法转换为程序上机调试通过,在一定程度上挫伤了学生编写程序的积极性,阻碍了学生实践能力的提高。

3)教学方式和方法单一 目前大部分从事《数据结构》教学的教师来自于计算机学科,这些教师具有丰富的计算机学科的专业知识,通过板书和讲解可以达到让学生掌握相关知识点的目的,但在教学过程中缺乏让数据结构同信息管理与信息系统专业 (简称信管专业)的有机地融合,使学生误认为学习数据结构仅仅是为了掌握相关的计算机技术,而与本专业的知识结构体系没有直接联系。同时,由于《数据结构》课程在传统教学中需要大量的板书演示,因此学生忙于作笔记,双方严重缺乏互动,课堂气氛沉闷,学生提不起学习的兴趣,虽然现在也大多采用多媒体课件的方式进行教学,但这又容易导致学生既要关注屏幕内容又要忙着作笔记无暇思考问题,课后难以消化,“听课”变成“看课”。这样一来学生就很难把握该课程的知识脉络,自然也不知道数据结构与本专业的联系体现在哪些方面,对于学习这些知识在以后工作中有什么用处感觉很迷茫。

4)教学实践环节设计不合理 传统《数据结构》的实践教学主要是让学生在学习完每一章节后完成若干上机实验作业,想由此达到提高学生实践能力,深化理论教学的目的。然而,大部分实验与现实联系不够紧密,仅仅是为了考查知识点而设计实验,学生无法验证所完成实验的正确性和实用性,很多同学只知道将代码敲进去,然后调试通过出来结果就行了,并没有思考这个实验在现实中有什么实际应用;而且这种实验只有少数基础较好的学生从中受益,大部分学生却收效甚微,与实践教学改革的既定目标相差甚远。

2 信管专业《数据结构》课程存在的特有问题

除了以上4个普遍存在的问题外,信管专业在《数据结构》课程的教学中还存在其特有的问题:课程培养目标与专业培养目标脱节。信管专业并不是一门纯计算机的专业,该专业学生相比计算机系学生在计算机语言及其他计算机基础知识上掌握也存在差距,这使得信管专业数据结构教学更容易产生问题。信管专业主要侧重于研究信息的构成与分布特征,信息系统开发与设计的理论、原则和方法,解决信息的获取、加工、检索、控制和利用等一系列重要问题,为科学研究和管理决策提供高质量的信息服务。这其中信息组织、信息存储与检索是本专业的核心知识模块。然而目前的现状是大部分学校在编写信管专业《数据结构》教学大纲时只注重数据结构中计算机学科角度的知识点的设计而忽略了其在信管专业中的作用的体现。这就导致学生在学习了数据结构课程后并不了解该课程的学习对于信管专业的专业培养有何帮助,甚至觉得学习这门课程没有任何作用。

3 《数据结构》课程的教改措施

1)课程目标建设 对于《数据结构》这门课程的建设目标,研究型本科侧重于数据对象的特性、算法分析等数据结构理论问题的研究,注重理论的系统性、完整性和探索新结构新方法的创新性;而应用型本科则侧重数据的逻辑结构、存储结构和在特定结构基础上的算法实现,注重结构的特性、算法的效率性和在实际问题中选择结构与算法的应用性[1]。

此外,针对信管专业的特点,在制定课程目标编写教学大纲时,不仅需要从计算机学科的角度来把握数据结构的基本原理和基本方法,更重要的是如何与专业知识和专业培养目标相结合,要体现出数据结构本身与信息组织、信息存储与检索之间的联系,即数据结构与信息组织的研究对象是一致的;数据结构研究内容是为信息组织服务;数据结构课程中的物理结构就是研究信息的存储方式;数据结构课程中算法为信息检索服务[2]。

2)教学资源建设 学生在学习一门课程的过程中除了老师的课堂传授外,还需要大量其他的教学资源,如教材、参考书、教学网站等。因此为学生提供丰富的教学资源也是提高学生学习兴趣以及强化知识吸收的一个重要手段。

目前市面上《数据结构》课程的教材琳琅满目,针对应用型本科特点,应当选择一套体系科学、适合二本、三本学校学生、教学内容与应用实例能有机融合的数据结构教材。经过多方对比,笔者选择了王红梅教授编著的《数据结构 (C++)版》系列教材,该套教材具有如下特点[3]:① 定位准确,合理规划教学内容,能够抓牢核心概念,提炼基础性内容,侧重工程实践,减少形式化描述;②知识拓扑结构合理,主线清晰;③书中精心安排了人物小传和思想火花,激发学生兴趣;④分析难点,针对处理,全书有250多张插图,降低了理解问题的复杂性;⑤立体化教材保证教学有效实施,该套教材既包括学生用书、学习辅导和实验指导,还包括教师用书、教学课件、教学网站,这样可以为师生提供一种综合性和全方位的教学资源,最大限度地满足教学需要。

除了采用上述立体化教材化外,将《数据结构》中一些经典的算法设计成Flash动画的形式也是教学资源建设中很重要的一块,学生通过互动式的动画演示可以很直观的理解一些算法和数据结构的特性。

3)教学方法及教学内容的组织 《数据结构》课程知识丰富,内容抽象,在教学中要避免对课程知识的割裂,要教给学生完整连贯的知识。因此应当综合运用多种教学手段在教学中以“点线面体”的形式进行立体组织授课。整个教学体系要开成若干主线,注重培养学生掌握各个知识点之间的联系,形成数据结构的理论教学面。该课程的理论教学应该抓住3条主线:①明线,即教材中的章、节、目,这些是教材的骨架。②暗线,即教材的章、节、目之间的内在联系,是教材的经络,反映课程内容的隐含关系。如在讲授每一个数据结构时以抽象数据类型为主线,按照“定义→设计→实现”这3个层次展开讨论;对于复杂的算法,从问题入手,采用“提出问题→分析问题→解决问题”的过程,采用“图示理解问题及求解思想→代码描述算法→C++描述算法”的三级模式,建立抽象化思想并掌握相关技术。③虚线,即数据结构课程涉及的相关学科知识,是教材的血脉,体现了课程内容的深度和广度,这一点也是很重要的。要讲好该课程仅靠一本教材是不够的,要参考多本教材,要了解该课程的知识在后续过程中的应用,特别是在信管专业中的应用。

图1 基本概念的网状理解

特别地,在对于基本概念的讲解上可以采用网状理解教学法(见图1)。首先通过贴近生活的教学设计加深学生对概念的理解,同时对于复杂的概念进行分解,提取关键词,学会把问题拆开来思考,培养学生的开放性思维;再者通过适当的形象图示来直观地展现数据结构中的一些算法原理。最后还要注意总结,形成模式,对于某些概念还要适当进行引申,强调用应用的观点理解基本概念。

此外,在教学中还应当采取“课前-课堂-课后”三管齐下的办法进行教学的组织,做到少讲、精讲。除了正常的课堂教学外,对课前预习和课后复习任务进一步细化,让学生有明确的预习任务,而不只是简单的看书。对于一些较容易掌握的知识点提倡学生在课前自学完成,在课堂上重点介绍一些重要的比较难于理解的知识点,在课后布置一些应用型的练习来提高学生灵活运用知识点的能力。

以《数据结构》中的“线性表”为例,该章节的明线就是线性表的逻辑结构→线性表的存储结构。对于线性表的逻辑结构从线性表的定义出发,抓住要点深刻理解概念,为了便于理解,先将线性表拆成“线性”和“表”,让学生分别理解什么是线性,什么是表,接着再引申出线性表的特性及逻辑特征,最后再通过总结给出线性表的抽象数据类型的定义。对于线性表的存储结构,则要把握2条支线:顺序存储结构和链接存储结构。对于每种存储结构,从存储思想出发,根据存储示意图理解存储要点,然后再基于存储结构设计线性表的抽象数据类型。同时在教学设计中,课前先让学生去找出现实中线性表有哪些应用,在课堂上进行适当讨论,在讲授顺序表的插入这一概念时以现实中排队的插队为例进行类比,使得学生更容易理解顺序表插入的操作特性。

4)教学实践环节的设计 在《数据结构》实验教学方面同样形成主线,以编程实现相关数据结构的数据组织和算法为手段提高学生的动手能力,最后将理论和实验两者结合起来进行数据结构课程的课程设计实践,进一步提高学生解决实际问题的能力。同时为了避免实验与实际应用的脱节,要把课程必须掌握的技能点设定多层次的实验要求,精心选择与课程教学内容密切相关的典型案例。将实验分为验证型、设计型、综合型3种不同层次。验证型实验让学生了解各数据结构的基本算法实现;设计型实验让学生针对具体问题应用某一知识点设计相应的数据结构和算法,并上机实现,以培养学生对数据结构的简单应用能力;综合型实验作为课后的拓展要求,主要是针对现实中的具体问题应用数据结构中的若干个知识点解决,培养学生的综合应用能力。

以“栈和队列”章节为例,在进行实践教学设计时,先直接给出顺序栈和链队列的实验代码,让学生进行验证实验,了解栈的基本操作原理和实现方法,接着再以“火车车厢重排问题”为例让学生进行设计实验,培养学生对队列的简单应用,最后再设计一个“表达式求值”的综合性实验,让学生能够灵活运行栈的相关知识点解决实际问题。

[1]宁正元 .应用型本科“数据结构”课程教学改革的研究与实践 [J].计算机教育,2009(17):119-121.

[2]熊回香 .试论信息管理与信息系统专业《数据结构》课程的教学 [J].高等函授学报,2007(4):11-12.

[3]王红梅 .数据结构 (C++版)[M].第2版 .北京:清华大学出版,2011:130-131.

猜你喜欢

信管数据结构知识点
一张图知识点
一张图知识点
第四页 知识点 歼轰-7A
智能时代下信管专业人才培养方案制定的探索与实践
数据结构线上线下混合教学模式探讨
应用型院校信管专业基于企业驱动的教学改革研究
互联网时代信管专业应用型人才培养改革探讨
“翻转课堂”教学模式的探讨——以《数据结构》课程教学为例
关于G20 的知识点
高职高专数据结构教学改革探讨