首页 > 范文大全 > 正文

电信类专业“算法与数据结构”教学改革探索

开篇:润墨网以专业的文秘视角,为您筛选了一篇电信类专业“算法与数据结构”教学改革探索范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:文章以“算法与数据结构”的课程体系为基础,从电子信息类专业“算法与数据结构”课程教学的实际情况出发,对课程的特点及存在的问题,结合专业特点整合教学内容、实践教学和动态管理等方面进行了有益的探索和改革,特别是对以案例为线索的理论和实践相结合的模式进行了实践,取得了良好的效果。

关键词:算法与数据结构;案例教学;算法可视化;能力培养

作者简介:郑恭明(1980-),男,重庆人,长江大学电信学院,讲师。(湖北荆州434023)

中图分类号:G642.0     文献标识码:A     文章编号:1007-0079(2012)08-0083-01

“算法与数据结构”是计算机软件编程技术的核心课程,也是电子信息类专业的软件基础课程。该课程不仅要注重提高学生对数据结构理论的理解,锻炼学生抽象思维和研究创新能力,更要注重培养学生的动手实践能力,使学生熟练掌握组织、存储和处理数据的方法,并编写出正确、清晰和高效的算法程序。本文从本院大类招生以来“算法与数据结构”课程教学的实际出发对理论教学和实践教学进行了相关探索。

一、该课程存在的问题

“数据结构”课程比较突出的特点是:[1]概念较多、理论性强、内容抽象、逻辑性强、程序复杂。教学实践中发现,学生中普遍存在概念不清的问题,学完课程后对数据结构的本质不能有清晰的认识和准确理解。主要表现在以下几个方面:觉得算法理论太抽象,逻辑性太强,难理解、难掌握、有畏惧感;内容多,概念多,学习中难以把握整体内容,学完后不知道到底学了些什么、感觉在课堂上思路跟不上,难以消化;上课算法理论听得懂,上机实验实现算法时觉得无从下手,当编程解决实际问题就感觉更难了;不知道学习算法在实际中有什么用,逐渐失去了学习兴趣;教材上的算法多,难以全部上机实现;不重视上机实验,觉得能读懂算法和书面编写算法就可以了。

以下是几个较为典型的例子:链式存储结构中的指针,定义上是指向相关类型节点的变量,在存储结构上则对应存储对象的地址;数组结构与计算机语言中的数组相混淆,数组结构是一种逻辑结构,与计算机内的表示方法无关,而计算机语言中的数组则只是一种顺序存储方法;排序中的稳定问题,不能掌握其实质,在不同比较公式(大于,大于等于或小于、小于等于)下等值关键字在排序过程中是否交换顺序。因此,在备课时就应对诸如此类易于模糊的概念和细节高度重视;讲授时要清晰地阐述和辨别,消除学生的畏惧;精心选择上机题目,让学生正确地理解概念并能在实践中灵活运用。

二、理论教学探索――结合专业特点整合课堂内容

在理论教学中,引入跟专业背景相关的实际和经典案例打破以抽象和枯燥知识点为界线的授课模式,提高学生的学习兴趣;在授课形式上采用多种表达方式,特别是制作了直观的核心算法Flas和动态演示软件,使学生较好地理解抽象、逻辑性强的复杂程序。

1.案例教学

以前“算法与数据结构”教学是按章节安排的。首先讲解本章节的基本理论知识,然后介绍各种算法的基本实现(在不同存储形式下算法的实现形式),再分析各个算法的优缺点等。这种填鸭式的方法只注重了“教”,而忽略了“学”的方面;症结就在于学生并没有真正地参与到教学中来,教学效果不理想。

为了改善这一情况,在教学中引入案例教学法,[2,3]其核心在于:在讲授某一知识理论之前,以实际的案例作为切入点,教师围绕所提供的案例,引导学生积极思考、分析、讨论和实践,从而深刻理解问题的原理和本质。“算法与数据结构”以案例为核心的教学基本思想是:按照逻辑结构给出其相应的案例及相关预备知识;教师解释案例并引导学生理解案例;学生根据案例学习数据结构知识并解决案例。

比如:线性表中引入多项式加法和约瑟夫(Joseph)问题等案例;栈与队列引入渡船调度和农夫过河案例;树和二叉树引入通信编码压缩案例;图引入学习课程的拓扑排序案例等。这些案例既能把理论知识寓于其中,又跟电子信息类的专业特点相结合,从而调动学生的主动性并培养其探究性的学习态度,切实地参与到课堂中来积极思考,以真正地掌握所学的科学技术知识,提高分析问题和解决问题的能力。

2.可视化演示关键算法

对于抽象的算法特别是关键算法演示采用Flas和动态演示软件等可视化教学手段。可视化教学是指在计算机软件与多媒体技术的帮助下,将被感知、被想象、被推理的事物及其发展变化的形式与过程,用仿真化、模拟化、形象化、现实化的方式,在教学过程中尽量表现出来。可视化教学可以使学生直观地观察、体验、发现、干预,利用这些生动的信息化了的知识模型,培养和造就学生的认知能力与创新能力。可视化教学在数据结构算法教学过程中所表现出的优点有:[4,5]可改变传统教学方法中的枯燥乏味局面,吸引学生的注意力;它可将文字、数据、图片、影片等多种媒体动态地整合在一起;它可以让学生体会在大量不同的数据结构下,算法执行效率的差异;学生可课后利用实现算法的可视化教学软件探索算法的执行过程,培养学生个别化学习与自学的能力。

例如:讲解二叉树的查找、遍历、线索化、哈夫曼树及编码、图的拓扑排序、关键路径及排序算法时,制作了Flash的算法动画演示系统和动态显示软件,通过动画演示,学生对各抽象的逻辑操作过程有了清晰直观的理解,达到了很好的教学效果,增强了学生对数据结构中各算法的理解和掌握,从而克服了学生学习过程中的畏惧情绪,促进了学生学习兴趣的提高,达到教学目的。

三、实践教学改革

实践教学是理论教学的延续和扩展,更是培养学生分析、解决问题能力的重要手段,并培养学生具有一定的编程能力以及解决实际问题的能力。课程中涉及大量C语言中的指针运算,这又是C语言学习的重点和难点,大部分学生对这部分知识点掌握不是很牢固,用起来也比较生疏。课本上的例证又有很多类C代码的描述语句,这加大了学生理解和编写程序的难度,导致很多学生对算法的思路是清晰的,但也难以用C语言将算法描述出来。

在实验上机这个实践环节老师就要帮助学生解决两个问题:用案例引导学生应用所学知识来给出切实可行的解决方案;提高学生编写程序的能力,特别是类C代码转化为C语言的能力。

要解决这两个问题,在理论教学时就开始着手。首先是案例的引入,除了调动学生的兴趣和积极性之外,更重要的是提高学生分析、解决问题的能力――给出的问题提出可行的解决方案;其次是在算法的可视化教学中,所有算法用C语言来描述,并跟类C代码进行比较提高学生编写程序的能力;最后在实验内容和设置上紧跟理论教学的案例并进行适当的扩展和提高,让学生能更好地理解知识点并能加以运用来解决实际的问题,提高编程能力。

四、过程的动态跟踪

在整个教学活动中,答疑、作业和实验上机是掌握学生学习状态的重要手段。除了每周固定的答疑外,还有课程的学习网站留言和交流,这既是课堂的有益补充与延伸,也是了解学生学习状态和收集课堂反馈信息的主要手段,有助于教师及时地调整教学的进度和方法,以达到更好的教学效果;作业既可以发现普遍存在的问题,也可以了解一些学生的独到思维方法,然后一起提出来共同讨论、理清思路、加深理解,从而督促学生独立学习,有利于学生学习兴趣的提高和良好学风的形成;上机实验不仅可以发现学生编程上的不足,同时还有助于发现一些平时能写出比较好的程序或能在课余时间自己编写一些优秀的应用程序的学生,因材施教,提高学生的综合素质和竞争力。

五、总结

笔者从“算法与数据结构”的课程体系和专业的特点出发,把知识体系传授和提高学生以工程实践能力为主的综合素质紧密结合,以案例引入打开思路,结合教学内容培养学生对问题的分析能力和实践应用能力,从而达到提高该课程的教学效果的目的,并取得了良好的效果。

参考文献:

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

[2]宗瑜,金萍.案例教学法与《数据结构》教学改革[J].皖西学院学报,2009,(2):30-32.

[3]徐翠霞,崔玲玲,邵回祖,等.数据结构案例教程(C语言版)[M].北京:北京大学出版社,2009.

[4]张连堂,焦妍.《数据结构》教学技巧探索与实践[J].现代计算机,2009,(9):86-88.

[5]喻飞.电子信息专业“数据结构”课程教学探索[J].电气电子教学学报,2009,(3):17-18.