数据结构与算法教学方法的几点思考

2020-05-11 05:51李婷
教育教学论坛 2020年18期

李婷

[摘 要] 数据结构与算法是信息与计算科学专业的核心基础课程,对后续课程有重要的影响。在总结多年教学经验的基础上,从理论教学、实践教学和引入思维导图等方面对课程教学方法提出思考,目的在于提高学生对数据结构的理解程度和灵活应用能力,以达到应用型人才培养的目标。

[关键词] 数据结构与算法;理论教学方法;实践教学方法;思维导图工具

一、引言

数据结构与算法是信息与计算科学专业的核心基础课程,是进行非数值计算程序设计的基础,也是后续学习的重要先修课程。

本文针对信息与计算科学专业的特点,结合具体教学过程中出现的问题和地方院校学生基础素质的情况,从教学内容、教学手段及教学方法等方面进行了思考,旨在寻找合理的教学方法,达到应用型人才培养的目的。

二、改革方法思考

1.理论教学方法思考。数据结构与算法课程所涉及到的知识点较多,包括四种逻辑结构、两种存储结构和四种操作,理论性和实践性均较强,且有高度抽象的特点。课程在内容组织上,难点分布的跨度大,概念多。对于算法的描述,通常只给了伪代码的描述,而分析较少,不易看懂。由于地方学院的学生基础较薄弱,学生的数学理论基础不够扎实,如离散数学、数值分析等课程掌握得不深,再加上前期的程序设计学习中不能理解程序设计的思想,比如指针的原理、寻址方式等,这在很大程度上影响学生对课程内容的理解。所以在授课时一定要精讲细讲慢讲,要注意学生的反馈,在难理解的地方多花时间,必要时通过板书逐步演算算法的执行过程,将问题进行深入浅出的分析,师生互动,使学生容易理解算法。

另外,在授课时,要对课程内容进行一定的筛选,去掉一些深入应用的课堂讲解,将这部分内容留给学生进行课外讨论和学习,把课堂时间主要用于讲透基础知识。另外在后续课程中有问题,留到后续课程后详细讨论。若不加选择地将所有教材内容全部详细讲完,一则课时数不够,二则因为赶课时可能让学生一知半解。

由于学生的基础、能力存在较大的差异,在授课时也要注意对学生进行分类施教。对小部分学习能力强、基础较好的学生,要鼓励他们进行自主学习、超进度学习,并且可以让这部分学生担任课程的答疑助手,通过答疑可以帮助同学理解课堂知识,也促进了自身更有效的掌握和消化知识;对多数能力中等的学生,要把知识点处理得更容易理解,这样才能让他们不至于因难而退,而能把课堂知识中最基本、最常用的内容掌握;对少数基础差的学生,应该提醒和鼓励他们补充缺失的基础知识,首先要先补程序设计语言基础,教学安排由易到难,只要前期能补缺,后面循序渐进就能跟上进度。

2.实践教学方法思考。数据结构与算法课程的教学目的之一在于培养学生有一定的程序阅读能力、设计能力,面对实际问题,有分析和解决问题的能力,逻辑思维能力提高,能将理论知识用于实践。因此在教学中特别需要重视上机实践的环节。

要让学生多动手、多练习、多调试分析,在练习中才知道自己对哪些细节还没理解,才能真正的掌握知识。

在上机实践中观察发现,只有少部分同学可以比较顺利的掌握教学内容并实现完整算法,多数同学对简单的算法尚能编写程序,稍复杂点的入手就比较困难。

所以,我们对实践教学内容进行如下思考设计:在整个学期的实践处理上,一方面保留基础性实验,这部分实验难度不大,且考虑给出初步代码框架,只留下关键部分让学生去编写,使学生在初学时不至于无从入手,能顺利进行编程实验,理解和消化教学内容,从而获得一定的成就感,提高学习的积极性。在这个阶段还要有意识地让学生学会自己调试修改程序,从能调试语法错误到能调试逻辑错误,这样才能真正让学生掌握解决问题的能力,不会过分依赖老师。另一方面,增加一些实用性较强、难度稍大的课后实验,让学生进行分组完成。学生可以通过小组讨论得出算法流程,然后再上机编程实现。例如,要求随机生成一个迷宫后,自动求出迷宫的解,又如九皇后问题的解,等等。通过这些有趣实用的实验,有利于加强学生对知识的应用能力、分析问题的能力和团队合作的协调能力,激发学生的求知欲。

在上机实践过程中,通常对算法的步骤一开始是不熟悉的,编程有助于帮助学生发现在听课时的盲点,能回头再去找答案,加深对理论算法的理解,同时多上机操作能培养学生良好的程序编写习惯和风格,注重程序注解的说明。

3.思维导图在理论教学中的应用。思维导图是近年来的流行教学手段之一。思维导图是使用一个中央关键词或想法引起形象化的构造和分类的想法,它采用了层级的技巧,把各级主题的关系用层级图来显示,它可以将思维形象化,由一个思考中心点,向外发散出成千上万的关结点,每个关结点又可以成为另一个中心主题,呈现放射性的结构。

在数据结构一课的教学中,课程的内容就是围绕一个中心问题提出新问题,提出解决新问题的设置,所以在教学过程中,不妨应用思维导图,通过导图的方向来引导学生的思考方向,通过层级对比关系,让学生对知识的体系更加清晰明确,能更好地自己去总结、对比,提出新的问题。

例如,数据结构与算法的出发点是对数据的操作处理,可以分成数据结构和数据操作两部分。数据结构的定义是相互之间存在一种或多种特定关系的数据元素的集合,分为集合、线性结构、树形结构、图状结构四种。数据之间的关系由逻辑结构体现,在计算机上具体实现这四种结构靠的是存储结构,存储结构又分为顺序存储和链式存储。数据的操作为基本的增删查改。结合数据的逻辑关系,针对采用的实现存储方式,讨论和研究四种数据操作的实现方法,就是这门课的中心和目的。我们可以将上面的关系以图1所示的思维导图来展示。

通过图1的思维导图的关系分析,学生能清楚的知道后续每个章节的任务,比如线性表一章,任务是掌握元素的关系为线性结构,在取顺序结构存储时,增删查改是怎么实现的,取链式存储时,增删查改又是怎么实现的,方便学生有目的有方向的去预习、去复习,去对比、去思考,有利于激发学生的学习兴趣。

4.教学考核方式的思考。本课程是实践性课程,衡量这门课学得好坏,不能光检查学生能不能理解课程知识内容,还要检查学生能不能编程并检验理论内容,故考核的方法采用上机考查和理论考查两种。上机考查是指提供问题后,要求学生结合相应的软件,选择合适的算法,编写程序进行调试后得到运行结果;理论考查则采用笔试的形式,要求学生针对某个问题,分析后描述解决问题的步骤,最后综合平时的实验作业成绩与上机考查成绩、理论考查卷面成绩得出最后成绩。

三、总结

近年来,地方高等院校一直推动应用型人才的教学改革,使得培养出的学生都能成为社会需求的应用型人才。本文结合多年对信息与计算科学专业的数据结构与算法课程的教学经验,提出了几点改革的思考方向,并探讨了一系列的教学改革措施,以期在教学中更好地让学生掌握知识、提高能力,达到应用型人才培養的目标。

参考文献

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

[2]林书扬.为什么要给思维导图“转基因”——浅谈“学科思维导图”与“思维导图”[J].中国信息技术教育,2015,(18):80-81.