APP下载

面向普通二本院校的数据结构课程教学改革探索

2022-09-28康顺

高教学刊 2022年27期
关键词:数据结构知识点算法

康顺

(湖北理工学院 电气与电子信息工程学院,湖北 黄石 435003)

1968 年Knuth开创了数据结构的最初体系,所著的《计算机程序设计艺术》第一卷《基本算法》是第一本较系统地阐述数据的逻辑结构和存储结构及其操作的著作。20 世纪70 年代初,数据结构作为一门独立的课程开始进入大学课堂。随着大数据、云计算和人工智能等新兴产业的发展,与注重学术型、研究型人才培养的“双一流”高校相比,普通二本院校更加注重应用型与行业特色人才的培养,这不仅要求大学生掌握相关科学文化知识,而且要具有较强的实践创新能力。数据结构与算法在新兴产业的搜索、查找及匹配计算中发挥着基础性作用。具备利用数据存储、组织方式解决实际问题的能力是各企事业单位的岗位需求,也是大学数据结构课程教学的人才培养目标之一。对此,如何合理进行数据结构知识内容讲授,使学生真正理解、消化所学知识点,达到学以致用,具备实践创新能力是数据结构课程教学面临的一大难题,也是课程教学改革的终极目标。

在数据结构课程教学过程中,由于数据结构算法理论过于抽象,逻辑性强,概念理解难度大,内容多,学生往往难以把握整体的知识体系与结构,难以对数据结构的本质有清晰的认识和准确理解,感觉课堂上思路跟不上,知识点难以消化,上机具体实践无从下手,针对一个实际问题,难以抽象出其所涉及的数据结构模型,设计合理的存储结构。为此,研究从教学理念、教学过程中课外自主阅读、前导课程知识回顾、案例驱动教学、实践能力培养和成绩评定方面对数据结构课程教学进行初步探索。

一、教学理念改革

教学理念是教育者头脑中存在的有关教师、学生、知识、能力、素质及质量等方面的诸种信念和理论的综合体,由于研究视角差异,不同学者对教学理念理解不同。究其本质,研究认为教学理念主要包括三方面:教学互动性、学生主体性和知识重构性。

(一)教学互动性

教学是一种有组织、有目的和有计划的师生互动活动。传统教学观念把教学当作知识的传授,这种“灌输式”教学理念单调、乏味。因此,在数据结构授课中,应使学生由被动转为主动,由静态转为动态,由单向转为双向,加强师生在知识、情感、思想和精神层面的碰撞,转变教学活动角色,教学过程中学生既是学习者,又是反馈者;教师既是传道者,也是受动者,通过一种提出问题、引导和解决问题的方式,使学生在掌握知识的同时能够发现问题,知道如何去解决问题,培养学有所用的成就感,提高学生对知识的渴求。

(二)学生主体性

德国教育家第斯多惠说:“一个坏的教师奉送真理,一个好的教师则教人发现真理。”教学过程在强调教法的同时,也要加强学生学法的指导,以学论教,培养学生的自学能力和优良学习品质,让学生“乐学”“会学”。为什么要学数据结构、数据结构有什么用是数据结构开篇必讲内容,如果学生不清楚数据结构的价值与意义,很容易打消学习积极性。最佳的方法是将所学知识点与学生生活实践结合,调动学生主体能动性,培养主动寻求解决问题的能力。对课堂表现活跃的学生予以适当激励,如在一些网络公开课中,西方教师以分发糖果的方式激励课堂主动提问、回答问题,既达到了活跃课堂氛围,又使学生达到自我认同感与成就感,肯定自己能力的同时,产生一种自我激励意识,促进了OBE 工程教育中“以学生为中心”的教育理念的实施。

(三)知识重构性

传统教学强调的是学生从不知到知、从知道少到知道多的一种外铄过程,注重的是学生外在活动变化,忽略了学生知识的内化过程,对数据结构课程也不外如是。要使学生能够具备举一反三的能力,就要求学生不仅要理解并掌握数据结构知识点,还要建立起各知识点之间的联系,将书本上的知识内化形成自己的知识体系结构。这就要求任课教师引导学生按照自己的理解与认知,建立自己的知识体系,能够合理地将各知识点穿插起来,梳理形成知识链,达到举一反三、融会贯通。

二、教学方法改革

(一)课外自主阅读

除了课程教材,课外参考书也是辅助学习与教学的必要资料,如《大话数据结构》一书,该书引用了各种各样的生活知识来类比,并充分运用图形语言来体现抽象内容,既可以增加知识讲授趣味性,又促进了学生对知识的理解;《算法图解》一书示例丰富,图文并茂,以让人容易理解的方式阐释了算法;《C 语言陷阱与缺陷》可进一步巩固学生的C 语言功底。因此,课外参考书籍是对数据结构课程学习、教学的一个良好补充。

(二)前导课程知识回顾

C 语言作为数据结构的前导课之一,其知识掌握程度直接影响着对数据结构的学习效果。授课过程发现,大部分学生C 语言基础不扎实,特别是函数、指针和结构体,这也是C 语言学习的难点内容。缺乏良好的基础铺垫,对教师讲授和学生掌握数据结构而言都是一项艰巨的任务。因此,在数据结构教学大纲和课程设计中,为C 语言函数、指针和结构体知识回顾安排一定的授课学时,针对这部分难点内容查缺补漏,也为数据结构的后继课程计算机图形学、数据库和软件工程等夯实基础,对学生知识学习起到承前启后作用。

(三)案例驱动教学

数据结构教学内容已不再局限于某一专业领域,而是涉及数据结构在不同应用中的基础性和通用性的概念、技术与应用。因此,什么是数据结构,怎样理解数据结构,这是数据结构这门课程必须首先要讲清楚的一个概念,单纯的文字描述不足以让学生清楚理解。研究从学生英语学习的角度类比,将英语单词比作数据,将语法比作结构,通过英语语句翻译的案例引导,让学生掌握数据结构这个概念,如下所示。

The future is scary but you can't just run to the past because it's familiar.

未来让人心生畏惧,但是我们不能因为习惯了过去,就逃回过去。

Success is the ability to go from one failure to another with no loss of enthusiasm.

成功是,你即使跨过一个又一个失败,但也没有失去热情。

虽然上述英语句子中都是常用单词,但是学生翻译往往与句子原意有所偏差,教学中可以此来说明掌握结构的重要性。由此类比,引出数据结构的概念,如图1 所示。

图1 数据结构概念类比

数据结构中比较难掌握,又相对重要的是树和图结构。运用案例教学不仅可使学生掌握理论知识,而且能够结合实际问题做出分析、运用所学知识解决此类问题,达到学有所用的目的。如树结构教学过程中,通过与定长编码的比较,学生应掌握为什么使用赫夫曼树编码,其优点在哪里。案例教学可将一段文本转换为赫夫曼编码,如图2 所示。或以Prim 最小生成树看武汉中心地位为例,选择全国的36 个大城市,从最小生成树结果图分析武汉在华中地区的地理地位(参考https://malagis.com/viewing-wuhan-s-central-position-with-prim-minimum-spanning-tree.html)。在最短路径搜索讲解中,利用栈结构,结合树型结构中的广度、深度优先搜索,如广度优先搜索Viterbi 算法和深度优先搜索Dijkstra 算法,比较分析路径搜索算法,如图3 所示。通过分析算法存在的不足,引出贪婪算法、启发式搜索算法和A*搜索算法,层层递进,不断改进和完善算法,提高学习兴趣。

图2 赫夫曼编码

图3 路径搜索

(四)编程能力培养

指针、结构体基础不扎实,部分学生编程实践能力差,算法转化程序时,受到程序设计语言语法的约束,往往调试程序时间长,一旦出错就无从着手。由此,可采取先模仿别人的程序,程序调试、成功运行,提高学习成就感,避免一开始就是复杂程序,打消学习积极性,逐步测试、完善程序,使学生动手能力不断得到提高。指导过程中可用在线编译器(https://www.onlinegdb.com/、https://www.jdoodle.com/c-online-compiler/)与学生共同编写程序,营造良好学习氛围。

三、教学改革对比分析

对比分析教学改革前后授课班级2017 遥感科学与技术(北斗项目)1 班与2018 遥感科学与技术(北斗项目)1 班的综合得分情况,如图4 所示,评定成绩包括:平时成绩(20%)、实验成绩(20%)、期中成绩(20%)和期末成绩(40%)。可看出教学改革后2018 遥感科学与技术(北斗项目)1 班的学生成绩总体有所提高,成绩分布更趋于正态分布,而且学生平时比较热爱学习,课堂学习氛围更为活跃。

图4 成绩分布对比

四、结束语

数据结构是一门抽象程度高、逻辑性强并注重实践的计算机类课程,对培养学生的逻辑性、动手能力具有重要作用。针对授课中存在的问题,研究论述了在教学理念和教学方法上的改革,指出了教学互动性、学生主体性和知识重构性是教学理念的三个重要方面。教学方法上,研究了课外书籍自主阅读、前导课程知识回顾、案例驱动教学、编程能力培养和成绩评定五方面的改进措施。经改革前后教学班级的对比分析,虽然取得了初步成效,但仍存不足,活学活用有待进一步加强。后期教学工作中需不断积累课程教学经验,深化教学方法改革,运用新技术与新方法探索更加有利于数据结构课程的教学模式。

猜你喜欢

数据结构知识点算法
一张图知识点
一张图知识点
第四页 知识点 歼轰-7A
基于MapReduce的改进Eclat算法
Travellng thg World Full—time for Rree
进位加法的两种算法
“翻转课堂”教学模式的探讨——以《数据结构》课程教学为例
一种改进的整周模糊度去相关算法
关于G20 的知识点
高职高专数据结构教学改革探讨