同伴教学法在数据结构教学中的应用研究
2023-08-27闫秋玲
闫秋玲
摘 要:数据结构课程在理论方面包含很多概念,且有些概念抽象难懂,同时在算法学习和实践方面也具有一定的挑战性。本研究初步探索了同伴教学法在数据结构中的应用,发现其能够有效帮助学生理解概念,深入学习算法思想,提高实践能力。
关键词:数据结构;同伴教学法;研究
作为计算机类专业的核心课程,数据结构旨在让学生掌握数据结构和算法的基本概念和技术,从而能够针对给定的问题,选择合适的数据结构并设计相应的算法操作;掌握数组、线性表、栈和队列、串、广义表、树和二叉树、图等典型数据结构及相关算法,以及内排序、查找等重要技术;培养学生良好的程序设计技能,为后续专业课程的学习打下坚实的基础。但在教学过程中,笔者发现数据结构教学存在不少问题,亟待改进。
一、数据结构教学面临的问题
大班教学下学生学习能力参差不齐。在笔者教学经历中,数据结构的课堂教学,学生人数一般不少于90人。在这种大班教学情况下,教师很难了解每一个学生的学习状况,也很难因人而异地实施教学。学生学习能力和水平参差不齐,若仅考虑多数学生的接受程度,那么就可能无法照顾学习优秀和学习较差的学生。
重理论,轻实践。数据结构课程中的知识点比较多,教师在教学过程中不可避免地会进行知识点的讲授,在培养学生实践能力方面,投入的时间相对不足。这与以能力为导向的教学目标是不太相符的。
教师缺少对学生学习认知特点的了解。学生的学习水平不仅与智力因素相关,还与非智力因素相关,如自身对学习方法、学习态度、学习策略的把握和适时调整的能力,即元认知能力。大学生以自我提升内驱力为主的外部动机对元认知的影响占主要地位,而以认知内驱力为代表的内部动机却处于次要地位。这表明大学生学习动机的功利性突出。目前,一部分学生的学习动机是为了通过考试顺利毕业,由于缺乏较强的内部动机,在学习中遇到困难时,他们便会退缩,而不去寻求解决办法。有的学生虽然有很强的学习动机,但在学习过程中害怕失败,只敢解决有把握的问题,对没把握的问题不去深究,缺少解决问题的耐心和勇气。在教学过程中,教师如果对学生的学习认知特点不够全面了解,就不容易抓住学生的学习兴趣,教学策略无法做出相应调整,使得学生的学习效果大打折扣。
针对以上问题,需要依据教育学、心理学的理论知识,选择合适的教学方法,突出学生主体地位,提高学生的元认知能力,激发其在学习方面的主人翁意识。
二、同伴教学法模式分析
为了解决数据结构教学面临的问题,在数据结构教学中可以采用同伴教学法。同伴教学法最先由美国哈佛大学物理系教授埃里克·马祖尔应用于物理教学。同伴教学法的动机是由于“知识诅咒”的原因,教师会错估学生对知识的理解能力和接受能力,而学生之间的交流则能够让他们更快取长补短,加深对知识的理解和掌握。同伴教学法的过程如下:课前,教师先布置学习任务并分发学习资料,让学生自学完成。同时,教师利用测试题对预习效果进行检验,以便安排课堂教学内容。课中,教师将本节课内容分为几个小单元,针对每一单元,教师先结合预习测验结果进行精讲,然后再进行测试,了解学生对知识的掌握情况。如果测试正确率小于30%,说明大多数学生没有理解相关知识,需要重新讲授。如果测试正确率在30%~70%之间,说明部分学生掌握了相關知识,这种情况下让学生之间进行相互讨论,互教互学。如果正确率超过70%,说明大部分学生掌握了相关知识,就可以进行下一知识点的学习。
同伴教学法中学生是学习的主体,学生之间更能抓住彼此的疑惑点,彼此之间能更快地解疑释惑。同伴教学法不仅有助于提升学生学习效果,而且也符合建构主义理论,有助于提升学生内驱力,从而有效激发学生的学习动机。同时,同伴间的交流也有利于学生审视自身学习思路和方法,从而提升元认知水平。
三、同伴教学法在数据结构教学中的应用
根据严蔚敏版数据结构教材,数据结构课程包含如下教学内容。
绪论部分,内容包括基本概念和术语、抽象数据类型的表现与实现、算法和算法分析;线性表部分,内容包括线性表的定义和特点、线性表的类型定义、线性表的顺序表示和实现、线性表的链式表示和实现、顺序表和链表的比较、线性表的应用;栈和队列部分,内容包括栈的表示和操作、栈与递归、队列的表示和操作的实现;串、数组和广义表部分,内容包括串的定义、串的类型定义、存储结构及其运算、数组、广义表;树与二叉树部分,内容包括树、二叉树的定义、抽象数据类型定义、二叉树的性质和存储结构、遍历二叉树和线索二叉树、树和森林、哈夫曼树及其应用;图部分,内容包括图的定义、图的存储结构、图的遍历、图的应用;查找部分,内容包括查找表的概念、线性表的查找、树表的查找、散列表的查找;排序部分,内容包括排序基本概念、插入排序、交换排序、选择排序、归并排序、基数排序和外部排序。
针对大学生在学习中具有一定的功利心,以自我提升为目标的外驱力高于以认知为目标的内驱力,学习中一遇到困难,容易退缩和回避的学习动机。测试题目需要依据知识点的难易度分层次、由易到难递进。最初的测试题目难度小一些,让大多数学生都能够做出来,以此帮助学生建立一定的信心。进而测试较难的知识点,并根据测试结果采用同伴教学法。
由于数据结构这门课程理论和实践并重,测试题目可以由概念测试题扩展到算法。这对测试题的设计提出了更高的要求,既要能保证教师在短时间内得到回答正确率数据,又能契合教学内容。
以线性表这部分内容为例,线性表的定义、抽象数据类型描述、线性表的顺序表示和实现、线性表的链式表示和实现在难度上是逐渐增加的。针对线性表的定义,测试题目可以设置为单选题:线性表中的元素具备什么特点?选项可设置为:A.都有一个前驱和一个后继节点。B.属于同一数据对象。C.所有整数按照次序构成一个线性表。这三个选项把线性表的主要特点都考查了。针对线性表的顺序表示和实现,以插入为例,由于重点是算法思路及其编程实现,可以让学生进行算法填空。插入位置的合法性判断、存储空间是否已满、元素的移动、新元素的插入等都可以作为考查点。针对线性表的链式存储,为了考查学生是否掌握链式存储特点,可以设置如下测试题目:
线性表L在( )情况下适用于使用链式结构实现。
A.需经常修改L中的结点值
B.需不断对L进行删除插入
C.L中含有大量的结点
D.L中结点结构复杂
在考查二叉树的概念时,可以通过实际例子设置考查题目,如:
由3个结点可以构造出多少种不同的二叉树?
A.2 B.3 C.4 D.5
而下面這道题目,既考查了二叉树本身的特点,又考查了对二叉树进行遍历的三个基本算法。
对二叉树的结点从1开始进行连续编号,要求每个结点的编号大于其左右孩子的编号,同一结点的左右孩子中,其左孩子的编号小于右孩子的编号,可采用( )遍历实现编号。
A.先序 B.中序
C.后序 D.从根开始按层次遍历
在考查算法时,测试题的形式可以灵活一点,可以是以客观题形式出现的算法填空题,也可以是对算法思路的考查。如果是对算法思路的考查,需要采用主观题形式,答题结果需要教师逐一查看。因此,教师需要精心安排测试时间,仅利用课堂时间是不够的。需要在课前先测试,结合学生学习情况,找出共性问题,以便在课堂上重点讲解。讲解后在课堂上进行第二次测试,在这一阶段,由于时间原因,不能考查主观题,要将算法思路体现在客观题上。比如给定一个具体的输入,让学生对输出结果进行选择。
例如,下面这道填空题考查了哈夫曼树的构造算法。
应用于通信的电文仅由8个字母组成,字母在电文中出现的频率分别为7、19、2、6、32、3、21、10,根据这些频率作为权值构造哈夫曼树,则这棵哈夫曼树的高度为( )。
要想写出答案,学生需要真正理解何为哈夫曼树(概念部分),以及如何构造哈夫曼树(算法部分)。
在进行具体同伴教学法时,教师需要实时观察各小组讨论情况,适当参与小组讨论。针对个别不积极参与讨论的学生,需要具体了解学生情况、学习水平、学习能力,有针对性地引导,以充分调动学生的学习主动性。
同伴教学法有助于教师克服“知识诅咒”,体现了以学生为中心的教学思想。笔者在本学期初使用同伴教学法,发现这种方法能够帮助学生理解数据结构这门课的概念和算法思路,能够很好地调动学生的学习积极性。与之前相比,学生间的学习互动多了起来,并由课堂延伸到课外。今后,笔者会针对数据结构这门课的特点,继续思考同伴教学法的组织形式和有效实施办法,以充分发挥同伴教学法对教学效果的促进作用。
参考文献:
[1]张宏如,沈烈敏.学习动机、元认知对学业成就的影响[J].心理科学,2005(1).
[2]吴英,吴波,万猛.多元化评价模式下同伴教学法在“教育研究方法”课程中的教学实践[J].遵义师范学院学报,2022(4).
[3]张翼夫,徐慧文,奚小波,等.同伴教学在高等教育实践类课程中的应用探索[J].大学教育,2022(3).
责编:应 图