新世纪版信息技术八年级下册第十课传递信息 教案.doc
新世纪版信息技术八年级下册第十课传递信息教学设计课题 传递信息单元第一单元学科信息技术年级八年级学习目标知识目标:进一步学习列表;进一步学习字典,熟悉前面学过的编程知识。技能目标:学习列表和字典;理解程序。情感目标:培养学生分析理解程序的能力。重点学习列表和字典难点理解程序教学过程教学环节教师活动学生活动设计意图导入新课micro:bit可以发送和接收信息,这节课让我们用micro:bit来玩一个传递信息的游戏。一块 micro:bit负责发送信息,另一块micro:bit负责接收信息。思考激发学生学习兴趣并快速进入学习状态讲授新课一、发送信息【例题1】发送信息。micro:bit上没有键盘,如果用micro:bit发送信息,如何输入要发送的信息呢?想一想,你 有什么好办法?我们用下面的方法输入信息:在micro:bit上显示字母,用按钮B循环翻页,按下按钮A选 定并发送点阵屏幕上显示的字母。用变量code存储字母(还可以加入标点符号等),code是一个列表,用n表示code中元素的序号。在点阵屏幕上显示code中的字符。输入符号 “#”表示信息发送完毕。用变量message存储所有已发送的信息。程序如下:仔细阅读上面的程序,你能看明白吗?怎样利用 micro:bit 的两个按钮发送信息呢?【例题 1】的办法是:用按钮B翻页显示字符,用按钮A发送点阵屏幕上显示的字符。怎样在屏幕上显示字符呢?用列表 code 存储需要显示的字符: code = A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V, W,X,Y,Z,#用 n 表示列表中元素的序号,每按一下按钮 B,序号 n 就增加 1,屏幕上 显示 coden 这个字符。由于 n 会不断增加,但 n 的最大值不能超过“列表的长度 -1”,当 n 的值 达到列表的长度时,应该重新将 n 的值设置为 0。if button_b.is_pressed(): if n len(code) - 1: n = n + 1 else : n = 0上面这些功能可以用求余函数简化:if button_b.is_pressed(): n = n + 1 n=n%len(code)或者进一步简化为:if button_b.is_pressed(): n = (n + 1)%len(code)按下按钮 A 就将 coden 这个字符发送出去:radio.send(coden)为了确定按下按钮 A 时屏幕上的字符是真的发送出去了,我们让屏幕上的 字符闪烁一下。具体的实现方法是:先清屏:display.clear()然后进入下一轮循环后再重新显示字符coden : display.show(coden)于是,按下按钮 A,屏幕上的字符就闪烁了一下,如果没有闪烁,说明按下按钮 A 不成功,需要重新按。当所有的字符发送完毕,需要发送一个结束信号“#”,然后程序就退出 循环:if coden = #: break最后屏幕上将显示所有已发送的字符。小博士len()函数的使用方法。语法:len(str)其中变量str可以是字符串、列表、字典等类型。作用:返回字符串、列表、字典等的长度。二、接收信息【例题2】接收信息。由于发送端(【例题1】)是逐个字符发送信息因此在接收端也逐个显示接收到的字符(message_received),并用变量message将所有接收到的字符记录下来。当接收到结束 符号“#”,在点阵屏幕上显示所有接收到的信息message。程序如图:在上面的程序中,为了确信信息的实时发送和接收是成功的,加入了让屏幕产生闪动效果的命令:display.clear() sleep(50)交流与协作相邻的两个同学一组,就可以玩发送和接收信息的游戏了。为了让传送信息的游戏更有趣,可以开展 4 人小组之间的信息传递:相邻的两个同学为一端,远处的两个同学为另一端,每一端有两块 micro:bit,一个 用于发送信息,另一个用于接收信息。例如,传递如下信息:1Whats your birthday? 7/92Who is your idol?Jack Ma通过玩传递信息的游戏,发现程序存在的缺陷,然后改进程序,提高信息 传送的效率。三、传递加密信息在上一个学期,我们学习了如何用恺撒密码加密信息。现在,让我们用micro:bit来传递 用恺撒密码加密的信息。【例题3】发送加密信息。修改【例题1】程序,用字典类型的变量book来存储恺撒密码。首先建立一个字母列表 code,一个加密字典 book,字典 book 中的“键” 是明码,“键值”是密码。用按钮 B 翻页显示要发送的信息 coden,然后按下 按钮 A 将 coden 对应的密码 bookcoden 发送出去:if button_a.is_pressed(): radio.send(bookcoden)修改后的程序如下:将以上程序保存并复制到一块micro:bit上,然后继续编写接收和解密信息的程序。【例题4】接收和解密信息。将接收到的字符解密,需要查密码字典book,我们先编写一个解密的函数decode(),然后调用该函数对接收到的字符解密。程序中需要设计一个解密函数:def decode(letter, book): for x in book.keys(): if (bookx = letter): return x信息传递完毕,按下按钮A,显示接收到的加密信息;按下按钮B,显示解密了的信息。程序如下:decode(letter,book)函数有两个参数,letter代表接收到的密码,book为密码字典,该函数的功能就是在密码字典book中找密码 letter 对应的明码。明码将作为函数 decode(letter, book) 的值返回出来。交流与协作两个micro:bit一组,设计一套加密规则,然后编写程序让一个 micro:bit发送加密消息,另一个接收加密消息并能通过按钮切换显示密文和明文。通过教师的讲解,以小组合作的方式,开展探讨交流,完成任务。通过老师演示学生动手操作,提高动手能力。小组交流、分享学生动手实践操作,学生小组间讨论,共同完成任务。通过老师演示学生动手操作,提高动手能力。小组交流、分享学生动手实践操作,学生小组间讨论,共同完成任务通过教师的讲解,以小组合作的方式,开展探讨交流,完成任务。学生动手实践操作,学生小组间讨论,共同完成任务通过小组合作,加强学生组内团结、加强学生组内团结、共同完成任务,培养学生动手操作能力,并且锻炼学生的语言组织能力和表达的能力。加强学生组内团结、共同完成任务,培养学生动手操作能力,并且锻炼学生的语言组织能力和表达的能力。培养学生组间合作能力,并且炼动手能力 培养学生动手操作能力,并且锻炼学生的语言组织能力和表达的能力。课堂小结分小组总结归纳,教师补充。各组汇报总结,其他小组成员做补充。锻炼学生的总结能力,逻辑思维、语言表达能力。板书一、发送信息二、接收信息三、传递加密信息