レゴ® エデュケーション SPIKE™ プライムセット

振付をプログラミング

アナログ・プログラミング:疑似コードを使ってダンスの振付をプログラミングしましょう。

45分
初級
小学校高学年・中高校
ハイブリッド
CodeYourMoves-LessonThumbnail-08.png

概要

  • これは、ハイブリッド型学習のためにデザインされたアナログ・レッスンです。レゴ® エデュケーションSPIKE プライムセットやレゴブロック、ソフトウェアを使わずに教えることができます。
  • このレッスンではダンスの振付を指示する疑似コードを書きます。完成した疑似コードをパートナーと共有します。

このレッスンは以下の使い方ができます:

  • 「ライフハック<生活の中の技術>」ユニットの最初に導入用レッスンとして行う。
  • *「ダンシング」*のレッスンの前後に、疑似コードの書き方の予習または復習として行う。
  • *「社会に役立つロボット」*のレッスンの前に、ユニットの最後にあるオープンプロジェクトに必要な基礎力を身につけ、生徒の学習を発展させるレッスンとして行う。
  • レッスンプレゼンテーションはこのレッスンプランの補足資料からアクセスいただけます。プレゼンテーションは、レッスンのペース配分や5E指導モデルの各ステージの進行に使用してください。

プログラミングのコンセプト

  • アルゴリズム:特定のタスクを完了するためのステップごとの指示。
  • バグ:プログラミングにおけるエラー。このエラーを修正するプロセスをデバッグと呼びます。
  • 細分化:プログラムを小さな要素または問題に分解すること。
  • 擬似コード:パソコンから実際にプログラミングする前に作成する、アルゴリズムのステップを書いた計画。疑似コードは問題 (バグ) を特定または予測し、プログラムのステップを細分化するための計画を立てるためにプログラマーに使われます。

関心を引きつける

(10分)

簡単なディスカッションを行い、プログラミングについての生徒の背景知識を確認してください。

  • このディスカッションを通して、プログラム (コード) やプログラミングの定義に対する共通認識ができるようにします。

このような質問をしましょう:

  • プログラムとは何ですか?(答えの例: 機械やロボットに特定のタスクを実行するよう指示するもの、またはパソコンゲームのプログラミングのような楽しいクリエイティブなもの。)
  • プログラムについて使われる他の言葉を聞いたことがありますか?(プログラミングに詳しい生徒の中には、「アルゴリズム」や「疑似コード」、「バグ」などの言葉を挙げる生徒もいるかもしれません。 詳しい生徒がいれば、みんなに教えてもらいましょう。)
  • プログラムはどのようなものでできていますか?(答えの例: ブロック、文章、数字)
  • プログラムとは指示の集まりであることを説明してください。

レッスンプレゼンテーションの 「関心を引きつける」 の最初のページを表示してください。

  • このページには、手遊び歌をしている絵が示されています。
CodeYourMoves-Engage-1.png

次のような質問をしてディスカッションを続けましょう。

  • これは何をしている絵ですか?(答えの例:手遊び歌で遊んでいます。)
  • どのような手遊び歌をやったことがありますか?(生徒1~2人に自分の経験を発表してもらいます。)
  • その手遊び歌を知らない人に、やり方をどうやって説明しますか?(生徒1~2人にアイデアを発表してもらいます。)
  • 理想的な指示とはどのようなものでしょうか?(生徒たちに理想的な指示の基準を定義するよう促します。例えば、「明確、整理されている、正しい順序」など。)
  • 手遊び歌のやり方を示す指示を考えることで、アルゴリズムを作る練習をしていたのだと説明しましょう。アルゴリズムとは、特定のタスクを完了するためのステップごとの指示です。

レッスンプレゼンテーションの 「関心を引きつける」 の2ページ目を表示してください。

  • このページには、指示や「プログラム」の例が示されています。 振付師は視覚的な表記方法を使ってダンスのステップを記録し、コーチはスケッチや言葉を使ってスポーツの試合を記録し、楽譜は音符を使ってどの音をどのように鳴らすかを指示します。
CodeYourMoves-Engage-2.png

下のような質問を使って、生徒が実生活に見られるコンピューター以外の「プログラム」と、これ以降のレッスンで作成する疑似コードとの関連性を理解できるようサポートしてください。

  • 振付を説明するイラストについて、どのようなことに気づきますか?(答えの例:4つのボックスは動作の順序を、矢印は動作の方向を示し、ステップ1と4が繰り返しであることが分かります。)
  • コーチのスケッチについてどのようなことに気づきますか?(答えの例: 選手は X と〇で表され、矢印は選手の動きを表します。)
  • 楽譜についてどのようなことに気づきますか?(答えの例: 曲は「きらきら星」で、塗りつぶされていない音符は2拍あります)
  • この3種類の指示/アルゴリズムに共通することは何でしょうか?(先ほど定義した、理想的な指示の条件をさらに発展させるよう促します。)
  • このように指示を記録することは、振付師やコーチ、音楽家にどのように役に立ちますか?(このように指示を書き出すことは、計画や間違いの発見に役立つという点に生徒が気づくよう促してください。)

レッスンプレゼンテーションの 「関心を引きつける」 の3ページ目を表示してください。

  • このページには、「ライフハック<生活の中の技術>」ユニットの「ダンシング」のレッスンで使われるSPIKE プライムプログラムの例が示されています。このプログラミングスタックはSPIKE プライムのダンシングロボットをコントロールします。

レッスンの一番上にあるビデオを再生して、ダンシングロボットが動いている様子を生徒に見せてください。次のようなポイントに触れながらディスカッションを続けてください:

  • これは、ダンシングロボットをコントロールするプログラミングスタックです。
JA-JP-CodeYourMoves-CodeStacks-engage.png
  • このプログラムはロボットに何をするよう指示していますか?(下の疑似コードにステップが書かれています。レッスンに遊びの要素を取り入れるために、ロボットの動きを生徒に真似してもらいましょう。)
  • この動きにどのような名前をつけますか?(「遊び」としてダンスの動きに名前をつけるよう促し、この後に疑似コードを作るダンスの動きに名前をつける練習をします。)
  • このプログラムをアルゴリズムとしてどのように記録しますか?(生徒1~2人に、言葉や絵を使ってこのプログラムを記録する方法を発表してもらいましょう。)
  • プログラムを自分の言葉で説明したことでアルゴリズムと疑似コードを作る練習になっていたことを生徒に伝えます。

解決方法となる擬似コードの例
このプログラミングスタックを言葉を使って説明する方法は、発表する生徒によって異なるかもしれません。これは1つの例にすぎません。
1.プログラムが「Go!」のメッセージを受け取る
2.モーターDとFが奥に向けて1回転する
3.モーターが1秒間待機する
4.両方のモーターがこの動きを10回繰り返す

***「関心を引きつける」ステージにおけるハイブリッド型学習のヒント*

全員が同時に出席できる場合

  • 予定されている授業時間中に、クラス全員でバーチャルディスカッションを行います。この際先生の発言は最小限にします。生徒が自分たちで答えたり質問したりするように促してください。オンライン投票ツールやチャット機能を使い、全員が貢献できるようにしましょう。

全員が同時に出席できない場合

  • レッスンプレゼンテーションの*「関心を引きつける」*のページを表示し、それぞれの生徒が直接先生に答えを提出するべきか、クラス全員がディスカッションボードに答えを入力するべきか選択してください。オンラインディスカッションボードは、生徒全員が同時に授業に出席できなくても生徒間のやり取りを促すことができる効果的なツールです。

探究する

(15分)

このチャレンジではレッスンプレゼンテーションの*「探究する」*のページをガイドとして使うように指示してください。

また、以下のステップを使って指示をしても構いません:

  • ステップ 1:誰かに教えることができる簡単なダンスの動きについて考えるよう生徒を促します。

  • ステップ 2:そのダンスの動きをするのに必要なステップを書いてもらいます。これが疑似コードになることを説明してください。

  • ステップ 3:生徒をペアにしてください。まず最初の人がパートナーに自分の疑似コードを発表します。聞き手役の生徒は、説明された疑似コードに従います。役割を交代します。

  • このアクティビティはクラス全体でやることもできます。クラス全員にダンスのやり方を説明する疑似コードを書くよう指示し、交代で疑似コードを発表してもらいながら、残りの生徒はその指示に従って体を動かします。

CodeYourMoves-Explore.png

***「探究する」ステージにおけるハイブリッド型学習のヒント*
このアクティビティを交流の時間にしましょう。仲間と一緒に組み立てると楽しくなります。

全員が同時に出席できる場合

  • オンライン授業の場合はクラス全員が1つのミーティングルームに参加し、生徒1人にクラスの前で疑似コードを発表してもらいます。または、少人数グループでブレイクアウトルームに分かれ、パートナー同士やグループ内で疑似コードを発表しあうこともできます。

全員が同時に出席できない場合

  • 保護者に協力をお願いして、それぞれの生徒に家庭学習用の専用スペースを用意するよう促します。課題に取り組むには、明るく清潔で、散らかっていない平坦な面が最適です。住環境が生徒によって異なる点に注意してください。

説明する

(10分)

  • 全員がプログラミング・チャレンジを完了できたら、自分の体験についてパートナーと話し合ってもらいましょう。
  • レッスンプレゼンテーションの*「説明する」*のページには、フィードバックのやり取りに役立つフレーズがまとめられています。
  • フィードバックをする際はアイコンタクトを取りながら相手を尊重する話し方を心がけ、具体的な例を含めるよう、もう一度注意してください。パートナーにもらったフィードバックに基づいて、作品をどのように改善できるか考えるよう促します。

フィードバックをする際に役立つフレーズ:

  • ~がすごいと思いました
  • ~についてもっと教えてください
  • 私も同じアイデアを使って~
  • 私は別のアイデアを使って~
  • ~するのはどうですか?

フィードバックをもらう際に役立つフレーズ:

  • わかりやすいと思った指示はどれですか?
  • 改善できる点はどこですか?
  • 修正するべきバグはありますか?

フィードバックのやり取りが終わったら、生徒にこのアクティビティとプログラミングの類似点を説明してもらいます。

このような質問をしましょう:

  • このアクティビティはどこがプログラミングと似ていますか?(答えの例:コンピューターに何かを実行させるプログラムを書くとの同じように、誰かがそれに従ってタスクを実行する指示を書いたところ。)
  • 疑似コードを書くのはなぜでしょうか?(答えの例: 実際にパソコンからプログラミングする前にコードを計画して、発生する可能性のあるバグを予測するため。)
  • 疑似コードを書く際に注意するべき重要ポイントはどこでしょうか?(答えの例: 細部の重要性、ステップが正しい順序であること。)

***「説明する」ステージにおけるハイブリッド型学習のヒント*

全員が同時に出席できる場合

  • オンライン授業の場合は、レッスンプレゼンテーションの*「説明する」*のページにあるフィードバックのやり取りに役立つフレーズを一緒に確認してから、少人数グループでブレイクアウトルームに分かれてフィードバックを交換してもらいましょう。
  • 各グループのブレイクアウトルームを訪問し、やり取りしたフィードバックの例をいくつか言ってもらい、生徒の理解度を確認してください。
  • 生徒の質問に答え、誤解はストレートに解くようにし、学んでいる概念に対する理解を深めます。

全員が同時に出席できない場合

  • 自分が受け取ったフィードバックについてクラス全員に発表してもらったり、グループチャットにコメントで投稿してもらったりして考察を促しましょう。

さらに実践する

(5分)

  • このアクティビティをもう一度別の動作 (朝のルーティーン、スポーツのやり方、レシピなど) でできるよう、疑似コードやプログラムを改良する法をブレインストーミングしてもらいます。

このような質問をしましょう:

  • 先ほどの疑似コードをどのように改善しますか?
  • このアクティビティをもう一度するとしたら、何をしますか?
  • 疑似コードが書けるアクティビティはほかに何があるでしょうか?

時間に余裕があれば、レッスンプレゼンテーションの*「さらに実践する」*のページにある、レゴ エデュケーション SPIKE アプリのプログラミングブロックを生徒に見せてください。

次のようなポイントに触れながらディスカッションを続けてください:

  • このプログラミングブロックはどのような役割を果たしていますか?(答えの例: 同じアクションを10回繰り返す、アクションを実行する前に1秒間待つ、1つのアクションが起こると次のアクションが起こる)
  • 先ほど作ったダンスの動きにおける「繰り返し」、「待機」、「もし~なら」のコマンドの例を挙げてもらいましょう。
JA-JP-CodeYourMoves-CodeStacks-Elaborate.png

「さらに実践する」ステージにおけるハイブリッド型学習のヒント
生徒が自分の作品を展示し、クラスメイトの作品を見る機会を設けてください。

全員が同時に出席できる場合

  • クラス全員でオンラインの発表タイムを設け、作品をどのように変えるか発表してもらいましょう。

全員が同時に出席できない場合

  • クラス全員が見れるバーチャルギャラリーを作成し、生徒に作品を公開してもらいましょう。自分の作品の写真やビデオを投稿し、クラスメイトの作品も見るように促してください。

評価する

(5分)

  • それぞれの生徒に、作成した疑似コードがステップごとの指示 (アルゴリズム) を示していることがわかる箇所を1つと、疑似コードに含まれる問題を特定して修正した箇所を1つ説明してもらいましょう。

生徒に学習の成果を自己評価してもらいましょう:以下のステップに従うか、オリジナルの自己評価アクティビティを行ってください。

  • 疑似コードを書き、プログラムをデバッグする際に少し助けがいる人は片手を挙げてください。
  • 疑似コードを書き、プログラムをデバッグする方法を説明することができ人は両手を挙げてください。
  • 疑似コードを書き、プログラムをデバッグする方法をクラスメイトに教えることができる人は両手を振ってください。

「評価する」ステージにおけるハイブリッド型学習のヒント
学習内容をまとめたレポート、ライブまたは動画によるプレゼンテーション、図や絵など、評価方法はたくさんあります。

全員が同時に出席できる場合

  • 予定されている授業時間中に、クラス全員でバーチャルディスカッションを行います。

全員が同時に出席できない場合

  • 学習内容をまとめたレポート、口頭でのプレゼンテーション、図や絵などを投稿してもらい、学習内容の考察を促しましょう。

教師用サポート

学習内容:

  • ステップごとの指示を示す疑似コードを書き、これに従う
  • 疑似コードに含まれる問題の細分化、特定、修正をする
  • レッスンプレゼンテーション (補足資料を参照してください)
  • 紙 (生徒1人につき2枚)
  • 筆記用具 (ペン、鉛筆、マーカー)