PCを使わないプログラミング学習~ロボットの表情を作ろう

PCを使わずにプログラミングを学習する方法についてご紹介します。今回は,ロボットの顔を操作しながら,楽しくプログラミングを学ぶ方法についてです。以下の資料を参考にしています。

https://teachinglondoncomputing.files.wordpress.com/2014/02/activity-create-a-face.pdf

 

遊び心のあるコンピューターサイエンス アクティビティ~プログラミングでロボットの表情を作ろう~

対象年齢:9〜10歳以上
所要時間:約50分
対象人数:7〜100人まで(何名でも)

【要約】

この取り組みでは,アフェクティブ(情緒や感情に関係した)ロボットの顔を,カードや筒などを使って作ります。ロボットの顔は,異なる様々な音(不快な,心地よい,唐突な音)に反応し,異なる感情(悲しい,嬉しい,驚いた)を示すようにプログラミングされています。

後半では,他の表情を考え出し,音に反応して新しい表情を作り出すためのルールを自分でプログラムします。

この取り組みを通して,一見すると複雑な動作・挙動が,簡単なルールを使って,どのようにプログラムされているかが分かります。また,プログラムをオブジェクト・要素に分割して考える方が,一気にプログラムを書こうとするよりも,はるかに簡単に書けることも分かるでしょう。

【使うもの】

  • 2つの大きなカード:大きな目
  • 2つの大きなカード:小さな目
  • 2つの大きなカード:眉毛
  • 4つの筒を糸で繋いで円にして作った口(Figure1を参照)
  • 6つのプログラムカード:左の目,右の目,左の眉毛,右の眉毛,口の左端,口の右端それぞれに対するプログラムカード(指示シート)

   ① 左目

   もし心地よい音なら大きく開ける
   もし不快な音なら小さく開ける
   もし突然の音なら大きく開ける

   ②右目

   もし心地よい音なら大きく開ける
   もし不快な音なら小さく開ける
   もし突然の音なら大きく開ける

   ③左の眉毛

   もし心地よい音なら下げる
   もし不快な音なら下げる
   もし突然の音なら上げる

   ④右の眉毛

   もし心地よい音なら下げる
   もし不快な音なら下げる
   もし突然の音なら上げる

   ⑤口の左端

   もし心地よい音なら上げる
   もし不快な音なら下げる
   もし突然の音なら開ける

   ⑥口の右端

   もし心地よい音なら上げる
   もし不快な音なら下げる
   もし突然の音なら開ける

  • 修正されたプログラムシートのセット(6人のグループに対してそれぞれ1つずつ)
  • クラスの残り(顔を操作する人以外)に何をするか伝えるための3つのフラッシュカード

   ① 不快な音を出そう

   ② 心地よい音を出そう

   ③ 突然ブー!と叫ぼう

  • 顔を描いたり,新しい指示を書いたりするためのペン,カード,紙

授業の前に顔のパーツを作っておきましょう。目と眉毛については,資料内にテンプレートが準備されています。口は4つの長い筒(例えば包装紙の芯など)を糸などを使って円に繋いで作ります。口は動かすと,曲線や円を簡単に作れるようにしておきましょう(Figure1を参照)。

 

【顔の操作の準備をする】

前に出てきてくれる6人を集めましょう。6人には,プログラムの指示に沿ってロボットの異なる顔のパーツを操作してもらいます。クラスの残りは,ロボットが反応するための音を鳴らします

背が高い2人に左右それぞれの眉毛を渡し,数メートル離れて立ってもらいます。同じ高さまで眉毛を上げてもらいます。

次にあと2人に目を渡します。ひざまずいて,眉毛の下に小さな目を掲げてもらいます。大きな目は必要になるまで後ろに置いておきます。

最後に,残り2人がひざまずき,それぞれ左と右の口の端を持ちます。

 

【顔を操作する】

顔を動かす際、顔全体に指示を出すこともできますが,それぞれのルールに沿った,別々に動く個々のオブジェクト(2つの目,2つの眉毛,口の両端)からできていると見なした方が簡単でしょう。

顔を構成している6人それぞれに,オブジェクト(顔のパーツ)を動かすための指示シートを渡しましょう。指示シートは資料の最後についています。指示シートは条件文(if-thenルール/もし~だったら~する)から成ります。

例えば,目についてのルールを見てみましょう:「もし心地よい音だったら大きく開け,不快な音なら小さく開け,突然の音なら大きく開けましょう」

クラスの残り(顔を操作しない人たち)が出す音を聞いて,顔のパーツを操作するように説明しましょう。聞こえる音の種類によって何をすべきかは、ルールによって決まっています。

次にクラスの残り(顔を操作しない人たち)に何をすべきか説明します。彼らには,不快な音,心地よい音を出したり,急に叫び声を上げてもらう必要があります。音を出す人たちに何をすべきかを伝えるときは,フラッシュカードを使いましょう。顔を操作する6人が,状況を読み取って反応するのではなく,純粋に音を聞いて反応できるようにするのです。


【顔をプログラミングする】

次に顔をプログラミングしましょう。クラスを6人ずつのグループに分け,それぞれのグループに新しい顔の表現(例えばウィンクしているなど)を考え出してもらいます。

感情を演じてみて,実際にどんな顔の表情をしているかを他の人に順番に見てもらいましょう。顔の左側と右側は,別々に動かせるように,異なるルールに沿って動きます。眉毛を釣り上げたり,目の新しいバージョンをつくったり(例えば目を閉じたり)することもできます。表情を構成している顔のパーツの絵を,別々に描かなければなりません。表情を形作る,眉毛、目、口の位置や形が正確であることが大事です。

次に,顔を操作する人が反応するための音を考えましょう。

クラスの残り(顔を操作する人以外)に何をすべきかを伝えるためのフラッシュカードを作りましょう。すでに使用してきたフラッシュカードの表現と同様に,条件文(if-thenルール/もし〜だったら〜するという形式)で書きましょう。6つのオブジェクト(右の眉毛,左の眉毛,右の目,左の目,口の両端)について,それぞれ1つずつルールが必要になります。例えば,左の目について「もし退屈な音だったら閉じる」というようなルールを作ります。

各グループに配布されている指示シートのコピーに,追加のルールを書き入れましょう。それぞれのグループは,追加・修正されたルールに沿って顔を操作するために,順番に指示シート(ルールを追記したもの)をもらいます。

teachinglondoncomputing.org

 PCを使わずに大人数でも取り組める内容なので,学校の授業でも取り入れることができそうです。「もし~だったら~する」という条件文を学べたり,課題を分割して考える良い機会になったり,プログラミングの導入にはとても役立つと感じました。ぜひ参考にしてみてください。

 

【関連記事】

blog.terak.jp

blog.terak.jp

blog.terak.jp