信息技术八年级《分支结构》教案
[教学目标与教材分析]
一、教学目标:
②通过程序设计,学会分支结构流程图绘制及程序设计方法,了解分支结构、关系表达式、逻辑表达式的概念。在利用分支结构程序解决应用问题过程中,体验分支结构设计思想在生活中应用,并逐步形成严谨的计算思维能力。通过编辑程序、分析程序、调试程序培养学生自主化学习素养。
二、教材处理分析
本课是浙江教育出版社出版的八年级《信息技术》第二单元内容,本单元主要是让学生认识Python及其常用的三类基本结构,旨在使学生进一步体验算法思想,了解算法和程序设计在解决问题过程中的地位和作用;能从简单问题出发,设计解决问题的算法,并能初步使用一种程序设计语言编制程序实现算法解决问题。
本课可以让学生在顺序结构的基础上,从生活中的分支结构入手,以常见的问题程序化,让学生掌握分支结构。 通过本课的学习,可以促进学生对问题解决方法和思想的理解与掌握,从而提升学生的问题解决能力,让学生在按照一定的流程解决问题的过程中,去体会和理解程序设计的思想,而且也为多分支选择结构的学习打下基础。
[学习主体与教学策略分析]
本节课是学习选择结构程序设计,为更适合八年级学生的思维需求,遇到问题,通过学习新的知识解决这个问题。同时为调动学生的积极性,通过一系列贴近学生实际的任务来让学生练习条件语句,这样在任务设计上更加合理。
学生已经学习了Python基本语句格式,并能够读懂简单的顺序结构语句,具有一定的分析能力,熟知Python程序设计的基本流程,会对进行程序运行与调试。
因此在本节课教学中着重培养学生的自主分析问题,解决问题的意识和能力,并让学生明确基本编程思路:分析问题,建立数学模型,确定算法,编写程序,调试程序。
采用贴近的示例程序能够极大的提高学生的学习兴趣,我在设计学生习题时注重分层,让一般能力的同学能够模仿完成,让有较强能力的同学能够在模仿的同时又有所创新,并让学生通过自主探究来获得新知,避免机械说教的无趣。
【教学环境】
网络教室,Python编译环境,PPT,示例及学生程序,hustoj平台。
拟采用学生学习记录单形式进行授课。
环节 过程与内容 设计意图
复习引入 同学们,上节课我们编写了一个计算三角形面积的程序,大家基本上都编写成功了。 我们首先一起来回顾一下计算三角形面积程序编写的流程。 得出结论:我们先进行问题分析,然后设计算法,最后编写代码并调试运行。 回顾顺序结构三角形面积的海伦公式算法和程序编写一般流程。
提出原程序不足:有的同学输入的数据根本不能组成三角形,但是程序还是进行了计算,并且给出了错误的答案。我们希望,程序首先要对三角形的三条边进行判断,确实三条边能构成三角形才进行运算。能组成三角形的三条边的条件是什么,同学们正好数学初二上册也在学习三角形各种定理和证明,肯定非常熟悉。 生答:要构成三角形,三条边必须任意两边之和大于第三边。具体说来就是要求程序对输入的三条边a,b,c的数据进行判断,a+b>c并且b+c>a并且a+c>b,然后程序才计算面积,否则就告诉我们这不是一个三角形。这就是我们今天这节课需要学习的内容,让程序来进行判断,这种程序结构叫做分支结构程序设计。(板书) 以学生实际学习生活为例引出课题
学习新知 对于解决问题的方法和步骤,我们能够用流程图表示出来,我们一起将刚才的求三角形面积流程图来进行改进与完善。 教师回顾顺序结构流程图(依次提问各个图形表示的意思,并介绍判断图形菱形)。图1 教师:我们说的是普通话,画的是流程图,电脑能听懂我们说的普通话,帮我们编程么? 学生:不能,计算机能听懂的是计算机语言,我们要编写程序代码,并且被编译器解释后计算机才能懂。 教师出示Python代码,并让学生明白分支结构基本单词。 If<条件> : <语句块1> [Else: <语句块2>]。 If条件语句由if关键字组成,后面跟着一个条件和一个冒号,冒号的作用是告知接下来要创建一个新的语句块,处于同一缩进位置的代码组成一个语句块。 条件实际上是一个表达式,他的值可以是真或者假,条件为真时执行语句块1的语句,否则执行语句块2的语句。
学生感知 请同学们观察这段程序,然后告诉我输出结果(两个数字比较大小) 学生学习后,请学生完成学习记录单。进行第一次强化记忆。 重点:学生练习,教师走一走检查一下,提出问题所在1.:漏掉 2.缩进单位遗漏
自主学习 交流巩固 很多时候程序要判断的事情可不是这么简单的。比如三个数字比较大小等,数据间的关系就复杂多了,数据间有哪些关系呢?关系比较后又得到什么结果呢? 学生自学:关系表达式和逻辑表达式。 互相讨论并完成配套习题(图2)。 然后是完善海伦公式题目(带三角形判断)。 要求作业提交hustoj平台。 查看反馈没有完成的同学有关if语句的一些错误:如 冒号 缩进 教师:看来同学们都很厉害,基本完成了程序测试,接下来老师要考考大家了,老师之前另外做了一个很有趣的程序,猜字谜,你只有输入了正确的用户名和密码才能开始猜字谜,但是时间长了,老师自己忘记了密码,所幸的是python是可以直接查看源代码的,请同学们充当一下小侦探,帮老师找一找账号和密码是什么。(图3) 学生:账号是alibaba 密码是zhimakaimen 教师:你们是怎么知道的么? 学生:通过源代码中user== "alibaba" and pwd == "zhimakaimen" 这句话知道的。 教师:这句话中的and是什么意思呢? 学生:就是并且的意思。 教师:看来同学们面对密码都很会钻研啊,老师这里还有许许多多这样的密码组合,看那些同学能够最快破解。 教师依次出示 If user == "alibaba" or pwd == "zhimakaimen" If user == pwd If not(user == "alibaba" and pwd== "zhimakaimen") if int(user)*2+3 ==int(pwd) 教师:看来同学们真的很聪明,这么多密码都难不住你们,其实你们在这个破解谜语的环节中已经掌握了Python逻辑表达式的三种运算方式。
拓展 总结 提升 教师:同学们,生活中有很多程序界面都要用到分支结构的,接下来还有一点时间,我们来尝试完成生活中常见的实际问题,请同学们查看自己的学习记录单最后一个拓展任务(教材p26页:出租车计费),请根据学习记录单的提示填写正确的答案,学有余力的同学可以完成此程序编写并上传到教师机。 教师表扬完成挑战任务的同学。并提出下节课的挑战:今天猜谜语游戏同学们看到了2个if语句,第二if语句在第一个if语句的分支语句块中,这种分支结构叫做多分支结构,在下节课我们会进一步研究如何用更恰当的代码来些多分支结构。
图1
图2
图3