2019年12月15日日曜日

2019年度 第12回ワークショップ開催

2019年度 第12回「プログラミングの基本を学ぶワークショップ」が、はこだてみらい館のシアターで開催されました。(2019/12/15)
今回が今年度のワークショップの最終回。昨日に引き続き、スペシャルゲストに『Why!? プログラミング』の監修をされている、阿部先生(青山学院大学)をお迎えした、スペシャルバージョンのワークショップです。
ファシリテーターは、初回体験コースをはらでぃ(原田先生)、表現コースは阿部先生とちゃーりー(飯塚くん)が合同で、デバイス体験ラボはじんさんが担当しました。

◎表現コース・デバイス体験ラボ
今回は表現コースとデバイス体験ラボが合同で、Scratchを使った機械学習にチャレンジしました。
ワークショップの序盤は機械学習を体験しながら阿部先生の説明を聞きました。コンピュータに「野球場」などの画像を認識させるためには、その対象を野球場だと判断するための色や形状などたくさんの条件をプログラムすることが必要になってしまい、現実的ではありません。そんな時にはコンピュータに「機械学習」をさせます。コンピュータは機械学習によって、たくさんの条件が書かれたプログラムがなくても、画像の特徴を学習し、認識ができるようになります。今回は、Scratchを使って「機械学習で画像認識」する技術を体験し、それを使った表現に挑戦します。
簡単な機械学習の例題として、全員で一斉に、矢印が描かれたカードをコンピュータに学習させてみました。参加者は、コンピュータにわかりやすく伝える(効果的に学習させる)ために、カメラの位置、光の当たり具合、カメラとの距離を変えるなど試行錯誤を重ねました。

○テーマの説明・サンプル紹介
今回は、機械学習に少し触れてもらった後にテーマ発表とサンプル紹介をしました。今回のテーマは「つたえる」です。機械学習もコンピュータに特徴を「つたえる」方法の一つです。

ちゃーりーは機械学習を使って、コンピュータに自分の意思を「伝える」サンプルを2つ作ってきました。
サンプル1:○×クイズ
ランダムで出題された○×クイズに「○」か「×」が描かれた紙をカメラに読み取らせて回答します。「○/×」を描いた紙を機械学習させることで、コンピュータがヒトが書いた文字や絵を認識できるようになる例です。
サンプル2:サイン(手の形)で文字入力
5種類の手の形を学習させて、3つのパターンの認識からひらがな1文字を入力します。約50枚ずつの画像を学習させました。このサンプルのように文字や絵だけでなく、手の形や文房具なども機械学習させることができます。このような複雑な形をコンピュータに正しく学習させるためには、学習に使う画像の枚数、背景、手を置く位置などを工夫する必要があります。

○自由制作
簡単な機械学習の体験とサンプルの紹介が終わった後は、それぞれの作品の自由制作に入ってもらいます。
各参加者は、紙に描いた文字や絵、手や顔など体の一部、消しゴムや鉛筆などのモノなど様々なものを機械学習させることにチャレンジしました。機械学習させるものによっては、なかなか正しく認識してもらえず苦労している参加者もいました。
micro:bitと今回の機械学習を組み合わせた表現にチャレンジした参加者もいました。まずScratchからmicro:bitへLEDを点灯させる命令を送り、micro:bit上に模様を表示させます。その模様をノートパソコンに接続したカメラで読み取り、Scratch上で機械学習させることでmicro:bitに表示された模様を認識できるようにしました。認識した模様に対応してScratchで描かれた画面上のキャラクターが移動するようになっています。今回チャレンジしてくれた、命令をScratchから一度出し、もう一度Scratchで読み込むという表現は、コンピュータ間通信をする際のヒントにもなったかもしれません。
こちらの作品を作ってくれた参加者は、キーボード入力をしている手の位置を機械学習させました。キーボードの上に指を置くだけでキーボード入力ができます。このプログラムを使えば紙に描いたキーボードの実現などが考えられ、今後の展開の可能性を感じる作品でした。
画面上の世界と実世界を組み合わせた作品に取り組んでくれた参加者もいました。この作品は、電球と電池をつなぐ導線の形と位置を機械学習させて、電球と電池が繋がった時だけ電球が光るようにしました。機械学習を使うことで、現実世界と画面の中の世界を結びつける表現がシンプルなプログラムで書くことができました。導線のイラストの学習には700枚もの画像を使うことで、認識の精度を高めています。

◎初回体験コース
初回体験コースも最終回ですが、いつものようにScratchの基本操作をゆっくり、じっくり体験する時間を過ごしました。ワークショップシリーズ後半に入って、保護者の方が横について一緒に学ぶ姿が多く見られるようになりました。これはとてもいい傾向だと思います。ぜひ自宅でも、このような時間を作っていただきたいものです。
Scratch初心者に向けて、説明する側として意識してきたことの一つは、資料を渡し過ぎない、ということです。Scratchは探索しながらプログラミングを楽しむ道具でもあるので、この部分は参加者本人に委ねたいと思っています。また、書籍がたくさん出たいるので、この場では資料を使うよりも操作に集中できるよう、また画面内の説明と考え方の説明を区別して伝えようと、模造紙に図を描いてその都度説明するようにしてきました。
書籍については、毎回閲覧コーナーを設けて、特に初回体験コースの参加者には、休憩時間にパラパラでもよいので目を通して欲しいと伝えてきました。また、ワークショップ終了後にも、帰りに本屋さんによったら、ぜひ手にとってまずはパラパラとめくって、今日の体験が書籍の内容凸たがっていることを実感して欲しいと伝えています。
ちなみに、会場に用意した本のほとんどは阿部先生が著者か、監修で関わっています。その本人が、わざわざ函館まできてワークショップに関わってくださいるというのは、ありがたいことです。

◎成果発表会
ワークショップの終盤は、表現コースとデバイス体験ラボの参加者が作ってくれた作品を1点ずつ発表してもらいます。今回は、多くの参加者が機械学習を使った表現にチャレンジしてくれたので、これまでにない作品がたくさん生まれました。

◎振り返り
ワークショップの最後は、いつものように振り返りシートに記入してもらい、今日の活動は終了です。

今回で今年度の「プログラミングの基本を学ぶワークショップ」は全て終了です。最後に参加者の皆さんに感謝とエールを込めて、はらでぃ、ちゃーりー、まいまいから、歌を贈りました。演奏は1曲だけの予定でしたが、会場からアンコールをいただき、合計2曲演奏させていただきました。
参加してくれた皆さん、本当にありがとうございました!

【ちゃーりーからのコメント】
最終回である第12回も、前回に引き続き阿部先生をゲストに迎えた特別編になっています。今回は機械学習が使えるML2Scratchという拡張機能を使い、「つたえる」というテーマで表現活動にチャレンジしました。サンプルではカメラ入力を通じてコンピュータに「つたえる」プログラムを2つ用意してきました。

一つ目は「ハンドジェスチャー言語」。このサンプルは5種類のハンドジェスチャーを機械学習で認識させ、ジェスチャーの組み合わせだけでコンピューターにひらがなを入力するプログラムです。ひらがなは3つのジェスチャーの組み合わせで表現され、濁点・半濁点も1文字として入力できるようにしました。

二つ目は「まるばつクイズ」で、こちらのサンプルはこんの出題する問題に、○/×のカードを掲げて答えるというものです。いつでも問題数を増やせるようなコマンドも用意しています。

表現コース、デバイス体験ラボの自由制作では、自分の持ち物を使ってそのものの名前を当てるプログラムやエアキーボード、手書きの記号を認識するプログラムやオリジナルFaceIDなど様々なアイデアが実現されました。中にはmicro:bitと組み合わせて入力結果をmicro:bitに表示しカメラを使って通信させる入力装置を作ってくれた参加者もいました。

今回は機械学習に触れ、どんな使い方ができるかを参加者には考えてもらいましたが、講師陣も思いつかないような斬新なアイデアがたくさん生まれました。参加者の皆さんはこの先、新しい技術を作り、新しい使い方を見つけ、新しい世の中を作っていくと思います。このワークショップで身につけた発想力、実現力を今後も色々な表現活動に生かして行ってください!

2019年12月14日土曜日

2019年度 第11回ワークショップ開催

2019年度 第11回「プログラミングの基本を学ぶワークショップ」が、はこだてみらい館のシアターで開催されました。(2019/12/14)
今回はスペシャルゲストに、『Why!? プログラミング』の監修をされている、阿部先生(青山学院大学)をお迎えして、スペシャルバージョンのワークショップを開催しました。
ファシリテーターは、初回体験コースをはらでぃ(原田先生)、表現コースとデバイス体験ラボは合同で阿部先生とちゃーりー(飯塚くん)が担当しました。

○阿部先生の紹介
ワークショップのはじめに、今回のスペシャルゲストである阿部先生の紹介をしました。阿部先生は、NHK Eテレで放送されている『Why!? プログラミング』の監修をされていて、年1回行われる「Why!?プログラミングフェスティバル」には人形での出演もされています。Scratchに関する書籍も多数出版されています。

◎表現コース・デバイス体験ラボ
今回は表現コースとデバイス体験ラボが合同でmicro:bitとScratchをつなげた表現にチャレンジします。

○テーマの説明
まずはいつものようにテーマを発表します。今回のテーマは「しる」です。
ちゃーりーが参加者に「しる」から連想されるものを尋ねると「味噌汁」「何かを知る」などの答えが返ってきました。

○サンプル紹介
次にちゃーりーが作ってきた「しる」をテーマにした作品を紹介しました。今回はmicro:bitを使ったサンプルを用意しました。以下の写真で、ちゃーりーが手に持っているのがmicro:bitです。
サンプル1:万歩計
歩いた歩数をカウントして「知る」ことができるプログラムです。micro:bitの加速度センサを使って1歩をカウントします。micro:bitの加速度センサを使えば、傾きや動きの変化量を調べることができます。
サンプル2:向きに合わせて回転する地図
micro:bitが向いている向きに対応して地図が回転するプログラムです。micro:bitでもカーナビや地図アプリのような表現ができます。micro:bitの向きを調べるためには、地磁気センサを使用しました。

今回紹介したサンプルのように、micro:bitは現実世界の情報とコンピュータを結びつける表現も得意です。

○micro:bitの説明
ここからは阿部先生が引き継いでの進行です。
デバイス体験ラボに参加したことのある皆さんにはおなじみのmicro:bitですが、初めて使う参加者もいたので、micro:bitとScratchを連携させたプログラムの基本を全員で一緒に体験していきました。
Scratchにmicro:bitが接続できないトラブル(Scratch Linkの接続不安定)が1テーブルだけ起きてしまいました。そのため、このテーブルについて5名だけは、micro:bitのみの表現にチャレンジしてもらうことになりました。micro:bitのような外部機器をコンピュータに接続する際は、今回のようなトラブルがつきものです。このようなトラブルが起きる原因や対応策を知っておくことも、情報機器を使っていく上で重要なことですね。
この参加者は、魚が水中を自由に泳ぐプログラムを作りました。micro:bitを傾けた方向にキャラクターが進み、Aボタン・Bボタンで水中をライトで照らします。この作品は、micro:bitをコントローラーとしてうまく使って、直感的な操作ができるように工夫していました。
この作品では、micro:bitを上下に振ると画面上の炭酸ジュースも振られ、制限時間内に振った回数に応じてジュースが吹き上がります。日常の一場面をヒントに、自分の体の動きをコンピュータに伝える表現に挑戦してくれました。micro:bitを使えば、新しいゲームの操作方法がつくれるかもしれませんね。
Scratchとmicro:bitがうまく接続できす、micro:bitのみの表現に挑戦してくれた参加者は、micro:bit上の5×5のLEDをうまく使って作品を作ってくれました。この作品は、画面に表示された通りにmicro:bitを操作すると次の指示が出るようにプログラムされています。全ての指示通りに正しく操作できるとクリアできます。からくり箱を開けるような体験をmicro:bitのみで作ってくれました。

◎初回体験コース
今回は「初回体験コース」メンバーは少なめ。なので、いつもよりゆっくり、じっくり活動を進めました。初回体験コースでは毎回『Why!? プログラミング』の番組紹介も積極的に行なっています。それは、ワークショップ後も自宅でプログラミング活動を続けて欲しいからです。今回はリアル阿部先生が自分たちのすぐ横でワークショップをしている、ということで、子どもたちの気持ちも盛り上がったはずです。

◎成果発表会
ワークショップ終盤の30分はいつものように成果発表会をしました。今回は、みなさんmicro:bitを使った作品を作ってくれたので、画面の表現だけでなく、操作方法などmicro:bitを使った表現の部分についても説明してもらいました。

◎振り返り
最後に振り返りをしてワークショップは終了です。
次回(明日)も阿部先生をお迎えしたスペシャルバージョンのワークショップです。お楽しみに!

【ちゃーりーからのコメント】
今回は阿部先生をゲストにお招きし、表現コース・デバイス体験ラボ共にmicro:bitを使った作品制作を行いました。テーマは「しる」。micro:bitの状態をセンサーの値から「知る」という意図で設定したテーマでしたが、「知る」以外に「味噌汁」「豚汁」と色々なしるが表現されました。

さて、今回サンプルは二つ。一つ目は「万歩計」で自分自身がどれだけの歩数を歩いてきたのかを「知る」という作品です。micro:bitをポケットに入れている間、歩数をカウントします。また、micro:bitの操作だけで歩数を確認したり、歩数をリセットしたりできます。micro:bitで万歩計を作ろうとすると実は結構難しかったりします。動きは加速度センサーから読み取ることができますが、センサーのそのままの値だと重力の影響やほんのわずかなブレが直接反映されてしまいます。そこで、取得した値を加工して使います。さらに、歩いたことを検出するのにもコツがいります。一歩を検出するためにはセンサーの値をしばらく保存して前後の値と比較しなければなりません。

二つ目のサンプルは「map」で、自分が向いている方位を「知る」という作品です。表示されたマップは実はただの画像で、はこだてみらい館を中心とした地図の画像になっています。この地図を、micro:bitで取得した方位センサーの値を元に回転させます。

表現コース、デバイス体験ラボの自由制作では、micro:bitをコントローラーとして使い、Scratchを操作するゲームや、micro:bitで検知できる動作と画面内をリンクさせた作品がたくさん作られました。「味噌汁」を題材にしたゲームや傾きでキャラクターを操作するゲーム、micro:bitを振ると画面内の炭酸が振られるアニメーションや、外の明るさと画面の中の明るさが一致する仕掛けなど、参加者の作品はちゃーりーにとってもとても参考になるものばかりでした。

また、今回Scratchとmicro:bitの接続が上手くいかなかったテーブルの参加者達も意欲的で面白い作品を作っていました。小さなLEDパネルに複雑な計算結果を表示させたり、秘密箱のように一定の操作をすると暗号が表示されるパズルを作ったり、Scratchではみられないような工夫にたくさん出会うことができました。

micro:bitに搭載されたセンサーはほとんどのスマートフォンにも搭載され、日常的に触れることは多くなっています。しかし、それらのセンサーを自分の手で操作し、値に直接触れられる機会はそう多くありません。micro:bitを通して、そんな身の回りの道具の仕組みに少しでも気づけたのなら幸いです。