高中信息技术选修1第六课面向对象程序设计初步教学设计_第1页
高中信息技术选修1第六课面向对象程序设计初步教学设计_第2页
高中信息技术选修1第六课面向对象程序设计初步教学设计_第3页
高中信息技术选修1第六课面向对象程序设计初步教学设计_第4页
高中信息技术选修1第六课面向对象程序设计初步教学设计_第5页
已阅读5页,还剩8页未读, 继续免费阅读

下载本文档

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

文档简介

高中信息技术选修1第六课面向对象程序设计初步教学设计一、教学背景与设计理念本课隶属于全国中图版高中信息技术选修1第一单元“程序设计基础”第六节,面向高二年级学生。学生在前面五节中已系统掌握顺序、分支、循环三种基本结构以及函数封装的基本方法,能够编写百余行规模的模块化程序解决数学计算与简单数据处理问题。然而,当问题域涉及多个具有相同属性和行为特征的对象时,例如同时管理三十名学生的成绩、模拟一个班级的考勤状态,原有基于函数和全局数据的编程范式暴露出明显的组织与复用局限。本课作为从结构化编程向面向对象编程转型的开篇,承担着建立对象、类、封装、属性、方法五大核心概念的奠基任务。设计理念遵循三条主线:第一,以真实问题驱动概念建构,选用学生每日接触的校园卡系统作为贯穿全课的主情境,使类与对象的概念从抽象符号转化为可触摸的生活实体;第二,以对比体验促进认知冲突,让学生在分别用结构化方式和对象化方式解决同一问题后,自主归纳面向对象的优势所在;第三,以支架式探究实现梯度进阶,从观察教师示范到仿写最小类,再到自主设计类并实例化多个对象,每个环节提供差异化支撑。整节课指向计算思维中“抽象建模”这一核心素养维度,同时兼顾数字化学习环境下学生自主探究能力的培养。二、课标要求与核心素养目标《普通高中信息技术课程标准(2017年版2020年修订)》对选修1“程序设计基础”模块提出如下要求:掌握一种程序设计语言的基本知识,理解面向对象程序设计的基本思想,能够使用类与对象解决简单实际问题。结合本课内容,将教学目标分解为四个维度,并设定可观测、可测量的行为表现指标。信息意识维度:学生能够意识到面对包含多个相似实体的复杂问题时,结构化方法在数据管理和功能扩展方面的局限,主动倾向采用对象化建模思维。行为指标为:在问题分析阶段,能自发提出“每个学生有哪些共同特征”之类抽象问题。计算思维维度:学生能够从具体实体中提取属性和行为,抽象成类定义;能够区分“类”与“对象”的关系,理解封装的意义。行为指标为:独立绘制出所设计类的属性表和方法表,并能准确说明实例化对象与类之间的派生关系。数字化学习与创新维度:学生能够在编程环境中利用类模板快速生成多个对象,通过修改对象属性实现个性化设置,体验面向对象方法带来的开发效率提升。行为指标为:完成指定任务后,能主动将新方法迁移运用至教师布置的拓展情境中。信息社会责任维度:学生在讨论校园卡系统隐私保护时,理解类的封装机制与信息隐藏原则之间的内在联系,认识到合理地隐藏内部数据是保障数据安全的程序基础。行为指标为:在交流环节能举出至少一个利用封装保护敏感数据的实例。三、学习者分析高二年级学生经过一年半的信息技术课程学习,已具备扎实的Python语法基础,能够熟练运用列表、字典等内置数据结构。从思维发展阶段看,高二学生形式逻辑思维趋于成熟,具备从个别到一般的归纳推理能力,这为从多个具体学生对象中概括出“学生类”提供了认知前提。但此阶段学生尚未系统接触过“类型即模板”的思维方式,容易把类误解为数据的简单容器而忽略行为定义,因此教学需要借助可视化类比物来支撑抽象概念。学生已有的生活经验中,广泛使用校园卡、公交卡、App会员账户等数字化身份载体,这些系统背后均隐含对象模型的运行逻辑。充分利用这些前概念,设计“找对象”等活动帮助学生实现从生活经验到程序模型的过渡。潜在学习困难有二:一是混淆类与对象,以为类是某一个具体个体的名字;二是无法理解方法的第一个参数self的传参机制。针对这两个难点,分别设计角色扮演活动和逐步图示拆解策略予以突破。四、教学重难点及突破策略教学重点确定为:掌握类定义的基本语法结构,能够使用class关键字创建包含属性初始化和自定义方法的类;理解对象实例化的语法含义,能够使用构造方法创建多个独立对象。教学难点确定为:领悟类与对象之间的模板与成品关系,理解self参数在方法调用中的隐式传参机制。重点突破路径:课堂上安排三次梯度递进的代码活动。第一次由教师演示“校园卡类”的完整定义及三个对象的实例化操作,学生观察记录语法要点;第二次学生参照半成品代码框架补全“学生类”的属性和方法,并创建同桌两人的对象;第三次学生独立完成“课程类”的设计并实例化本学期三门课程。三次活动从眼到脑到手逐层内化知识。难点突破路径:设计“模板印章”实物道具——一个刻有“姓名、学号、余额”三个空格的印章。教师先展示印章本身(类),再连续盖出三个不同名字的印迹(对象),强调印章只有一套但印迹各不相同。self参数的拆解采用“消息传递动画”逐帧展示:当代码执行roduce()时,Python解释器自动将stu1的引用传递给方法的第一个参数self,动画中演示self替代为stu1的完整过程。随后提供三道即时检测题,要求学生预测self实际指向哪个对象。五、教学环境与资源准备硬件环境:计算机网络教室一间,学生机50台,教师机1台,投影大屏两块。软件环境:Python3.9及以上版本,安装Thonny集成开发环境或IDLE,确保每台机器均可正常运行。教师机安装极域电子教室管理软件,便于屏幕广播、文件分发与作业收集。教学资源准备:①多媒体课件一份,包含情境导入视频、类对象对比动画、self传参动态演示三类核心视觉资源;②半成品代码文件两份:stu_temp.py供学生补全,course_empty.py供拓展练习;③校园卡实物一张及密封信封若干,用于课堂初始环节的实物观察;④学习任务单(电子版)一份,内含五道诊断性习题;⑤课堂评价量表一份,从代码规范性、对象应用正确性、创新特征三个维度设定等级描述。所有代码资源预先通过教学系统分发至学生机桌面指定文件夹,避免课堂传输等待。六、教学过程第一环节情境导入——校园卡里的程序密码(8分钟)教师举起一张真实的校园卡,提问:“这张卡片在食堂消费时,后台程序是如何区分卡内余额属于你而不是同桌?又是如何知道你每次花的钱应该从哪个账户扣除?”学生自由发言后,教师在大屏幕展示一段未使用对象的字典方案代码,其中用两个列表存储三十名学生的姓名和余额,取餐扣款时需要同时维护两个列表的索引对应关系。教师操作代码,故意在向第一个列表追加新人时忘记同步第二个列表,运行结果出现“扣款余额与实际不符”的异常。学生观察该崩溃场景后,教师顺势抛出核心疑问:“当程序要管理三十个甚至三千个具有相同特征但数值各异的实体时,有没有一种办法,把每个学生的所有数据以及相关操作捆绑成一个整体?”由此引入课题,板书标题“面向对象程序设计初步”。设计意图说明:通过实物感知与反例演示制造认知冲突,引导学生切身体会结构化数据管理的缺陷,激发对象化建模的内在需求。同时交代本课情境主线——所有练习均围绕校园生活中的实体展开,使后续抽象活动具有明确的现实锚点。第二环节对象初识——寻找身边的“类”与“对象”(10分钟)教师展示两组生活实例,要求学生判断每组中哪个是“类”,哪个是“对象”。第一组:汽车设计图纸与一辆宝马X5;第二组:烘焙配方与出炉的一盘曲奇。学生逐一作答后,教师引导归纳:“类是设计蓝图或者模板,对象是按照模板造出的具体实物。模板不占物理空间、没有具体数值,对象占空间、有具体数值。”随后过渡到程序世界。教师在编辑器里先展示一段字典代码描述“班长王明的姓名、学号、余额”,再展示三个字典描述不同学生,最后指着屏幕说:“如果能把每个学生作为一个整体单位来处理就好了。Python语言中,可以用class建立一个学生模板,再用这个模板批量制造具体的学生对象。”教师切换至课件动画:左侧一个写着“学生类”的蓝色矩形,矩形内列出属性栏(姓名、学号、余额)和方法栏(查余额、充值、消费);动画中从矩形拖拽出三个独立对象,每个对象除了拥有相同名字的属性槽位,其槽位内数值各不相同。教师在拖拽过程中强调:“类只有一套属性定义,但每个对象都拥有自己的独立属性副本,修改一个对象的余额不影响其他对象。”本环节结束前,教师完成一次完整示范:定义一个最简单的Student类,包含__init__方法设置三个属性,定义introduce方法打印自我介绍。依次创建s1,s2两个对象,分别调用该方法。学生观察代码运行结果后,完成任务单上第1题:写出类定义和对象创建各采用哪个关键字。第三环节类定义语法结构拆解——从观察到理解(12分钟)教师将刚才的示例代码展示在大屏幕,用不同颜色高亮注释各部分。利用表格呈现类定义框架与各部分职责,通过电子表格形式投屏展示。表格结构如下:语法组成部分 语句示例 必须性说明 常见错误提示类声明头 classStudent: 必须,类名首字母大写 类名不顶格缩进或漏写冒号构造方法 def__init__(self,name,sid,balance): 推荐,用于初始化对象属性 方法名拼写错或漏写self参数属性赋值 =name 必须,绑定实例变量 忘记写self前缀导致属性未定义自定义方法 defintroduce(self): 视需求,定义对象行为 参数列表忘记self导致调用时报错对象实例化 s=Student("王明","2024001",100) 每创建一个对象执行一次 类名后忘记括号教师逐行解释每个组成部分的含义,重点说明:__init__方法名称固定,前后双下划线是Python内置约定的标志;创建对象时括号里传入的实参按顺序传递给构造方法的形参;self不是关键字,但约定俗成作为第一个参数名,它自动指向当前正在创建或操作的那个对象。为了突破self理解难点,教师播放逐帧动画:当代码执行s1=Student("王明","2024001",100)时,动画先画出s1变量,然后显示Python在内存中新建一个对象区域,随后把s1的引用传递给self,=name即表示给这块对象区域内的name槽位填写“王明”。整个动画重复两遍,第一遍完整播映,第二遍在self替换为s1的关键帧上暂停并提问学生“现在self是谁”。随后展示等价的面向过程写法作为对照,与创建对象加对象方法的写法并列在同一张屏幕上,设置第三道即时检测题:指出两种写法中管理同一组数据时的区别。随后组织同桌两人一组开展“相互讲解”活动:A同学不看屏幕,向B复述__init__方法中self的作用;B检查复述是否准确,指出表述漏洞。教师巡视听取若干组的讲解情况,选择一组代表面向全班复述,由全班纠错补充。该活动将抽象的传参机制转化为语言外化的过程,利用同伴互评强化对难点的理解。第四环节半成品补全——仿写中建构(12分钟)教师通过教学系统分发stu_temp.py文件,文件内已有类框架但留有三个空缺:①__init__方法定义行中缺少属性参数;②属性赋值语句缺少self前缀;③introduce方法体内缺少打印语句的fstring格式。任务要求学生在五分钟内补全代码,使程序能够成功创建任课教师与本人两个学生对象,并分别输出自我介绍。学生独立操练期间,教师巡回观察,记录典型错误。大多数学生容易在对象实例化传参时漏传类型或者传错参数个数。教师针对功能性错误不直接给出答案,而是引导其查看报错信息中提示的行号,自行回溯代码定位问题。选三名完成较早且代码风格良好的学生作品投屏展示,由作者本人向全班讲解自己补全的三个空及设计理由。三名学生分别呈现不同学号的初始化方式,教师借此引导全班观察:“虽然三份代码的写法略有差异,但类模板是同一份,这说明什么?”学生回答后教师补全结论:“类定义只有一份,但可以根据不同数据创建无数个独立对象。”完成基础任务后,能力有余的学生继续挑战拓展任务:在Student类中新增一个change_balance方法,实现充值功能。该方法的内部逻辑要求首先检查充值金额是否为正数,若是则累加到余额属性上,否则打印提示信息。此拓展任务为学有余力者提供延续性挑战,同时也为下一课时“封装与信息隐藏”奠定初步实践基础。本环节临近结束时,全班齐读屏幕上总结的三句话:类描述共同特征,对象携带独立数据,方法操作本对象的数据。教师布置任务单第2题:判断五个正误陈述,覆盖类名命名规则、self必要性、多个对象的属性相互独立等核心要点。第五环节迁移应用——课程类设计挑战(10分钟)学生脱离半成品框架,独立完成一个新的类设计。任务背景为:“学校的选课系统需要记录本学期课程。每门课程包含课程名称、任课教师、学分三个属性,并提供一个show_info方法输出完整课程信息。请定义Course类,并创建你本学期三门课程的三个对象,分别调用show_info方法打印。”教师先组织学生用一分钟在任务单上画出Course类的属性表与方法表,然后再上机编码。该步骤强制学生在动手前先完成设计,培养先抽象后实现的工程习惯。教师在巡视中发现部分学生漏掉方法定义中的self参数或实例化时类名后漏括号,选择三个典型代码错误在屏幕上匿名展示,让全班共同纠错,通过反馈纠正共性认知偏差。在展示环节后,教师提出一个包含着深入思考价值的问题:“如果我们用前面学的字典方法表示每门课,需要用三个字典,代码量并不大。现在用了对象方法,步骤也没有省多少。请思考:面向对象的真正优势在什么情况下才会凸显出来?”学生分组讨论两分钟后,代表发言。教师归纳:当对象数量增多到需要批量处理、当类的功能需要持续扩展、当程序由多人协作开发时,封装后的对象能够显著降低模块间耦合、提高代码复用率。为直观验证这一点,教师演示一段基于对象列表的批量操作:把三门课程对象放入一个列表,用for循环逐门调用show_info,仅需两行代码。而同样目的用字典列表实现则需要额外维护循环变量与键名。通过对比体验强化认知。第六环节形成性检测与反馈矫正(5分钟)利用教学平台的投票功能,发放五道选择题,要求学生三十秒内作答。题目覆盖本课全部核心知识点:第一题判断给定代码哪一行是类定义语句;第二题选择创建对象时实际调用的方法名称;第三题预测某对象属性赋值后是否影响另一对象的同名属性;第四题指出代码错误原因——对象调用方法时漏写对象名;第五题辨析类与对象的关系叙述的正误。平台即时统计正确率,教师针对正确率低于80%的题目进行现场重新讲解,随机点名一位答错学生说明原有想法,再引导其自我修正。检测结束后,学生各自打开学习任务单,对照本课目标逐条进行自评,在“完全达到”“基本达到”“需努力”三档之间勾选。教师通过教学系统快速收集自评结果,作为下节课分组教学的参考依据。七、教学评价设计本课采用过程性评价与终结性评价相结合的双轨模式。过程性评价依托课堂观察量表,从三个维度记录学生表现:概念理解维度(能否正确区分类与对象、准确描述self作用)、操作技能维度(代码补全的准确性、独立完成Course类的顺利程度)、合作交流维度(同伴讲解活动中表达是否清晰、讨论发言是否有效)。量表采用三点计分制,由教师在教学过程中随堂记录。终结性评价采用课后延伸任务与下一课时课前挑战相结合的方式。课后延伸任务要求:学生回到宿舍后,选择校园生活中的另一个实体(如书、电影、比赛),独立完成该实体的类定义及至少两个对象的创建和调用,于次日课前通过学习平台提交代码截图。该任务既保证基本巩固,同时允许学生结合个人兴趣进行主题选择,兼顾差异性与趣味性。课前挑战则提供一道拓展题:给出一个包含五个学生对象的列表,要求编写列表推导式筛选出余额大于50元的学生姓名。该任务渗透迭代处理对象列表的思想,为后续“对象与数据结构综合运用”埋设前导。评价反馈环节由教师对提交的代码逐份批阅,采用评语与等级双重反馈。等级分为“优秀—规范可用”“良

温馨提示

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

最新文档

评论

0/150

提交评论