高中信息技术必修一“可以复用的代码”项目化教学设计_第1页
高中信息技术必修一“可以复用的代码”项目化教学设计_第2页
高中信息技术必修一“可以复用的代码”项目化教学设计_第3页
高中信息技术必修一“可以复用的代码”项目化教学设计_第4页
高中信息技术必修一“可以复用的代码”项目化教学设计_第5页
已阅读5页,还剩7页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

高中信息技术必修一“可以复用的代码”项目化教学设计一、内容定位与育人价值“可以复用的代码”位于教科版高中信息技术必修一“算法与程序实现”学习单元的中后段,是学生从会写一段顺序程序走向组织一组程序、从解决一个题目走向支撑一类问题的关键节点。本课不把函数、模块、库当作语法清单处理,而把它们放回真实问题结构中:当同一组判断在成绩统计、体测换算、图书借阅、能耗分析中反复出现,复制粘贴会带来版本漂移、数据口径不一致和错误扩散;可被命名、被参数化、被测试、被组合的代码则成为可迁移的认知资产。学生需要理解,复用不是少敲几行键盘,而是通过明确输入、处理与输出边界,把经验沉淀为可调用的计算构件。本课承载的学科核心素养落在四个相互咬合的层面。信息意识体现为能从杂乱需求中识别重复模式,判断哪些逻辑值得抽象;计算思维体现为把流程拆成高内聚、低耦合的功能单元,用参数控制变化,用返回值传递结果;数字化学习与创新体现为借助开发环境、内置函数、标准库与同伴组件完成再创作;信息社会责任体现为在引用他人代码时标注来源、核验边界条件、避免未经授权的数据采集与偏见性规则进入公共程序。课堂最终要让学生形成一种朴素而稳定的工程直觉:好代码不仅此刻能跑,还应当能被未来的自己、同伴和下一个项目安全地再次使用。二、学情研判与教学起点授课对象为高一年级学生,已经完成顺序、选择、循环结构以及列表、字典等基础内容学习,能编写几十行规模的Python程序。多数学生对“复制—粘贴—修改”高度熟练,甚至把它误认为效率;他们常见问题包括变量命名随意、同一公式散布多处、输入校验缺失、只输出不返回、函数内部直接打印导致无法二次利用、把全局变量当成传值通道。部分学生在前期项目中体验过改动一处引发多处报错,这种痛感是本课最重要的情感资源;也有学生能主动使用math、random等库,却说不清import背后发生了什么,更关注运行结果是否“像答案”。差异化起点要求任务既开放又可落地。基础层学生应能把重复三段以上的代码改造成带参数函数;发展层学生应能区分纯计算函数与带交互函数,设计返回值而非依赖print;拓展层学生应能把相关函数整理成模块,编写简短说明字符串,并用主程序完成组合调用。对学习能力较强的学生,可引入嵌套数据结构、异常输入、简单单元断言与代码风格检查;对进度较慢的学生,则提供半完成支架、函数签名卡片和可运行样例,保证每个人都在“可复用”这一概念上真实前进,而不是被语法细节提前淘汰。三、教学目标学生能够解释代码复用在可靠性、维护性与协作开发中的作用,能结合具体任务指出重复逻辑引发的风险,并用自然语言描述“输入—处理—输出”的边界。学生能够在Python中定义函数,合理使用形参、实参、默认值与关键字参数,区分局部变量与全局变量,通过return返回单个值或多个值,理解函数应先测试后集成。学生能够将功能相近的函数组织为模块,使用import、fromimport与别名方式调用,知道主程序保护写法if__name__=="__main__":的意义,避免模块被导入时误执行演示代码。学生能够围绕“校园体质健康小助手”完成小型项目:读取若干学生的身高、体重、50米跑、肺活量等模拟数据,计算身体质量指数、评定等级、生成异常提示与班级汇总;把计算与展示分离,把通用规则放入可复用模块,把当前任务相关流程放在主程序。学生能够用断点、打印调试与断言对关键函数进行核验,写出至少三组典型输入、边界输入与异常输入的预期结果。学生能够在小组内开展代码走查,依据命名、注释、重复度、可测试性、来源标注五项指标给出修改建议,形成对他人负责也对未来自己负责的工程态度。四、重点难点与突破路径教学重点为函数抽象与模块组织。难点不在def的拼写,而在“切哪里”:切得太细,调用关系碎片化;切得太粗,函数重新变成大杂烩。突破采用三次压缩策略。第一次压缩从重复语句入手,把相同计算圈成黑盒;第二次压缩关注变化点,把会变的内容设为参数,把稳定规则留在函数体;第三次压缩关注去向,把结果从屏幕回收到返回值,让显示成为函数外部的选择。通过三次板书迭代,学生能看到一个函数从“能运行”到“可复用”的生长痕迹。另一个难点是作用域与数据流。学生常误以为函数内改过列表,外部变量就自然同步;也常把全局变量当作“方便袋”。课堂不依赖抽象讲解,而使用“快递单”类比:参数是交给柜台的信息,返回值是盖戳后寄回的单据,全局变量像贴在墙上的公共纸条,多人都能改,最容易起冲突。对可变对象,则现场演示列表作为实参传入后append的影响,引导学生明确约定:计算尽量返回新结果,确需原地修改必须在注释和函数名中说明。五、教学资源与环境准备机房安装Python3与统一开发环境,预置项目骨架campus_health、数据样例students.csv、空模块rules.py、主程序main.py、自测文件test_rules.py。教师准备三段相似度很高的“坏代码”:分别计算BMI、判断等级、统计及格率,但变量名不同、公式有一处不一致、输出格式互相粘连。大屏展示可编辑便签墙,函数卡片分红蓝两色,红色代表发现的问题,蓝色代表抽象后的功能。网络仅开放校内资源与Python官方文档镜像,强调查文档是能力而非作弊;所有外部片段必须记录来源、用途与是否修改。六、教学过程环节一从故障现场进入,用时约八分钟。教师出示运动会成绩统计的事故案例:志愿服务处先打印一张表,体育组又复制同一份程序做复赛排名,临赛前女生800米评分标准调整,只改了其中一份,结果公告栏出现两名同成绩学生等级不同。学生不谈概念,只回答三个问题:哪里重复,哪里不一致,谁为后果负责。教师把回答压缩成“同逻辑多副本、口径漂移、责任悬空”,随即给出本课总任务:为学校秋季体质监测做一套可维护的小工具,要求任何评分口径变化只改一处,所有报表自动同步。环节二做代码体检,用时约十二分钟。四人小组拿到包含calculate_bmi雏形的混乱脚本,任务不是马上重写,而是完成“重复热力图”:用荧光笔标出相同计算,用箭头标出数据从哪里来、到哪里去,用问号标出只能意会的变量名。每组选派一名“患者代言人”说明最危险的一处。教师巡视时故意追问两类问题:如果身高单位从米换成厘米,哪几处会一起错;如果老师想把结果写进文件而不是打印,现有代码要把print抠掉多少处。学生在追问中发现,把计算和输出捆在一起,等于把药粉和糖衣压成同一片,拆分才谈得上复用。环节三完成第一次抽象,用时约十八分钟。师生共同把BMI计算建成函数。板书只保留函数签名:defbmi(height_m,weight_kg):。教师坚持先写契约再写实现,要求用注释说明单位、有效范围与返回含义,例如身高以米计,体重以千克计,返回四舍五入到一位小数的数值。学生实现后出现三类典型错误:形参名与外部变量同名造成遮蔽,函数内input导致无法批量处理,return写成print造成None参与后续比较。教师不直接给答案,而设计最小对照:同一份数据分别调用print版与return版,再尝试求平均值,前者立刻报错。学生亲眼看见“输出给人看”和“交还给程序”是两回事。随后引入边界审议。身高为0、体重为负、输成字符串时,函数应当崩溃、沉默还是报告。课堂形成的约定是:教学阶段不假装工业级健壮,但不能装看不见;输入非法时返回None并记录原因,或由上层统一抛出清晰提示。教师把学生分成立场派,一派主张严格报错,一派主张宽容跳过,辩论三分钟后形成可执行规则:底层计算函数保持纯净,不负责弹窗;数据采集层负责清洗;报告层把异常数量呈现给使用者。规则一旦确定,所有函数遵守同一套语义,复用才有秩序。环节四从函数走向模块,用时约二十一分钟。学生把bmi、level_label、pass_rate、risk_tip四个函数移入rules.py,主文件只保留读取数据、调用规则、展示结果。此时出现名副其实的任务冲突:直接运行rules.py,若干测试print被执行;被main.py导入后,测试又重复跑一次。教师让学生观察现象,再揭开if__name__=="__main__":的作用:它像休息室门牌,直接开门时才演出,被请进别的剧场就保持安静。学生亲手把演示语句移入保护块,理解模块既能独立体检,也能安静服役。模块命名成为短暂但关键的讨论。mon、utils、tool这类名字被否定,因为它们什么都装,最后什么都不说明。学生改用health_rules或body_metrics,并写一行模块docstring说明适用范围。教师强调import不是把别人的黑板擦搬到自己教室,而是建立清晰引用:importmath后使用math.sqrt明确来源;frommathimportsqrt更短,却增加同名风险;frommoduleimport在课堂项目中禁用,因为它让来源追踪变成猜谜。学生按小组重排import区,统一标准库、第三方、自编模块三段顺序,并在自编模块旁写明责任人和版本日期。环节五开展项目攻坚,用时约三十五分钟。主任务设定为三级台阶,保证每名学生都有抓手。基础台阶要求读取内置列表数据,计算每名学生的BMI与等级,输出班级平均与最低最高;提高台阶要求读取csv,处理缺失值,把异常记录单独写入report_bad.csv;挑战台阶要求提供mand风格菜单,支持按性别、班级、项目筛选,并把评分标准放入字典配置,修改标准不改核心函数。三条台阶共用同一组底层函数,学生在任务单上勾选目标,每一次升级都不允许推翻已测试通过的函数,只能新增调用或补参数。教师介入采用“十问不代写”。当学生求助,教师只问:这个函数名字是否说出它做什么;输入是什么,单位写明没有;返回值给谁用;调用几次;有没有第二处死公式;出错时谁负责;测试数据够不够坏;普通人三个月后能否看懂;来源是否标注;下次更换项目还能带走哪一块。若十问中有七问答不上,代码不进入集成。小组配置材料管理员、驱动员、导航员与质量官,质量官不敲业务代码,专管检查重复、跑断言、记录修改理由,迫使“写得快”让位于“想得清”。函数设计在课堂上刻意制造一次必要重构。初版level_label(score)使用数字成绩内部换算等级,后来体测加入肺活量与视力,单参数不再够用。学生提出三种方案:增加opt参数、塞入字典、拆成多个专门函数。全班投票后采用配置字典加专门函数混合方案:通用阈值比较保留为pare_by_threshold(value,low,high),各项目等级分别封装,配置只描述边界。教师点明取舍依据:能预判的变化放参数,不能预判的组合放结构,语义差异大的规则别硬挤进同一函数。复用不是把所有可能塞进一个黑箱,而是给变化留门,不给混乱留窗。测试活动以“坏数据集市”展开。每组领取三张恶意卡:身高写成1.7500的字符串,csv中出现半角逗号混入,体重字段为空,某学生50米跑成绩为负数,班级名含空格,标准表把女生阈值错放到男生列。小组先用断言保护核心函数,例如assertbmi(1.70,60)==20.8;再让主程序在脏数据面前不整盘崩溃,而是产出可读的异常清单。教师提醒,断言不是表演正确,而是提前写下对世界的期待;测试通过不代表程序善良,只代表已知陷阱被照亮。学生在失败后补测试,代码史中留下“为什么会这样改”的痕迹。环节六进行发布与互评,用时约二十五分钟。每组用三分钟演示,不展示花哨界面,只展示三项证据:一改评分标准能否只动配置;二抽出rules模块放进模拟的“图书馆借阅逾期”项目,有多少函数能直接带过去;三用陌生组员电脑按README运行是否成功。评价表坚持少而硬:问题抽象是否对准重复,边界是否清楚,返回值是否服务下一步,模块导入是否克制,异常处理是否诚实,来源与许可是否注明。同伴建议必须具体到行,如“pute应更名summarize_class,因为它同时返回均值、计数与异常清单”。教师点评避开泛泛夸奖,聚焦可迁移判断。某组把打印格式做进函数,被评为“好看但难养”;某组把等级色块与阈值写进全局常量,被肯定为“把政策从算法中剥离”;某组引用网络片段却没改单位,课堂现场发生厘米与米混算,成为最生动的反面教材。这里顺势处理信息伦理:复用他人代码不是搬运结果,而是承接责任;来源不明、许可不清、逻辑未验的代码,再短也不准进入给同学使用的工具。学生明白,技术素养与公民责任共享同一条底线:别把自己也不愿承担的风险,悄悄打进公共程序。环节七回到概念结构,用时约十分钟。师生共同完成一张“复用成熟度阶梯”:最低层是复制粘贴,其次是统一变量名,再上是封装函数,继续是参数化与返回值,随后是模块与版本记录,更高处是文档、测试、许可与配置外置。学生把个人项目贴纸放到对应层级,并写下一步动作。教师收束为一句话:可被复用的代码,总是在替三种人考虑——现在调用它的人、以后修改它的人、受此结果影响的人。课堂未直接讲宏大工程,却让学生摸到软件世界的秩序来源。七、学习评价设计过程评价嵌入每个环节,使用“证据先于分数”的原则。函数契约单占百分之二十,看签名、单位、返回约定与异常说明是否一致;模块重构记录占百分之二十五,看删除重复而非遮盖重复;项目运行与测试结果占百分之三十,看基础台阶完整度与坏数据下的诚实表现;互评与修订占百分之十五,看建议是否引发实质修改;来源与伦理标注占百分之十,看是否形成职业习惯。评价不奖励最长代码,奖励最短可依赖路径;不奖励机智取巧,奖励可解释取舍。个人反思题设三问:今天哪一段代码未来最可能被再次使用,凭什么;哪一处你现在仍不放心,下次用什么测试盯住它;如果把课题换成社区垃圾分类积分,你会带走哪些函数,必须重写哪些规则。教师根据回答判断学生是否完成从“我做出来”到“我能迁移”的跨越。对未达标学生,不布置惩罚性抄写,而提供“修复清单”:把print改return、抽出一个重复公式为名命函数、补两条断言、写三行使用说明;每项完成后立即回看运行差异,重建掌控感。八、作业与延展基础作业为把家庭用电峰谷计费中的重复计算改造成两个函数,并提交前后对照。进阶作业为设计library_fines.py,支持普通图书、绘本与参考工具书不同逾期规则,要求规则数据与计算函数分离,主程序能导入校园健康项目中已验证的read_csv_safe函数或说明为何不能复用。挑战作业为撰写一页“可复用组件说明书”,面向下届高一介绍一个函数,限制使用图片、示例与反例,不得出现“很简单”“显然”这类不经证明的词。跨学科延展联系体育、数学与生涯规划。体育组提供真实心率区间,学生把阈值配置外置,讨论样本少时等级是否稳定;数学课同步出现分段函数,信息技术课强调分段依据不能只靠图像直觉,还要能被程序测试;生涯板块介绍开源协作中的issue、pullrequest与版本号,要求学生认识复用背后是社会协作机制。所有延展均不追求名称热闹,而追一个问题:当规则改变,系统是否能低成本保持可信。九、板书与资源结构主板书分三列。左列写病灶:重复、漂移、耦合、沉默错误;中列写处方:命名、参数、返回、作用域、模块、配置、测试、标注;右列留“改动成本”刻度,从复制粘贴的一处变处处改,到配置外置的一点改全局随。副板书保存本课函数契约:bmi(height_m,weight_kg)>float;level_by_threshold(value,cuts)>s

温馨提示

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

评论

0/150

提交评论