视频标签:python,分支结构,传感器的程序设计
所属栏目:信息技术优质课视频
视频课题:中图版高中信息技术课选修1 算法与程序设计2.3《python分支结构—结合加速度传感器的程序设计》北京市 - 密云县
本视频配套资料的教学设计、课件 /课堂实录及教案下载可联本站系客服
教学内容:
本课是教学改革教材中模块1数据与计算单元三算法与程序设计中的一节关于选择结构的程序设计课。编程语言采用的是python。选择结构是编程中一个非常普遍的结构。计算机程序中离不开大大小小的判断和决策。学习分支结构,利于学生掌握编程的思想,学生通过尝试一些新东西,学习一项新技能,并以新的方式解决问题。通过修改、保存、运行程序,修改测试自己的代码,在探索中爱上编程,学习语言的奥妙,感受编写程序带来的乐趣。
如果单纯的学习编程语言,是比较枯燥的。如果能够结合传感器,让学生能够看到计算机通过判断所呈现出来的效果,就能够利用学生更好地理解程序,在互动中感受程序的乐趣。本节课采用的是英国BBC的microbit开发板。这一小块开发板能够使用python进行编程。同时,它本身还具有多种传感器。本节课选用的加速度传感器来开展教学。通过python语言判断xyz轴数据的变化,在屏幕上25个led能够呈现出想要出现的效果。
课时安排:
1、2课时 python编辑器安装; print()函数;输出变量;输入变量;编写有趣的名字游戏。 3、4课时 使用microbit开发板,会显示图像;会自定义图像;会随机显示图像。
5 课时 认识分支结构,了解不同分支语句实现的效果。重点为结合传感器函数进行体验和修改程序。
6 课时 结合语音模块,会扩展学习,编写分支结构语句,实现个性化效果。 7课时 结合无线模块,继续深化分支结构的嵌套。 8课时 结合turtle模块,学习循环结构 for语句 9、10课时 结合传感器模块学习列表。 11、12 学习定义函数,解析、穷举 13、14 综合性程序制作 本节课是第5课时
学生情况:
学生在先前的学习中利用4个课时熟悉了python的基本开发环境。了解了变量的定义及使用方法,了解了常用函数print()等。了解导入模块和库的方式,会使用display.show()和display.scroll()函数。会自定义图像并以变量显示。了解了随机函数的使用。
学生对程序表现出了好奇与兴趣,特别是看到编程效果的时候。但大部分学生对稍有一些难度的知识表现出来退缩现象比较严重,不爱动脑,遇到问题缺乏主动思考及解决的能力。
2017年北京市中小学优秀教学设计评选
3
教学方式:根据学生的认知特点和教学内容,采用任务探究、案例分析、交流总结等学习方式
教学手段:利用自主学习的方式,教师准备学习资料供学生学习使用。
技术准备:
硬件:多媒体网络教室,microbit板39块,数据线若干。 软件:教学ppt、MU软件。
教学目标(内容框架)
知识与技能:
1、 感受不同分支结构程序实现的效果 2、 会修改有关加速度传感器的函数 3、 认识分支结构的3种结构形式 4、 能够根据需求进行程序的修改
过程与方法:
通过对项目的功能定位、分析、代码编写,了解项目实现的整个过程。
情感态度与价值观:
愿意动手修改程序、感受代码的变化带来的神奇效果。
教学重点:
认识分支结构的三种结钩,并了解不同分支结构带来的程序效果。 教学难点:
分支结构程序编写细节
2017年北京市中小学优秀教学设计评选
4
教学过程(文字描述)
一、 游戏引入(4分钟)
教师:大家小时候都玩过剪刀石头布的游戏吧。老师家里的小孩也爱玩,不过呢,他的爸爸总给她放水,总是允许小孩子后出。所以,小孩子总是赢。今天我们来重温一下这个游戏,不过呢,是找一个同学和一个机器来对战。人机对战,三局两胜,看谁能赢?
准备:一块microbit板,内置了石头剪刀布的程序,通过晃动,随机出现三个中的一个图案。 互动:三局游戏,有时允许机器后出,但依然有获胜机会。人机对弈。
总结:这个程序有一个触发条件,就是晃动,如果检测到晃动条件,就会随机出现一个图案。计算机有很多这样的判断,计算机离不开判断。有了判断才能进行决策。今天,我们要学习python的新知识——分支结构。
◆本环节设计意图:兴趣导入,初识判断。
二、 认识if结构 6分钟
1、教师提出问题:剪刀石头布的程序是如何实现的呢? 程序实现的思路是怎样的?
活动:
师生一起分析,剪刀石头布程序实现的思路。 以流程图方式展现。
2、分支程序在生活中的应用
我们生活中有哪些场景,什么时候需要进行程序的判断和决策? 教师准备:主动刹车系统:
丰田 预碰撞安全系统; 奔驰 pre-safe
各种安全报警系统: 防盗、预警等
学生回答:生活中涉及判断的场景 可能回答:避障、雨水量检测等 意图:了解判断的重要性,以及关键时刻判断的条件。
◆本环节设计意图:初识判断程序的应用及判断的条件。
三、 体验活动
1、 体验程序
运用MU 打开 shitoujiandaobu.py
学习本节课新知识:和加速度传感器相关的分支结构代码, 并下载运行。
2017年北京市中小学优秀教学设计评选
5
from microbit import * import random
jiandao=Image("00009:09090:00900:09090:00009") shitou=Image("00000:09990:09990:99990:00000") bu=Image("99999:99999:99999:99999:99999") while True:
display.show("8")
if accelerometer.was_gesture("shake"): display.clear() sleep(1000)
xuan=random.choice([jiandao,shitou,bu]) display.show(xuan) sleep(2000)
2、修改程序
自学知识:加速度传感器涉及手势的函数知识。
学生可以修改函数参数,观看程序效果。 手势:up down left right face up face down
◆本环节设计意图:学习程序是从认识和修改程序开始的。学生需要有修改程序的初体验,不断尝试和试错,是感知事物的第一步。 四、 分支结构
1、学生自学分支结构
自学材料“加速度传感器”“分支语句”文档 2、师生一同提炼出三种结构 分支结构的三种结构 if结构
if 条件:
执行语句 if-else结构 if 条件:
执行语句 else:
执行语句 if-elif-else结构 if 条件:
执行语句 elif条件:
执行语句 else:
执行语句
师生分析程序,并提示注意要点
2017年北京市中小学优秀教学设计评选
6
3、结合传感器进行程序的编写和改进
程序效果:端乒乓球游戏程序
实现其他轴倾斜角度的判断。
from microbit import * while True:
reading = accelerometer.get_x() if reading > 20:
display.show("R") elif reading < -20:
display.show("L") else:
display.show("-")
有能力的同学,在jiandaoshitoubu.py程序上进行多分支的编写。 提示:如果出现箭头图案,怎么样,如果是石头呢?… 如果碰到一种手势怎样,碰到另外一种手势呢?…
五、总结
一种传感器 加速度传感器
三种分支结构 if if-else if-elif-else 五种传感器函数
accelerometer.was_gesture(参数) accelerometer.current_gesture()
age = 20 if age >= 18: display.show(a) sleep(1000) display.clear() if age >= 18:
print(’adult’) else:
print (‘teenager’)
if age >= 18: print(’adult’) elif age >= 6: print(‘teenager’) else: print(‘baby’) 注意要点:
1、 :的位置
2、 4个空格的缩进
2017年北京市中小学优秀教学设计评选
7
accelerometer.get_x() accelerometer.get_y() accelerometer.get_z()
程序可以再改进的效果:实现游戏结果的判断
教师演示:两块microbit板,摇动出现随机图案后,都按a键无线发射信息,出现输赢结果。 附程序:
from microbit import * import radio import rando
scissors = Image("00009:09090:00900:09090:00009") rock = Image("00000:09990:09990:99990:00000") paper = Image("99999:99999:99999:99999:99999") images = [scissors, rock, paper] xuan = rock display.show(xuan)
radio.config(length=32, channel=7, group=200) radio.on() while True:
if accelerometer.was_gesture("shake"): display.clear() sleep(1000)
xuan = random.choice(images) display.show(xuan) sleep(2000)
if button_a.was_pressed():
radio.send(str(images.index(xuan))) incoming = radio.receive() if incoming:
enemy = images[int(incoming)] if xuan == enemy:
2017年北京市中小学优秀教学设计评选
8
display.show(Image.HEART) else:
if xuan == scissors: if enemy == rock:
display.show(Image.NO) if enemy == paper:
display.show(Image.YES) elif xuan == rock: if enemy == paper: display.show(Image.NO) if enemy == scissors: display.show(Image.YES) else:
if enemy == scissors: display.show(Image.NO) if enemy == rock:
display.show(Image.YES)
2017年北京市中小学优秀教学设计评选
9
学习效果评价设计
评价方式
学生采用小组评价的方式进行
小组检测表
项目
是否完成
是否成功的完成了自学任务 能后运用自学完成程序 会修改分支结构
请记录你还有疑问的地方:
视频来源:优质课网 www.youzhik.com