《条件语句》教学设计
王佳莉
● 教材分析
《条件语句》是江苏凤凰科学技术出版社出版的《初中信息技术》八年级第4章第5节的第一个知识点。在此之前,学生已学习了算法的概念,用“画程”软件画流程图,输入、输出语句和赋值语句,这些为过渡到本节课的学习起着铺垫作用。本节课的主要内容为两种条件语句的流程图、格式以及用法。
● 学情分析
本节课的教学对象是初二年级的学生,这个年龄段的学生思维活跃,已经具有一定的逻辑思维能力。由于刚刚接触程序设计不久,一些学生对掌握枯燥的语句格式、用法、画流程并不感兴趣,因此本节课利用“猜币”这个小程序来吸引学生的注意力。
● 教学目标
知识与技能目标:通过实例正确理解条件语句的概念、流程图、格式、用法;能初步用条件语句设计算法,进一步体会算法的基本思想,学习有條理地、清晰地表达解决问题的步骤,提高逻辑思维能力。
过程与方法目标:通过实例,发展对解决具体问题的过程与步骤进行分析的能力;通过探索、画流程图、编写程序以解决具体问题的过程,发展应用算法的能力。
情感态度与价值观目标:能通过具体实例,感受和体会算法思想在解决具体问题中的意义,进一步体会算法思想的重要性,体验算法的有效性;在编写程序解决问题的过程中,逐步养成扎实严谨的科学态度。
行为与创新目标:运用条件语句进行创意编程,以解决现实生活中遇到的问题。
● 教学重难点
教学重点:条件语句的结构和用法。
教学难点:将流程图中的条件结构转换为条件语句组成的程序。
● 课时安排
1课时。
● 教学方法与手段
问题导向式教学法、任务驱动法。
● 教学准备
网络机房、教学课件、半成品小程序、学习任务单。
● 教学过程
1.游戏导入
教师向学生展示“猜币”程序,邀请学生参与这一游戏,查看猜币的结果(如图1)。
师:为什么我们每次猜币都会输呢?程序是怎么实现的呢?你能用自然语言来描述吗?
生:如果我猜是正面,计算机掷币的结果就是反面,如果我猜是反面,计算机掷币的结果就是正面,因此我们每次猜币都错了。
师:刚刚大家在用自然语言描述的时候,都用了“如果……就……”“如果……那么……”之类的判断语句,这些语句翻译成英文是什么呢?
生:if……then……
设计意图:通过小游戏,吸引学生的注意力,并让学生发现参与游戏的结果都是猜输,从而引发学生思考,利用自然语言的描述顺利引出条件语句。
2.新知学习
师:一起来看一下程序代码,程序中多次出现了什么语句结构?看看课件里用红色圆框框出的英文都是什么?
生:if……then……
教师带领学生分析语句。
学生总结得出:程序的思路是,如果我们猜正面,那么计算机就掷币为反面,如果我们猜反面,那么计算机就掷币为正面,所以我们必败!
教师引出条件语句的定义:给定一个判断条件,并在程序执行过程中判断该条件是否成立,根据判断结果执行不同的操作。
师:请同学们结合现在看到的程序代码,在Flash动画中拖放出语句的语法格式(如图2)。
学生在Flash动画中拖放出语句的语法格式。
教师引入条件语句的一种格式:
If<条件>Then<程序段A>
师:通过分析,大家能不能把程序改成必胜的结果呢?
学生相互讨论,形成思路。
师:通过“必败”和“必胜”的“猜币”程序,可以发现这其实是程序中早已设定好的,跟运气毫无关系,我们能不能自己设计出一个计算机掷币结果随机的“公正版”“猜币”程序?大家可以将自己的思路用流程图来体现。[教师适当介绍一下Randomize及n=Int(2*Rnd)]
部分学生完成流程图后,教师请一位学生在黑板上用刚刚学过的if……then……语句格式编写程序中的判断部分。
大部分学生完成后,提示学生对比黑板上学生编写的判断语句格式和“画程”软件中“代码窗口”内判断语句的格式有什么区别。
学生发现和自己刚刚所学的条件语句格式不一样,由此引入条件语句的另一种格式:
If<条件>Then
<程序段A>
Else
<程序段B>
End If
学生利用Flash动画拖拽出第二种语句的格式。
设计意图:通过观察程序代码,让学生发现“必败”的真正原因是计算机进行了程序设定,由此引出如何才能让每次猜币的结果都是“必胜”,并再次过渡到“公正版”程序的编写,层层递进。在这个过程中,通过流程图让学生发现条件语句的第二种格式,通过思考两种格式的区别,更加清晰地了解条件语句。
3.总结格式
师:请大家思考一下,条件语句的两种格式有什么区别?
学生思考,教师引导学生总结。
(1)单行格式的If语句。
单行格式的If语句可判断一个或多个条件的成立与否,仅在条件成立时执行特定程序段,条件不成立时则跳出当前语句继续执行下一行代码,格式如下:
If<条件>Then<程序段A>[Else<程序段B>]
(2)多行格式的If语句。
在条件成立或不成立时都需要执行对应的程序段,格式如下:
If<条件>Then
<程序段A>
Else
<程序段B>
End If
教师引导学生举例说明条件语句在现实生活中的应用(用声音控制灯的亮灭、感应水龙头……),通过利用条件语句解决现实问题,激发学生今后学习编程的兴趣。
设计意图:通过两种格式条件语句的对比,让学生能够更加清晰地了解两种格式条件语句的区别、适用场合、在现实生活中的应用,强化学生的认知。
4.算法的优化
师:如果我输入的值不是1和0这两个数,猜币的结果会怎样?
生:都是输出“猜错了”。
师:怎么解决这个问题呢?
生:在输入一个值后,再加一个判断语句,判断值是不是0或1,如果不是,就提示用户重新输入。
师:很好!在编程过程中,需要综合考虑各种可能的情况,不断优化程序,减少漏洞。
设计意图:通过提出新问题让学生去思考,这样的优化过程,可以提高学生的思维品质。教师利用问题引导学生去思考算法的优化,不仅可以帮助学生梳理思维过程,养成思维习惯,长此以往,还可以提高学生的学习能力,使学生的思维品质得到一定程度的提高。
5.自主探究
完成半成品程序:判断任意输入的整数是奇数还是偶数(用两种格式)。
要求:
(1)先画流程图,可以结合“画程”软件中的“单步运行”按钮,检查流程图是否正确(如上页图3、图4)。
(2)完成半成品程序,可以参考“画程”软件中的“代码窗口”完成程序填充(如图5、图6)。
(3)完成流程图和程序填充后,小组讨论总结操作中遇到了什么问题,是如何解决的,有什么问题没有解决。
学生编写完程序之后,教师展示几个失败的案例,分析其失败的原因,如语句格式错误(没有空格、忘记End If)、逻辑表达式错误等,引起学生注意,加深学生印象,提醒学生注意条件语句和逻辑运算使用时的注意事项。
设计意图:通过“画程”软件中的“单步运行”功能,可以使学生更加清晰地了解程序运行的每一个过程,同时通过“代码窗口”的程序作为完成程序填充的参考,帮助学生体验算法实现后的成功感,增强其学习程序设计的自信心。
6.拓展练习
教师提供程序半成品,让学生在以下3个程序中任选其中一个进行编程。
(1)完善程序,输出两个不相等的实数a、b的最大值(用两种格式)。
(2)输入儿童身高,判断儿童乘坐火车时的购票情况,判断条件如下:
若身高不超过1.1m,则无须购票;
若身高超过1.1m、不超过1.4m,应买半票;
若身高超过1.4m,应买全票。
(3)将考试分数转换为等级,规则如下:
输入一个百分制分数i([0,100]间的整数),输出转换得到的等级grade。
i? ? ? grade
[85,100]? ? ?"A"
[75,85)? ? ? "B"
[60,75)? ? ? "C"
[0,60)? ? ? ?"D"
学生完成后,教师展示一些优秀作品和一些有标志性错误的程序,通过对优秀作品的欣赏和标志性错误的反思,加深学生对条件语句的理解和掌握。
设计意图:教师提供3个半成品程序,让学生选择自己感兴趣的题目进行编程,通过展示共性错误,让学生发现问题所在,从而加深学生对条件语句格式的掌握。
7.总结与拓展
教师引导学生总结条件语句的格式、关系表达式、逻辑表达式及使用时的注意事项。
● 教学反思
在本节课的教学过程中,我利用了教材中的“猜币”程序作为导入的小游戏,并对教材中的程序进行简化——不显示计算机掷币后的文字信息,仅以图片代替,由此吸引学生的注意力,并通过“必输”“必胜”“公正版”三个环节的层层递进,引入条件语句的两种格式。其中,应用“画程”软件及其自带的“单步运行”功能,帮助学生更加清晰地了解程序运行的每一步结果,并用“画程”软件中“代码窗口”的代码作为学生完成半成品编程的参考,帮助学生体验算法实现后的成功感,增强其学习程序设计的自信心。
根据听课教师的建议,在本节课“教学过程”的第2、第3部分介绍条件语句和总结格式时,可以利用学生在小学阶段学习过的Scratch軟件中的条件语句进行迁移,加深学生对知识的拓展。