2.4 可以复用的代码 高中信息技术教案_第1页
2.4 可以复用的代码 高中信息技术教案_第2页
2.4 可以复用的代码 高中信息技术教案_第3页
2.4 可以复用的代码 高中信息技术教案_第4页
2.4 可以复用的代码 高中信息技术教案_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

2.4可以复用的代码高中信息技术教案一、教材分析与教学定位本课选自教科版(2019)高中信息技术必修1《数据与计算》第二单元“编程计算”第4节“可以复用的代码”。教材在完成顺序结构、分支结构、循环结构三大基本控制结构的学习之后,专门设置本课时,旨在引导学生从“编写程序”走向“设计程序”,理解函数封装、参数传递、返回值等核心概念,初步建立模块化编程思想。本节内容承上启下:向上承接三种基本结构的综合应用,向下为后续“算法与程序实现”“数据处理与可视化”等章节的函数库调用、自定义函数、递归算法奠定基础。依据《普通高中信息技术课程标准(2017年版2020年修订)》,“能够利用程序设计语言实现简单算法,解决实际问题”是必修课程“数据与计算”模块的重要内容要求。本课重点落实“信息意识”“计算思维”“数字化学习与创新”三大学科核心素养,尤其是计算思维中的抽象、分解、模式识别与算法设计能力。二、学情分析本课授课对象为高中一年级学生。经过前几节课的学习,学生已经掌握了Python语言的基本语法,能够编写包含顺序、分支、循环结构的简单程序,解决如“计算分段函数”“求1到n的累加和”“输出九九乘法表”等基础问题。学生具备一定的运算求解能力和逻辑推理能力,但多数学生的编程经验仍停留在“一次性脚本”层面,对于代码重复利用率低、程序可读性差等问题缺乏切身体验。部分学生尚未形成“先设计再编码”的工程思维,对“函数”概念的理解容易停留在“数学函数”的认知定式上。因此,本课需要创设真实问题情境,让学生在“使用函数—定义函数—优化函数”的递进过程中完成认知跃迁。三、教学目标1.通过分析“求圆面积”程序的冗余代码,说出函数在减少重复、提高可维护性方面的作用,体会模块化编程的思想价值。2.能正确区分函数定义与函数调用,掌握def语句定义函数的基本语法规则,能够使用参数传递数据、使用return语句返回计算结果。3.能运用函数改写已有程序,完成“求多个圆的面积”“绘制彩色同心圆”等任务,在调试运行中理解形参、实参、返回值的对应关系。4.通过小组协作探究,建立“功能独立、接口清晰”的函数设计意识,养成先分析后编码的良好编程习惯。四、教学重难点重点:函数定义与调用的语法规则,参数传递与返回值的运用。难点:形参和实参的对应关系,函数封装边界的合理划分。五、教学方法与准备教学方法:问题驱动法、任务驱动法、对比教学法、小组协作学习法。教学环境:计算机网络教室(一人一机)、Python3.x集成开发环境(IDLE或Thonny)、多媒体广播教学系统。教学资源:导学案(含半成品程序代码)、微课视频《函数的前世今生》、分层任务卡(基础层/提高层/挑战层)、学习评价量表。六、教学过程(一)情境导入:代码的“重复之痛”(约8分钟)教师在大屏幕上展示两段程序代码片段,请学生观察并思考:代码A(未使用函数):程序需要计算三个半径分别为1、2、3的圆面积,学生写出三段几乎相同的代码——分别重复输入print(3.14rr),只是r的赋值不同。代码B(使用函数):defarea(r):return3.14rrprint(area(1));print(area(2));print(area(3))教师提问:“A代码中,如果想把圆周率从3.14改成更精确的3.14159,你需要修改几处?B代码呢?”学生经过讨论,得出A需要修改三处,B只需修改一处。教师顺势演示:如果计算50个圆的面积,A方式需要复制粘贴50段代码,B方式只需调用50次函数。学生直观感受到“重复代码”的危害,产生“有没有更好的办法”的学习需求。教师板书课题:可以复用的代码——函数。同时在黑板右侧写下核心问题:“如何在程序中实现‘一次定义,多次使用’?”设计意图:通过数字量化对比,让学生直观感受代码冗余带来的维护成本,激发对“复用”技术的渴求。此环节渗透信息意识——程序不只是写给计算机执行的,也是写给人维护的。(二)新授环节一:初识函数——定义与调用(约15分钟)1.从数学函数到程序函数教师提问:“同学们学过数学中的函数,比如y=f(x),那么在Python中,函数是什么?”学生可能会回答“输入一个x,得到一个y”。教师肯定学生的直觉,同时补充:“程序中的函数不仅有‘输入—输出’关系,更重要的是它打包了一段可重用的语句序列。”教师以“求圆面积”为例,边演示边讲解def语句的三要素:def函数名(参数列表):函数头,以冒号结尾函数体缩进块内,完成具体功能return返回值将结果传递给调用者教师强调:函数名应见名知义(如area表示面积),参数列表是函数的“入口”,return是整个函数的“出口”。没有return的函数执行完毕后返回None。2.函数调用:让代码“跑”起来教师演示交互式调用:>>>defgreet(name):print("你好,"+name)>>>greet("小明")教师引导学生注意:定义函数时只是“告诉计算机怎么做”,只有调用函数时才会真正执行。函数调用的格式为“函数名(实参)”,实参是实际传递给函数的数据。3.对比辨析:定义与调用教师给出几组代码,请学生判断是“定义”还是“调用”:a.defadd(x,y):returnx+y(定义)b.print(add(3,5))(调用)c.add(函数名,表示函数对象本身)学生通过辨析,进一步明确“定义”与“调用”的区别。设计意图:利用数学已有认知进行正向迁移,降低概念理解门槛。通过即时判断练习,强化定义与调用的语法辨析,避免常见错误。(三)新授环节二:参数与返回值——深入理解“数据流动”(约15分钟)4.形参与实参:名字与值的关系教师板书:defarea(r):r是形参,定义时占位return3.14rrprint(area(5))5是实参,调用时赋值给r教师提问:“如果调用area(5)和area(10),r分别是什么?计算过程有何不同?”学生在Python交互环境中验证,自然得出形参只在函数内部有效、实参决定了具体运算结果的结论。5.多参数的函数:求矩形面积教师提出新问题:请定义一个函数,计算长a、宽b的矩形面积。学生尝试编写:defrect_area(a,b):returnab教师追问:“调用时写rect_area(b=3,a=4)可以吗?”学生运行后发现可以,教师顺势讲解关键字参数与位置参数的差异,同时提醒:关键字参数必须放在位置参数之后,这是Python语法规定。6.无返回值函数:比如输出提示信息教师举例:defshow_info():print("这是无参数无返回值的函数")show_info()学生通过对比,自主归纳出函数四种类型:无参无返回、无参有返回、有参无返回、有参有返回。教师引导学生思考:什么场景适合用无返回值的函数?什么场景必须有返回值?帮助学生建立“函数负责单一职责”的意识。设计意图:以少量精当的示例帮助学生建立参数传递的完整认知框架。通过“改错—讨论—验证”的循环,将形参实参这一难点转化为可操作的具体体验。(四)实践探究:三阶任务驱动,做中学(约25分钟)教师下发三层任务卡,学生根据自己的水平选择起点,鼓励向更高层进阶。同桌两人一组,协作完成。基础任务(必做):改造“求圆面积”程序给定半成品程序,其中包含求三角形面积的公式,但没有封装成函数。请学生将该段代码改造成函数tri_area(base,height),并调用三次,分别计算底为3高为4、底为5高为6、底为7高为8的三角形面积。要求输出清晰,例如“三角形面积:6.0”。提高任务(选做):求n个数的最大值并统计次数设计函数find_max_count(numbers),接受一个数字列表,返回该列表中的最大值以及最大值出现的次数。例如输入[3,6,9,6,9,9],返回(9,3)。提示:可以使用max()函数辅助,但必须自己统计次数。请撰写程序并验证两到三组测试数据。挑战任务(鼓励尝试):绘制彩色同心圆导入turtle画图模块,定义函数draw_circle(x,y,radius,color),在任意位置绘制指定大小和颜色的圆形。调用该函数绘制至少3个不同位置、不同颜色、不同大小的同心圆或并排圆。注意每次画圆前调用penup()移动画笔。教师在学生操作过程中巡回指导,重点观察:函数定义缩进是否正确、调用是否传入了正确的实参、学生是否主动将代码拆分到函数中。对遇到困难的学生,教师引导其查看导学案中的“陷阱提示”(例如:定义函数后忘了调用、忘记写return关键字、缩进错误等)。设计意图:三阶任务充分照顾个体差异,让不同水平的学生都有获得感和挑战欲。任务内容贴近真实应用,从数学计算到列表处理再到图形绘制,体现函数在不同问题场景下的通用性。(五)协作分享与互评(约10分钟)教师邀请三组学生代表分别展示自己完成的三层任务。展示时,要求说明:函数的功能是什么,参数和返回值分别是什么,为什么将这段代码封装成函数而不是直接写在主程序里。展示组A(基础任务)的分享要点:封装后主程序变得简洁,每个三角形面积的计算只需要一行调用。展示组B(提高任务)的分享要点:设计返回值时想到用元组同时返回最大值和次数,调用时用两个变量接收。展示组C(挑战任务)的分享要点:将“画一个圆”抽象成函数,四个参数分别控制位置、大小、颜色,这样画N个圆只需要N行调用,代码可读性大幅提升。其他学生根据评价量表进行互评。评价量表包括四个维度:功能正确性(40%)、代码规范性(20%)、封装合理性(20%)、展示交流能力(20%)。教师总结点评,重点肯定学生在“判断哪些代码应该放进函数”时的合理分析,并纠正个别学生“把所有代码都塞进一个函数”的过度封装倾向。强调:好的函数只做一件事,函数名应该能表达这件事。设计意图:通过展示与互评,将隐性思维过程外显,帮助全体学生共享优秀策略。评价量表的使用让学习目标更加可视化,促进反思。(六)课堂小结与拓展延伸(约7分钟)教师引导学生结合板书梳理本课收获:7.函数是组织代码的基本单位,能显著提高代码的复用性、可读性和可维护性。8.定义函数使用def关键字,包括函数名、参数列表、函数体和返回值。9.调用函数时需要传递正确的实参,返回值可以被变量接收或直接使用。10.好的函数应该功能单一、命名规范、接口清晰。教师进一步提出拓展问题:如果某个函数在别的程序里也需要用,怎么办?学生凭直觉回答“复制粘贴”。教师播放一段2分钟微课视频《函数的前世今生》,介绍Python模块的导入机制,例如importmath和fromturtleimport,让学生感知“函数—模块—包”的层次关系。并预告下节课“模块化编程进阶”,让学生课后尝试将本课编写的函数保存为.py文件,在另一个程序中用import语句导入调用。教师寄语:“代码之所以伟大,不仅因为它能完成计算,更因为它能被无数人无数次地复用。今天我们学习的看似简单的函数,正是未来构建大型程序世界的基石。”设计意图:从具体操作上升到编程思想,再自然引出模块化概念,为后续学习埋下伏笔。课后延伸作业将课堂所学延伸至课外,形成学习闭环。七、教学反思(课后撰写参考)本课教学设计遵循“问题—探究—建构—应用—反思”的认知路径,以真实情境驱动,以任务链梯度推进。在教学实施过程中,需注意以下几点:第一,参数与返回值的讲解不能脱离动手验证。部分学生仅靠听讲难以理解形参实参的关系,必须给予充分的交互式实验时间。建议在机房教学中,每个知识点讲完后预留3—5分钟让学生自由修改代码、观察运行结果。第二,分层任务的节奏需要灵活掌控。若基础任务完成较快,可将提高任务的讨论提前;若整体进度偏慢,挑战任务可以作为课后拓展,不必强求当堂完成。第三,要警惕部分学生“用函数反而写不出来”的倒退现象。允许学生先写出不加函数的完整代码,再引导其提炼重复部分形成函数,这种“先有后优”的路径比一步到位更符合多数学生的认知规律。第四,评价环节不能流于形式。展示后要有针对性地提问,例如:“如果没有这个函数,主程序会变成什么样?”“这个函数的参数还可以怎么设计?”以此帮助学生建立设计权衡意识。(教案正文完)八、附:分层任务卡示例说明|任务层级|具体内容|核心技能指向|预计完成时间|||||

温馨提示

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

评论

0/150

提交评论