基于Micro:bit的初中Python程序教学实践与思考
2018-09-08邱钰商治年
邱钰 商治年
当前初中信息技术教学中的程序教学以VB教学为主,但其命令较为冗长、逻辑思维抽象、结构复杂,对于中学生而言学习上略有难度,且纯代码的编写,降低了学生学习的兴趣。苏州工业园区在初二信息技术教学中引入了Python语言,并且采用了开源硬件Micro:bit作为程序运行载体。这不仅为信息技术课堂增添了活力,更主要的是学生在程序编写、修改、运行过程中,锻炼了学生逻辑思维能力、创造能力以及解决问题的能力。
基于Micro:bit的Python程序教学项目介绍
如何能够有效地实施基于Micro:bit的Python教学呢?在一个学期的实践中,我们发现采用项目的形式来组织课堂教学效果比较好。学生通过一系列活动项目的创作,在不断尝试、实践与体验的过程中获取经验、掌握方法、提升能力。本学期根据内容的难易程度安排16个项目,每个项目用1-2个课时完成。每一章节的内容编写上均涉及到以下几点:提供效果视频或搭建视频的二维码、代码指导部分一般提供两套程序(Python、块语句)、程序解说部分对程序逐条的解释,其中贯穿新授的知识点介绍、提供基础练习与拓展练习。
本册校本教材中第1~4章为基础内容,第5~9章主要学习循环、判断语句,第10~12章主要学习Micro:bit与外接设备连接制作有趣的内容,第13~16章主要是综合练习。内容具体如下。
第1章:《入门很简单》。主要是Micro:bit介绍、Python语言介绍、编程界面及其使用、程序的导入与运行。
第2章:《秀出自己》。通过范例“秀出自己”要求学生掌握基本显示命令、了解内置图像、掌握等待命令。涉及到Python语言知识点Python程序结构、变量(常量)、字符串;Micro:bit组件应用为display对象中常见的方法、Image内置图像对象、sleep()函数。
第3章:《还能让屏幕显示的更多》。通过范例“闪烁的警示灯”、 “游动的鸭子”讲解,要求学生掌握永久循环、掌握图像的方法。涉及到Python语言知识点while True:永久循环;Micro:bit组件应用为Image自定义图像、Image图像的方法。
第4章:《让按钮起作用》。通过范例“按钮的使用”“计数器”讲解,要求学生掌握按钮对象、了解if语句、掌握变量的赋值、学会通过REPL调试程序。涉及到Python语言知识点if条件语句用法之一、print()函数、逻辑表达式、变量赋值运算、常见的内置数值函数;Micro:bit组件应用为button_a和button_b对象。
第5章:《岔路太多该走哪一条?》。通过范例“指北针”要求学生掌握If语句的使用、了解磁力传感器。涉及到Python语言知识点if条件语句用法、关系运算符;Micro:bit组件应用为磁力传感器(磁力计)。
第6章:《随机数的乐趣》。通过范例“骰子比大小”要求学生掌握“摇晃”手势、了解其他手势、掌握产生整数随机数、了解其他随机数函数。涉及到Python语言知識点元组(tuple)、随机数对象random;Micro:bit组件应用为手势(Gesture)、手势的判断。
第7章:《唱个歌吧》。通过范例“音乐盒”“自定义乐谱”要求学生掌握列表的概念、列表的访问,掌握乐谱的编码方法。涉及到Python语言知识点列表(list);Micro:bit组件应用为内置的乐曲、music对象、表示音符。
第8章:《循环很有趣》。通过范例“会呼吸的灯”“关公巡城”要求学生掌握遍历for…in循环、掌握坐标系、掌握LED灯的单控。涉及到Python语言知识点for…in遍历、range()函数;Micro:bit组件应用为LED灯的坐标、display对象中控制灯的方法。
第9章:《目标,只需“迭代”就能达到》。通过范例“倒计时器”“脑筋急转弯”要求学生掌握迭代while循环、循环的控制语句,掌握低频率声音的播放。涉及到Python语言知识点while循环、in操作、continue语句、break语句;Micro:bit组件应用为music.pitch()方法。
第10章:《我的状态你知道》。通过范例“水平仪”“金属探测器”“电子温度计”“更精确的温度计”要求学生掌握加速度传感器、磁力传感器、温度传感器的使用,掌握模拟信号输入;Micro:bit组件应用为加速度传感器、磁力传感器的其他功能、温度传感器、引脚的输入输出函数、了解函数的概念及调用。
第11章:《关于时间》。通过范例“秒表”要求学生掌握时间的计算与控制、掌握常见的数值运算和字符串运算。涉及到Python语言知识点算术运算符、字符串操作;Micro:bit组件应用running_time()函数。
第12章:《连接你和我》。通过范例“无线电”“萤火虫”要求学生掌握无线电功能的使用。涉及到Python语言知识点列表解析;Micro:bit组件应用为radio对象常用的方法。
第13、14章:《测试一下你的反应力》《不可触碰》。通过范例“反应力测试”“不可触碰”要求学生掌握需求搭建硬件、综合应用前面所学完成项目功能。
第15、16章:《像素游戏之平衡球》。通过范例“平衡球”“猴子接香蕉”要求学生掌握分析需求、应用所学、分步实现,编写趣味游戏。涉及到Python语言知识点自定义函数、字符串的拼接。
在教学中学生编写代码的环境为离线编程软件Mu,Mu也是官网指定的一款编程软件。除此之外还有在线编程环境,如微软PXT、PythonEditor、Code Kingdoms、MicroPython、Microsoft、Touch Develop,以及离线编程环境makecode、mPython、Mu-Kitte、BXY等可供选择使用。
教学实施过程——以《电子色子》为例
下面,我们以项目“随机数的乐趣”中的《电子色子》为例介绍一下教学实施过程。
1.教学目标
理解并掌握“摇晃”手势,了解其他手势;掌握产生整数随机数的函数用法,了解其他随机数函数;了解元组概念,掌握元组的使用方法;能够独立完成电子色子的代码命令编写,并在Micro:bit上调试完成。
2.主要教学过程
(1)游戏导入,建立概念
师:展示生活中常见的色子(又名:骰子),请同学们观察一下色子有什么特点。
生:色子是立方体,共有6个面,每个面上一个数字。
师:下面我请两个同学来比一比谁掷的色子点数大。
师:在刚刚的猜大小环节,你们有没有发现什么?我们用色子掷到的数是固定的吗?每次掷色子点数是怎样的?
生:是随机的。
师:刚刚大家有说到随机,随机就是事前不可预言的现象,比如抓阄、抽奖等。在刚刚掷色子比大小环节,我看到很多同学已经跃跃欲试想要和同桌掷色子比比大小了,老师这边没那么多色子,怎么办呢?别着急,老师今天也带来了一个特别的色子,当然这不是一个普通的色子,而是用我们的Micro:bit制作的电子色子。今天这节课我们就一起来学习制作电子色子,来比一比大小。
(2)电子色子制作分析——梳理思路
师:同学们,你们觉得需要用哪些功能来制作这样一个电子色子?(教师晃动电子色子,随机产生点数)
生:Micro:bit识别晃动,产生点数。
师:很好,思路是正确的,先识别晃动再随机产生点数。思考一下:识别晃动该如何来实现,又如何实现随机显示点数?请你们带着这些问题,到易加互动平台中查看老师给你们布置的几个小任务。
(3)任务分解,自主探究
任务一:摇一摇。
师:刚刚说到先要让Micro:bit识别到摇一摇动作,我们先通过一个小例子,来检测摇一摇,请大家查看易加互动平台中任务一中的微课,要求大家掌握accelerometer.was_gesture()方法检测手势shake,先试一试让Micro:bit摇一摇后,由哭脸变笑脸。
学生查看微课,尝试在Mu中编写代码,并将代码烧录到Micro:bit中,测试效果。
师:在任务一中,大部分同学已经实现了Micro:bit识别到摇一摇动作,接下来请你思考如何实现摇一摇出现随机数呢?请同学们去做一下任务二。
任务二:产生随机数。
师:任务二中给了大家一个帮助微课——随机数函数的应用,请你尝试去制作摇一摇产生随机数,并将任务二中的选择题练习做一下。
学生查看任务二,并小组讨论完成任务二中随机数函数的使用。
师:在任务二随机数应用微课中,大家了解了random的概念,有哪位同学来说一说,这个函数如何使用,你是如何用的,又有什么注意点?
生:使用方法是:random.randint(下限,上限)方法获取从下限到上限的一个随机整数。在使用前需要导入随机模块import random。
师:总结得很好,了解了基本的使用方法后,请思考在制作色子中,我们需要几个随机整数?下限和上限分别是什么?
生:需要6个,下限为1,上限为6。
师:同学们掌握得很好,你们是不是都很完整地写出来了呢,给大家3分钟时间再去修改自己的代码。(学生修改3分钟)刚刚有同学问老师,怎样才能产生像真实色子一样的点图呢?想一想,我们之前课堂中说过,在Micro:bit中有哪两种类型图像?
生:自定义图像与内置图像。
师:很好,再看看这种点图是自定义的还是内置的?
生:自定义的图像。
师:了解到这里,同学们有没有想到要怎么将图像随机显示,请你们查看任务三学案及帮助微课,完成图像与随机数的一一对应。
任务三:自定义图像随机显示,形成电子色子。
学生查看任务三学案及帮助微课,尝试修改自己的代码,制作出随机显示点图的效果。
师:在任務三中,老师发现很多同学出现了问题,就是如何存储随机点数,这里需要用到一个概念就是元组,微课中有提到元组的概念,哪位同学来给大家说一说?
生:元组,即一组数据的有序数列。
师:你能给大家举个例子吗?
生:建一个元组名为tuple1,用来存放A~G七个字母tuple1=(“A”,“B”,“C”,“D”,“E”,“F”,“G”)。
师:同样的,我们也可以建立一个元组,用来存储6个不同的点。请同学们再次修改自己的代码,并尝试将代码烧录到Micro:bit中。完成的同学可以两两比一比,看谁点数大。
师总结:通过以上三个小任务,同学们完成了一个电子色子的制作,在做的过程中一定要有一个清晰的思路,即做电子色子分成了以下三步:第一步,能让Micro:bit识别“摇一摇”的动作;第二步,产生一个随机的数字;第三步,将随机数与内置图像点进行一一对应。用到了accelerometer.was_gesture()方法来检测shake手势,random.randint()方法生成随机整数,最后了解了元组的基本使用方法,并将自定义图像存放于元组中与随机数相对应。
(4)拓展应用,启发创新
师:本节课,同学们在学案指导、微课帮助下制作出了电子色子,想一想我们生活中还有哪些小游戏是随机的?想一想我们常玩的“剪刀石头布”是不是随机的?请你思考一下如何去实现“剪刀石头布”效果。
基于Micro:bit的Python程序教学实践思考
基于Micro:bit的Python程序教学能够很好地激发学生学习代码兴趣,培养学生的计算思维。目前,苏州工业园区基于Micro:bit的Python程序教学已经在多所中学实践,并取得了很好的教学效果。在教学实践中,我總结出如下教学注意点。
1.内容设计符合学生认知能力
教学内容要符合学生认知能力,初二学生虽然已经具备了抽象逻辑能力和概括能力,但单纯的代码编写是不能激发学生的兴趣的,需要将代码学习贯穿于有趣的教学内容中。因此采用项目式教学更符合学生学习特点,在教学中我们也是将概念、用法的学习融入到不同项目中去的,让学生更易于接受。
在教学形式上,可以选择用块语言到代码语言过渡的形式教学,如在本学期教学实践中,使用mPython进行编程,此软件的特点是一边是块语言一边是代码语言,如右图所示。
学生有Scratch基础,对于块语言的使用没有障碍。在教学伊始使用块语言能够让学生迅速入门,了解Python代码语言特点,从而更有利于开展教学。
2.学案指导,微课支撑教学
信息课堂中要充分发挥课堂优势,教学中可以为学生提供详细的学案指导与微课资源,支持学生自主学习,培养学生自主学习能力。优质的学案设计与微课资源对学生的帮助远远大于课堂中教师的讲解。在课堂实践中也发现,学生更乐于自己去看学案指导、看微课,自主学习,且学生掌握程度不同,学案与微课给了学生更大的自由度,学得快的学生还可以充当小老师的角色,去帮助学得慢的同学。
3.发散学生思维,提高解决问题能力
基于Micro:bit的Python程序教学,实质上还是程序教学,程序是为了解决问题。课堂中使用的实例通常并不是用一种方法可以解决,教师可以启发学生尝试用不同方法来实现编程,也可以让学生来比较一下哪种程序更简洁、可读性更强,发散学生思维,提高其解决问题的能力。在教学实践中会发现很多学生的想法很独特,会尝试用自己的方法进行编程,虽然并不一定都能实现效果,但在解决问题的过程中,学生会学到更多。
4.多样化评价反馈,激发学习动力
基于Micro:bit的Python程序教学中通常是学生完成一个个小项目,对于学生的评价多元化,可以有效地激励学生学习。如在课堂中,可以通过无线投屏方式(如SeeWolink)随时展示学生Micro:bit上实现的效果,对于做得好的学生可以使用班级优化大师或classDojo这类的评价工具进行加分鼓励。
Python因其简单易读的特点,已经逐渐在中小学信息教学中普及。而基于Micro:bit的Python程序教学创新性地将Python与Micro:bit结合起来,让学习Python变得更加简单、更加有趣。将Micro:bit与Python引入初中信息技术,也为信息技术教学中的程序教学注入了新鲜的血液,让学生在快乐中学会编程,在编程学习中提升学生的计算思维。