理解结构概念,认识结构作用

    

    主持人

    李维明,教育部普通高中信息技术课标修订组核心成员,正高级教师(教授)

    主持人语:自2019年9月采用新课标新教材开展教学以来,北京、天津、山东、海南、辽宁等5个省(市)大多完成了必修模块的教学,部分省(市)还进行了学业水平合格考试,取得了良好的成效。今年,教育部又组织专家对课标进行了修订,颁布了最新版的《普通高中信息技术课程标准(2017年版2020修订)》,更加明晰了学科核心素养的内涵和内容模块的结构,增强了教学应用的方向感。当下,新课标新教材的教学实践已经进入到选择性必修模块教学的新阶段,怎么选择、怎么教学是必须面临的重要问题。为配合即将到来的选择性必修课程的教学,本期继续进行“普通高中信息技术新课程实施”之选择性必修模块的教学等系列专题的研讨,以飨读者。同时,也希望广大信息技术教师、教研人员积极参与,献计献策,共同促进学科新课标新课程的顺利实施、健康发展。欢迎大家不吝赐稿(358211798@qq.com)。

    普通高中信息技术新课标实施之教学专题四

    数据与数据结构的教学——测评

    在明确了数据的内涵与外延、理解了数据的价值与作用之后,对数据间存在的某些特定的关系需要进行必要的研究,也就是對数据结构进行研究,以提高数据存储效率及运算效率。

    理解数据结构的概念

    数据结构是计算机存储、组织数据的方式,是相互之间存在一种或多种特定关系的数据元素的集合。它主要涉及数据的逻辑结构、存储结构及运算三个方面。

    数据的逻辑结构;数据的逻辑结构是指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的前后间关系,而与它们在计算机中的存储位置无关。逻辑结构包括集合、线性结构、树形结构、图形结构等。

    数据的存储结构:数据的逻辑结构在计算机存储空间中的存放形式称为数据的物理结构(也称为存储结构)。一般来说,一种数据结构的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序存储、链式存储、索引存储等。

    运算:算法研究的目的是更有效地处理数据,提高数据运算效率。数据的运算是定义在数据的逻辑结构上的,但运算的具体实现要在存储结构上进行。运算一般有检索、插入、删除、更新、排序等几种常用运算。

    数据的结构是多样的,也有不少是复杂的,选择性必修课程不可能全面开花,而只能了解这些基本的概念及简单的结构,更多的内容可以在高校学习中去了解。

    认识数据结构的作用

    数据结构在解决问题的过程中有着重要的作用,要设计出一个结构好效率高的程序,必须研究数据的特性及数据间的相互关系及其对应的存储表示,并利用这些特性和关系设计出相应的算法和程序,精心选择的数据结构则可以带来最优效率的算法。

    在实际应用中,数据结构不同,对数据进行操作的方法就会不同,相应的运算方法也就不同。例如,要在顺序存储结构的一组数据中插入一个新数据,操作时就需要将此插入点后的所有数据都往后移动一个位置,以空出一个位置来存放新数据,其操作效率低;而如果采用链式存储的结构,则只需要把插入点之前的地址指向新数据,把新数据的地址指向原插入点之后的数据即可,其操作极为简便,效率明显提高。形象地说,顺序存储结构就像银行里的排队办事,人们一个挨着一个地在窗口排队,“夹塞”就会影响整个队列;而链式存储结构就像银行里的叫号办事,人们取了号散坐在不同的位置,工作人员依次叫号,被叫到号才去窗口办理,这样既保证了办事的秩序,又免去了站立排队的辛苦,因而被广泛采用。

    在信息系统开发设计过程中,数据结构的选择更是一个基本的设计考虑因素。特别是大型的复杂的应用系统,其系统实现的困难程度和系统构造的质量都严重地依赖于是否选择了最优的数据结构。由此可见,无论是简单生活事务的应用,还是复杂信息系统的设计,数据结构的选择都是必须考虑的重要因素,其作用不可小觑。

    教学建议

    数据结构的教学应当注意两点,即适度、得法。适度就是要求在教学中对概念的要求深浅适度,对操作的要求要难易适度;得法就是根据不同的教学需求,采用适合的教学方法。

    《普通高中信息技术课程标准(2017年版2020修订)》(以下简称《标准》)中涉及数据结构相关概念的要求既有“理解数据结构的概念”这样的总要求,又有“理解数组、链表等基本数据结构的概念”“理解包括字符串、队列、栈在内的线性表的概念”“了解二叉树的概念”等涉及某类数据结构的具体要求。在教学时,要从基本的、典型的数据结构入手,通过剖析数据结构的实例,由简到繁,从个别到一般,从具体的应用到抽象的归纳,逐步理解数据结构的基本概念,认识数据结构的重要作用。

    由于数据结构涉及面广、形式多样,教学时对其操作应用的要求不能过高,建议严格按照《标准》要求的程度展开教学,以免徒增难度。例如,对于“数组”“链表”这些基本的数据结构,《标准》要求“能编程实现其相关操作”,而对于“二叉树”这样的抽象数据结构,《标准》则只要求“了解”基本操作方法。所以,教学时一定要注意区别对待、分别要求,以便明确地表述数据结构与算法间的关系,更好地完成教学任务,达成教学目标。

    教学的方法多种多样,如何才能“得法”,其实也不难:为了便于教学,《标准》在每个模块“内容要求”之后,都给出了明确的“教学提示”,本模块就给出了“算法与数据结构是问题求解中相辅相成、不可分割的两个方面。在本模块教学中,可以通过设计范例,引导学生理解数据结构、抽象数据类型等基本概念”这样的提示,依据这些提示开展教学,就可“得法”。

    《标准》中提到的“设计范例”,其字面意思非常明确,就是指能在教学中起到示范作用的有关数据结构操作的实例,这样的实例在教科书中比比皆是,教学时一定要充分利用。其利用的关键不在于范例本身求解的结果,而在于引导学生去理解数据结构的概念。也就是说,教学的过程,也就是引导的过程是非常关键的,一定要精心设计,认真落实。

    同时,《标准》还提示:“在学习数组、链表以及线性表内容时,可以引导学生参与基于真实问题的项目学习,经历建立数据模型、抽象数据、选择数据结构、算法实现、上机调试、问题解决的全过程。”这里提到了“基于真实问题的项目学习”,什么是“真实问题”?各版本的教材都有自己的表达,但归结起来无非就是两类:一类是学校学生成绩管理;另一类是商场销售数据管理。所以,如何将项目活动设计得生动而又利于学习,这是教学首先需要考虑的问题。更为重要的是,要让学生经历“建立数据模型”“抽象数据”“选择数据结构”“算法实现”“上机调试”“问题解决”的全过程,就必须把项目活动设计得可以驱动各个环节的学习,让学生在“经历”之中探索用计算机解决问题的途径,掌握用计算机解决问题的方法,提高用计算机解决问题的关键能力,逐步形成用计算机解决问题的思维方式,提升学科核心素养。这样才能使项目学习真正具有活动的价值、教学的意义,这才可以称之为“得法”。

    正如《标准》指出的那样,“数据结构是信息技术学科的核心内容之一,对培养学生的信息意识与计算思维、深入理解并掌握信息技术学科知识与实践方法、形成学科核心素养,具有非常重要的作用”。数据结构的教学意义如此重大,作用非同小可,在实施过程中各位教师一定要认真对待,绝不可等闲视之。