数据结构课程教学中的若干问题研究

2019-03-24 04:25曾志峰
学校教育研究 2019年16期
关键词:数据结构程序设计算法

曾志峰

数据结构是计算机及相关专业的一门专业基础课,计算机科学各个领域及有关应用软件都要用到各种数据结构,在整个专业教学中占有极其重要的地位,是学生学习的一门重点课程,也是难点课程。笔者根据多年从事数据结构课程教学实践,对该课程教学实践中遇到若干问题进行整理并提出一些解决思路。

一、数据结构课程教学中的常见问题

(一)学生对课程目的及意义认识不够深刻

在可视化化程序设计的今天,借助于集成开发环境可以很快地生成程序,程序设计不再是计算机专业人员的专利。目前,有许多非计算机专业和非计算机相关专业的人士也在从事着一些中小型计算机软件或是一些简单的网站、网页设计工作,这些相关人士在其经历的许多项目中,数据结构确实用得很少,他们所使用的一些好的通用的算法,都是直接从网上找到的。因此,很多人認为,只要掌握几种开发工具就可以成为编程高手。网上也有许多数据结构课程无用武之地的言论。这些都在一定程度上对相当部分不明就里的学生产生了误导。因而,学生对学习数据结构的重要性及其学习的目的认识不够,不能真正理解各种数据结构的特点及其各种操作的算法思想。

(二)学生缺乏学习兴趣

在传统的数据结构教学中,大多数实验配套教材详细描述了理论课中所有算法的程序实现。每次实验之前,老师会向学生详细讲解算法的理解、实现过程和运行结果,学生只需照搬教材录入,验证结果就可以。这样的教学模式使学生毫无学习兴趣,也不用动脑思考,使上机调试变得十分被动,也就没有了学习的动力。这在很大程度上也影响着学生学习数据结构的效果。

(三)学生先行课程基础不扎实

C语言程序设计是数据结构的前导课程之一,学生对它的熟悉掌握程度,直接关系到数据结构课程的实践教学效果。数据结构课程的理论教学重在算法思想的描述,大多数学生因程序设计语言基础差,有的学生甚至连C语言程序的结构都没能弄清楚。实验教学中,通常呈1:1:1的状态,即,三分之一的学生能够独立或只需教师少量指导就能完成实验,三分之一的学生需要教师给予较多的指导才能完成实验;剩下的三分之一的学生需要教师做全程指导才能完成实验,这部分学生往往对算法思想的体验很有限,课程实验教学效果不尽人意。

(四)课程本身较抽象

数据结构课程本身较强的逻辑性和抽象性决定该课程的难度较大,学生学习兴趣不高,有些算法思想即便在课堂中学习理解了,但在实验环节中由于语言基础等其他因素的影响,常使得一些学生从心理上畏惧数据结构,害怕实践,拿到实验任务到上机实习,常常茫然不知如何动手。而对于具体问题的部分差异就更难把握,常使得学生在一种算法思想的实现中,教师讲解能理解也能实现,但问题稍有变通便出现一定的困难。

二、提高数据结构课程效果的措施

(一)培养学生的学习兴趣

兴趣是最好的老师,有了兴趣就有了学习、探索的动力。学生对某一学科有兴趣,就会持续地专心致志地钻研它,从而提高学习效果,所以,在教学中要注重学生学习兴趣的培养。可以从以下两个方面入手:一是,在教学过程中,教师可以根据教学内容设计适宜的、学生感兴趣的题目供学生讨论,在讨论中以学生为中心,并进行适当的引导,使讨论富于情趣,寓教于乐,达到较好的教学效果。比如,在排序这部分的教学内容中,随机抽取10个左右的学生,以各学生的身高进行排序,让所有学生在游戏中参与算法的演示,以加强学生对算法思想的理解,在轻松愉悦的环境中培养学生的学习积极性。二是,在课堂教学中实时地引入IT行业中有关数据结构的信息,或是针对教学内容列举一些具体的实例说明数据结构在程序设计及现实生活中的应用,激发学生对数据结构的求知欲,培养其学习兴趣。

(二)淡化语言,强调算法思想

数据结构课程的教学目标是使学生掌握各种数据结构的逻辑结构、存储结构及其所涉及的各种操作的算法,以及常用的非数值计算方法,如查找、排序等,使学生掌握各种数据结构的特点和算法思想,并能结合具体情况,运用各种数据结构和算法解决实际问题。其中,算法思想的把握又是数据结构中的重中之重,是数据结构的重要组成部分。鉴于所有数据结构教程都是基于某一种语言编写的,而学生对先行的程序设计语言掌握情况又不尽人意。故,我们在教学中,对每个算法,都采用自然语言表示法、伪代码表示法、流程图表示法之一来重点描述、讲解,然后再给出具体的程序代码,并在代码中作完整注释。布置作业、实验题目时,要求学生首先在作业、实验程序中,先用伪代码等表示法将算法描述、注释出来,然后再给出具体的程序代码,考核时亦重点考核算法,使学生充分发挥其想象空间,不一味地将注意力集中在程序的语句、过程和函数上,而重点关注算法,学生也不会因程序设计语言不扎实而影响对算法的理解和掌握。

(三)改进教学方法

任何一门课程的教学,最忌讳的就是对学科背景、现状及发展不作引证就直接讲授具体教学内容。数据结构这门课程的教学实践尤其忌讳一来就讲授什么是数据结构等具体知识。部分学生,甚至部分正在从事与软件开发相关工作的人士,对数据结构课程的目的及意义认识不够深刻。所以,数据结构的第一堂课非常重要,在第一堂课中,必需对数据结构在软件项目中的作用作一些论述及引证,务必使学生认识到数据结构非常重要,是专业开发人员的必备知识之一。

在教学实践中采用多媒体教学与传统教学相结合的方法。多媒体教学信息量大、变换快速、表现直观、操作简便,教学活动很容易出现课件喧宾夺主的不良倾向;教师容易忽视教学策略和教学方法,忽视教学难点和重点,忽视与学生的交流;学生忙于观看课件,无暇做笔记,无暇思考。因此,在数据结构课程中一定要注重适时适当地采用一些传统的教学方法,加强与学生的交流,在课堂中注重与学生的互动,杜绝采用填鸭式教学方法。

此外,教师要注意在每一堂课结束之后对所学内能进行归纳小结,整理教学内容的内在联系。在整门课程的教学过程中,注重各种数据结构的比较,使学生总览全局,对各种数据结构之间的差异和联系有宏观的把握,促进对各种数据结构知识的理解和掌握。

猜你喜欢
数据结构程序设计算法
基于OBE的Java程序设计个性化教学研究
项目化教学在Python程序设计课程中的应用
C++程序设计课程教学改革研究
医学专业“Python程序设计”课程教学改革总结与思考
数据结构线上线下混合教学模式探讨
重典型应用,明结构关系
Travellng thg World Full—time for Rree
学习算法的“三种境界”
算法框图的补全
算法初步知识盘点