数据结构之教法例解
徐浩峰
数据结构是计算机存储、组织数据的方式,它是相互之间存在的一种或多种特定关系的数据元素的集合,主要涉及数据的逻辑结构、存储结构及运算三个方面。数据结构是信息技术学科的核心内容之一,对培养学生的信息意识与计算思维、深入理解并掌握信息技术学科知识与实践方法、形成学科核心素养具有非常重要的作用。通过对本单元的学习,学生能在掌握常用数据结构的概念、特点、操作、编程实现方法等内容的基础上,对简单的数据结构进行分析,选择恰当的数据结构,并用一种程序设计语言编程实现,在问题解决过程中对数据抽象、数据结构的思想与方法有初步的认识。
高中学生经过了必修模块的学习,已具备一定的信息素养,但对数据、数据结构等概念还是模糊的。面对这样的学情,单纯讲理论,不符合学生的认知特点。因此,要通过活动、任务驱动,引导学生自主学习,合作探究,激发学生研究性学习的热情。
课程引入(分组讨论)
学生活动:分组讨论超市商品的查找方法,哪种方法更有效率?(一种是随机排列,一种是按商品所属类别进行分类,如图1所示)
经过分组讨论,学生很快得出结论:合理地组织、安排商品,对查找商品的效率有非常大的影响。那么,在计算机中存放数据也一样,当数据的组织方式、数据之间的关系不同时,对数据的处理过程就会使用不同的方法,处理的效率也会大不相同。
由此引出数据结构的概念:数据元素以及数据元素之间的关系构成的集合称为数据结构(Data Structure)。
数据结构的教学,要得法,要根据不同的需求采用适合的方法。在引入上,设计在教学中能起到示范作用的实例,如本例中让学生从超市商品的查找中迅速理解数据是需要用一定结构来加以组织的,从而对如何组织数据产生兴趣。真实的事例在生活中比比皆是,教师在教学中要善于发现和利用,并进行精心设计,认真落实引导的环节。
课程内容(讲解讲授)
授课方式:讲解+演示。
1.数据的逻辑结构
数据的逻辑结构是指数据元素相互之间的逻辑关系,逻辑结构有四种,如下页图2所示。
这四种结构的区别在于集合结构没有对应关系,线性结构是一对一,树形结构是一对多,图形结构是多对多。
2.数据的存储结构
数据的存储结构是指数据结构在计算机存储器中的存储方式,又称物理结构,存储结构有两种,如图3所示。
这两种结构的区别在于顺序结构是将数据元素存储在连续的存储单元里,其数据间的逻辑关系和物理关系是一致的,链式结构则是将数据元素存储在任意的存储單元里,可以是不连续的。
数据结构的教学,要适度,即对概念和操作的要深浅、难易适度。本环节是对新知识的介绍与讲解,在教学时,要注意由易到难,要从基本的、典型的数据结构入手,通过剖析实例,由简到繁,从个别到一般,从具体到抽象,逐步讲清数据结构的基本概念。本环节的难点在于存储结构的理解,教学时一定要注意对重难点区别对待、分别要求。
互动环节(学生活动)
为使学生更好地理解链式结构,设计课堂活动如下:
首先将每位学生定好坐标,如第X排第Y列,任意选取5位学生,在每位学生身上藏一个盒子代表宝藏,同时放一张写有下一位学生坐标的纸,在第五位学生身上藏一个奖品代表最终宝藏。游戏开始,教师先出一个字谜,谜底是两个数字,即第一位学生的X,Y坐标,找到第一位学生后,在其身上找出宝藏及下一位学生的坐标,直至找到最终宝藏。
本单元的难点是对链式结构的理解,之所以安排这个互动环节,就是为了让学生更形象直观地发现,原来链式结构就是通过一个个的地址把散落在不同存储空间的数据串联在一起,用游戏的方式让学生乐于接受、乐于发现。本环节的关键不在于寻找宝藏这个结果,而在于引导学生去理解链式存储结构的概念。这也是对课程标准中提出的“可以通过设计范例,引导学生理解数据结构、抽象数据类型等基本概念”要求的具体落实。
活动实践(分组活动)
数据的存储方式不同,使得对数据进行同一操作的实现方法也不同,如对于插入操作,顺序结构中在指定位置插入一个数据,需要将插入点之后的数据全部后移一位,空出一个位置放置插入的数据,如图4所示。
本环节是为了让学生把学到的知识落实到实践中,做到学做合一,在实践中更好地理解本单元知识点。学生在学习、掌握了本单元的理论知识后,对动手将理论落实到实践中是比较积极的,这个环节中还可以举DNA链条做实例,让学生更易于理解。学生从学到做,完成了一次实践的提升,掌握了解决问题的方法,也提高了解决问题的关键能力。
课后反思
数据结构是算法与程序设计的基础,也是编程的重要入门知识,学生学习并熟练掌握数据结构是学好编程的第一步。在本单元中,学习的重点是理解数据结构几种逻辑关系的区别,难点是存储结构的理解与掌握,尤其是链式结构的存储原理。在一般情况下,学生对链式结构的存储原理理解都不是非常好,但在课堂互动环节后,基本都能理解链式结构的存储方法,也明白了链式存储在空间利用率上的优势。在随后的课堂作业中,也基本能顺利完成链式结构的插入操作。
回顾本单元的教学,数据结构是一个极其重要的知识点。让学生在教学中,教师以项目活动为载体,在问题解决的过程中逐步形成计算思维,提高学生的数字化学习与创新能力,并使其在今后的学习中能自行抽象特征,建立结构模型,合理组织数据,运用合理的算法形成解决问题的方案。因此,在教学中,教师应注重给学生建立适当、真实的数学模型,以基于生活项目的学习方式,将技能培养与思维发展融入解决实际任务的过程中,从而使学生体验到信息技术的社会性建构,提高其核心素养。