APP下载

非计算机专业数据结构兴趣式教学方法

2014-10-27耿霞王玉存吴秋兰

计算机教育 2014年10期
关键词:非计算机专业数据结构教学质量

耿霞 王玉存 吴秋兰

摘要:分析当前非计算机专业数据结构教学中存在的问题,针对非计算机专业学生的特点,基于5个“满足”,提出一种培养学生学习兴趣的教学方法。

关键词:非计算机专业;数据结构;教学质量;兴趣式教学法

0、引言

数据结构是研究非数值问题中计算机的操作对象以及它们之间关系和操作的学科。数据结构课程的性质和研究内容决定了它不仅是计算机专业的基础课,而且已经成为众多理工专业的重要课程,比如数学、信息、测绘、遥感、电子、通信等专业均开设了此课程。它所讨论的内容和方法,不仅是一般程序设计的基础,而且对学生继续学习计算机领域的其他知识都很有帮助。

由于教学目标、学生基础、课时设置等因素的不同,非计算机专业数据结构的教学具有自身的特点和规律,以往该课程的教学研究主要针对计算机专业展开,而针对非计算机专业数据结构教学的研究较少。因此,笔者从非计算机专业的角度阐述数据结构教学过程中存在的问题,进而分析原因,探讨兴趣式教学方法,为提高教学效果寻找途径。

1、非计算机专业数据结构教学中存在的问题

1)前导课程知识掌握不足。

高级语言程序设计是数据结构课程重要的前导课程之一。非计算机专业学生所学的高级语言一般是C或者c++,受课时限制等原因,非计算机专业学生只能掌握编程语言的一些基本知识,对数据结构中大量用到的数组、函数、结构体、指针、递归等知识掌握不足,因而理解算法和设计算法的能力较差,直接妨碍了数据结构课程的学习,影响了学生对数据结构知识的理解,甚至使学生丧失了学好这门课的自信心和学习兴趣。

2)课时和教学目标之间存在矛盾。

数据结构涉及四大逻辑结构(线性、树、图和集合)、两大存储结构(顺序存储和链式存储)、查找、排序等众多算法,这些知识点自成体系,而且对非计算机专业学生都很重要。相对计算机专业,非计算机专业的理论课学时一般都相对不足,在教学的过程中往往每个知识点都提到但重点不突出,另外,有些经典算法比较复杂,学生学习基础较薄弱,很难在较少的学时内理解掌握,教学难度大。

3)轻实践。

非计算机专业的数据结构实验课时普遍很少,为了兼顾众多实验内容,大多数实验任务的规模都比较小,缺乏系统性和应用性,使学生对课程的实用性产生疑惑,降低了进一步学习这门课程的兴趣。

4)教学内容与专业脱节。

目前,非计算机专业一般都没有结合专业特点加强某部分知识点的学习,学生无法体会到数据结构理论知识如何为专业实践服务,无法深刻理解学习数据结构的目的,也无法很好地调动学生学习这门课程的兴趣和积极性。

2、“5个满足”的兴趣式教学

爱因斯坦说:“我认为对于一切情况,只有热爱才是最好的老师,它远远超过责任感”。针对非计算机专业的特点,教师在数据结构教学中要“因专业施教”,从学生的实际情况出发,掌握学生的心理需求,提高学生的学习动力。在整个数据结构的教学过程中,笔者认为可以从“5个满足、5个促进”来着手培养学生的学习兴趣。

1)满足学生的求助心理,促进学生产生积极情绪。

首先,解决前导课程知识的不足。前导课程知识不足使非计算机专业学生在最初学习数据结构课程时容易产生畏难心理。教师一方面可以提前和前导课程授课教师积极沟通,对数据结构涉及的一些知识点进行有目的的讲解,如动态存储分配、结构体、指针等,锻炼学生编写调试的能力,为后续学习数据结构创造条件。另一方面,重视初期的教学效果,不要使学生在一开始就“掉队”。目前大多数教材都是在前两章介绍基本概念和线性表,这两章知识非常重要,是其他后续章节的重要基础,教师在讲授这两章内容时,可适当放慢授课节奏,由浅入深引导学生进行学习,只有学生对数据结构感觉入门了,才有继续学好后续内容的动力。

其次,及时发现并解决教学中的问题。在教学过程,教师要及时发现学生学习中存在的问题,对具有普遍性的问题进行讲解。由于课时有限,课下可以通过一些即时通信工具,如QQ、微信等延伸教学,帮助学生查缺补漏,及时解决学习中碰到的问题,尽可能减少学生学习数据结构过程中的“绊脚石”,保证学生的学习兴趣不会消失,促使学生产生积极情绪。

2)满足学生的实用心理,理论联系实际促进学生增强求知欲。

不同专业有自身不同的特点和需求,数据结构需要加强课程的专业应用性。根据不同专业选取不同的重点内容进行学习,学生们体会到数据结构是一门抽象理论与实践紧密结合且非常有趣味的课程,从而激发学生们的学习兴趣。例如,路径分析是地理信息系统网络分析中的关键问题,针对测绘、遥感、地信等专业,在讲授图结构时,可重点讲授图的几个应用问题:使用Dijkslla算法和Floyd算法求最短路径、AOE网和关键路径等。数学、信息等专业需要处理的数据越来越多,大量的数据需要压缩存储,哈夫曼编码在数据的无损压缩方面发挥着重要的作用,因此在对数学、信息等专业讲授数据结构时,可重点讲授二叉树的一个经典应用,即哈夫曼树和哈夫曼编码。

实例教学可以激发学生的学习兴趣,实际需求是引发学生学习兴趣的最直接动机。结合具体的应用实例讲解知识点,可增加教学的趣味性,吸引学生的注意力。比如,将栈和表达式求值结合起来,可使学生更直观地了解栈的应用价值,从而更有动力去学习栈的相关知识。再如,美国流行一种找词游戏,要求游戏者从一张填满字符的正方形表中找出所有的英文单词,这些词可以横着读、竖着读或者斜着读,设计这个游戏可以借助数据结构中字符串和多维数组的知识。将理论知识和学生感兴趣的东西结合起来,会使学生感觉新奇,并且拓宽了学生的知识面。

3)满足学生主动参与教学的意愿,互动教学促进学生产生学习兴趣。

我国思想家孔子说过:“学而不思则罔”,也就是说如果只是一味学习而不思考,就会感到迷惑而无所收获。西方的哲人康德说过“感性无知性则盲,知性无感性则空”。可见,在知识的获取上,无论是东方还是西方都强调学和思的结合,这就启示我们,在数据结构的教学过程中,要改变传统的教学模式,让众多的学生主动参与课堂教学,积极主动地思考问题,由被动接受知识变为主动吸收知识,从而提高学生主动学习的积极性,锻炼学生良好的思维能力。endprint

教学实践过程中,可以对重点难点内容有效设计“提问—讨论—解决方法—再提问”的方式,用问题激发学生积极主动地思考,引导他们解决问题。比如,循环队列这个难点不容易理解,教师可以先从前面学过的线性表的顺序存储人手,让学生思考如何改造数组实现队列的顺序存储,然后再通过不断地反复提问、思考、解决问题、再提问的方式,学生自然而然地掌握循环队列的有关知识,并且通过这种互动式教学,提高学生独立思考问题的能力,养成相互交流学习体会的习惯,进一步提高分析问题和解决问题的能力。

4)满足学生的专业实践教学需求,促进学生实践能力。

数据结构是一门理论和实践结合紧密的课程,对数据结构的学习最终体现在程序设计上。实践教学在非计算机专业数据结构学习中具有举足轻重的作用。

在传统的实践教学中,往往采用规模较小的一般性实验作为实践内容,这种实践是验证性的,比较简单直接,学生得到的锻炼比较少,激发不了学生的学习兴趣。另外,不同专业学生学习的侧重点是不同的,如果采用统一的尺度要求所有学生,往往起不到较好的教学效果。为了达到“因专业施教”的目的,可以采用层次化的设计思想,把实验自下而上分为基础性实验、应用性实验和综合性实验。基础性实验注重对基础知识的理解和掌握,主要锻炼学生把教材中的算法转换为程序的能力;应用性实验是在基础性实验的基础上,以巩固和应用数据结构的基础知识为目的,注重培养学生理论和实践相结合的能力;综合性实验涉及多个知识点,注重培养学生综合应用知识和创新的能力。例如,电子、通信专业的学生在学习计算机语言时,侧重计算机硬件方面的应用,主要培养基本的编程能力,实验内容以基础性实验为主,兼顾应用性实验;测绘、遥感、信息等专业侧重于培养分析问题、解决问题的能力,实验内容以应用性实验为主,适当增加综合性实验。在进行综合性实验时,教师可以将学生分组,把问题进行模块划分,通过学生的分工协作,培养学生的软件工程意识,增强学生团结合作的能力。

5)满足学生的竞争要求,建立有效的激励机制促进学生产生主动学习的热情。

优秀作品展示是一种有效的激励机制。心理学家指出,在教学过程中,学生如果获得成功,就会产生愉悦、轻松的情绪,这种情况反复出现就会产生学习兴趣,久而久之就产生了学习动机。在数据结构教学过程中,教师可以将优秀的实验作业、学生的创新思想等进行统一展示和讲解,通过这种方式既可以增强部分学生的自信心,又可以在班级内形成良好的竞争氛围,提升教学质量。

在教学中,教师可以向学生介绍ACM国际大学生程序设计竞赛。竞赛题目有趣且有挑战性,ACM网站上的排行榜自然而然地会在学生中间形成一种竞争的氛围。教师将学生在ACM网站上做题的情况纳入最后成绩的评定,可以进一步激发学生主体学习的积极性,提高学生的编程能力,使学生更加了解数据结构的广泛应用。

3、结语

心理学研究表明,当学生对学习对象有兴趣时,大脑中有关学习神经的细胞处于高度兴奋状态,而无关的则处于抑制状态。孔子也认为:“知之者不如好之者,好之者不如乐之者。”在非计算机专业数据结构的教学过程中,如果学生产生了浓厚的兴趣,就会自觉克服学习过程中遇到的困难,从而达到较好的教学效果。如何针对非计算机专业的特点,在数据结构的讲授过程中因专业施教,激发学生的学习兴趣,仍是一个长期探索的过程。endprint

猜你喜欢

非计算机专业数据结构教学质量
提高中小学音乐欣赏教学质量对策探讨
谈如何提高初中历史线上直播的教学质量
数据结构线上线下混合教学模式探讨
重典型应用,明结构关系
非计算机专业计算机基础教学的总结与思考
高校非计算机专业计算机网络基础教学改革探究
程序设计课程中计算思维和应用能力培养问题研究
非计算机专业VF课程教学内容与方法探究
数据结构与算法课程设计教学模式的探讨
高效学习数据结构