高中一年级信息技术必修一《尝试程序开发-为班级运动会设计成绩排序程序》教学设计_第1页
高中一年级信息技术必修一《尝试程序开发-为班级运动会设计成绩排序程序》教学设计_第2页
高中一年级信息技术必修一《尝试程序开发-为班级运动会设计成绩排序程序》教学设计_第3页
高中一年级信息技术必修一《尝试程序开发-为班级运动会设计成绩排序程序》教学设计_第4页
高中一年级信息技术必修一《尝试程序开发-为班级运动会设计成绩排序程序》教学设计_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

高中一年级信息技术必修一《尝试程序开发——为班级运动会设计成绩排序程序》教学设计一、课标依据与设计理念《普通高中信息技术课程标准(2017年版2020年修订)》将“数据与计算”列为必修课程的核心模块,明确要求学生“依据解决问题的需要,设计和表示简单算法;掌握一种程序设计语言的基本知识,利用程序设计语言实现简单算法,解决实际问题”。本课是中图版必修一第四单元“加工表达信息”第三节“尝试程序开发”,是学生从算法设计走向程序实现的关键节点,承担着计算思维落地的核心任务。本课设计的核心理念是“用真实问题驱动程序学习”。程序开发不是背诵语法规则,而是借助计算机解决一个让人为难的真实问题。运动会成绩排序这一情境贴近学生生活:手工排序五十名运动员的成绩既慢又易错,学生天然有“用程序替代人工”的意愿。当学习动机来自真实困境,语法知识便有了存在的意义。二、教材与学情分析(一)教材分析本课位于单元收官位置,上承“算法及其描述”“程序设计的三种基本结构”,下启项目综合实践。教材以Python为载体,通过变量、赋值、输入输出、分支与循环等基础知识,引导学生完成简单的程序编写。其内在逻辑是:问题抽象→算法设计→代码实现→调试完善。本课将这一逻辑完整嵌入课堂任务链,让学生在“做一套完整程序”的过程中体验程序开发全流程。(二)学情分析授课对象为高一年级学生。优势方面:学生在前期学习中已掌握算法的三种描述方式,了解顺序、选择、循环结构,部分学生在初中接触过Scratch图形化编程,对“程序让计算机做事”有直观经验。困难方面:一是抽象能力尚在形成期,把“想象中的步骤”翻译成“机器能懂的符号”存在明显落差;二是对缩进、冒号、英文半角符号等严谨性要求缺乏敬畏,初写代码时容易出现大量语法错误并产生挫败感;三是学习水平分化明显,需要分层任务兜底。(三)教学环境网络机房,每生一机,安装Python3.x环境,配备多媒体教学广播系统与在线评测练习平台。三、教学目标1.能够理解用计算机处理数据的基本过程——输入数据、处理数据、输出结果,并能用这一框架分析一个具体问题。2.掌握Python中变量、赋值语句、input与print函数、for循环与列表(或多次输入变量)的基本用法,能够独立编写一个读取若干运动员成绩并按高到低输出名次的简单程序。3.经历“分析问题—设计算法—编写代码—运行调试—优化完善”的程序开发完整周期,初步形成用工程化方式解决问题的习惯,发展计算思维。4.在调试失败的反复中体会严谨性的价值,在程序正确运行的瞬间获得成就感,形成对程序设计积极、务实而非畏惧的态度。四、教学重点与难点教学重点:输入—处理—输出的程序基本框架;利用循环与比较运算实现成绩排序的逻辑。教学难点:把“逐个比较、交换位置”这一人类习以为常的动作,抽象为计算机可执行的冒泡排序或选择排序代码;正确理解缩进与代码块的对应关系。五、教学方法与策略采用任务驱动法、示范模仿与变式迁移相结合、分层递进作业设计化解差异。课堂组织遵循“先跑起来,再看明白,最后改出新”的三步策略:第一步让学生在已有框架上补充关键代码,保证人人能跑通;第二步剖析代码与算法的对应关系,保证人人能看懂;第三步提供分层挑战任务,让学有余力的学生修改与拓展。六、教学过程(一)情境导入:一张让人犯难的成绩单(约5分钟)教师广播展示校运动会报名表的真实截图(已脱敏):高一年级8个班共52名运动员参加100米决赛晋级评选,裁判长需要在一分钟内从52条成绩记录中排出前8名晋级名单。教师抛出问题链:第一问,如果只靠纸笔,你有什么办法?学生回答“看一遍找最大值,划掉,再找一遍”。教师追问:这个办法可靠吗?慢不慢?学生评价“慢,而且容易看花眼”。第二问:我们学过的办法呢?学生自然联想到“写个程序”。教师顺势揭示本课任务:今天不当用户,当一回开发者——为裁判长开发一个成绩排序小工具。板书课文标题“尝试程序开发”,并在黑板左侧写出开发者承诺:输入52条成绩,输出从高到低的名次表。设计意图:用真实时间压力制造认知冲突,让程序学习的价值从“要考试”转变为“真有用”。问题链同时让学生用自己的语言说出“反复找最大值”的朴素算法,为后续冒泡排序的理解埋下伏笔。(二)新知建构一:程序的三道门——输入、处理、输出(约8分钟)教师用一个极简例子建立框架认知。现场运行一段仅三行的体验程序:temperature=float(input("请输入今天的温度:"))feeling=temperature2print("你到了楼上,体感大约是",feeling)学生观察运行现象,教师引导归纳:任何数据处理程序都包含三个环节——让数据进来(input),让数据被加工(运算与比较),让结果出去(print)。黑板上画出“输入→处理→输出”的箭头图,并要求学生把这张图记在笔记第一行,强调它是本节课乃至后续所有程序的“骨架”。在此基础上讲解新知点的最小集合:其一,变量是数据的“小盒子”,赋值语句prices[i]=x的动作实质是把值放进盒子,盒子里的旧值被覆盖。其二,input()读进来的默认是文字(字符串),要用float()转成能比较的数,否则程序会把"9"和"10"按文字字典序比较闹笑话。此处现场演示直接用字符串比较两个成绩产生的错误结果,让学生在笑声中记住数据类型转换的必要性。其三,列表scores用来装一串成绩,用索引scores[i]取其中的第几个。强调计算机从0开始数数这一“反直觉”约定。设计意图:不急于堆语法,而是先建立“输入—处理—输出”的大框架,再让语法点作为框架的零件逐一登场。错误演示先行的策略,让学生用一次印象深刻的失败替代十次说教。(三)新知建构二:让计算机“开会比较”——排序算法的代码实现(约12分钟)教师先在黑板上与学生一起用扑克牌演示冒泡过程:把5张写有成绩的卡片摆成一排,相邻两张比较,发现前面比后面小就交换,一轮走下来最大的被“冒”到了头。演示后师生共同用自然语言复述算法:第1轮从第一个位置开始,依次比较相邻两项,如果前面的数比后面的小,就交换它们;一轮结束后最大数已到队首;接着对剩余部分重复这个过程,共进行n减1轮。随后教师逐行生成核心代码,边写边大声思考:n=len(scores)foriinrange(n1):forjinrange(i+1,n):ifscores[i]<scores[j]:scores[i],scores[j]=scores[j],scores[i]讲解聚焦三个易错点。第一,内层循环从i+1开始,因为已经排好的前i个无须再动,这是“选择主元再逐个比较”的精确表达。第二,if后面必须有英文冒号,紧随其后的语句要缩进四个空格——缩进不是好看,是告诉计算机“这句话归这个if管”。教师现场把缩进删去运行,展示解释器报出的IndentationError,请一名学生朗读错误提示并说出修复方案。第三,交换语句scores[i],scores[j]=scores[j],scores[i]等价于传统语言的“借一个临时盒子腾挪”,Python允许一次性完成,但思想上学生必须知道交换的本质。为照顾不同认知基础,教师同时给出“脚手架版”代码框架(核心比较与交换行留空)和“完整参考版”,课堂主推前者,学优生课后可对照后者自查。设计意图:先用扑克牌让身体参与算法,再把动作翻译成符号,符合从具身认知到符号认知的迁移规律。逐行“大声思考”暴露专家也逐一确认的细节(冒号、缩进、边界),消解学生对代码的神秘感和对教师的完美想象。(四)实践任务一:补全并运行基础程序(约10分钟)教师下发练习文件sort_start.py,其中输入环节、输出环节与提示语均已写好,唯缺内层循环的比较与交换两行。任务要求:第一,补全代码并运行;第二,用教师提供的测试数据(10条成绩,故意包含相同成绩与极端值)验证;第三,把输出结果截图粘贴到文件头部注释区。学生操作期间教师巡场,重点观察三类典型问题并做好记录:冒号打成中文全角、缩进混用Tab与空格、交换行写成单向赋值导致数据丢失。教师对个体只点拨不重讲,把共性问题留给全班点评。约8分钟后,教师广播一位学生的完整运行成功界面,全班观察输出是否符合“从高到低”。随后列出巡场收集的三个典型错误截图(隐去姓名),师生共同诊断:错误信息第几行报错、提示了什么、如何修改。诊断过程中教师刻意让学生朗读错误信息,传递“报错是朋友不是敌人”的调试观。设计意图:用半成品代码保证“人人能跑通”,把成就感保护在第一线;用小组共享错误清单,让个体的失败转化为集体的学习资源。(五)实践任务二:分层挑战——让工具更像“系统”(约8分钟)教师宣布分层挑战菜单,学生任选一题完成,鼓励用双人探究方式协作。基础层任务:修改输出格式,让结果呈现为名次表,即第1名:9.8秒,第2名:10.1秒。需要用到在print中同时输出序号和成绩,提示学生用for循环配合range(len(scores)),序号显示时用i+1修正计算机从0开始的习惯。提高层任务:为成绩加上运动员姓名,让输出显示“第1名:张三9.8秒”。提示思路:再建一个names列表,与scores用相同索引一一对应,交换成绩的同时交换姓名。教师点拨“两个列表用位置绑定信息”的思想,并留悬念:这是为后续学习字典或结构化数据埋的种子。挑战层任务:把冒泡方向的比较改一改,实现从短到长的“升序”排列,并观察需要改动几处。学生实际只需修改一处比较符号,教师借此强调“程序逻辑中心在条件而不在周边”,提升代码敏感度。分层间教师持续巡场,对提前完成的学生追问一句“你能用一句话说明你改的哪一行为什么能改变排序方向吗”,确保理解到位而非机械替换。设计意图:分层任务承认差异但共同指向同一核心——比较与交换是排序的灵魂。提高层悄悄渗透数据结构的萌芽,为后续学习搭桥。(六)展示交流与小结提升(约5分钟)每组推选一名代表用一句话汇报“我完成了哪一层,我遇到的最大困难是什么,我是怎么解决的”。教师把学生的困难类型归纳到黑板:语法层面(符号、缩进)、逻辑层面(条件方向、循环起点)、调试层面(读懂报错、用测试数据)。师生共同得出程序开发的基本流程图:分析问题→设计算法→编写代码→运行调试→完善优化教师点题:今天我们把一个让人头疼的裁判工作,改写成不到二十行的程序。程序开发并不神秘,它是把“我们做事情的方法”用计算机听得懂的方式再讲一遍。真正的能力不是背下这段代码,而是明天遇到新问题,能沿着这条流程再走一遍。设计意图:用小结环节外显方法论,完成从“学会一段代码”到“学会一种工作方式”的升华;育人目标通过开发者承诺的达成自然落地而不空洞。(七)课堂评价与作业(约2分钟)课堂评价采用“过程性积分”:基础程序跑通得2分,完成一层挑战得2分,能跳出层内任务帮助同伴得1分,记录5分制纳入本单元过程性评价。评价语聚焦行为而非结果,如“你已经会用报错信息定位行号了”。课后作业(提交至班级网盘):基础题:为本班座位表写一个随机点名程序雏形(只要求能读取名单并随机打印一个名字,可使用教师提供的random模块示例)。拓展题(选做):查找资料了解Python自带的sort方法,比较它与今天手写的冒泡排序在写法与思想上的异同,用一段话写在注释里。七、板书设计黑板三分区:左区为情境与承诺(输入52条→输出名次表),保留整课;中区为主体,自上而下呈“输入→处理→输出”框架图、冒泡算法自然语言步骤、五行核心代码;右区为动态区,实时记录学生出现的典型错误与修正办法。三区形成“为什么—怎么做—注意什么”的完整视觉线索。八、教学反思预设本课的成功关键有三。其一,真实情境赋予程序以使命,学生不再为考试而敲键盘;其二,半成品脚手架守护了人人可达成的成就感;

温馨提示

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

评论

0/150

提交评论