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に表示しカメラを使って通信させる入力装置を作ってくれた参加者もいました。

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