事例305

中高生とmicro:bitでやってきたこと10選

樟蔭中学校・高等学校 川浪隆之先生

今回は、本校で行っているプログラミング学習の概要と、micro:bitを使った実践事例を10個、報告したいと思います。はじめに私のことを少し紹介させていただきます。

 

私は情報科の教員7年目で、その前は数学を担当しておりました。本校は大阪府東大阪市にある中高一貫の女子校です。女子校での「情報」をいかに楽しく進めていくかを、日々悩みながら取り組んでいます。

 

 

本校のICT環境は、現在の中1から高2生まで、1人1台端末として生徒はiPadを持っています。私はICT Lab.という部屋で、STEAM教育に力を入れ、デジタルものづくり活動にも力を入れています。

 

本日の発表では、前半では本校が行っているプログラミング学習の概要、後半ではmicro:bitを使った実践事例10選をご紹介します。

 

 

プログラミング学習の概要~ブラウザアプリで自走学習を促す

 

最初に、本校が行っているプログラミング学習の概要についてお話しします。

 

情報教室の学習環境はWindows PCで、4つのブラウザアプリを利用してプログラミングを学んでいます。インターネットにつながっていれば、ブラウザで対応できるようなサービスを利用しています。

 

 

1つ目のアルゴロジック(※1)は、プログラミング学習の導入として、夏休みにゲーム感覚でアルゴリズム学習をしてもらおうということで、夏休みの課題としています。

 

※1 https://algo.jeita.or.jp/

 

※クリックすると拡大します。

 

その次は、2学期の10月~11月頃、プログラミングの単元に入るため、その少し前の授業でProgate(※2)にログインして、まずPythonを動かしましょう、ということで自走学習が始まります。

 

※ 2 https://prog-8.com/

 

画面にあるように、頑張った分だけ経験値が溜まってレベルが上がっていき、ランク付けされるので、ランキング表を見ながら皆が切磋琢磨していく、という形で進めています。学期に2回、この進捗状況を課題提出させて、採点項目に入れています。

 

※クリックすると拡大します。

 

3つ目は、Google Colaboratory(※3)を使ったPythonの学習です。こちらは、どちらかというと読み取り中心の学習として、語学を学ぶようにプログラミング言語に触れるというイメージで取り組んでいます。

 

※3 https://colab.research.google.com/?hl=ja#

 

小テストや確認テストも、このGoogle Colaboratoryで行っています。

 

これに取り組む段階では、先ほど紹介したProgateで、ある程度Pythonのことを学んできていることを前提として授業ができる授業デザインにしています。

 

※クリックすると拡大します。

 

4つ目に、micro:bitとMicrosoftのMakeCodeを使って、主体的に取り組めるような実習を用意しています。順次・反復・分岐の基本構造をブロック型の言語でイメージしたり、micro:bitに内蔵されているセンサーを使ったプログラムで、micro:bitに外部のLEDをつないで光らせる、アクチュエーターの動きを体験することを通して、問題解決とプログラミングスキルをつなぐことを目指した実習を行います。

 

 

micro:bitを使った授業10選~プログラミングのそれぞれの要素を段階的に盛り込む

 

ここからは、micro:bitを使った授業をどのような流れで行っているか、10選として紹介したいと思います。

 

最初の事例は基本中の基本、数字や文字の出力から始めます。

 

Scratchを触ったことがある生徒が多いのでスムーズな流れでブロックの操作が進みます。

 

※クリックすると拡大します。

 

事例2つ目、micro:bitのランプでハート型をチカチカ点滅させるプログラムを組んで、順次構造を学びます。この辺りから、女生徒からは「かわいい!!」という声が上がり、パソコンに向かう目が少し変わってくるというイメージです。

 

※クリックすると拡大します。

 

事例3つ目、micro:bitに付いている左右の物理ボタンを使ってアイコンをチカチカ光らせるプログラムでトリガー制御を学びます。

 

この辺りで、プログラムの中に、元に戻してまっさらの状態にリセットするという概念を伝えています。ボタンのブロックですが、条件分岐の入り口になっています。

 

※クリックすると拡大します。

 

事例4つ目、足し算をするだけの計算機を作ります。Aボタンでcount_A、Bボタンでcount_Bという変数の値を増やしていき、AボタンとBボタンを同時に押したら、それを足し算して結果が表示されるというプログラムです。

 

ここでは変数や初期値の設定、それをリセットする機能を実装できるようにプログラムしています。

 

※クリックすると拡大します。

 

少しゲーム感覚を盛り込んだ事例5つ目。randomという変数に1から3の乱数を代入し、randomが1のとき、2のとき、3のときにそれぞれの数値に対応するアイコンが光るプログラムを作ります。ここで変数と条件分岐の基礎を学びます。

 

この「=」で分岐させる条件分岐は、生徒にとってはとっつきやすいようです。

 

※クリックすると拡大します。

 

さらに、6つ目に少し応用的な課題として、このくじ引きを均等の確率ではなくて、30%、50%、20%というように傾斜をつけて結果を出してみよう、という課題を投げかけました。ただ、不等号を使うと一気に動きが鈍くなるという感覚です。

 

※クリックすると拡大します。

 

続いて7つ目の事例です。ループ構造とアクチュエーターの概念を学ぶために、micro:bitを基盤にして、外部LEDをチカチカ光らせるプログラムに挑戦しました。

 

「デジタルで出力する」というブロックを使い、LEDのオンオフを切り替えるプログラムに取り組みました。生徒達が「いろいろな機械の中で制御をしているプログラムって、実は私達でも作れるんじゃないの」という意識に変わっていき、食いつきが良くなる印象です。

 

※クリックすると拡大します。

 

事例8は、問題解決とプログラミングをつなげる授業設計です。

 

まず歩行者用信号をイメージして、どのように制御すれば、実生活で利用している信号機になるのか、そういったことを話し合いながら、個人で歩行者用信号のプログラムを作りました。

 

ここでは、制御基盤と、それを伝えるアクチュエーターとしてのLEDのイメージを作って欲しかったので、外部LEDを光らせるプログラムとしました。

 

※クリックすると拡大します。

 

さらに、その信号機を複数台制御するための機能として、無線通信が使えるのではないかということで、無線通信と変数と条件分岐を入れた「ぴったんこゲーム」のプログラミングを行いました(事例9)。

 

これは、私のmicro:bitから適当な数値を各生徒のmicro:bitに送り、数値の受け取りをトリガーにして乱数を発生させて、それを足していき、ぴったり10になったら音が鳴るという、デジタルすごろくのようなものです。

 

クラス全体で「1番早くぴったり10になるのは誰かな~」というゲーム形式で行いました。

 

ここで無線通信によって、発信機と受信機による制御ができることに基礎知識として、次の実践事例10に続きます。

 

※クリックすると拡大します。

 

事例10は、事例8で作った信号機と、事例9で皆で遊んだ一斉に制御をすることができる無線機能を使って、1つの交差点をグループでイメージし、1人が管制機となって発信側の機器をmicro:bitを作り、それ以外の人は、その管制機が発信したその数値によって、自分の方向の信号の色を切り替えるというシステム作成課題に取り組みました。生徒たちはワイワイといろいろ相談しながら取り組んでおり、非常に良いアクティブな課題になったと思います。

 

※クリックすると拡大します。

 

「自分にもできる」という経験をプロとタイピング思考につなぐ

 

では、まとめに入っていきます。

 

私が初学者としてプログラミングに触れた際に感じた「だから、何なん?」という感情は、パソコンの画面の中では動いてはいるけど、独立していないことがパッとしない原因でした。

 

その煮え切らない思いが、micro:bitを使った時にすっきりしたことを覚えています。HEXファイルで書き出した自分のプログラムが実機で動き出す感覚は、何とも例えがたい自信につながりました。不十分な状態でも実行してみる。そして何度もデバッグを繰り返し、完成に近づけていくプロトタイピング思考の養成につながると思っています。

 

そんな活動を通して、「自分にもできるぞ!!」と自信を持って前向きに行動するきっかけにして欲しいと願っています。

 

 

もちろん、micro:bitを用いたプログラミングは探究活動にも親和性があり、何か作ってみよう、やってみようと思った時には、搭載されている数種のセンサーも手伝って、プロトタイピングに持ってこいのアイテムだと思っています。

 

 

こちらの事例は中学1年生の取り組んだ、傾きセンサーを利用して高い建物の高さを測ってみようという探究学習です。

 

傾きと離れた距離を元に高さを割り出すために、自然に高校生で習う三角比(タンジェント)のことを学ぶことになり、教科横断型の取り組みになりました。

 

※クリックすると拡大します。

 

それ以外にも、micro:bit自体のメモリにデータロギングできる機能を利用したデータ分析の取り組みでは、教室の環境に着目して、温度や明るさなどの身の回りの事象をデータロギングして分析したり、プログラミング教材を扱っておられるケニスさん(※4)の協力の元、ミニ四駆にmicro:bitを積載してコースを走らせて、重力センサーを用いたデータロギングや、周回タイムを計っての行動分析等にも取り組みました。

 

※4 https://www.kenis.co.jp/

 

 

micro:bitを使うことで、生活に密着した問題解決とプログラミングスキルをつなぐことが可能に

 

実習後のアンケート結果では、MakeCodeのシミュレータだけよりも、micro:bitを使った方が楽しかった、ということが明らかになりました。

 

もちろん、使うことによって煩雑になることも増ええるので、使い易さの項目に関しては下がっていることを見ても、結構正直な結果が出ているのではないかと思います。

 

実際に画面上でプログラミングするだけでなく、micro:bitというマイクロコンピュータを使うことで、生活に密着した問題解決とプログラミングスキルのつながりに迫ることができたおもいます。

 

 

このような外部機器をつないでの実習には少し時間はかかりますが、Progateのような自走式でどんどん進めることができるようなコンテンツと組み合わせれば、このような実習も可能ということがわかりました。興味を引くような実習を行って、そこに興味を持った生徒をさらにプッシュしてあげることができる環境が大事だと感じています。

 

これからも、micro:bitをきっかけにプログラミングの世界に入ってきた生徒と一緒に、放課後のデジタルものづくり活動などで、生徒の創造力を高めていき、生徒が取り組む愉しい活動をこれからもどんどん発信していきたいと思います。

 

神奈川県情報部会実践事例報告会2023オンライン オンデマンド発表より