《Python选择结构3》教学案例
作者: 张艳云
案例背景
本案例来自一节《Python选择结构3》的公开课,if嵌套语句属于三大结构中的选择结构,而选择结构是程序设计结构中的一个重要模块,它比顺序结构复杂,且内容较多,这节课是选择结构的第三节课,对学生而言难度稍大。2022年,教育部颁发了《义务教育信息科技课程标准(2022年版)》,课程理念中提到“创新教学方式,以真实问题或者项目驱动,引导学生经历原理运用过程、计算思维过程和数字化工具应用过程,建构知识,提升问题解决能力”。笔者本节课基于此理念,依托三个实际问题,搭建一个小的任务群,以培养核心素养为目标,以知识技能为载体,以任务活动为途径,开展探究学习。本节课包含三个与生活相关的案例(第三个案例略),在教学过程中,教师引导学生对问题进行分析,并将问题拆解,进而一步步解决问题,促进学生对问题解决方法的理解与掌握,同时体会程序设计的思想,培养学生的计算思维。
学情分析
经过前期的学习,学生的逻辑思维能力逐步提升,可以有条理地用语言表达一个过程,为进一步学习创造了有利的条件。同时,学生已经理解选择结构的概念,初步尝试了如何利用三种选择结构编写程序解决问题,体会到了程序设计的乐趣,期待着能够利用编程解决更多的问题。
教学目标
①进一步掌握三种选择结构的基本格式:单分支(if)、双分支(if…else)、多分支(if…elif…else)。
②掌握if嵌套语句的语法格式、不同级别代码缩进的规范。
③理解“列表”的概念,并能使用“列表”解决问题。
④提炼生活中的实际问题,创设情境,将问题进行拆解,使用if嵌套语句编程,提升计算思维,感受计算机编程的魅力。
教学重难点
重点:掌握if嵌套语句的基本语法格式,认识列表,能用if嵌套语句编程解决问题。
难点:理解if嵌套语句中各分支的逻辑关系,能够灵活应用if嵌套语句编程解决问题。
案例描述
1.回顾总结
师:什么是选择结构?(学生回答)表示程序的处理中出现了分支,根据判断的结果决定如何执行后续流程中的语句,选择结构使代码的执行顺序有了更多选择,以实现更多的功能。选择结构有哪几种?
生:三种,即单分支、双分支、多分支结构。
设计意图:通过教师提问,学生回答,教师归纳,再次加强对三种选择结构的理解、熟悉、掌握。
2.新课导入
师:如果希望在if条件满足的情况下,再增加额外的判断,该如何处理?
学生思考。
3.新知学习
①单分支(if)、双分支(if…else)、多分支(if…elif…else)之间可以相互嵌套。
②在嵌套时,注意不同级别代码缩进的规范。通过“缩进”来表明else与哪个if匹配(如图1)。
③#:注释符号,表示右边的任何数据都不执行,会被忽略。
设计意图:教师在提出问题后,引导学生储备新知,并理解掌握新知,接下来利用其解决问题。
4.情境创设一
教师陈述交通法规定:酒驾,暂扣驾照6个月,处2000元以下的罚款,若再犯,处10日拘留,罚款,并吊销驾照;醉驾,吊销驾照,追究刑事责任,五年内不得重新取得驾照,出现交通事故的追究刑事责任,公职人员开除公职。
设计意图:创设情境,引出问题,拓宽学生的知识面。
任务一:驾驶员的血液酒精含量小于20mg/100ml不构成酒驾,大于等于20mg/100ml构成酒驾,大于等于80mg/100ml构成醉驾。请利用Python编写程序判断是否构成酒后驾车。程序代码如图2所示。
教师请学生思考并补全代码。对于任务一,可通过流程图引导学生分析问题,分解步骤,在补全代码后,学生也就能够理解if嵌套语句,并能够动手实践。
设计意图:酒后驾车是生活中的实际问题,引进课堂可增强学生的兴趣,引导学生尝试解决生活中的问题。
5.反馈问题
教师展示部分学生的任务完成情况,并反馈出现的问题:①没有严格遵循缩进原则。②if和else后面丢失冒号。③除了双引号里面的内容外,其他符号均需在英文状态下写入。
设计意图:以上的问题,学生非常容易出错,在学生实践后提出来加以纠正,印象更深。
6.情境创设二
教师利用大小月来历的故事视频介绍大小月的由来。
任务二:利用Python编写程序。要求:用户从键盘输入某年和某月,能输出该月有多少天?
师:同学们都知道大月有31天,小月有30天,还有一个特殊的2月,闰年2月有29天,平年2月有28天。所以,我们可以将任务分成两个问题来解决:一是大小月的判断,二是闰年平年的判断。
问题一:大小月的判断。
教师提问:大小月有几种情况?
学生回答:大月31天,小月30天,2月需要判断。
问题二:闰年的判断。
如果某年能被4整除而不能被100整除,或者能被400整除,则为闰年,否则为平年,嵌套“闰年判断的双分支语句”,程序代码如图3所示。
设计意图:思路分析也是算法分析,要让学生学会拆解问题,将大问题化成小问题,培养学生解决问题的能力,锻炼学生的计算思维。
7.新知导入—列表(动态数组)
列表是Python中的一种数据类型,是任意对象的有序集合。简而言之,它是一组值,用逗号隔开,放在方括号内。教师举例如图4所示。
设计意图:此处增加新知,是为了接下来能更有效地解决问题,也是让学生知道在不断解决问题的过程中增加新知识的学习模式,是一种有效的模式,学以致用,用能促学。
接着,教师引导学生完善任务二的程序代码(如图5)。
设计意图:判断某月有多少天有一定的难度,首先引导学生将一个复杂的问题拆解成几个小问题来解决,然后让学生搭建整个任务的框架,对闰年判断比较难,教师引导学生顺着思路说出代码,突破难点。
8.总结
学生总结本节课所学内容,教师汇总板书。
反思
第一,注重问题分解,关注计算思维的培养。《义务教育信息科技课程标准(2022年版)》提出,计算思维是学生运用计算机科学领域的思想方法,在问题解决过程中涉及的抽象、分解、建模、算法设计等思维活动。因此,在课堂活动中,如何让教学不停留在技术活动层面,而是更多地培养学生的计算思维,需要教师深入思考。所以在本节课中,笔者对每个任务的都进行分析,将问题划分为能够上手处理的小问题,通过小问题的解决来完成整个任务,最终建构if嵌套语句的知识目标,让学生找到解决问题的方法,这是计算思维渗透到课堂的具体体现。。
第二,借助任务群,搭建进阶式学习支架。根据信息科技学科课时的特点,笔者选择随堂性较强的情境式任务来构建任务群,能让学生快速地聚焦到本节课新知框架的情境中,有利于学生对知识的掌握。本节课从对“酒驾问题”“大小月的判断问题”的解决入手,建构“选择结构的if嵌套语句”“列表”的知识目标,体验知识的使用场景,让学生层层递进地经历问题解决的过程,为学生搭建进阶式学习支架,促进计算思维的发展和提升。
第三,关注情感生成,促进情感教育。目前的信息科技课堂教学大多注重知识技能的教授,过度趋向知识的获得,忽视情感的生成。要实现学科知识情感的育人价值,教师在教学过程中应重视各层次学生的参与度、兴趣度以及成就感的获得。
点 评
随着《义务教育信息科技课程标准(2022年版)》的颁布,编程教学的方向转变成为“身边的算法”,这虽然应是小学阶段的内容,但在初中的一定时期内仍然是重要的内容之一。算法存在多学段的意义,这种意义是多重的,一方面是编程教学转向算法学习体现了计算思维认知教育的螺旋递进,另一方面是用计算机解决问题在“数据计算”上与高中衔接,有助于不断提高计算思维应用。本节课,正是这两种意义的充分体现。在生活算法方面,以酒驾检测、大小月等算法的程序现实逐步推进对单分支、双分支、多分支的算法思想的认知,环环相扣,递进学习,非常有益于算法思维的问题分解、特征抽象、数据建模及算法与迭代的学习。
此外,本节课还采用了多种教学方法。在引入认知、体验算法、认知与应用计算思维等方面采用相应的教学方法,让学习更灵活、更高效。
(点评人:山东省青州一中信息技术特级教师 王爱胜)