高中一年级信息技术“可以复用的代码-函数与模块化编程”教学设计_第1页
高中一年级信息技术“可以复用的代码-函数与模块化编程”教学设计_第2页
高中一年级信息技术“可以复用的代码-函数与模块化编程”教学设计_第3页
高中一年级信息技术“可以复用的代码-函数与模块化编程”教学设计_第4页
高中一年级信息技术“可以复用的代码-函数与模块化编程”教学设计_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

高中一年级信息技术“可以复用的代码——函数与模块化编程”教学设计本教学设计面向高中一年级学生,依据《普通高中信息技术课程标准(2017年版2020年修订)》必修模块1“数据与计算”的内容要求编制,对应教科版(2019)必修1第二单元第4节“可以复用的代码”。本节课的核心任务是引导学生理解代码复用的价值,掌握自定义函数的定义与调用方法,初步形成模块化编程的思维方式,为后续算法与程序设计的综合实践奠定基础。一、课标解读与教材分析课程标准在必修模块1中明确提出,学生应“掌握一种程序设计语言的基本知识,使用程序设计语言实现简单算法”,并能在解决问题的过程中“体验程序设计的基本流程,感受算法的效率”。本节课正是从“能写程序”走向“能写好程序”的关键节点。前面三节学生已经学习了赋值语句、分支结构、循环结构以及常用语句的综合运用,具备了编写几十行小程序的能力。但当程序规模扩大、相同功能反复出现时,复制粘贴式的写法暴露出冗长、易错、难改的弊端,函数与模块的引入水到渠成。教材本节的编排逻辑清晰:从“重复代码带来的烦恼”切入,引出函数的概念;通过系统内置函数与自定义函数的对比,讲解def语句、参数、返回值三个要素;再上升到模块的导入与使用,最后以“程序设计的一般过程”收束,渗透软件工程的思想萌芽。教师在处理教材时要注意,函数不是孤立的语法点,而是一种思维方式的载体。参数是接口,返回值是契约,模块是组织,这些概念背后是可复用、可维护、可协作的工程素养。本节课的知识结构可概括为三个层次:第一层是“为什么复用”,即代码复用的价值;第二层是“怎样复用”,即函数的定义、调用与模块的导入;第三层是“复用背后的思想”,即自顶向下、分工协作的模块化设计。三个层次层层递进,构成本节课的教学主线。二、学情分析授课对象为高一年级学生。从知识储备看,学生已经能够使用Python编写包含顺序、分支、循环结构的程序,熟悉print、input、int等内置函数的使用,对变量和基本数据类型有一定理解。值得注意的是,学生其实早就在“无意识地复用代码”——他们反复调用print却从不关心print内部如何实现,这正是引入函数概念的天然锚点。从认知特点看,高一学生抽象逻辑思维正在发展,能够理解“形式参数”与“实际参数”的对应关系,但容易在三个地方跌倒:一是混淆“定义函数”与“调用函数”,写了def却不调用,抱怨程序没有输出;二是对return语句理解不透,把print和return混为一谈;三是变量作用域的概念模糊,在函数内外使用同名变量时产生困惑。这些预判应当转化为教学中的针对性设计。从学习动机看,学生对“少写代码多办事”有天然兴趣,对编写有实际用途的小程序(如成绩统计、体质指数计算、简单游戏)热情较高。教师可借助这类真实任务驱动学习,让“复用”的价值在学生的切身劳动中被感知,而不是靠教师的口头宣讲。三、教学目标信息意识方面:学生在面对包含重复功能的编程任务时,能够主动识别可抽取、可复用的代码片段,意识到“重复出现三次以上的代码应当封装”这一工程直觉,形成对代码质量的基本敏感度。计算思维方面:学生理解函数是对功能的抽象与封装,能够将一个较复杂的问题分解为若干功能独立的子任务,用函数加以实现,初步体验自顶向下、逐步求精的问题求解策略;理解参数与返回值构成的接口约定,这是抽象与建模能力在程序设计中的具体体现。数字化学习与创新方面:学生能够正确定义和调用自定义函数,能够使用import语句导入math、random等常用模块并查阅简单文档,能借助模块资源快速搭建解决实际问题的程序,体验“站在他人代码之上”的开发方式。信息社会责任方面:通过了解Python开源模块生态,学生初步理解知识共享对技术进步的推动作用,形成尊重他人代码成果、规范引用模块的意识。教学重点:自定义函数的定义与调用,参数与返回值的理解与运用。教学难点:函数调用时程序执行流程的跳转;形式参数与实际参数的对应关系;模块化分解问题的思想。四、教学策略与课前准备本节课采用“情境对比—概念建构—实践内化—迁移拓展”的教学路径,以任务驱动为主线,辅以类比讲解、对比实验、小组协作。教学环境为配备Python3.x环境(推荐IDLE或Thonny,便于单步调试观察)的网络机房,教师端配备广播教学软件,课前向学生下发导学任务单与半成品代码文件。课时安排为2课时连排(90分钟),第一课时完成函数的定义、调用与参数、返回值,第二课时完成模块的使用与综合实践。五、教学过程(一)情境导入:两份代码的“体检报告”(约8分钟)教师广播展示两位学生上节课完成的“计算三个班级平均分并评级”的作业代码。第一份用顺序结构写成,计算平均分的相似代码重复出现三次,总长度四十余行;第二份是教师重写的版本,主体只有十余行。教师不急于评价,而是请学生做“代码医生”,给两份代码写体检结论:哪份更易读?如果现在要改成计算五个班,哪份改起来更省心?如果计算平均分的规则变了(去掉最高分再平均),哪份出错的风险更小?学生议论后普遍指出第一份“啰嗦”“改一处要改三处,容易漏”。教师顺势板书学生的原话,并点题:程序世界有一条朴素的生存哲学——同样的活,只写一遍。把反复用到的功能打包成一个可以反复调用的“零件”,这种思想就是代码复用,今天我们要学的函数和模块,就是制造零件和调用零件仓库的工具。设计意图:用真实的学生作品制造认知冲突,让“复用的必要性”从学生自己嘴里说出来,概念尚未登场,需求已经成立。(二)概念建构:从“会用别人的函数”到“会造自己的函数”(约15分钟)教师抛出一个看似平常的问题:我们一直在用print、len、int,这些函数是谁写的?学生意识到它们是Python开发者预先写好、打包在语言里的“成品零件”。教师引导:既然语言可以给我们提供零件,我们能不能给自己制造零件?答案是肯定的,这就是自定义函数。教师以校园生活任务为例现场演示:学校要统计各班的体质健康优良率,计算“优良人数占总人数的百分比”这一操作会反复使用。教师在黑板上以板书与代码对照的方式逐行讲解函数定义的骨架。defyouliang_rate(youliang,zongshu):rate=youliang/zongshu100returnrate讲解时突出四个关键词。其一,def是声明,意为“我要定义一个函数”;其后的名字如同给零件贴上标签,命名要见名知义。其二,括号里的youliang和zongshu是形式参数,相当于零件上预留的“接口”,调用时真实的数值会从接口送进来。其三,函数体内的语句在定义时并不执行,如同工厂造出机器但尚未开机。其四,return是“交货口”,把计算结果交还给调用者。随后教师调用函数:print(youliang_rate(45,50)),引导学生观察“先定义、后调用”的顺序,并用调试器单步执行,让学生亲眼看到程序的执行流程从主程序“跳进”函数体、执行完毕后又“跳回”调用点。这一可视化过程对突破“执行流程跳转”这一难点至关重要,务必让学生看足、看清。教师接着安排一个辨析微型活动。给出两段代码:一段函数体内用print输出结果,另一段用return返回结果,然后分别尝试把函数的结果再乘以2参与后续运算。学生动手试验后发现:print只是“说给你听”,说完就没了;return是“交到你手上”,可以继续参与运算。教师总结:显示与返回是两件事,print面向人的眼睛,return面向程序的下一步。设计意图:以“造零件”的类比统摄函数概念的各个要素,用调试器的单步执行让抽象的流程跳转可视化,用print与return的对比实验精准打击学生最易混淆的概念。(三)分层实践:从模仿到改造(约20分钟)实践环节采用三级任务单,学生按自己的节奏推进,教师巡视指导,重点关注调用顺序和参数传递两类典型错误。基础关“照猫画虎”:补全一个计算圆面积的函数circle(r),函数体已给出框架,学生填入计算语句与return语句,并在主程序中调用它分别计算半径为2、5.5、10的圆面积。完成后同桌互查:函数定义是否在调用之前?return写了吗?进阶关“抽丝剥茧”:教师下发一段“坏味道”明显的代码——用复制粘贴方式计算三名学生语数英三科平均成绩并按平均分评级的程序,共五十余行,其中求平均分和评级两段的逻辑各重复三次。任务要求:找出重复的功能,分别抽象为average(a,b,c)和grade(score)两个函数,重写程序。完成后对比重写前后的代码行数,并回答:若评级标准调整,新版程序只需修改几处?挑战关“举一反三”:为学校运动会设计小程序。定义函数judge(score_list),接收若干名裁判打分,去掉一个最高分和一个最低分后返回平均分;主程序循环录入多名运动员的成绩并输出最终得分。该任务综合了函数、列表(或多次输入)、循环与分支,供学有余力的学生攻取。小组互评环节:每组推选一名代表讲解自己抽取函数的思路——“我是怎么发现这段代码该被封装的”。教师点评时提炼出可操作的判断标准:一看是否重复出现,二看功能是否相对独立,三看将来是否可能修改或用在别处。把“封装直觉”变成“封装方法”。设计意图:三级任务兼顾差异,让所有学生都能完成函数定义调用的基本操练,让能力较强的学生在“抽取函数”的真实决策中体会模块化的判断依据,避免函数教学沦为语法填空。(四)视野拓展:打开模块的“公共仓库”(约12分钟)教师设问:有些功能几乎每个程序员都要用,比如开平方、生成随机数,难道每个人都要自己造一遍?由此引出模块——别人造好、打包发布、供全社会调用的“零件仓库”。教师演示两条路径。其一,importmath之后使用math.sqrt(2),感受一行调用背后数学家级别的精度保障;其二,importrandom后用random.randint(1,100)编写一个猜数小游戏的核心逻辑,学生的兴趣被迅速点燃。教师补充frommathimportsqrt的写法及其与importmath的差别(调用时是否加模块名前缀),并提醒学生:模块是别人的劳动成果,Python几十年来积累的海量第三方库是全球开发者无偿共享的结果,这正是开源精神的体现。教师现场布置一个两分钟的微任务:不写循环判断,只借助math模块求一个数的阶乘。学生发现math.factorial一步解决,真切体会到“会用库的人,一行顶别人十行”。教师趁势引导正确的学习观:调库不是偷懒,而是站在共享成果之上解决更大的问题;但前提是理解自己在调用什么,能读懂基本文档,能向他人说清程序的逻辑。设计意图:模块教学不止于import语法,更在于揭示软件业的协作本质与开源文化,落点同时覆盖知识与信息社会责任两个维度。(五)课堂小结与结构化梳理(约5分钟)师生共同完成知识导图。横向上看方法链:函数的定义(def、函数名、参数列表)、函数的调用(传入实际参数)、结果的回收(return);纵向上看思想线:为什么复用(避免重复、便于修改、利于协作),怎样复用(封装功能、约定接口),如何组织复用(函数构成模块,模块构成库)。教师以一句话收束本课:好的程序员不是写得最多的人,而是让每一行代码都被反复使用的人。(六)作业布置(分层)必做题:将monthly水电费统计问题程序化——定义函数计算阶梯水价,主程序循环录入多户用水量并汇总,体会同一定价规则的反复调用。选做题:自学time模块的sleep函数,为自己的猜数游戏增加倒计时环节;或浏览Python官方中文文档中math模块的函数列表,挑三个没学过的函数编写演示程序并在下节课分享。六、板书设计主板书以“零件工厂”为隐喻布局:左侧写“造零件”,即函数定义四要素(def、函数名、形式参数、return);中间写“用零件”,即调用时实际参数与形式参数的对应、执行流程的跳进跳出;右侧写“零件仓库”,即import模块。底部一条横线贯穿,标注思想主线“重复的功能,只写一次”。七、教学评价设计过程性评价依托三级任务的完成情况与小组互评记录,重点关注学生能否自主识别可封装的功能。结果性评价采用上机小测:给出一个含重复代码的小程序,要求15分钟内完成函数化改写并说明每处修改的理由,既考查语法更考查思想。评价量规设三个维度:功能正确(程序跑得出正确结果)、结构合理(函数划分恰当、命名清晰、无冗余重复)、表达清晰(能向同伴讲清自己的封装思路)。三个维度分别对应数字化学习与创新、

温馨提示

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

评论

0/150

提交评论