非计算机专业“数据结构”课程教学问题与研究

2015-02-13 19:52周玮,卢彪
阴山学刊(自然科学版) 2015年3期
关键词:非计算机专业数据结构

非计算机专业“数据结构”课程教学问题与研究

周玮,卢彪

(宿州学院 信息工程学院,安徽 宿州 234000)

摘要:本文主要讨论了数据结构课程教学在非计算机专业中存在的问题,并针对这些问题给出了一种解决方案,对等教学法,以提高教师的教学生动性,增强学生的理解能力和动手能力,从而真正达到提高数据结构这门课程在非计算机专业的教学质量。

关键词:数据结构;非计算机专业;对等教学

收稿日期:*2015-03-27

作者简介:周玮(1985-),女,湖南省永顺人,硕士,研究方向:电信运营商计算机网络建设与发展。

中图分类号:G642.0文献标识码:A

1“数据结构” 在非计算机专业课程教学中的重要性

数据结构是计算机专业中的一门核心课程,在非计算机专业的很多学科中也有着广泛的应用,例如:在地理信息系统、生物信息技术、会计学等非计算机专业学科中都开设了数据结构的必修课程,需要用到数据结构的知识作为技术手段解决问题。例如:在生物信息学中,对基因、蛋白质的序列比对过程中,由于基因、蛋白质序列数据的复杂性,信息数据十分庞大,这时候就需要借助到计算机技术对这些信息抽象成电子数据再进行处理,这些数据抽象和处理的过程都会用到数据结构的知识去具体地解决问题。因此,在非计算机专业学科中做好数据结构的教学工作是一件十分重要的事情。

2“数据结构” 在非计算机专业课程教学中存在的问题

数据结构课程的特点是知识点多,概念之间联系紧密,算法抽象难懂,要求学生具有较强的逻辑思维能力,给学生学习带来一定困难,使用传统的教学模式,教学效果很不理想[1]。鉴于数据结构课程教学的重要性,近年来,对数据结构教学改革方面的研究也越来越引起人们的重视,也有很多论文提出了各种各样数据结构课程教学改革的教学方法和技术手段[2]。例如:采用多媒体的教学环境,变革现有的教学方法,注重教学实践环节,更新现有的教材内容,采取启发式教学,加强学生的变成能力[2-4]等。这些文章从不同的视角,根据当前在数据结构教学中存在的问题去解决问题,提高学生的理解能力和解决问题的能力,有益于数据结构课程教学的开展和实施。但是,这些研究方法和教学手段更多是针对计算机专业的学生,而要应用到非计算机专业的学生中去,存在着不小的问题。

数据结构作为计算机专业的基础课程之一,与计算机专业的其他基础课程有着紧密的联系,例如,程序设计语言、计算机体系结构、编译原理等基础课程都涉及数据结构的具体实现,对学习和理解数据结构这门课程起了十分重要的作用。对于非计算机专业的学生来说,由于没有系统地学习计算机专业知识,在学习数据结构这门课程的时候,会存在一定层面知识的断裂,学习起来会遇到有异于计算机专业学生存在的困难。因此,本文主要探讨数据结构课程教学在非计算机专业学生中存在的问题和解决的途径。

2.1系统的计算机专业知识的缺乏

对一些非计算机专业的学生来说,虽然开设了数据结构的课程,并且也开设了计算机基础、程序设计语言等课程,但是数据结构还与计算机专业的很多核心课程有着不可割舍的联系,而这些课程的学习,对理解和掌握数据结构的基础知识和实现原理有着重要的作用。首先,数据结构课程的内容本身就涉及到很多其他计算机专业课程的知识。例如,数据结构中树、图这些作为单独章节出现的内容,在计算机专业中有专门的图论这门课程去阐述。所以,在数据结构的树、图这些章节的内容相对于图论更加抽象和概括,对于非计算机专业的学生来说,想要在课堂时间内理解和掌握这些内容是十分困难的。而树和图又是数据结构的重点内容,在这两章中,还涉及到很多定理和算法,对非计算机专业的学生来说,由于只学习了基本的程序设计课程知识,不具备更进一步计算机知识的储备,因此,对算法设计的思想理解起来存在一定的问题。而这其中几个经典的算法[5]:树的遍历、dijkstra、prim等算法本身比较抽象,从以往的教学经验来说,如果只掌握了基本的程序设计知识,不懂得算法设计的基本思想,学生很难具体掌握。

2.2数据结构知识和本专业知识的割裂

对计算机专业的学生来说,数据结构作为计算机专业的一门核心课程,和计算机专业的很多课程都是相辅相成的。学习了计算机的其他基础课程,对数据结构课程的学习有一个加强和提神的过程;学习了数据结构,同样也对其他计算机专业知识的学习会带来一定的帮助。

例如,如果要理解数据结构中链式存储结构和顺序存储结构的概念,如果知道计算机体系结构的知识,了解寻址方式,就不难理解这两者之间的区别。所以,对计算机体系结构专业知识的学习会对数据结构课程的学习有一定的促进作用。而对非计算机专业的学生来说,在平时的专业课程学习的过程中,除了计算机基础知识和程序设计语言的学习,很少会涉及到其他计算机课程的学习,这样就造成了计算机知识和本专业知识的割裂。在本科阶段,对本专业的课程学习来说,很少会用到数据结构的知识;而对数据结构这门课程来说也基本上用不到非计算机专业的课程知识。这样就导致了非计算机专业的学生不知道为什么要学习数据结构这门课程,也意识不到数据结构这门课程的重要性,自然在学习的过程中不会端正态度,影响了学习效果;并且在学习的过程中,数据结构的课程知识也和平常学习到的专业知识有很大的区别,例如,对于电子商务、会计学等学科的专业知识,学生平时的学习更重要的是掌握规则,而对于数据结构来说,光凭死记硬背是没有用的,重要的是思想和创造性。学生在学习的过程中却很少注意到这点,经常会将自己在学习本门专业学科知识的方法去套用到数据结构的课程学习中,而很多时候这些方法是不适用的。

从以往的教学经验来说,很多非计算机专业的学生在学习算法的时候往往不是去理解算法的思想,而是设法去死记硬背,这样在学习完后面的内容之后往往忘记了前面的内容,并且在程序作出小小的改动之后学生就无所适从了。

2.3课程实践和编程能力的缺失

对非计算机专业的学生来说,计算机编程能力是薄弱的一个环节。在对计算机专业学生数据结构课程的教学过程中,在遇到抽象的算法或学生无法理解的时候,讲解代码和通过上机实验,布置课程实践等方式都可以有效地加强学生对知识的理解。而对非技术专业的学生来说,本身他们阅读代码的能力就十分有限,如果要通过上机和课程实践的方式来辅助教学的话,不但起不到加强学生理解知识的能力,反而有可能会造成学生新的学习问题,影响教学效果。例如,在对数据结构栈、队列等数据类型的教学过程中,对计算机专业的学生可以让他们上机编程去实现栈、队列等数据类型,并且可以直接用程序来描述出栈、入栈、出队、入队等操作的实现过程;而对非计算机专业的学生来说,如果用以上方法来实现,还要综合考察学生的编程能力、算法思想等因素,而非计算机专业学生往往又无法掌握这些要素,因此,实际操作具有很大的困难。

3“数据结构” 在非计算机专业课程教学改革中的措施和建议

数据结构作为一门成熟的计算机专业核心课程,其教学体系和教学手段已趋于成熟。现今的高校也存在着很多的数据结构的教材和教学体系,而对非计算机专业的数据结构的教学手法却鲜有研究。因此,本文根据计算机专业数据结构教学的相关研究,参照了美国IEEE ACM教学计划CC2001-2004和国内的数据结构教改方面的论文,针对数据结构在非计算机专业课程教学中存在的问题,提出以下几点措施和建议:

3.1对等教学

PI(peer instruction)教学方法一种以学生为中心的主动学习方法,学生对知识的获取不是经由传统的老师讲授的方式,而是需要自己参与到课堂教学中,通过课堂讨论自主解决问题,构建自己的思想的一种同伴教学方法。在国外,PI教学方法已被证明在中学课程的一些基础学科,如物理学和生物学中取得了良好的成绩,相对于传统的SI教学方法来说,显著降低了学生的不通过率。然而,PI教学方法应用在大学教育,特别是计算机专业的课程,在国内还没有详细的研究。

PI方法通常由以下几部分组成:

(1)上课前,学生被要求完成前期准备工作(通常是读教科书,也可以是观看在线讲座)。我们的目标是让学生在课前学习一些更基本的项目,概念或定义,所以,这些不必须在课堂上讲解,从而创造学生参与的时间。为鼓励学生来完成这项工作,每次“授课” 前(或者在网上,或者在开始上课前)给予测验或其他某种形式的评估。

(2)在课堂上,学生参与的问题,旨在帮助他们面对和探索具有挑战性的概念。通常情况下,这些问题都作为多项选择题被提出,学生通过计时器(或其他电子投票设备)回答问题来增加自己的平时成绩。具体而言,插入的计时器问题的算法应该是:

①提出一个问题,学生分别回答(一般,结果未显示类)。

②小组讨论( 2-3人),学生们讨论他们的思想并且与对方分享他们的分析。

③学生第二次回答问题,也许基于分组讨论改变他们的答案。(学生的回答的结果可以显示在这一次上,或后,在下面的讨论中。)

④全班广泛讨论,由导师引导下,最好由最初回答问题的学生分享他们在他们的小组的解释和讨论。导师提供问题是如何可以分析的说明。明确表示正确的答案。

3.2甄选教材,强化学生的专业知识

针对非计算机专业学生在学习数据结构课程时缺乏系统的计算机知识的问题,教师在教学过程中尤其要选用适用于学生知识水平的教材。现在市面上存在很多数据结构专业的教材,很多计算机专业会采用外文翻译过来的教材,这类教材有很多势利,在对学生在学习过程中能起到很好的启发作用,但由于很少有归纳概括的内容,需要学生自己动手整理去获取知识,对非计算机专业的学生来说很难达到相应的教学效果,不宜在数据结构课程教学初期进行。国内也存在很多数据结构的教材,这类教材相对来说有完善的知识归纳体系,一般都详细地阐述了数据结构课程的专业知识,学生能够比较容易地获取知识。这类教材又可以分为两类:一类是以C语言作为算法描述语言,这类教材的优点是能够验证,学生如果在学习的过程中有不明白的地方,直接可以通过上机实验算法去证实,缺点是需要学生具备一定的程序阅读能力和编程能力;另一类是以伪码作为算法描述语言,这类教材的优点是描述直观,可以得到算法的基本思想,缺点是不利于实际的上机操作实验,如果学生在学习过程中存在疑问的话,只凭伪码太过抽象,不利于具体问题的解决。

因此,在对非计算机专业的学生进行数据结构课程教学的时候,就要求教师具有一定的甄别能力,要选取内容容易理解,并且具有实际可操作性的教材。在教学的过程中,更加需要关注学生的理解和掌握情况,最好将学生所欠缺的相关知识作额外的补充,更加形象直观地表述课程内容。例如:如果使用以C语言作为算法描述语言的教材,那么在讲述程序之前最好先把整个算法的思想讲述一遍,并在讲解程序的时候标住各程序段的功能以便学生理解具体算法思想。而非计算机专业的学生所欠缺的其他计算机专业基础知识,也可以在具体讲授的过程中,遇到具体的问题进行专门的补充,如:在分析算法的时间复杂度的时候,可以适当补充计算机内存调度方面的知识,让学生在计算程序复杂度的时候知道背后的原理知识,有利于学生在理解的基础上掌握所学知识。

3.3创建跨专业知识平台,提高教师知识水平

针对数据结构知识和本专业知识相对割裂的问题,更加需要教师提高自己的专业水平和教学能力,创建跨专业知识平台,结合数据结构和学生的专业基础知识进行相应的教学。在现在各个专业融合的大背景下,形成了很多跨专业的学科,这类学科通常需要用到几个传统学科的知识,例如:生物信息学就需要用到计算机的专业知识去解决生物学中序列比对、基因测序等问题,而这些问题在传统的技术水平下很难实现,是人们运用计算机技术解决问题的新途径,也越来越在人们的生活中得到广泛的应用。这势必要求教师在教学过程中,不仅只了解本专业的相关知识,还要了解跨专业的相关学科知识,这也对教师的教学工作带来了严峻的挑战,教师只有通过自身的学习,主动地去学习和了解跨专业学科的专业背景知识,才能在教学的过程中将数据结构课程的内容融入到学生的专业中去,学生才能更加主动去学习数据结构的课程知识。

3.4提供本专业的实践途径,通过实践强化学习

针对课程实践和编程能力的缺失的问题,教师在数据结构的教学过程中应该注意适当增加和学生本专业相关的课程实践和编程问题,以此提高学生的动手能力,并通过实际操作增强学生对数据结构基础知识的理解。非计算机专业学生的编程能力和操作能力不如计算机专业学生,并不是意味着对非计算机专业的学生就不要进行数据结构的课程实践和编程,而是要在一定的专业背景下去做课程实践和编程操作。如果脱离具体的专业背景,学生就没有相应的积极性,只有结合本专业的具体问题,用数据结构的知识去解决学生在自身专业课的学习过程中需要解决的问题,把数据结构的知识当作解决实际问题的工具,这样的学习才有实际价值,才有意义。因此,在这种背景下,对非计算机专业的学生进行数据结构课程实践教学的时候,就需要教师找到相关的实践内容,这对教师的教学工作也是一项挑战。

参考文献〔〕

[1]余丽娟. 数据结构课程与学生逻辑思维能力的培养[J]. 职业教育研究,2008,(2):140-141.

[2]解德祥.《数据结构》课程教学革新与探讨[J]. 科技信息,2011,(03):144-146.

[3]王伟嘉,张立,石岩,等. 数据结构实验教学探索[J]. 计算机教育,2010,(13):155-157 .

[4]王长波,姜燕.数据结构课程教学的探索与实践[J]. 中国西部科技,2010,(29):83-84.

[5]严蔚敏,吴伟民.数据结构(C语言版)[M]. 北京:清华大学出版社,2003.23-24.

The Teaching Problems and Research of Non-computer

Professional “Data Structare” Course

ZHOU Wei,LU Biao

(Department of Information Engineering,Suzhou University,Suzhou 234000)

Abstract:This article focuses on the data structures in a non- computer science professionals,and to address these issues presents a solution to peer teaching to enhance teachers 'vitality,and enhance students' comprehension and ability in order to truly achieve higher quality of teaching in non-computer professional students.

Key words:Data structures;Non-computer professionals;Peer teaching

猜你喜欢
非计算机专业数据结构
数据结构线上线下混合教学模式探讨
重典型应用,明结构关系
为什么会有“数据结构”?
非计算机专业计算机基础教学的总结与思考
高校非计算机专业计算机网络基础教学改革探究
程序设计课程中计算思维和应用能力培养问题研究
非计算机专业VF课程优化教学研究
河南高校非计算机专业学生计算机能力模型研究
高职高专数据结构教学改革探讨
非计算机专业VF课程教学内容与方法探究