高中一年级信息技术教学设计:教科版必修1《评估测试阶段》-让程序在检验中走向完善_第1页
高中一年级信息技术教学设计:教科版必修1《评估测试阶段》-让程序在检验中走向完善_第2页
高中一年级信息技术教学设计:教科版必修1《评估测试阶段》-让程序在检验中走向完善_第3页
高中一年级信息技术教学设计:教科版必修1《评估测试阶段》-让程序在检验中走向完善_第4页
高中一年级信息技术教学设计:教科版必修1《评估测试阶段》-让程序在检验中走向完善_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

高中一年级信息技术教学设计:教科版必修1《评估测试阶段》——让程序在检验中走向完善一、教学背景与教材分析本课选自教科版高中信息技术必修1《数据与计算》第六单元第一节第五课时“评估测试阶段”。在此之前,学生已经经历了分析问题、设计算法、编写程序的完整探索过程,初步实现了一个能解决实际问题的程序雏形。然而,能运行的程序不等于正确的程序,更不等于好用的程序。评估测试正是连接“作品完成”与“作品交付”之间最关键的一环,它要求学生像真正的软件工程师那样,用挑剔的眼光审视自己的劳动成果,用系统的方法发现缺陷,用严谨的数据支撑改进决策。本课时在整个项目学习中承担着“质量守门员”的角色。向上,它承接算法设计与编程实现的知识链条;向下,它为学生后续开发更复杂的系统埋下工程化思维的种子。教材通过测试用例设计、错误类型辨析、性能评估等活动,引导学生理解“测试不是为了证明程序正确,而是为了发现程序的问题”这一朴素的工程哲学。新课标对计算思维的界定中,明确强调对解决方案的评估与优化能力,本课正是这一素养落地的最佳载体。二、学情分析授课对象为高一年级学生。经过前期学习,多数学生能借助Python编写顺序、分支、循环结构的小程序,对问题求解有初步经验。但在以往的课堂观察中,我发现学生普遍存在三种倾向:其一,“能跑就行”心态,程序输出一个结果便宣告完工,从不追问结果是否正确;其二,测试随意化,随手输入一两个数据便下结论,缺乏边界意识;其三,面对他人的程序提不出有效的改进意见,评估流于“挺好的”“没毛病”之类的模糊表达。这些问题的根源在于学生尚未建立起系统的测试观与评估观。本课的任务,就是把他们头脑中零散的调试经验,上升为有方法、有依据、有记录的工程行为。三、教学目标信息意识:学生能够认识到任何程序都可能存在缺陷,主动质疑运行结果的正确性,形成“未经测试不交付”的责任意识。计算思维:学生能够针对具体程序设计覆盖正常情况、边界情况与异常情况的测试用例,能依据预期输出与实际输出的比对定位错误,并能对程序的执行效率做出初步的量化评估。数字化学习与创新:学生能够借助测试记录表、计时工具等手段规范地开展评估活动,能基于评估数据提出切实可行的优化方案。信息社会责任:学生能够理解软件缺陷可能带来的现实危害,体会测试工程师的职业价值,养成对他人程序给予有理有据反馈的表达习惯。四、教学重点与难点教学重点是测试用例的设计方法,即如何选取有代表性的输入数据去“拷问”程序,尤其是边界数据的选取策略。教学难点有二:一是让学生理解“证据驱动的评估”,改变凭感觉评价程序的习惯;二是引导学生在发现代码逻辑正确但效率低下时,能从算法层面思考优化方向,而非局限于修改语法错误。五、教学策略与资源准备本课采用问题链驱动与小组协作相结合的方式展开,辅以真实的软件事故案例创设情境。课前准备如下素材:一段动画短片介绍某航天器因单位换算缺陷坠毁的事件;一份存在“隐蔽缺陷”的学生成绩等级判定程序(教师预设三处问题:一处逻辑缺陷、一处边界遗漏、一处效率冗余);设计好的《测试记录单》与《作品评估量规》电子表格;机房内预装Python运行环境,确保每两人一机。六、教学过程环节一:情境导入——一次代价昂贵的“小疏忽”上课伊始,我不急于翻开教材,而是播放那段航天器坠毁的短片。画面结束后,我在黑板上写下两个数字:3.3亿美元,一个单位。学生哗然。我顺势提问:编写这段程序的工程师当年也一定按下过运行键,程序一定也输出了结果,为什么灾难还是发生了?教室里沉默了几秒,有学生试探着回答:“他测的数据可能碰巧都是对的。”这句话正是我等待的生成。我板书课题:评估测试阶段。随即抛出本课的驱动性问题:我们的程序凭什么让人相信它是对的?这个问题将贯穿整节课。环节二:初试锋芒——给“能跑”的程序挑刺我在大屏幕展示那段预设了缺陷的成绩等级判定程序。程序功能是根据输入的考试分数输出等级:90分及以上为优秀,80至89为良好,60至79为及格,60分以下为不及格。我请学生先通读代码,再动手运行。大部分小组输入了95、82这样的“顺手数据”,得到了看似正确的输出。我巡视时不置可否,只问一句:你确认过所有可能吗?三分钟后,我开始引导全班对不同输入进行集中汇报。有小组输入100,输出优秀,正确;有小组输入90,发现输出的是良好而非优秀,第一处缺陷浮出水面——代码中写成了“大于90”而非“大于等于90”。我请发现这个问题的学生上台指出具体行号,并追问:为什么你想到试90?学生回答:90是优秀和良好的分界线。我立刻在黑板上提炼关键词:边界数据。接着有小组输入5和150,程序竟然都给出了等级输出,暴露了程序缺少输入合法性判断的问题。又有小组发现,程序对每个分数都要从第一个条件逐个判断到底,即使分数是95也要走完所有比较,效率上存在冗余。三个问题全部被学生“挖”出来后,教室里洋溢着发现的兴奋。我趁势总结:这段程序能运行、能输出,却藏着三处问题。你们刚才无意中完成的工作,有一个专业名称——测试。而你们选取的90、5这样的数据,叫作测试用例。环节三:方法建构——测试用例设计的三个视角带着刚才的感性经验,我和学生一起把零散的做法归纳成方法。我请学生回顾刚才用过的所有测试数据,并尝试分类。经过讨论,我们在黑板上共同构建出三类用例:第一类,典型数据,即处于正常区间中段的值,如85分,验证程序的基本功能是否实现;第二类,边界数据,即区间的端点及其左右邻值,如90、89、60、59,专门检验条件判断是否精准;第三类,异常数据,即超出合理范围的输入,如负数、超过满分的数、甚至非数字字符,考验程序的健壮性。为了让学生体会边界思维,我补充了一个生活类比:质检部门测试一座限重10吨的桥,绝不仅仅开一辆5吨的车上去兜一圈,而是要让接近10吨的重车反复通行,还要考虑超载时有没有警示。程序测试同理,最危险的地方往往藏在“刚刚好”和“差一点”之间。随后我引出测试的本质命题。我请学生思考:如果一个程序有一千种可能的输入,我们能全测吗?学生齐答不能。我给出结论:测试不能证明程序没有错误,只能证明错误存在;测试的价值在于用尽量少的用例覆盖尽量多的风险。这句话学生未必当下完全消化,但它会在他们今后的编程生涯中反复回响。环节四:规范实践——小组协作完成系统测试方法在手,实战开始。我将课前发放的《测试记录单》投屏讲解,表格包含五个栏目:用例编号、输入数据、预期输出、实际输出、结论与处置。我特别强调“预期输出”一栏必须在运行之前填写,这是防止“看到什么就承认什么”的关键纪律——先有标准,再有检验。各小组领取任务。任务分为两个层次:基础任务是对改进后的成绩判定程序完成不少于八组用例的测试,必须覆盖三类数据,并完整填写记录单;进阶任务是对前期项目中本组自行开发的程序(例如简易计算器、猜数游戏)开展回归测试,找出至少一个真实缺陷。小组活动中,我穿行于各组之间,重点关注三类情况:有的小组把预期输出和实际输出写成雷同的两栏,我提醒他们先合上书推断结果再运行;有的小组发现错误后立刻动手改代码,我建议他们先把缺陷登记完整、分析成因,再统一修复,避免“按下葫芦浮起瓢”;有的小组测出的用例全是正常数据,我递上一张“挑战卡”:能让程序崩溃的输入才是好朋友。有一组学生在测试自己的猜数游戏时,输入了字母“a”,程序直接报错退出。组员有些沮丧,我却给这一组加了一枚“发现之星”:你们找到了别人没找到的缺陷,这正是测试的功劳。随后全班围绕这个案例讨论了如何用异常处理机制让程序“体面地”应对非法输入,学生的改进热情被真正点燃。环节五:从正确到优秀——效率评估与算法优化测试不仅关注对错,还要关注好坏。我向学生演示一个小实验:分别用“逐个累加”和“等差数列求和公式”计算1到1000000的和,并在程序中加入计时语句记录运行耗时。结果投射在大屏上,前者耗时数十毫秒,后者几乎瞬间完成。直观的数字对比让学生真切感到:算法不同,效率天差地别。我引导学生理解,效率评估同样依赖证据:运行时间、占用的存储空间,都是可以测量的指标。回到成绩判定程序,我请学生思考如何用分支结构的合理编排减少不必要的比较次数。有学生提出先判断是否及格,再在及格区间内细分等级,比较次数明显下降。我肯定了这种思路,并指出这就是评估驱动优化的完整闭环:发现问题——量化分析——改进方案——再测试验证。环节六:互评展示——用证据说话各组完成评估后,进入互评环节。每组派代表用三分钟汇报:我们的程序是什么,我们发现了什么缺陷,我们依据什么数据做出判断,我们给出了什么改进建议。台下同学依据《作品评估量规》从功能正确性、健壮性、效率、代码规范四个维度打分,并必须为每一个扣分点写明理由。互评中出现了令人欣喜的一幕:一个小组给邻组的计算器程序挑出了“除以零未处理”的缺陷,被评组当场验证属实,心悦诚服地在改进清单上记下一条。我点评道:能提出有证据的批评,和能写出正确的代码,是同等重要的能力。环节七:课堂小结与延伸临近下课,我请学生用一句话回答开课时的那个问题:我们的程序凭什么让人相信它是对的?学生的回答五花八门却殊途同归:凭我们测过它。我在黑板上写下本课的知识脉络:测试意识——用例设计——证据记录——缺陷修复——效率优化——再验证。最后布置分层延伸任务:基础层面,每位同学完善本组程序的测试档案;拓展层面,有兴趣的同学探究二分查找与顺序查找在数据规模扩大时的效率差异,用计时数据撰写一份简短的对比报告。课后服务时间向学生开放机房。七、板书设计主板书呈现本课主线:左侧为问题“凭什么相信程序”,中部为三大用例类型(典型数据、边界数据、异常数据),右侧为评估闭环“发现—记录—修复—再测”,下方标注核心理念“测试证明缺陷存在,证据支撑评估结论”。副板书动态记录课堂中学生发现的三类缺陷实例,作为最鲜活的生成性资源。八、教学评价设计本课评价采用过程性评价与结果性评价相结合的方式。过程性评价依托《测试记录单》考察学生用例设计的覆盖度与记录的规范性,依托课堂观察记录小组协作与问题发现的参与度;结果性评价依托《作品评估量规》,关注最终程序的正确性、健壮性与效率改进成效。量规中特别设置“证据质量”一项,凡改进建议附有测试数据支撑者予以

温馨提示

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

评论

0/150

提交评论