高中一年级信息技术《可以复用的代码》第二课时教学设计_第1页
高中一年级信息技术《可以复用的代码》第二课时教学设计_第2页
高中一年级信息技术《可以复用的代码》第二课时教学设计_第3页
高中一年级信息技术《可以复用的代码》第二课时教学设计_第4页
高中一年级信息技术《可以复用的代码》第二课时教学设计_第5页
已阅读5页,还剩6页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

高中一年级信息技术《可以复用的代码》第二课时教学设计【教材分析】本课时选自教科版高中信息技术必修一《数据与计算》第二单元第四节"可以复用的代码",是在学生已经掌握函数定义与调用基本语法之后的深化学习。第一课时的重点在于让学生理解"为什么要把代码封装起来",知道函数是代码复用的基本单位;本课时则将视角从"会用函数"提升到"会设计函数、会组织模块",引导学生把一个真实任务拆解为若干可复用的功能块,通过参数与返回值的设计实现模块间的低耦合协作,初步建立模块化程序设计的工程思维。本节内容承上启下,既是第二单元"编程计算"的方法论收束,也为后续单元中借助第三方库解决问题埋下伏笔,学科核心素养中的计算思维与数字化学习与创新在这一课中得到集中体现。【学情分析】授课对象为高一年级学生。经过前一阶段的学习,学生能够读懂并仿写含有函数定义的Python程序,能使用input、print及常见运算符完成顺序、分支、循环结构的简单任务。但从作业批改情况看,普遍存在三个问题:一是"一次性代码"思维严重,写完即弃,遇到相似任务习惯复制粘贴再逐处修改,改漏一处就出错;二是函数设计随意,参数该传的不传、返回值该回的不回,函数内部混杂大量输入输出语句,导致函数只能在特定场景使用;三是面对稍复杂的任务不知从何处下手,缺少"先分解、再实现、后整合"的问题求解路径。本课时正是针对这三处痛点设计,让学生在真实任务的驱动下经历一次完整的模块化开发过程。【教学目标】1.信息意识:在解决"校园体测成绩处理"任务的过程中,体会代码复用对降低开发成本、减少出错概率的价值,形成主动积累可复用代码的意识。2.计算思维:能够将一个综合任务自顶向下分解为若干功能单一的子任务,合理设计每个函数的输入(参数)与输出(返回值),并能用流程图或伪代码描述模块间的调用关系。3.数字化学习与创新:能将自己编写的多个函数整理为模块文件并在新程序中导入调用,体验"建库—复用—迭代"的开发方式,初步形成个人代码资产的管理观念。4.信息社会责任:在小组协作中遵守统一的接口约定,理解规范命名、注释与文档说明对他人阅读和维护代码的意义。【教学重点与难点】教学重点:函数接口的规范化设计,即"一个函数只干一件事,输入靠参数,输出靠return";多函数协同完成任务的模块化编程流程。教学难点:函数职责边界的划分。学生容易把"处理数据"与"展示数据"写在一起,导致函数无法在新场景复用。突破策略是采用"界面剥离"对比实验,让学生亲身体验混杂设计的弊端。【教学准备】机房环境预装Python3.x及IDLE(或同等编辑器),教师机安装广播教学软件;为学生机分发三个半成品代码文件(体测成绩原始版、半成品函数版、测试数据文本文件);多媒体课件中包含任务情境视频、函数拆解示意图、本课评价量规。【教学过程】一、情境导入:一次"复制粘贴"引发的麻烦(约6分钟)上课伊始,教师在屏幕广播中展示两段出自学生上一课时作业的程序。第一段程序用正常体重指数公式计算并直接打印结果;第二段程序几乎是第一段的逐行复制,仅把输出单位提示从中文改成英文,但其中一处的除数却忘记同步修改,运行结果出现明显偏差。教师提问:"这两段代码有九成像,可偏偏错在不像的那一成。假如教务处要你在三十个班级分别运行这段程序,再输出三种不同格式的报告,你打算复制粘贴多少次?能保证每次都不改错吗?"学生观察、议论,很快意识到复制粘贴的隐患。教师顺势板书课题:让代码可复用——函数的设计与组织。随后明确本课任务主线:为学校体质健康测试编写一套成绩处理程序,要求"核心功能只写一次,各种输出形式自由组合"。设计意图:用学生自己的作业制造认知冲突,让"为什么要复用"从口号变成切肤之痛,任务情境来自校园真实业务,学生有代入感,后续所有知识点都挂在这条主线上。二、温故诊断:函数调用的"暗伤"排查(约7分钟)教师通过教学平台推送一道在线诊断题,代码大意如下:defcalc_bmi():h=float(input("身高(米):"))w=float(input("体重(千克):"))bmi=w/(hh)print("BMI为:",round(bmi,2))calc_bmi()题目问:这段代码能正确运行,但为什么不适合复用?请从函数设计的角度找出至少两处问题。学生独立作答后,教师抽选三份答案投屏点评,归纳出两类典型毛病:其一,数据获取(input)和数据计算混在同一函数里,一旦数据来源变成"从文件读取",整个函数就得推倒重写;其二,结果直接被print"吞掉",调用者拿不到数值,无法再做排序、统计、判断等级等后续处理。教师在黑板上写下本课的"复用三问":数据从哪来?结果到哪去?这个函数换了环境还能用吗?并告诉学生,今天评价每个函数写得好不好,就用这三问来检验。设计意图:诊断题选的是"能运行但不好用"的样本,避免把复习课上成纠错课;提出"复用三问"这一朴素的判别标准,为整节课的函数设计提供统一标尺,也为难点的突破埋下方法伏笔。三、探究新知一:给函数"划清职责边界"(约10分钟)教师带领学生把刚才的诊断代码"动手术"。第一步,把所有input语句剥离出去,让身高体重通过参数传入;第二步,把print换成return,让结果交还给调用者。改造后的函数呈现在屏幕上:defcalc_bmi(height,weight):"""计算身体质量指数,height单位米,weight单位千克"""returnweight/(heightheight)教师提问:"改造后这个函数变短了,功能好像也'变少'了,它凭什么更好?"引导学生讨论得出:正因为它不管数据怎么来、也不管结果怎么用,专心算好一个数,所以无论是键盘输入、文件读取还是网络传输来的数据,它都能处理;算出的结果既可以打印,也可以存列表、参与比较——复用的空间反而大了。随后引入"单一职责"的通俗表述:一个函数只干一件事,并且把这件事干完整。为加深理解,教师给出三个函数"草拟稿"让学生快速判断是否合格:判断某BMI值属于哪个等级(合格);计算BMI并顺便打印欢迎语(不合格,两件事);计算BMI并在内部要求输入身高(不合格,数据来源被锁死)。即时练习:学生在自己的机器上把calc_bmi函数敲入并测试三组数据,包括一组异常数据(身高输入0),观察程序报错,教师预告异常处理留待后续课程,本课只要求参数合理时结果正确。设计意图:用"手术前—手术后"的对照让抽象的接口设计原则可视化;三次快速判断形成即时反馈,帮助学生把"单一职责"从听懂转化为会判;保留异常数据作为悬念,符合真实开发的渐进节奏。四、探究新知二:自顶向下,把大问题拆开(约12分钟)教师展示完整任务单:给定一个全班体测数据文件(每行包含姓名、身高、体重),程序需要完成四项工作——读入数据;计算每个人的BMI;判定等级(偏低、正常、超重、肥胖);按三种形式输出结果(全班列表、等级统计、超重名单)。教师提问:"如果从头到尾一口气写,你估计要写多少行?改一个需求牵动多少处?"随后示范自顶向下分解的思考过程,边讲边画出模块调用树:顶层主程序main,下辖四个功能模块:load_data(读文件,返回学生列表)、calc_bmi(已写好)、judge_level(依据BMI返回等级文字)、三个输出模块(print_all、print_stat、print_overweight)。教师强调分解时的两条口诀:"按动作分,不按数据分;分完看接口,接口先约定。"所谓接口约定,就是在写代码之前先白纸黑字定好每个函数"吃什么、吐什么"。教师带领全班在任务单上填写接口约定表,例如:load_data(filename):参数为文件名字符串,返回由(姓名,身高,体重)元组构成的列表;judge_level(bmi):参数为数值,返回字符串"偏低""正常""超重""肥胖"之一;print_all(students,bmis):接收两个列表,只负责显示,无返回值。小组活动(4人一组):各组对照接口表补全judge_level与三个输出函数的代码框架(仅写def行、文档字符串与pass占位),并互相检查是否符合"复用三问"。教师巡视,重点纠正两类偏差:把等级判定写进输出函数里、让load_data函数承担计算任务。师生共同归纳模块化开发流程:任务分解→约定接口→逐个实现→组装联调→入库存档。教师说明,这个流程不依赖具体语言,是解决任何复杂编程问题的通用路径。设计意图:把难点"职责划分"转化为可操作的两步——画调用树、填接口表,给学生搭建思维脚手架;先约定后编码,模拟真实团队协作的开发规范,为下一环节的协作编程做制度准备;流程的显性化总结让方法可迁移。五、协作实践:完成体测成绩处理系统(约12分钟)明确分工:每组四人分别认领load_data实现、judge_level与print_all联调、print_stat实现、print_overweight实现兼总装。要求每位成员在函数开头写好文档字符串,说明参数与返回值;各函数独立调试通过后再交给"总装员"合并运行。教师课前下发的半成品文件中,load_data已给出读文件的示范代码但故意留有两处填空(文件打开方式、按行拆分方法),学生需结合已有知识补全。判断等级的分界值由教师给出依据国家卫生部门青少年标准简化后的数值:低于18.5为偏低,18.5至23.9为正常,24至27.9为超重,28及以上为肥胖。等级判定用多分支结构实现,提醒学生注意条件书写的顺序与边界值的归属,并在组内讨论"端点值应该归哪一档",用具体测试数据验证。组装阶段,总装员将各函数置于同一文件,主程序按"读入—计算—判定—输出"的顺序串联调用。教师巡视中捕捉两类共性问题并即时广播点评:一是有小组在输出函数内部又算了一遍BMI,教师引导其改为接收已算好的结果,体会"算一次、多处用";二是有小组函数命名含糊(如defdo、defaa),现场讨论命名规范的意义——名字是给别人看的,也是给三个月后的自己看的。每组完成后运行教师提供的标准测试数据,屏幕出现正确结果的小组获得"集成成功"标记。进度快的组接受挑战任务:新增一个函数export_result,把统计结果写入文本文件,体验"加一个功能、不动旧代码"的模块化红利。设计意图:真实分工让学生体验接口约定的约束力,理解协作开发中契约先于实现;半成品与填空设计控制认知负荷,把精力集中在模块组织而非琐碎语法;分层挑战任务保证全体达标的同时给学有余力者留出口子,让"复用带来的扩展性"被亲手验证。六、成果展示与多维评价(约5分钟)随机抽两组上台展示。第一关注点不是界面漂亮与否,而是代码结构:请展示组指一指"如果要改成从网络接口获取数据,你们的程序要动几处",以此检验模块解耦是否彻底。评价采用量规先行。课前已在学习通发布评价量规,四个维度各三级:功能实现(全部/部分/未达成)、接口设计(完全符合三问/基本符合/混杂严重)、命名与注释(清晰规范/有但不全/缺失)、协作表现。学生对照量规小组互评并上传打分,教师汇总后口述共性亮点与一处待改进点。设计意图:评价维度直指本课目标而非泛泛的"完成度";互评促使学生用三问和量规语言审视他人代码,在评价中巩固概念。七、课堂小结与作业(约3分钟)师生共同回顾,教师在黑板上完成最后一笔:把"复用三问""单一职责""分解—约定—实现—组装—入库"三个要点连成一张简明的知识卡。教师指出,今天的程序虽然不大,但走了一遍软件工程的基本流程;大家各自写好的函数,建议存入个人代码库文件夹,下节课学习模块导入时,将真正实现"自己写的代码,换个程序接着用"。分层作业:基础层——把今天的calc_bmi与judge_level存入个人模块文件myhealth.py,写一小段新程序导入调用,截图提交;提高层——为模块增加一个求全班平均BMI的函数,并写成文档字符串;拓展层——思考:如果学校要处理全校两千人的数据,你的程序在结构上需要调整吗?写三点想法。【板书设计】主板书居课题"让代码可复用——函数的设计与组织",其下三栏:左栏"复用三问"(数据从哪来

温馨提示

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

评论

0/150

提交评论