“数据与数据结构”模块教学概述

    高淑印

    

    

    当今时代,互联網、物联网和云计算等技术促使数据飞速增长。数据成为最宝贵的生产要素,对数据价值的深度挖掘及应用,引发了以数据为核心的“大数据”时代的深刻变革,大数据已被视为21世纪的石油和金矿,数据驱动发展已成为大势所趋。数据结构研究的是计算机存储、组织数据的方式,是计算机科学研究的核心内容之一,对培养学生的信息意识与计算思维、深入理解并掌握信息技术学科知识与实践方法、形成学科核心素养,具有非常重要的作用。因此,《普通高中信息技术课程标准(2017年版)》将《数据与数据结构》列为高中信息技术选择性必修课程模块1,是为学科兴趣浓厚、学科专长明显的学生提供的挑战性的学习机会。

    ● 模块的内容特点

    本模块是针对数据、数据结构及其应用而设置的,通过本模块的学习,学生能进一步了解数据(包括大数据)的作用,在掌握常用数据结构的概念、特点、操作、编程实现方法等内容的基础上,能对简单的数据问题进行分析,选择恰当的数据结构,并用一种程序设计语言编程实现,在问题解决过程中对数据抽象、数据结构的思想与方法有初步的认识。

    “数据与数据结构”模块分为“数据及其价值”“数据结构”“数据结构应用”三部分内容,并给出七条具体的内容要求。

    1.数据及其价值

    数据是现实世界中各种事物和现象的抽象化和符号化。现代计算机处理的不再是单纯的数值型数据,更多的是文本、图像、声音、视频等非数值型多媒体数据。随着信息技术的普及和快速发展,对数据的获取和处理超越了科学计算的范畴,扩展到社会经济的各个领域,产生了越来越高的价值。

    2.数据结构

    为了更加高效地处理大量数据,需要把数据组织为合理的结构,并针对需要解决的问题进行不同层次的抽象,降低问题解决方案的复杂度。数据结构是本模块的核心内容,主要包括数据结构的概念、数据的存储结构、常见数据结构的概念及基本操作、抽象数据类型等内容。

    3.数据结构应用

    数据结构应用部分主要是引导学生理解如何利用常见的数据结构解决生活中的实际问题,体验问题解决的一般过程。

    ● 教学规划

    1.内容规划与课时建议

    本模块建议在高二年级开设,每学分18课时,本模块为2学分需36课时完成。课程教学的规划要依托相应版本教材进行设计,笔者以人教-中图版高中《信息技术》教材为例,建议课时如上页表1所示。

    2.学科核心素养与学业要求

    本模块的教学要树立以学科核心素养为纲的课程观,教学实施与教学评价应基于学科核心素养展开,兼顾课程标准中内容要求与学科核心素养、学业要求等方面的对应关系(如表2)。渗透项目式学习方法,从优化学习方案的设计入手,改善教师的教学,促进学生提升信息素养。

    ● 教学策略

    在教学中,要紧密联系学生生活实际,通过设计适宜的范例和有意义的项目主题,引导学生理解数据结构、抽象数据类型等基本概念。感知数据抽象、数据结构的思想与方法,理解数据结构与算法的关系,掌握选择恰当的数据结构解决生活实际问题。

    第一,分析数据与社会各领域的关系,理解数字、数值和数据的基本含义,认识数据作为新的原材料、生产资料和基础设施的价值与意义。

    随着信息技术的发展,数据已经不再是结构化的、简单的数字和数值,更多的是非结构化的文本、图像、音频、视频等数据,对数据的获取和处理也已经拓展到社会经济的各个领域。数据正在产生越来越大的价值。针对这部分内容的学习,可通过主题学习项目走进数据世界,了解数据的作用,理解数字、数值和数据的基本含义。教材围绕主题“析说身边数据”开展项目学习,建议从比较感兴趣的身边事例入手,选择常用的移动应用程序、可穿戴智能设备、共享服务实例、网上购物、智慧交通、智慧医疗、智慧校园、智能家居等作为主题,并结合主题有目的地搜集、整理和分析数据,使用思维导图设计项目方案,分析数据与社会相关领域的关系。通过剖析项目涉及的实际问题,认识并理解数据作为新的原材料、生产资料和基础设施在其中的价值和意义,更深入地体会大数据对国家、社会和个人的影响。

    建议每章用一个主题学习项目来涵盖本章的全部内容,按照项目实施进度,将项目分为若干过程或小主题,在每节中完成项目的一个过程或一个小主题。

    第二,理解数据结构的概念,认识数据的存储结构,理解数组、链表等基本数据结构的概念及基本操作,比较数组、链表的区别,明确上述两种数据结构在存储不同类型数据中的应用。

    这部分内容概念较多,建议从基础概念的理解入手。例如,中国汉字文化博大精深,用多义字排列组句,会组成含义不同的词句,引出数据结构的概念。从数据结构角度来看,汉字“读”“书”“好”都是数据,其排列顺序就是结构。以“田忌赛马”典故为例,指出使用相同的数据,采取不同的结构,却产生了不同的结果,由此引出数据结构的重要性。本章可围绕“管理个人书目”开展项目学习,以小组为单位,在阅读活动中发现并体验数据结构实例,认识数据结构在解决问题过程中的重要作用,理解数组、链表等基本数据结构的概念,能够根据需求选择合适的存储方式。通过完成项目程序“管理个人书目”,提升使用 Python语言编程的能力,为后面的学习打下扎实基础。

    项目学习建议以“边看边学边实践”的方式,做好典型教学环境和学习活动的设计。通过精细的学习设计,降低学生对教师的依赖,也有利于教师转换角色,把主要时间和精力放在如何启发、引导、帮助学生学习上,使教师成为学生真正的引导者、帮助者,充分体现“学生为主体,教师为主导”的教学策略。

    第三,理解包括字符串、队列、栈在内的线性表的概念和基本操作,并编程实现。认识抽象数据类型对数据处理的重要性,理解抽象数据类型的概念,了解二叉树的概念及其基本操作方法。

    在计算机中,数据元素并不是孤立、杂乱无序的,而是相互之间存在某种联系。分析它们的特性及其存在的关系,把数据组织为合理的结构,正是学习与研究数据结构的意义所在。数据结构不但在计算机原理、操作系统、算法与程序设计中有着重要应用,而且在现实社会的学习与生活中也随处可见。学习应用数据结构,结合问题需求进行抽象,可以降低问题解决方案的复杂度。例如,本章以“数解传统戏曲”主题开展项目学习,在了解戏曲艺术时,分析、挖掘戏曲诸要素之间关系的基本类型,探索其中蕴含的数据结构类型,理解线性表、队列、栈等基本概念。通过编写程序实现数据结构的基本操作,深入体会数据结构的实际应用。

    项目主题的选择要落实立德树人根本任务,注意科学与人文有机融合,要让学生在学到自然科学知识的同时受到良好的人文主义和传统文化的精神熏陶。戏曲项目的引入,让读懂戏曲艺术有事半功倍的效果,还可以在课程中融入中华优秀传统文化要素,渗透爱国主义教育。

    第四,通过实现数据的排序和查找,体验迭代和递归的方法,理解算法与数据结构的关系。

    算法是描述解决问题的方法。现实世界中的问题千奇百怪,算法自然也是千变万化的。可以使用搜索引擎的工作原理来帮助学生理解算法与数据结构,这样既能联系已有认知,又能提升认知水平。例如,当有人在搜索引擎上输入一个关键词进行搜索时,它会在很短时间内,在索引数据库中检索到所有包含关键词的网页,并依据人们的浏览次数与关联性等,通过一系列算法确定网页级别,排列出顺序,最终呈现在网页上。由于不同搜索引擎使用的算法不同,呈现的搜索结果页面也不相同。由此引出,购物推荐、新闻推送、旅游出行和社交通信等各种信息服务在生活中随处可见,背后起着重要作用的就是算法,而数据结构又是算法研究的基础。从而通过项目学习,进一步理解算法与数据结构的关系,编程实现数据的排序和查找,体验迭代和递归的方法,解决生活中的实际问题。

    选择性必修课程相比必修课程内容难度要求有所增加,学生的思维发展存在“由浅入深、由易到难、循序渐进、螺旋上升”的特性,学习活动的设计要有利于激发学生的深度思考,引导学生通过实践方式把学习的技能、方法迁移到新的情境中,并有所创新。