数据结构教学方法探索与研究
来源:用户上传
作者:刘丹 刘昆 孙宁
摘要:数据结构是计算机专业的核心课程,由于其内容抽象、知识点多、算法复杂,导致学生学习效果不理想,本文通过对实际教学过程中的主要问题进行分析和研究,结合多年的教学经验,提出了一些教学改革的思路和办法。
关键词:数据结构;教学过程;教学改革
中图分类号:G642 文献标识码:A
文章编号:1009-3044(2019)27-0145-02
1引言
数据结构在计算机科学中是一门综合性的专业基础课,主要研究数据之间的逻辑结构、数据在计算机中的存储结构,以及与数据处理相关的各种算法。与其他课程的独立性不同,数据结构课程具有很强的承前启后的作用,既是《C语言程序设计》《离散数学》等前导课程的延伸和扩展,也是《数据库原理》《操作系统》和《编译原理》等后续课程的铺垫和基础。所以数据结构在计算机课程的教学中占有十分重要的位置,可是,目前很多学校在实际教学过程中遇到各种困难,虽然老师和学生都花费了大量的实际和精力,可以教学效果却并不理想。
2存在的主要问题
2.1前导课程课程基础薄弱
C语言在数据结构课程中有着非常广泛的应用,数据结构中的算法主要是用C语言实现的,可是C语言在大一上学期开设,一方面很多学生还没有从高中那种被动的、题海战术的学习模式转变过来,可以自己合理地制定学习计划,有效率的利用课外时间完成学习内容,另一方面,虽然很多学生在高中期间已经接触到了信息类的课程,可是这类课程在高中阶段并不受到重视,所以很多学生在一开始接触到程序设计类的课程时,不适应教学内容以及思考、解决问题的思维方式,种种原因导致C语言学习效果不理想,特别是对在数据结构中有重要应用的结构体、指针等内容理解不深刻,严重影响数据结构课程的听讲效果。
2.2课程内容抽象有难度,学生理解有困难
数据结构课程知识点丰富,内容抽象、分布在各章中的算法和技术众多,学习任务繁重,从c语言中的整型、字符型等简单数据类型一下跳跃到树、图等复杂的抽象数据类型,需要学生具备一定的抽象思维的能力,而这种能力是需要一定的训练才能获得的,所以很多学生反映难以将相关知识点形象化、具体化,从而难以理解课堂内容。
2.3实践环节不受到重视
数据结构是一门理论与实践并重的课程,可是很多高校在制定教学大纲时重理论轻实践,有些高校甚至直接砍掉了实验教学,导致学生只会纸上谈兵,在解决问题时不知道应该选择什么数据结构,采用哪一种算法,更不用说上机调试代码的能力了。
2.4考核方式单一
现在传统的课程考核方式是期末成绩+平时成绩。期末成绩主要是笔试的成绩,平时成绩主要包括出勤、实验报告。这种形式过于偏颇,不能综合的考查出学生的理论和实践的掌握水平,只涵盖出勤和实验报告的平时成绩也不能全面完整的反映一个学生的平时表现。
3相應的改进方法
3.1对C语言知识有针对性的复习
C语言是数据结构学习的基础,一般C语言开设在大一的上学期,数据结构开设在大二的上学期,两门课程中间间隔了半年的时间,C语言的掌握程度直接影响到数据结构的学习效果。所以有必要在开课的第一周利用4-6个学时对C语言中的结构体、指针等知识点进行梳理和强化,为数据结构的学习做好准备工作。
3.2采用灵活多样的教学手段
数据结构的内容抽象、晦涩、难懂,如果枯燥的讲授书上的理论知识,势必会造成学生的厌学情绪。所以需要精心设计教学环节,教学内容,改进教学模式,丰富教学手段。
1)任课教师在教学过程中要避免照本宣科,多举一些在实际生活中比较常见的例子帮助学生理解和消化相关的知识点。例如,在讲到队列的先进先出的特性时,可以举食堂排队打饭的例子,来得早的同学排在队伍前面,先买好饭从队伍出来;在讲到栈的后进先出特性的时候,可以举洗盘子的例子,洗干净的盘子放在最上面,用盘子的时候也是从最上面取;在讲到树的一对多的特性的时候,可以以学校为例,一所大学包含若干个学院,一个学院包含若干个系,一个系包含若干个专业;在讲到图的多对多的特性的时候,用城市之间的交通状况解释,更容易理解,任何一个城市都可以通往其他的多个城市。通过这些身边的例子,可以把抽象的概念具体化、形象化,帮助学生理解和消化相关的知识点,吸引学生的兴趣,抓住学生的注意力,加深对知识的理解和记忆。
2)数据结构的内容抽象有难度,传统的板书+PPT的教学方式难以满足教学需求,所以需要设计更加立体、丰富的教学环节。把教学任务划分成课前、课上和课后。首先,在每周开课前,老师提前布置一些和下周教学内容相关的问题,并提供相应的解题思路,以及解决问题需要用到的知识和方法,要求学生在开课前做好必要的预习工作,对下周的学习任务有一个初步的了解,并确立相关的学习目标,通过这种方法,把整个课程的学习目标划分成每周的学习目标,可以帮助学生排除畏难的情绪,更有利于树立学会、学好的信心。
其次,在课堂上,在讲到抽象的知识点时,可以用形象生动的动画或视频取代枯燥的文字,对于复杂的算法,不要急于抛出最后的代码和运行结果,而是应该一步步引导学生理解算法的设计思路,要由什么样的输入数据得到什么样的输出结果,应该如何组织数据之间的逻辑关系,选择哪种存储结构,如何对数据进行加工处理,让学生掌握算法设计的能力。
在课后,要结合本周的教学内容,精心设计若干个任务,要求学生按时完成,同时考虑到学生的个体差异性,应该有针对性的给不同的学生布置不同难度的任务,使学生经过一定的努力可以实现任务目标,这样可以让学生获得成就感,保持学习的兴趣。
3.3加强实践环节的训练
数据结构是一门理论与实践并重的课程,为了让学生具备解决实际问题的能力,该门课程的实践环节安排设计成三个不同难度的阶段,分别是验证性实验、设计性实验、项目合作。首先通过验证陛实验,让学生理解和掌握书上的基础知识和经典算法,锻炼学生的上机调试程序的能力,在这个基础上,通过对基础算法的灵活应用完成设计性实验,进一步训练学生的计算思维能力,最后,以解决实际问题为目标,学生以小组的形式分工合作完成一个适当规模的项目,达到锻炼学生分析解决问题,设计算法的能力。
3.4完善考核评价体系
建立多方位、立体的考核评价体系,将课程考核贯穿整个教学过程,不再一考定成绩,加强教学过程监督管理,以任务驱动的方式督促学生学习的积极性,以现场答辩的方式取代提交纸质报告,并作为平时成绩的考核依据,这种方式能更真实地反映出学生的学习状况,在期末考试中,采用笔试+上机的考试模式,除了传统的选择、填空、设计等笔试题型,在上机考试中考察学生的改错、调试、编程的能力,这样有助于改善学生死记硬背,重理论轻实践的学习态度。
4结束语
综上所述,数据结构是计算机本科教育的核心基础课程,由于其内容抽象,逻辑性较强,算法有难度,在实际教学过程中存在一定难度。本文详细分析了一些常见的问题,并提出了针对性的解决方法,可以提高学生的学习兴趣,培养学生的计算思维能力,提高学生分析问题、解决问题的能力,真正为社会培养出高质量的计算机专业人才。
转载注明来源:https://www.xzbu.com/8/view-15040415.htm