数据结构的教学应当注意两点:适度,得法。适度,就是要求在教学中对概念的要求深浅适度,对操作的要求要难易适度;得法,就是根据不同的教学需求,采用适合的教学方法。
在《标准》中涉及数据结构相关概念的要求既有“理解数据结构的概念”这样的总的要求,更有“理解数组、链表等基本数据结构的概念”、“理解包括字符串、队列、栈在内的线性表的概念”、“了解二叉树的概念”等涉及某类数据结构的具体要求。在教学时,要从基本的、典型的数据结构入手,通过剖析数据结构的实例,由简到繁,从个别到一般,从具体的应用到抽象的归纳,逐步理解数据结构的基本概念,认识数据结构的重要作用。
由于数据结构涉及面广、形式多样,教学时对其操作应用的要求不能要求过高,建议严格按照《标准》要求的程度展开教学,以免徒增难度。比如,对于“数组”、“链表”这些基本的数据结构,《标准》要求“能编程实现其相关操作”,而对于“二叉树”这样的抽象数据结构,《标准》则只要求“了解”基本操作方法。所以,教学时一定要注意区别对待、分别要求,以便明确地表述数据结构与算法间的关系,更好地完成教学任务、达成教学目标。
说到教学的方法,那是多种多样,如何才能“得法”,其实也不难:为了便于教学,《标准》在每个模块“内容要求”之后,都给出了明确的“教学提示”,本模块就给出了“算法与数据结构是问题求解中相辅相成、不可分割的两个方面。在本模块教学中,可以通过设计范例,引导学生理解数据结构、抽象数据类型等基本概念”这样的提示,依据这些提示开展教学,就可“得法”。
《标准》在这里提到的“设计范例”,其字面意思非常明确,就是指能在教学中起到示范作用的有关数据结构操作的实例,这样的实例在教科书中比比皆是,教学时一定要充分利用。其利用的关键不在范例本身求解的结果,而在于“引导学生”去“理解”数据结构的概念。也就是说,教学的过程,也就是引导的过程是非常关键的,一定要精心设计,认真落实。
同时《标准》还提示:“在学习数组、链表以及线性表内容时,可以引导学生参与基于真实问题的项目学习,经历建立数据模型、抽象数据、选择数据结构、算法实现、上机调试、问题解决的全过程。”这里提到了“基于真实问题的项目学习”,什么是“真实问题”呢?各教材都有自己的表达,但归结起来无非两类:一类是学校学生成绩管理,另一类是商场销售数据管理,也许学生能够接触到的真实也就只有这些了,所以如何将项目活动设计得生动而又利于学习,这是教学首先需要考虑的问题。更为重要的是,要让学生“经历”“建立数据模型”、“抽象数据”、“选择数据结构”、“算法实现”、“上机调试”、“问题解决”的“全过程”,就必须把项目活动设计得可以驱动各个环节的学习,让学生在“经历”之中探索用计算机解决问题的途径,掌握用计算机解决问题的方法,提高用计算机解决问题的关键能力,逐步形成用计算机解决问题的思维方式,提升学科核心素养。这样才使项目学习真正具有活动的价值、教学的意义,这才可以称之为“得法”。
正如《标准》指出的那样,“数据结构是信息技术学科的核心内容之一,对培养学生的信息意识与计算思维、深入理解并掌握信息技术学科知识与实践方法、形成学科核心素养,具有非常重要的作用”。数据结构的教学意义如此重大,作用非同小可,在实施过程中各位教师一定要认真对待,决不可等闲视之。
(此文刊载于《中国信息技术教育》00年第0期,此为节选)
桂溪夫子李维明大吉大利