高中信息技术选修1《程序的选择结构》教学设计_第1页
高中信息技术选修1《程序的选择结构》教学设计_第2页
高中信息技术选修1《程序的选择结构》教学设计_第3页
高中信息技术选修1《程序的选择结构》教学设计_第4页
高中信息技术选修1《程序的选择结构》教学设计_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

高中信息技术选修1《程序的选择结构》教学设计本设计面向高中信息技术选修1“算法与程序设计”模块中“程序的选择结构”一课,适用于已完成顺序结构学习、能够使用输入输出语句与基本算术表达式的学生。课堂以“让程序学会判断”为统领,把关系运算、逻辑运算、分支流程、边界测试与问题建模连成一条可以动手验证的学习链。学生不再把条件语句看成若干条语法碎片,而是把它理解为在不确定世界里作出有限选择的一种表达工具:给定事实,程序据实分支;边界模糊,程序先用规则澄清;规则冲突,程序依靠优先级与嵌套维持一致。整节课强调从自然语言叙述到流程图,再到可运行代码的三次转译,强调每一个分支都要回答三个问题:判断什么,依据什么,漏掉什么。教材所处位置具有明显的承启意义。此前学生用赋值、输入、输出与顺序计算解决“一路到底”的问题;此后循环结构会把重复劳动交给计算机,而循环中的退出、累计、筛选与异常规避,都离不开条件判断。选择结构不是夹在顺序与循环之间的过渡桥段,它是自动化系统的决策神经。温度报警器要判断是否超限,校园门禁要识别权限,运动处方要依据心率区间给建议,网络推荐要在合规约束下筛选内容。课堂选材从校园与家庭切入,逐步引向公共规则,既保留学科知识的标准形态,也让学生看见规则背后的责任:程序写得越靠近公共生活,分支条件越不能含糊。学情判断采取“能算、敢说、易乱”的三点刻画。学生会写表达式,会把数学中的大于、小于迁移为符号,也能读懂简单流程图;口头描述“如果成绩达到优秀就表扬”时并不困难。真正的难点集中在四处:把“并且、或者、否则”转成严密的逻辑结构;处理区间交界,不清楚端点归属;面对多条件分支时顺序失衡,先判断窄条件还是宽条件摇摆不定;运行通过后停止追问,缺少用边界值与异常值敲打程序的习惯。还有一类隐性障碍来自心理层面,学生容易把程序出错等同于能力不足,进而在测试时回避“故意弄坏”的环节。本设计将错误正常化,把分支缺陷转化为可观察、可讨论、可修复的学习资源。教学目标分为学科观念、关键能力、必备品格三个层面并落到可观察行为。观念层面,学生能说明选择结构的本质是按条件改变控制流,能区分条件表达式与赋值语句,知道True与False不是装饰而是决定路径的值。能力层面,学生能从问题中提取判断对象、比较基准与分支动作,画出规范流程图,使用单分支、双分支、多分支与必要嵌套完成任务,能为程序设计至少三类用例:常规值、边界值、非法值,并依据运行结果修正条件覆盖。品格层面,学生在规则表达中保持审慎,面对交通信号、健康提示、考试等级等场景时,不把个人直觉当作唯一依据,愿意让需求文本、数据字典与测试结果彼此印证。核心素养对应到本课可落在四处。信息意识体现为识别问题中真正影响分支的数据项,避免把无关特征写入条件。计算思维体现为抽象、分解与模式识别,能把“成绩评价、物品计费、状态报警”归并为同一类“范围映射”问题。数字化学习与创新体现为借助解释器即时反馈,主动构造反例,在改错中形成个人策略库。信息社会责任体现为理解程序判断会直接影响他人,条件设定应尽量公平、透明、可复核,不使用含混字段替代清晰规则,不把样本偏差当作普遍结论。教学重点确定为条件表达式的构造和分支结构的选型。学生需要稳定掌握关系运算符==、!=、>、>=、<、<=的语义,理解逻辑运算符and、or、not的组合规则,能根据分支数量、条件互斥性与层级关系选择if、ifelse、ifelifelse或嵌套if。教学难点确定为边界覆盖与条件排序。多个区间并列时,先判哪一段决定后面是否还能到达;嵌套结构中,外层守住合法性,内层处理分类,才不至于把校验与业务搅在一起。突破方式不是增加讲解时长,而是让学生在同一段程序上经历“故意漏端点—运行暴露—补条件—再反例”的闭环。课前准备强调环境轻量与材料证据化。机房或平板均可,Python3运行环境,文件命名统一为class_2_3_taskX.py。教师准备四份材料:一张选择结构流程图模板,一份含五个隐藏缺陷的程序资源包,一张边界值测试记录单,一份用于展示的真实小场景数据,如体测心率片段、图书借阅超期记录、食堂消费封顶片段。所有数据均经过脱敏与简化,只保留分支判断需要的数据形状。学生带一张“生活判断卡”,记录本周遇到的一次规则选择,如公交优惠、会员卡折扣、作业提交截止,课堂上会被要求改写为条件表达。教学过程安排为两课时连排,共九十分钟。第一课时建立概念骨架与基本语法,第二课时完成综合任务、测试与迁移。两课时不做机械切分,学习活动按问题推进自然流动,教师的显性讲授控制在二十五分钟以内,其余时间用于编码、互测、辩护与修订。一、情境唤醒:从人工判断到程序判断上课开始,屏幕展示三句话。体育馆闸机写着“今日预约且体温正常方可进入”;教务系统提示“平时成绩低于六十需参加过程性补测”;家庭路由器提示“二十二点后未成年人设备限速”。学生先用生活经验回答:这三句话共同点是什么。多数回答会落在“都要看情况”。教师追问,看情况究竟看什么。学生逐步说出对象、条件、结果三个词。教师板书控制流示意:输入事实→形成条件→求值True/False→走向某一分支→执行动作→汇合继续随后给出一个极易误判的口头题:空气质量指数AQI大于一百时提示减少户外运动,未达到一百提示可以正常活动。请一名学生扮演程序,教师报数,全班用手势表分支。教师连续报80、99、100、101、100.0、5。报到100时课堂会出现分歧,有人认为“大于一百”不含一百,有人认为空气“到一百就不好了”。此处不急着评价,转身落到需求文本:“大于一百”是严格大于,若规则想含一百,文本应写“达到或超过一百”。程序不会替人保留面子,它只执行写出来的条件。学生第一次意识到,选择结构首先从语言精确开始,代码只是后果。二、概念建模:条件不是感觉,是可求值表达式教师用最小代码呈现单分支。aqi=float(input("AQI:"))ifaqi>100:print("减少高强度户外运动")print("数据已记录")学生观察缩进,比较if行末冒号、分支体缩进、汇合语句的位置。教师提问:print("数据已记录")受条件控制吗。学生通过修改输入验证,发现它不受分支影响。由此归纳:缩进是Python表达代码归属的方式,分支体内外相差一个层级,语义完全不同。教师提醒,条件aqi>100是一个表达式,它先得到布尔值,再由if使用这个值决定路径;与它相对的aqi=100是赋值,绝不能写进判断位置。课堂即时运行一个错例:ifaqi=100:解释器报错并非刁难,而是在阻止把“设定”误作“比较”。学生记录第一条课堂结论:判断先求真值,路径由真值决定;相等比较写作==,赋值写作=,二者职责不同。三、双分支形成:为非黑即白保留两个出口任务一要求学生完成“运动提示”双分支版本:输入静息心率,若低于60输出“偏缓,建议复核测量”,否则输出“进入常规区间判断”。学生初写后,教师不展示答案,而展示两张流程图,一张两分支末端汇合,一张两个分支各自结束再无后续。学生判断哪张更适合后续还要追加“记录时间”的情形。讨论得到的准则是:只要后续还有公共步骤,分支应尽可能汇合,避免程序被切成互不相知的孤岛。代码整理为:hr=int(input("静息心率:"))ifhr<60:level="偏缓,建议复核测量"else:level="进入常规区间判断"print("结果:",level)print("请记录测量时间")教师指出把输出集中到一个变量的好处:分支负责决定“是什么”,汇合后负责“怎么展示”。这让程序在新增frendly提示、改写界面文字时不必翻遍每个分支。学生把该策略收入个人策略库:先让分支产生值,再让统一出口使用值。四、多分支与区间:成绩等级里的边界攻防任务二使用学生最熟悉的成绩等级,但故意提高边界敏感度。规则文本写成:score达到90为A;达到80且不足90为B;达到60且不足80为C;不足60为D;输入超出0到100视为非法。学生先画流程图,再编码。教师巡视时重点收集四类典型:用多个独立if导致95同时输出多条;把条件写成80<=score<90的学生给予肯定,并解释Python链式比较可读性强;把A判断放在最后导致高分被低段拦截;忘记非法输入导致10落入D。课堂集中播放匿名片段,作者自报设计意图,其他同学只准用测试用例发言,例如“我输入100,你的程序会输出什么”。修正后的参考形态保留两个层次,先守门,再分级。score=float(input("成绩:"))ifscore<0orscore>100:grade="非法"elifscore>=90:grade="A"elifscore>=80:grade="B"elifscore>=60:grade="C"else:grade="D"print(grade)教师要求学生用测试集合{1,0,59.9,60,79.9,80,89.9,90,100,101}做交叉验证,并解释为何区间写成从高到低后无需在每个分支重复右端点。结论清晰呈现:elif链存在隐含顺序,前面已经排除高分,后面的条件只需补左边界;顺序一旦改变,覆盖关系就会破绽百出。学生把“窄条件先判,互斥才高效;范围先守门,端点再归队”写进笔记,但教师强调口诀只是索引,证据仍要回到测试。五、逻辑运算:把生活连接词翻译成布尔结构任务三转向图书借阅。规则:未满十四岁可借少儿类;十四岁及以上可借通识类;持有教师证可借教研类;欠费未清暂停所有外借。学生容易先写出一串and、or、not混杂的长条件。教师提出建模约束:先识别“一票否决”条件,再分类目权限。示范代码如下:age=int(input("年龄:"))role=input("身份student/teacher:")kind=input("类目child/general/research:")unpaid=input("是否欠费y/n:")=="y"ifunpaid:msg="欠费未清,暂停外借"elifkind=="child"andage<14:msg="可借少儿类"elifkind=="general"andage>=14:msg="可借通识类"elifkind=="research"androle=="teacher":msg="可借教研类"else:msg="不符合该类目规则"print(msg)课堂讨论落在三处。其一,布尔变量unpaid让条件名获得语义,阅读者不必反推“=="y"”的含义。其二,not的使用要克制,ifnotunpaid可读,但ifnot(aorb)与if(nota)and(notb)的等价关系需要学生用短电路验证,而不是背诵。其三,逻辑短路既可利用也要警惕:在age>=14andkind=="general"中,若左边为假,右边不再求值;这能避免某些昂贵或危险操作,却也可能掩盖右边表达式本应暴露的数据错误。学生初步明白,效率与安全并非天然同盟,清晰才是前提。六、嵌套结构:先问合法,再问类别任务四给出更具层次的场景:校园夜间通行。工作日二十二点后、周末二十三点半后,学生宿舍区需要刷卡并核实晚归登记;教师车辆在任何时段可走车行道,但施工日需绕行;访客仅白天可预约进入。此题故意制造条件交织,若只用平直elif,会迅速臃肿。教师引导学生画两层树:第一层先分对象student、staff、visitor;第二层在对象内部按时间、日期类型与施工标志分流。代码骨架如下:role=input("对象student/staff/visitor:")day=input("日期weekday/weekend:")minute=int(input("当天累计分钟:"))construction=input("施工y/n:")=="y"late_line=2260ifday=="weekday"else2360+30ifrole=="student":ifminute>=late_line:msg="刷卡并登记晚归"else:msg="正常通行"elifrole=="staff":ifconstruction:msg="车行道施工,按指引绕行"else:msg="车行道通行"elifrole=="visitor":if860<=minute<=1860:msg="预约有效可进入"else:msg="夜间谢绝访客"else:msg="未知对象"print(msg)教师在此引入“熔断式条件表达式”late_line=...if...else...,说明它适合为一个值二选一,不适合塞入多条动作。学生比较有缩进嵌套与扁平elif的可读性,得出经验:当一个分支内部还要继续按同一主题细分,嵌套自然;当各分支并列且互斥,elif更稳;层数超过三层,应怀疑抽象不足,考虑拆函数、建表或重排规则。虽然函数与字典查表尚未系统展开,点到为止能为后续学习埋钩。七、缺陷狩猎:用测试把“差不多”逼出来第一课时末安排十分钟缺陷狩猎。教师下发含隐藏问题的程序“体质提示”,功能是根据BMI输出提示。学生不直接改代码,先按记录单提交三个一定能暴露问题的输入,并预测现象。缺陷包括把18.5<=bmi<24拆成两个独立if,把“偏瘦”与“正常”端点重复,把输入字母直接交给float而没有防护,以及把提示语句分散在各分支导致新增“输出到文件”时漏改。课堂分享时,每组只说一条证据,不允许说“我觉得应该”。出现一个有价值争议:是否需要用try处理非法输入。教师明确,本课主线是选择,不是异常;但选择结构能先做字符形态初检,如用字符串方法判断是否数字格式,正式防护交给后续异常处理。这样既守住当前目标,又不让学生误以为if能吞掉所有运行时风险。八、综合任务:三段式“社区运动建议生成器”第二课时主体为综合任务,时间三十五分钟。学生完成一个控制台程序,输入年龄、当日步数、静息心率、空气质量等级、是否医嘱限制,输出运动建议。规则由学生先补全,再由小组互评是否可执行。教师给出最低可运行框架,不给出唯一规则,要求每组必须写明端点归属并配置测试集。基础规则设定为:医嘱限制为是,则输出“遵医嘱,暂缓自主加量”;AQI为差且年龄小于18,户外项目降级为室内拉伸;步数不足3000,建议分段完成至6000;静息心率高于100或低于40,提示复测;其余按年龄给强度词,12至17用“中强度为主”,18至59用“可安排间歇”,60及以上用“低强度优先”。学生需要处理冲突:医嘱限制优先级最高,复测提示与安全提示谁覆盖谁,年龄端点18与60归属哪段。教师观察重点不在答案漂亮,而在组内是否发生“条件前置协商”。一组若把心率异常放在一般建议之后,教师提示用“危险信号是否能被普通建议淹没”来质问;一组若把所有禁忌堆成五个独立if,教师引导改为分流树。展示代码示例仅供保底,不限制优秀学生重构:age=int(input("年龄:"))steps=int(input("今日步数:"))hr=int(input("静息心率:"))aqi=input("空气质量good/moderate/poor:")limited=input("医嘱限制y/n:")=="y"iflimited:advice="遵医嘱,暂缓自主加量"elifhr>100orhr<40:advice="先复测心率,再安排运动"elifaqi=="poor"andage<18:advice="改为室内拉伸与轻量活动"elifsteps<3000:advice="分段补足到6000步"elif12<=age<=17:advice="中强度为主,留意恢复"elif18<=age<=59:advice="可安排间歇,监测体感"elifage>=60:advice="低强度优先,避免憋气发力"else:advice="年龄信息待核实"print(advice)学生针对该保底版提出五条改进,写进小组报告:年龄小于12未明确;aqi输入大小写未归一;steps负数未拦截;hr复测后是否继续流程未说明;多个建议并存时被单一advice覆盖。教师肯定“多个建议并存”的发现,顺势说明本学期后续字符串与列表会提供更自然的承载方式;今天先用优先级解决“必须只说一件事”的场景,但要在文档里标注牺牲了什么。程序设计经常不是找不到规则,而是承认规则之间有重量差。九、课堂评价:证据先于风格评价采用三维量规,每维四档,课堂只标记到达证据。维度一为条件正确:关系符号准确,端点归属与规则一致,非法输入有去处。维度二为结构适配:单分支、双分支、多分支与嵌套选择符合问题形状,分支能汇合,变量命名能承担判断语义。维度三为验证充分:测试集覆盖常规、边界、非法,失败现象可复现,修改能解释因果。等级不直接给分,先给“可展示、可运行、可辩护”三个状态。学生达到可运行仍需补辩护;能辩护但结构笨重,标记为“重构候选项”;界面华丽却无边界测试,不进入可展示。评价语言避免空泛赞语,统一写成“输入90时路径正确”“1未拦截”“hr==40的归属与规则文本冲突”,让下一版修改有抓手。十、迁移拓展:让选择结构进入真实约束课后任务分为必做与选做。必做是把课前“生活判断卡”改写为流程图与十五行以内程序,必须包含一个边界值故事:规则文本怎么说,程序怎么判,若遇到交界值找谁确认。选做二选一。其一是“家庭用电阶梯提示”,输入本月电量,按本地公开阶梯规则估算档位,要求规则来源写在程序注释,断缴、合表、峰谷情形不强行处理,只标注适用范围。其二是“机房座位安全检查”,输入是否佩戴证件、是否携带饮食、设备是否报修,输出准入与处理建议,要求把一票否决项与提醒项分层。两项均要求学生写明“本程序不决定什么”,练习给自动化划边界。拓展阅读不使用链接,只指方向:回到课程标准中关于算法描述与实现的表述,比较自然语言、流程图、伪代码、程序语言在精确性上的递进;查看学校信息化管理制度中关于账号锁定的条款,思考“连续错误五次锁定”里的计数与条件如何配合;观察电梯门防夹、路口黄灯、手机电池低电量提醒,记录其中人类可协商与机器必须确定的部分。学生会发现,选择结构里最贵的不是语法,而是规则被写成公共承诺之前的讨论。十一、板书与屏幕分区黑板左区固定三行骨架:事实、条件、动作。中区画双分支汇流图,右区留白贴学生失败用例。屏幕上半部分常驻规则文本,下半部分只运行当前版本,避免新旧代码同屏造成误读。教师板书不追求满,所有学生生成的结论必须能挂回“事实—条件—动作”。当课堂讨论发散到具体领域知识,如心率医学标准,教师把它引回信息学科问题:数据来源是否可靠,阈值由谁制定,程序如何声明自己只是执行而非裁定。十二、差异化支持与个别化路径对迁移速度较快的学生,提供三个挑战:把成绩等级改为不使用链式比较的区间表构造思路雏形;在借阅程序中增加“角色可继承权限”的规则并讨论会不会破坏可审计;为运动建议程序补一份决策日志,每次运行记录进入哪个分支。对学习吃力的学生,降低符号负担,先用中文变量名过渡,如成绩、等级,再替换回score、grade;允许先写“守门分支”再写“业务分支”;提供填空版流程图而非空白纸。对另一只手很快却不耐烦测试的学生,设置“必须让同伴程序失败一次”的硬任务,把求胜心引到找漏上,而不是抢先举手。十三、常见误区预防清单本课不展示“易错点大全”让学生照背,只在发生后命名。已预判的典型包括:把数学不等式60≤score<80原样搬进不支持链式的语言环境,虽本课Python可行,也要说明可移植边界;把else当成“一切剩余”的垃圾桶,放过非法输入;把or当成自然语言“两者的任一个都行”,忽略True

温馨提示

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

评论

0/150

提交评论