2019/09/13

本研究の要旨• 初等教育におけるプログラミング教育において、小・中・高の連携した（一貫した）プログラミング教育を実施すべきである。

MicroPythonプログラミングで学ぶ
情報技術

そのために、現在、この2点を行っている。

帝塚山学院大学 人間科学部 情報メディア学科
喜家村 奨（発表者） 、稲川 孝司
NPO法人学習開発研究所、帝塚山学院大学
高橋 参吉
九州工業大学西野 和典• 教員研修を実施している。
• 教材の問題点を検討している。

本研究では、micro:bit で動作するプログラミング教材を作成している
1

1

2

2

micro:bitの誕生の経緯

STEM教育とはー英国でのSTEM教育ー• 英国では2016年に英国BBCが国内の11,12歳の学生に無償でワンボートコンピュータ（micro:bit）を配布した。

• アメリカで1990年代にアメリカ国立科学財団が用い始めたscience（科学）とtechnology（技術）とengineering（工業）とmathematics（数学）を中心とした教育の考え方• このボードの特徴は非常に安価でありながら，そのボード上にプッシュボタン，LED，各種センサなどの教育用ワンボードコンピュータとして十分な構成をしている。

• 上記の学問を横断的に学習することが大切• 日本政府の文章にもSTEAMという言葉が使われるようになった。
※Society 5.0 に向けた人材育成～社会が変わる、学びが変わる～ （本文）P13

33

44

開発環境

MakeCode Editorの機能• MakeCode Editor：ブロック型、JavaScript• Python Editor：MicroPython

ブロック型⇔JavaScript

ボタン１つで切り替え可能

ビジュアルプログラ
ミング言語からテキスト型プログラミン
グ言語へのスムーズな移行が可能
55

6

61

2019/09/13

micro:bitのプログラミング環境と各校種の関係
MakeCode Editor

現在までの活動• 作成した教材を利用して、以下のような活動をおこなってきた• 2018年：

MicroPython• 高等学校 情報科教員対象 プログラミング講習会

小学校中学校• 2019年

高等学校• 日本情報科教育学会 第12回全国大会（ワークショップ）• 高等学校 情報科教員対象 MicroPythonのプログラミング講
習会• 京田辺市 教員研修 マイクロビット活用（プログラミング教育）講座
7788

京田辺市教員研修

小学校 新学習指導要領での例
示（理科）• 今年の８月、京田辺市において、高橋が講師として実施した。
• 研修資料： http://u‐manabi.org/microbit/• 時間：2時間30分• 講習内容• 京田辺市教員研修の内容は、学習指導要領に例示された内容の中から実施• 第6学年の「A物質・エネルギー」の(4)における電気の性質や働きを利用した道具があることを捉える学習など、与えられた条件に応じて動作していることを考察し、更に条件を変えることにより、動作が変化することについて考える場面で取り扱う。

• micro:bitの基本操作• プログラミングの基礎（順次、繰り返し）• プログラミングの基礎（分岐）• 演習：スイッチボタンの利用• 課題：micro:bitによるLEDの制御
9910

プログラミングの基本（順次）プログラミングの基本（繰り返し）

111112122

2019/09/13

プログラミングの基本（分岐）課題• 3Vの電池を使って電球をON/OFF するには図（a）のように接続する。ここでは，豆電球の代わりにLED（発光ダイオード）を接続して，光センサを使ったLEDの制御を行う。なお，使用するLEDは，3Vで点灯し，豆電球とは違い「＋」「－」がある。

13131414

課題の実行環境（理科の電気）

15151616

中学、技術・家庭の新学習指導要領抜粋

先ほどの小学校 理科の内容との接続性を考慮した中学、技術・家庭科の教材例• 生活や社会における問題を、ネットワークを利用した双方向性のあるコンテンツのプログラミングによって、解決する活動を通じて、次の事項を身に着けることができるように指導する。
• 情報通信ネットワークの構成と、情報を利用するための基本的な仕組みを理解し、安全・適切なプログラムを作成、動作の確認及びデバッグ等ができること

17

17

https://www.coronasha.co.jp/np/isbn/9784339028980/

18183

2019/09/13

高・中学校の連携したプログラミング教育

MakeCode EditorとMicroPythonの相違点• MakeCode Editorで作成した教材をMicroPythonのプログラムに変更することによって、中学校から高等学校への連携したプログラミング教育が容易になる• しかし、MakeCode EditorのプログラムとMicroPythonのプログラミングスタイルは異なる点がある。ここでは、その相違点を説明する。

• micro：bitの入力として、例えば、「ボタン押されている」を利用してプログラムを書く際、プログラミング言語（MakeCode Editor、MicroPyton)によって、もしイベントの処理方法が異なれば、その違いを理解しておくことが重要である。
• イベントの処理方法としては• イベント駆動方式• イベント検知方式（イベントループ方式）

19192020

イベント駆動方式

イベント検知方式• 各イベントのためのイベントハンドラを記述する• イベントが発生するまでは、イベントハンドラは休止状態にある• イベントハンドラはシステム（ディスパッチャ）が起動する• ユーザプログラム内で、繰り返し処理によって、常にイベントの発生を監視する。
ボタンAが押されていると真になるボタンAのイベントハンドラ
Push

ボタンBが押されていると真になる

Push
Push

Push

ボタンBのイベントハンドラ

ゆさぶられていると真になる

シェイク

ゆさぶられた時のイベントハンドラ

シェイク

21

21

22

22

MakeCode Editorの入力ブロックの種類

MakeCode EditorとMicroPythonのイベント処理の違い• MakeCode Editorのよるプログラムは基本、イベント駆動方式であり、それぞれのイベント（ボタン応答、メッセージ受信）のためのイベントハンドラを記述する。
• MicroPythonのプログラムはメインのプログラム内で、受信したい全てのイベントを検知して処理する（標準ライブラリを使用した場合（公式ページ参照））。

23

23

24

24

4

2019/09/13

教材プログラムの例

MakeCode Editorのイベント処理プログラム例• 通信におけるアドレッシングを理解する教材を例に、MakeCode EditorのプログラムとMicroPythonのプログラムの違いをみてみる。
• 例題プログラム• Aボタンを押すと、受信する相手のアドレスを設定• Bボタンを押すとメッセージを設定した相手に送信• 受信したメッセージをLEDに表示

参考書籍：micro:bit で学ぶプログラミング ‐ブロック型からJavaScript そしてPythonへ ‐25252626

MicroPythonのイベント処理プログラム例

システムの状態を保持するには• イベント駆動方式のプログラムでは、システムの状態管理が必要な場合、状態変数を用い、それぞれのイベントハンドラで、状態に応じた処理を書かないといけない。
• イベント検知方式のプログラムでは、システムの状態に応じて、検知するイベントを変えることができる。
イベント駆動型とイベント検知型の本質的な違い

27272828

MicroPythonによるイベント検知方式のプログラム

システムが状態を持つ

from microbit import *• 例えばAボンタンを押されてから、次にBボタンが押されたら💛を点灯させる。それを繰り返す。

while True:
while not button_a.is_pressed():pass
while not button_b.is_pressed():pass
display.show(Image.HEART)
sleep(500)display.clear()

状態遷移図によるシステムの表現

0

Aボタンが押された

1

Bボタンが押された

2

💛を点灯
29

29

30

30

5

2019/09/13

MakeCode Editorによるイベント駆動方式のプログラムs : 状態変数

高等学校 情報科教員対象
プログラミング教育研修会について

31

31

32

32

今年度のMicroPythonの教員研修会

2018年度のプログラミング教育の研修内容（MakeCode Editorを利用）
回

研修内容

第1回

情報教育の動向と情報科教育，
micro:bitによるプログラミング

第2回

プログラムの活用

第3回

プログラムによる計測・制御(1)

第4回

プログラムによる計測・制御(2)第5回

アルゴリズムとプログラム

第6回

通信とプログラム

第7回

補習日

第8回

講演会（日本情報科教育学会近畿・北陸支部と共催）
33

33

回

研修内容

第1回

MicroPythonによるプログラミング，プログラミングの基礎，プログラミングの応用

第2回・センサによる計測・制御プログラム，無線通信を利用したプログラム

第3回・アルゴリズムとプログラム，ネットワークプログラム

34

34

まとめ
• 作成したmicro:bitの教材を利用した講習会の内容について紹介した。
• 中・高の接続を考え、昨年作成したmicro:bitのプログラム（ブロック、JavaScript）をMicroPythonのプログラムに変更した教材を作成した。
• micro:bitのMakeCode EditorのプログラムとMicroPythonのプログラムの相違点について説明した。

35356