《初识数据结构》教学案例
2023-03-07金敏浙江省杭州市建兰中学
金敏 浙江省杭州市建兰中学
王卫东 浙江省杭州市上城区教育学院
●学习内容分析
数据结构是信息技术学科的核心内容之一,对培养学生的信息意识与计算思维、深入理解并掌握信息技术学科知识与实践方法、形成学科核心素养,具有非常重要的作用。《初识数据结构》选自浙江教育出版社出版的《初中信息技术》七年级下册第二单元“算法和数据结构”。在本单元的学习中,学生从生活中的真实体验入手,理解算法和数据结构,掌握基本概念与解决问题的思路,发展计算思维。本单元前三课是算法的基础知识,包括算法的概念、表示方式和三种控制结构,最后一课是数据结构与算法的关系,而《初识数据结构》是数据结构的起始课,起到承前启后的作用。其主要内容是让学生理解数据结构的概念和意义,认识数组、栈和队列三种常见的数据结构及其特点。这节课是培养学生根据现实问题选择并使用数据结构能力的开始。
●学习对象分析
学习对象是七年级学生,他们已有处理文档、多媒体等数据的基础,对数据及数据的存储有一定的认识,但不知其背后的意义和结构。通过调查可知,95.6%的学生在小学阶段系统学习过图形化编程,13.3%的学生接触过高级程序设计语言。他们善于合作学习,乐于表达自己的想法,并对问题有自己的思考,能够熟练运用iPad进行个性化学习。由于数据结构的相关知识理论性较强,又很抽象,学生理解起来会有一定的难度。
●设计思路
《义务教育信息科技课程标准(2022年版)》强调素养导向的信息科技教学设计,倡导以真实问题驱动,引导学生经历原理运用过程,建构知识,提升问题解决能力和学科思维水平。本节课遵循“以生为本”的教育理念,围绕素养培养目标,关注学生思维的发展。设计贴近学生生活经验的案例,帮助学生找出数据结构的原型;从数据结构的特性入手,更好地引导学生理解数据结构的概念,提升对数据的感知力、判断力;依据问题解决的需要,分析数据,并按照一定的规则表达信息;为了更好地开展探究学习,以iPad为学习工具,培养学生的数字化学习能力,实现多元互动。将学科知识的学习与日常生活场景联系起来,在场景的分析中,形成有能力的迁移和学科核心素养。
●教学目标
①通过对图书馆、通讯录、学生管理系统中数据组织的调研分享,了解数据结构的概念和意义。
②通过合作探究“物品寄存”“撤消操作”“排队叫号”中的数据组织,了解数组、栈、队列这三种数据结构的基本概念及特点。
③通过合理选择数据结构解决“回文判断”的问题,讨论数据结构在生活中更多的应用场景,提高解决问题的能力,提升知识迁移能力。
④通过分享所思所悟,进一步了解数据结构的作用和意义。
●重难点与对策
教学重点:数组、栈、队列的基本概念及特点。通过小组讨论、实践探究、动态演示、归纳总结等多种方式循序渐进,逐一突破。
教学难点:数组、栈、队列的应用。通过解决真实问题、迁移拓展反思来化解。
●教学过程
1.调研分享,引出结构
(1)问题前置。有效的前置活动可以充分发挥学生的主体作用,促进课堂的自主与开放。课前,学生小组合作调研图书馆、通讯录、学生信息管理中的数据组织,获取独特的经历和体验。
探究活动:数据的组织。
信息时代,使用计算机进行管理已成为一种常态。面对越来越多的数据资源,我们在使用和处理数据资源的过程中,需要研究如何组织数据来提高数据的使用效率。例如,某超市商品数据组织。为实现对超市商品的信息化管理,列出了管理系统需具备的功能,如表1所示。
表1 功能分析
要实现管理系统的各个功能,需要如何组织数据呢?可以发现,超市商品基本信息组织如表2所示。
表2 超市商品基本信息表
商品数据被输入到计算机之后就成为计算机处理的对象。表2中每一行代表一条商品基本数据,称为数据元素,它由编号、类别、商品名称、单位、零售价、数量、商品条码等组成,其中的每一项称为数据项。生活中还有很多这样的例子,如手机通讯录、图书管理、学生信息管理等,请小组合作选择生活中的一种应用,探究其中的数据应该如何组织。
(2)调研分享。课堂伊始,学生分享探究成果,以恰当的方式与同学交流,丰富彼此的体验,深化感悟“合理的数据组织,有利于提高解决问题的效率”。
生1:我们调研了学校图书管理系统。在“图书入库登记”时要录入来源单位、类型、册数、获得方式等,再通过编号检索分类,匹配到书籍。在“借还书本”时,将学生也进行编号,同时还要记录借书日期、还书日期、逾期天数等。这样,组织数据就会非常清晰,有条理,便于图书的管理。
生2:通讯录是我们生活中最常用的应用,手机通讯录是按照姓名字母序组织的,班级通讯录是按照学号组织的,这样查找起来很方便。
(3)揭示概念。教师揭示数据结构的概念,点明课堂主旨。
师:对数据进行科学、合理的组织,可以提高解决问题的效率,让其更好地服务于我们的工作和生活。在计算机科学领域中,把数据的组织形式,即数据之间的相互关系,称为数据结构。
设计意图:用生活中的问题激发学生积极思考,学生在生活中观察与调查,带着自己的已知来到课堂。逐步认识数据组织的重要性,了解数据结构的概念,为后续的学习内容做铺垫。
2.生活类比,探秘结构
(1)合作探秘。更好的学习顺序是使学生早早地沉浸在引人入胜的问题中,而延缓概念和原理的学习。因此,学生从生活中的信息科技场景(“物品寄存”“撤消操作”“排队叫号”)入手,每组选择其一,分析、探究现象的机理。同时,借助书本、算法动画图解APP等多种方法验证,不断挖掘,深入内容,使学习引发“新概念”的产生,经历这些概念所必需的现象。
(2)交流分享。在探究完成后,鼓励小组学生上台,用画图、表演、操作演示等方式分享研究和所解决的问题。教师观察学生表现,提供实时、持续的反馈与建议,适度提炼小结,加深学生的理解,抽象概念在丰富的体验中得以澄清。
(3)梳理小结。随后,教师引导学生共同小结,梳理知识脉络。师生感悟“建构知识体系的过程,其实也蕴含着数据结构的思想”。
“物品寄存”问题:学生结合生活经验,发现“箱号”和“随机密码”这两项数据(如图1),是一一对应的,可以使用“箱号+随机密码”进行存储,由此设计用“数组”来存储数据。
图1 条码纸
教师适时提炼“数组”的特点,它既可以描述数据的值,也可以描述数据的位置。师生再进一步讨论,“箱号”可以作为下标,“密码”则为值。在存物品时,对应的下标变量存储密码,在取物品时,清除对应密码,如图2所示。
图2 “数组”的探索
“撤消操作”问题:学生在小画板、WPS等软件中体会撤消的操作,提出“撤消操作”采用的是一种数据进入顺序与数据出去顺序相反的数据组织,认为这是“栈”。
为了帮助学生理解栈,教师运用动画直观演示。栈是限定在一端进行插入或删除操作的,具有“后进先出”的特点。把一个数据放入栈的操作称为入栈,从栈中取出一个数据称为出栈。师生结合问题再进一步分析,如在小画板中,依次记录操作步骤即为入栈,撤消退回上一步操作即出栈,如图3所示。
图3 “栈”的探索
“排队叫号”问题:学生类比现实生活排队规律,并生动地演译数据的组织,先进先出。教师提炼小结,和栈相反,队列是一种先进先出的数据结构,只允许在一端进行插入,在另一端删除,最早进入队列的元素最早离开。在“排队叫号系统”中,“取号”即为入队,生成一个编号并插入队尾,“叫号”就是出队,取出队首的编号,如图4所示。
图4 “队列”的探索
设计意图:在富有挑战性的情境中,学生细心观察,有创造力地思考。经历各种社会性的互动,如对话、质疑、讨论等。通过互助分享,达到知识的分享。只有理解清楚经验和知识的意义,才能让概念变得“真实”而非抽象。
3.迁移拓展,再探结构
(1)问题解决。为了巩固对知识的理解与掌握,提高解决问题的能力,学生展开对新的疑难问题的讨论,运用已学数据结构知识,设计判断回文句。
经过观察,学生发现这些句子正着读与倒着读是一样的,如图5所示。有的学生提出借助数组的左右是否对称来判断,也有学生提出使用栈和队列来组织数据,再利用栈后进先出和队列先进先出的特点,通过比较每次出栈、出队的元素是否相同来判断。感受选择不同数据结构对问题解决的效率影响。
图5 “回文数”的探索
(2)迁移拓展。为了有效地开拓学生的视野,学生小组讨论数组、栈、队列在生活中的其他应用场景,将“场景”写在卡片上,张贴并分享。合理地想象,科学地思维,勇敢地表达。
生1:在使用打印机时,先后提交了多个打印文档,管理程序就是按照先来先服务的规则打印的,这采用了队列的思想。
生2:地下车库的停车位有编号和车牌号,可以用数组来组织数据。
生3:网页浏览器对用户浏览网页的管理,内部采用了栈进行网页数据的组织。当一个网页跳转到另一个网页时,系统会将原先的网页数据入栈,当单击“后退”时,系统会将栈最上方的网页数据出栈。
随后,教师指出“计算机程序解决的问题是多种多样的,各类问题中数据的相互关系也是多种多样的,因此,科学家还发明了更多的数据结构”,并举例“树”和“图”,拓展学生对数据结构的认知。
设计意图:在新情境中运用所学知识解决问题,创造出新意义,使得记忆更长久和深刻;新的问题和想法也会成为进一步积累经验的基础,这是一个持续的螺旋式上升的过程。
4.反思感悟,升华结构
(1)所学所悟。最后,学生用iPad在UMU互动平台上发表学习感悟,线上线下交流分享,让思维可见,数据留痕。
生1:数据结构的意义在于提高解决问题的效率,栈、队列、数组等数据结构因此产生,在学习了它们的原理以及生活中的实际应用后,相信在未来我也能合理运用数据结构更加高效地解决学习生活上问题。
生2:学习就像队列,先进先出,先努力收获更多,在生活中,要像队列一样努力;每次选择都是数组,随机抽取不确定性。
(2)总结升华。教师总结升华:算法是编程的思想,数据结构则是这些思想的基础,而算法+数据结构=程序。
设计意图:激发学生进一步学习的热情。
●教学反思
1.追寻有意义的概念学习
杜威在《我们如何思考》一书中说道:“没有概念的生成过程,就不能获得任何知识的迁移,更不能对新体验产生更好的理解。”的确,学习不是把概念直接装进脑袋里,不是被动、机械地习得,更不是重复地死记硬背,而是要回归学习的本质,回归学习是对问题的探求。本节课,笔者特别注重概念的意义化,重视情境创设的真实,让学生经历一场有意义的学习实践。具体来说,学生在生活中观察与调查,他们走进图书馆,观察通讯录,调研学生管理系统;在真实情境中,师生、生生共同探索,他们结合生活经验,分组探秘“物品寄存”“撤消操作”“排队叫号”,倾听、讨论、争论,不断迸发思维火花;在新情境中运用所学知识解决问题,将概念进行迁移,创造出新的意义;在解决问题中理解概念,逐步形成“专家思维”,使记忆更为深刻和持久;在过程中,不断进行自我评估和思辨,不断追寻有意义的概念学习。
2.追求以生为本的教育幸福
在教育教学的过程中,“幸福”不是教师单方面的情感投入和知识输出,而是师生彼此成全的双向建构。幸福教师要站在学生角度,思考学生的感受、期待。例如,在设计驱动问题时,笔者提前做了调查,了解学生的已知、未知,从学生那里获得问题的雏形,结合学生的生活经验和个性特点,将抽象深奥的本质问题转化为学生感兴趣的问题,从而更好地为学生指出持续思考、自我探究的方向。幸福教师要站在学生的角度,抓住学生的兴奋点、关注点,让学生有话想说,有话可说。课堂是师生之间的互动,师生相互交流、相互启发、相互补充,从而丰富教学内容,求得新的发现。幸福教师要站在学生的角度,创造润泽的评价环境,设计开放的多元评价。尊重、赏识、支持、鼓励、启发、反思,灵活地使用课堂评价,打开学生心灵的窗户,产生强大的内驱力。幸福教师就是在促进学生成长和发展中,享受幸福。
点 评
《义务教育信息科技课程标准(2022年版)》给出了信息科技课程的6条逻辑主线——数据、算法、网络、信息处理、信息安全、人工智能,数据作为其中之一,成为信息科技课程的核心概念。2020版浙江省编信息技术教材七年级下册的“算法与数据结构”单元,是在以往学习应用程序的基础上,探究程序背后的基本原理——计算机是如何组织和处理数据的。《初识数据结构》是该单元的第一课,涉及较多的概念,理论性较强,但概念教学不是让学生记住这些概念,而是在真实情境中让学生去感知、体验、理解和应用,也就是说学生能用自已的话阐明数组、栈、队列的特点,初步理解“合理地数据组织能够提高解决问题的效率”,能够发现这些概念之间的联系,并应用它们去解决新问题,进而提升数据意识与计算思维。
有效的教学设计是上好一节课的前提。这节课的教学设计非常细致,着眼于学生学习的视角,充分体现了新课程的理念。首先,对学习对象的分析很精准。合理把握“教学对象的特征”是教学实施、实现教学目标的基础,用学情调查的数据来支撑,具体而又实在。其次,制订的教学目标很明确。本课的教学目标是基于课标、教材和学情来制订的,可以看到“通过什么活动”,能“达到什么样的结果”,这种表达方式能够看到学习的过程与方法。最后,教学过程体现了“以生为本”。本课在教学策略的选择上尊重学生主体,紧密结合学生的实际,情境和案例都来源于生活,如“排队叫号”“物品寄存”等,特别是在“迁移拓展,再探结构”时,将数据结构回归到解决实际问题,这也是整节课的深化,一个是回文句判断的算法,一个是学生研究数据结构应用的举例,可以帮助学生理解不同的数据结构会带来不同的解决方法,算法的效率也会不同,引导学生用一种数据思维去看待信息社会。
“内化于心,外化于行”,如果教学只是停留在理念层面,没有结合生活实际,那么理念就是空的。本节课的设计从大处着眼,从小处着手,追求有意义的概念学习,核心素养在教与学的过程中得以有效落实。本节课也打开了信息科技课程教学的新视野,引发了更多的思考与探索。