熊本で行ったサーチとソートアルゴリズムのクラスの報告

はじめに

Seattle IT Japanese Professionals では コンピュータサイエンスのクラスをシアトルで実施してきました。今年に入ってからは、日本の様々な団体、学校、企業の協力の元、熊本と福岡と結び、Youtubeを使って同時中継で1つのクラスとして実施してきました(ロジック/ソート・サーチ)。今回は「英語でまなぶコンピュータ・サイエンス 特別編/Kenji先生がやってくる ヤァ!ヤァ!ヤァ!」と題し、6月21日に国立熊本高専で実施しました。 テーマは第 2 回目に学習した「サーチ(探索)・ソート(整列)アルゴリズム」をもう一度取り上げ、解りにくかったところを中心に、ゲームを通じて楽しく学習しました。

いつもと同じように英語のみを使って授業を進めました。ただ、今回は大人でも難しい部分(再帰など)は日本語で説明をしました。アシスタントの方々も基本的には日本語でサポートしました。

今回のイベントは以下の団体、学校の協力で開催されました。どうもありがとうございました。

<共催・協力・協賛>

共催:

Seattle IT Japanese Professionals (SIJP) 

Kids Code Club 

特定非営利活動法人くまもとLRネット 

株式会社ワイズ・リーディング 

熊本高等専門学校

協賛

ソフトバンク

 

宿題

クラスの実施前に次の宿題を用意しました。

“This is me”

後で紹介するバイナリーサーチの「犯人を探せ」アクティビティの練習のために次の宿題を用意しました

“This is me” Seesaw アクティビティ (イメージをクリックするとクラスで使えます)

 

用いたビデオは次のビデオです。

このビデオはKenji先生のお気に入りの映画「The greatest showman」の映画主題歌の「This is me」です。

このアクティビティは子供達が、Youtubeのビデオの時刻を記録するための練習です。これは、バイナリーサーチアクティビティの”僕のKitkat、誰が盗んだ?”に使われます。そのアクティビティではセキュリティビデオのビデオからバイナリーサーチを使って誰がいつKitkatを盗んだかを見つけます。

バブルソート

他にもバブルソートに関係する2つの宿題を用意しました。

  1. 友達とバブルソートをやってみて録画する

バブルソートアクティビティ(イメージをクリックするとクラスで使えます)

ぬいぐるみを使用し、バブルソートを行った子供が居たことには驚きました。かわいいでしょう?

トランプを使ってバブルソートをする

トランプを使ったバブルソートアクティビティ(イメージをクリックするとクラスで使えます)

次のビデオは提出物の一つです。

クイックソート

もう一つのオプションとして、トランプを使ってクイックソートをしてもらうようにしました。次のビデオは提出物の一つです。

授業の前からすでに子供達の参加があって嬉しかったです。

アイスブレーキング

最初にSeesawの練習として、自己紹介のアクティビティを次の手順で行いました。

  1. 4人のグループを作る
  2. それぞれの子供に番号を与える
  3. 子供1が自己紹介をする
  4. 子供2がカメラマンになる
  5. 子供2がビデオをSeesawにUploadする
  6. 子供2と3でステップ3−5をする
  7. 子供3と4でステップ3−5をする

自己紹介アクティビティ(イメージをクリックするとクラスで使えます)

ソートアルゴリズム

沢山のものから自分の探したいものを簡単にみつけるためにソートを使用することができます。例えば7ならべで最初に手札の並び替えをおこなうと思います。


7ならべはソートが必要です。

 

そして、次の並び替えKahootゲームにみんなでとりくみました。.

https://play.kahoot.it/#/k/6ca44c30-661a-46aa-bf85-fe5f549269cf

教室の前に並んで、Kahootゲームに取り組みました

 


そして、バブルソートに取り組みました。最初に、背の高さを利用してバブルソートを実施しました。

 

そして、Kenji先生は子供達にバブルソートを利用して、100枚のカードを並び替えをするように頼みました。1分間に並び替えができれば、シアトルへの無料航空券がもらえます!

1分間で100枚のカードをソートしようとする

特別製のカードはスタッフが普通のトランプカードにラベルを貼り作成しました。

ソートの学習のための特別製のトランプ

 

残念ながら、1分間以内にはできませんでした。Kenji先生はどうしてそれが不可能かを説明しました。

バブルソートでn枚のカードをソートするのは: n*(n-1)/2回の比較が必要になります。

100枚のカードでは, 100*99/2=4950の比較が必要となります。1分間 (60秒)で終了させるためには, 毎秒4950/6 = 825の比較をする必要があります ! 不可能ですよね。

何か新しいアルゴリズムが入りますよね! Kenji先生はクイックソートを紹介したいと思いました。クイックソートを理解するためには、 リカージョン(再帰)とデバイドアンドコンカー(分割統治)を理解する必要があります。Kenji先生は例を使って説明しました。最初の例はロシアの人形マトリョーシカです。

再帰の例: ロシア人形

次の例は、2つの鏡を向かい合わせて並べるとできる面白い画像です。(Pinterest),

最後の例はみなさんが大好き(?)な ブロッコリー です。ブロッコリーはフラクタルな野菜とも言われます。

ブロッコリーを手でちぎっても、ちぎったものもブロッコリーです。つまり、小さなブロッコリーもブロッコリーにはかわりありません。

再帰の例: ブロッコリー

ただ、ブロッコリーを小さくしようと思っても、ある程度小さくなった時点でもう人間業では小さくできなくなります。

 

Kenji先生はデバイドアンドコンカー(分割統治)をYoutuberになる方法で説明しました。Youtuberになるのは大変ですが、次のようにゴールを小さく分割して、この小さなゴールを達成することで大きなゴールを達成することができるかもしれません。

  1. 楽しいビデオを撮る
  2. ビデオを編集する
  3. YoutubeにUploadする
  4. Youtubeチャンネルを作る
  5. 友達などにチャンネル登録を頼む
  6. もっとたくさんのビデオを作る

そして、リカージョン(再帰)とデバイドアンドコンカー(分割統治)を使うクイックソートアルゴリズムについて説明しました。(大きい順に並ぶとします)

  1. 最初のアイテムを選ぶ(基準とします)
  2. 基準より大きなものを右側に持っていきます。基準より小さなものを左側に持っていきます。
  3. 右側と左側でそれぞれ、リカージョン(再帰)を使って1から実施します。アイテムが1つになった時点で再帰は終了する(終了条件)

次のビデオでは、背の高さを使って、クイックソートでソートをしています。

Kenji先生は同じことを子供と保護者の方と一緒でやってみました。

子供達と保護者で背の高さでクイックソートしました。

今度は100枚のカードを使ってソートします。

最初に9枚のカードでソートしたのち、いよいよ。100枚のカードでソートします。

クイックソートはみんな同時に(並列に)ソートをすることができます。バブルソートでは困難です。

100枚のカードを

そして、休憩です。休憩中にKenji先生が持ってきたOculus Goで遊びました。

サーチアルゴリズム

次に、Kenji先生はサーチアルゴリズムが何かという説明をしました。

サーチはGoogleサイトで使われていますが、Google Photo でもAIを使ってサーチができます。例えば, ある日、Kenji先生が の写真を探していました。すると次のようにたくさんの写真が出てきました。

サーチはソートと同じように探すためのキー(鍵)が必要となります。キーは以下のような物があります。

  • 番号(電話番号、マイナンバー)
  • 文字列 (名前, サーチキーワード)  
  • 住所 (グーグルマップ)

バイナリーサーチを理解するために次のアクティビティをしました

バイナリーサーチを使って、キットカットを盗んだ犯人をみつけます。ビデオの早送りは禁止です。

セキュリティビデオはこちらです:

Seesawのアクティビティは次のリンクです。

 

バイナリーサーチアクティビティ”Kitkatを誰が盗んだ?” (イメージをクリックするとクラスで使えます)

最後に、前の授業でソートした100枚のカードを使ってバイナリーサーチを実施しました。

  1. 10枚のカードをランダムに抜き取る
  2. けんじ先生は抜き取っていない一枚一枚、バイナリーサーチを使って、カードをさがす(最初は真ん中から探す)
  3. 回数を数える
  4. 今度は抜き取ったカードを探す(見つからないので、時間がかかります)
  5. 回数を数え、3の場合と比較する
  6. ソートをしていないカードを探す場合とも比較する

評価および感想

子供

評価

子供の評価 (5が最高)

 

感想

良かった点
  • わかりやすかった。
  • 言語はわからなかったけど、話しの内容は分かった。
  • けんじ先生の話が、とても面白く、わかりやすかった。スタッフの皆様も優しくてよかった。
  • クイズが面白かった。
  • 勉強を楽しくすることが上手だった。
改善点
  • もう少し日本語を使って欲しかった。
  • 小学生と中学生を分けてほしかった。
  • クイズをもっと増やといいと思う。

保護者

評価

保護者の評価(5が最高)

感想

良かった点
  • 例えが分かりやすかった。
  • 他の子と協力して出来て良かった。
  • ゲーム形式にしたことで楽しんでいたと思う。
  • それぞれのアルゴリズムが分かりやすかった。
  • アイスブレーキングで緊張が取れて、こどもがのびのびしていた。スタッフのサポートが適切かつ迅速でスムーズに課題に取り組めていた。Kenji先生の働きかけが熱くて子供たちも感化されていた。
  • わかりやすかった。お兄ちゃんと一緒によく理解できたと思う。
  • 実際に全員で実践できて印象付いたと思う。
改善点
  • 課題をもっと早く知りたかった。
  • 後半集中力が落ちていた。
  • ネット環境が悪かった。
  • 時間が少し長かった。休憩がもう少しあると良かった。
  • VRの順番がまわってこなかったのが残念だった。
  • 小学校低学年の子達には長いように見えた。休憩が2回あっても良いと思う。
  • 平日しか時間がなく、その間で課題をするのは大変だった。
  • 準備不足を感じた。

感想

  • また実施して欲しい。第一線で活躍されておられる方からのレクチャーは刺激的だった。。
  • 福岡市や久留米市でもこうしたワークショップを開きたい。

 次回は10月以降に開催を予定しております。お楽しみに。