高中二年级信息技术抽象数据类型教学设计_第1页
高中二年级信息技术抽象数据类型教学设计_第2页
高中二年级信息技术抽象数据类型教学设计_第3页
高中二年级信息技术抽象数据类型教学设计_第4页
高中二年级信息技术抽象数据类型教学设计_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

高中二年级信息技术抽象数据类型教学设计一、教学内容分析抽象数据类型是浙教版高中信息技术选择性必修1《数据与数据结构》第四章的核心内容,承接此前学生对数组、链表、栈、队列等基本数据结构的学习,承担着从"会用结构"走向"会造结构"的关键跃迁。教材以队列、栈等结构为线索,引出"数据对象+数据关系+基本操作"三要素的抽象视角,为后续树、图等内容奠定方法论基础。本节课的学科价值不在于让学生再背一个名词,而在于让学生建立一种看待程序的视角:把"做什么"与"怎么做"分离。学生此前写栈,满脑子是数组下标和指针变量;学完本课,他们应当明白,栈的本质是"后进先出"这一行为承诺,数组或链表只是兑现承诺的其中一种手段。这种"接口与实现分离"的思想,是计算思维中抽象维度的集中体现,也是学生日后阅读工程代码、理解类与对象的前置认知。本课安排1课时,45分钟,配套机房实践条件。二、学情分析授课对象为高二年级学生,已完成必修课程中Python基础语法、函数定义的学习,并在选择性必修1的前几章中动手实现过顺序表、链式存储以及栈和队列的代码。他们对"怎么写"已有手感,但对"为什么要这样组织代码"缺乏元认知。问卷前测显示,多数学生能默写栈的入栈出栈代码,却只有不到三成的学生能说清"换一个底层存储方式,上层调用代码要不要改"。学生的认知难点集中在三处:其一,把"抽象"误解为"难懂"或"没用",缺乏从具体实现中提炼共性的经验;其二,混淆数据结构、抽象数据类型、具体实现三层概念;其三,习惯了面向过程的平铺式编程,对"定义接口—隐藏实现—对外提供服务"的封装逻辑感到陌生。据此,本课以生活情境切入降低心理门槛,以对比实验制造认知冲突,以改造任务驱动思维迁移,让学生在"拆—比—换—用"的链条中亲历抽象的过程。三、教学目标1.学生能够用自己的语言解释抽象数据类型的含义,说出其"数据对象、数据关系、基本操作"三要素,并能对照栈或队列举例说明。2.学生能够以"使用者"和"实现者"两种角色分析一段栈代码,分别列出接口清单与内部实现细节,体会二者分离带来的便利。3.通过更换底层存储(数组改为链表)而保持接口不变的实验,学生能够验证抽象数据类型的实现无关性,发展抽象与建模的计算思维。4.在完成"自动售货机找零系统"微型项目的过程中,学生体验信息系统中模块化设计的工程价值,形成规范编程、注重接口文档的数字化学习态度。四、教学重点与难点教学重点:抽象数据类型的概念与三要素;接口与实现分离的思想。教学难点:从具体代码中抽象出行为规范;理解"调用方只关心承诺、不关心兑现方式"的封装逻辑。五、教学策略与资源准备本课采用情境探究、对比实验与项目任务相结合的混合策略。教师准备:自动售货机工作视频片段、双版本栈代码(数组版与链表版,接口完全一致)、探究任务单、机房Python环境及共享工程文件。学生四人一组,组内设记录员、操作员、汇报员等角色。六、教学过程(一)情境导入:一台"不问内部"的机器(约5分钟)教师播放自动售货机视频片段,暂停在出货瞬间,抛出问题:你只按了一个按钮,机器内部经历了什么?学生自由发言,有的说传感器,有的说电机,有的说程序判断。教师追问:你使用这台机器之前,需要拆开它学习电路吗?学生笑答不需要。教师顺势在黑板写下两句话:使用者的世界——投币、选货、取物;制造者的世界——电机、货道、传感器。教师指出,中间隔着一份"说明书",说明书只承诺"你能做什么",不交代"我怎么做"。编程世界里也有这样一份说明书,它就是今天要认识的抽象数据类型。(二)概念建构:从一段旧代码里"榨"出新知识(约10分钟)教师调出学生三周前写的数组版栈代码,全班齐读入栈与出栈函数。教师提出任务:假如我只允许你看函数名和参数,不许看函数体,你能告诉我这个栈答应了你什么吗?学生讨论后提炼:push保证元素放到最顶端,pop保证取走并返回最顶端元素,isEmpty保证告诉我还有没有元素。教师板书这份"承诺清单",并追问:这三条承诺,和数组满没满、top变量加几减几,有关系吗?学生发现没有关系——承诺是行为,减加是手段。教师此时给出规范表述:一个数据对象(若干元素)、元素之间的线性关系(先进后出的次序约定)、一组基本操作(push、pop、isEmpty等),这三者合起来,撇开具体存储与代码不谈,就构成栈这一抽象数据类型。教师引导学生完成填空式归纳:抽象数据类型等于数据对象加()加(),刻意把"具体实现"排除在外。学生补全并齐读定义。为击破"抽象就是难"的误解,教师请两名学生分别扮演"客服"与"工程师":客服只背承诺清单,工程师只画内部结构图,全班判断哪一角色更接近"抽象数据类型"的视角。角色扮演让概念落地,课堂气氛活跃。(三)对比实验:换一颗"心脏",病人毫不知情(约12分钟)这是本课的核心环节。每组学生拿到两个文件:stack_array.py与stack_list.py,以及一份主程序main.py。教师布置实验任务单,分三步操作。第一步,运行main.py,它调用栈模拟"括号匹配检查",记录运行结果。第二步,打开main.py,仅修改导入语句,把数组版栈换成链表版栈,其余代码一字不动,再次运行。第三步,对比两次运行结果与两份栈文件的内部代码,填写任务单上的三个问题:结果变了吗?main.py的调用语句变了吗?两个栈文件内部差别大吗?各组动手操作,教师巡视,重点关注那些"手痒想多改几行"的学生,引导他们刻意保持主程序原封不动。约六分钟后各组汇报:结果完全一致,调用代码零改动,而内部实现一个是下标操作、一个是指针链接,差别巨大。教师带领学生提炼结论:因为两个版本遵守同一份承诺清单,上层程序根本不需要知道底下是谁在兑现承诺。教师板书"接口不变,实现可换",并指出这正是抽象数据类型带来的工程红利——模块可以独立开发、独立测试、独立替换。有学生主动联想到手机充电口标准统一,教师给予肯定,将其标注为正迁移实例。(四)应用迁移:自动售货机找零设计(约12分钟)教师发布微型项目:为收银找零系统设计一个"零钱箱"抽象数据类型。情境是机器每次需要拿出面额最大的可用硬币先找给顾客。任务不要求写全部代码,只要求完成两份文档:一份是给使用者的"承诺清单",列出零钱箱应提供哪些操作、每个操作的输入输出与行为约定;另一份是"实现设想",小组讨论内部可以用什么结构存放硬币。各组讨论热烈。多数组列出的承诺包括:addCoin投入一枚硬币、takeLargest取出当前最大面额硬币、count查询剩余枚数。实现设想出现分歧,有组主张数组排序,有组主张按面额分十个桶。教师不评判优劣,而是追问:如果你的实现将来从数组换成十个桶,收银主程序要改吗?学生齐答不用——他们已在用自己的语言复述本课思想。教师收束时补充:真正的软件公司里,承诺清单通常写成接口文档,先评审,后编码。写文档不是形式,而是让不同模块的人在不见面的情况下也能协作的契约。(五)总结提升与分层作业(约6分钟)学生用一句话接力总结本课收获,教师将其整理为三层认知地图:底层是具体语言代码(数组、链表、循环),中层是数据结构(栈、队列),顶层是抽象数据类型(行为承诺)。学生的注意力应当学会在层间自由穿梭。分层作业布置如下:基础层,以队列为例撰写一份完整的抽象数据类型说明书,要求覆盖三要素;提高层,把第二节自己写的队列代码改造成"接口与实现分离"的两个文件,体会重构过程;拓展层,查阅Python标准库中deque的文档,分析它承诺了哪些操作、隐藏了哪些实现,下一节课用两分钟向同学介绍。七、板书设计主板书分左右两栏。左栏"使用者的世界":承诺清单——push、pop、isEmpty;右栏"实现者的世界":数组+下标,或链表+指针。中间以一道竖线分隔,竖线上方标注"接口",下方标注"实现可换"。底部书写核心结论:抽象数据类型=数据对象+数据关系+基本操作,与具体实现无关。八、教学评价方案过程性评价依托三份证据:任务单上对比实验的三问作答,检查学生是否真正发现"结果不变、调用不变、实现大变";承诺清单文档,判断操作定义是否包含输入、输出与行为约定三要素;课堂接力发言,捕捉学生对"封装""契约"等措辞的自然使用情况。结果性评价以分层作业完成质量为依据,重点关注说明书是否撇开代码谈行为,而非复述代码。九、教学反思预设本课的最大风险在于概念讲授挤占动手时间

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论