◎郑晨
学习了国培计划,了解到抛锚式教学法。希望应用于《数据结构》这一章。数据结构主要介绍现实世界的一类信息是怎么储存在计算机中的。本节选取的是并查集的知识,直接引入知识,学生会觉得枯燥难以理解。如果能够选择合适的具体应用的例子结合,引入学生思考,要求学生解决面临的真实问题,并且解决问题的过程可以直接反映学习的效果。学生通过自身相关的经验,学习到并查集的全面思想。
抛锚式教学法,顾名思义是抛出一个与知识相应的情景,学生通过融入情境,对情境进行分析,得到相应的知识的一个内化的过程。在内化知识的过程中,可以联想这个情景到其它相关情景事物。达到知识相应的迁移。这种方法非常符合构建主义思想。
(1)教学引入:教师提出情景:“在你周围的朋友也许你并不知道现在站在你身边的某个朋友是你的亲戚。他可能是你的外公的外祖父的表哥的女婿的小姨子的外孙女的表姐的孙子。两个人是否是亲戚如何判断呢?要是你能得到完整的家谱,也许通过很长的时间是行的通的。如果家族年份过久,实在太庞大,家族关系辈分比较复杂,这就很难行的通了。这怎么办呢,我想计算机就是能帮助我们完成。比如你得到一些家族关系的信息,如张燕是李华的姨妈,李华是王晓是妈妈。你可以知道王晓和李华也是亲戚关系。你能否给出一个程序,以很快的速度能给出家某某和某某某是否存在家族关系的回答。”
(2)教学过程
1)什么是并查集:并查集(union-find set)是一种用于分离集合操作的抽象数据类型。它所处理的是“集合"之同的关系,即动态地维护和处理集合元素之间复杂的关系,当给出两个元素的一个无集合。“并”、“査”和“集”三字由此而来。在这种数据类型中,n个不同的元素被分为若干组,每组是一个集合,这种集合叫做分离集合(disjoint se)。并查集支持查找一个元素所属的集合。
2)并查集支持哪些操作:
MAKE(x):建立一个新的集合,其仅有的成员(同时就是代表)是x。由于各集合是分离的,要求x没有在其他集合中出现过。
UNIONN(x,y):将包含x和y的动态集合(例如Sx和Sy)合并为一个新的集合,假定在此操作前这两个集合是分离的。结果的集合代表是Sx Sy的某个成员。一般来说,在不同的实现中通常都以Sx或者Sy的代表作为新集合的代表。此后,由新的集合S代替了原来的Sx和Sy。
FIND(x):返回一个指向包含x的集合的代表。
判断x,y是否在一个集合
3)具体步骤:
①、元素合并;
②、对输入的数据进行判断:是否在同一个集合里;
4)代码实现:
优化代码:查找祖先过程中路径压缩
(3)课后总结:并查集并不只是使用于亲戚关系中,各种组织机构及生产活动场景、科研场景中都可能使用到,希望同学们能够将多思考,学习了并查集能在生活学习其它情况下中有所启发。
(4)教学效果。课堂效果好,学生兴趣高,多数学生课后代码能比较快的完成,少数学生经过课后思考也能完成相应的代码。课后学生反映“能够感受到现在大数据是怎么实现的了,数据结构、算法的世界真是美丽”。教学反映相对比较正面积极。
抛锚式教学法就是在老师的指导下,将具体的问题交由学生自己分析。引导学生身临其境,真正的存在于知识之中。因此“抛锚式教学法”是一种典型的以学生体验为中心的教学方式,充分地发挥学生的主体性。但是关键点就是需要引导学生进行知识的迁移,使其能将知识运用于其它环境之中。