クラス情報
学年: 8~12 (中 2~ 高 3) (このクラスに参加するには、生徒は 13 歳以上でなくてはなりません)
レッスン時間: 1 時間
対象ツール: フォートナイト クリエイティブ
クラス / 学習環境: フォートナイトがプレイ可能なデバイス。生徒 1 人につき 1 台で、インターネットに接続可能。 コンピューター室、またはノートパソコンを置ける移動式の台があることが理想的。
作成者の連絡先
著者: Steven Isaacs と Brian Dickman
Eメール: [email protected] | [email protected]
Twitter: @mr_isaacs | @cleverlike
LinkedIn: https://www.linkedin.com/in/steve-isaacs/ | https://www.linkedin.com/in/cleverlike
クラス/学習環境の説明
このレッスンは、コンピューター サイエンス教育週間の Hour of Code イベントで利用するためのものとしてデザインされています。
独立したレッスンとして利用することもできますし、他の活動と組み合わせて、より大きなプロジェクトの制作に利用することもできます。
著者の1人であるSteve Isaacsは、ゲームデザインと開発をクエストあるいは選択ベースの学習環境として捉え、内容だけでなくプロジェクトの選択肢の面でも、学生自身の興味に基づいて学習成果を満たすために異なるアプローチを取る機会を提供するものとして指導しています。
著者の1人であるBrian Dickmanはコンピューターサイエンスを学んだあと、フルタイムのゲーム開発スタジオを運営し、人気のビデオゲーム内で娯楽と教育のコンテンツを制作しています。
レッスンの概要
あなたには雑学タワーから脱出できる実力があるでしょうか? 雑学タワーエスケープゲームを作るスキルはどうでしょう?
このアクティビティでは、フォートナイト クリエイティブにおける関数の使い方を学び、雑学クイズに答えないと脱出できないゲームを制作します。 正解すると関数が起動し、音楽とビジュアルのエフェクトが発生して、プレイヤーが先に進めるようになります。 答えを間違うと、やや不快な効果音と視覚効果が起動し、プレイヤーは再挑戦しなければなりません。
このアクティビティを完了することで、生徒はシーケンサーと一連の仕掛けの使用を通じ、プログラミングに関連する関数の基本を理解します。
理想の結果
生徒にとっての学習の成果は?
重要な疑問/意図
他の事柄と結びつきのないスキルとして単にプログラムの書き方を学ぶのではなく、意義のある活動の一環としてコンピューターサイエンスの概念を学べるのか?
フォートナイト クリエイティブでのアクティビティで関数などといったコンピューターサイエンスの概念を学ぶことで、プログラミング環境の概念を広く理解させられるのか?
ゲームの仕組みを通じ、コンピューターサイエンスの概念を学ぶことができるのか?
ゲームを使って概念を教えることで、コンピューターサイエンスを学ぶ意欲を高められるのか?
学習のアクティビティ
関数への導入
関数とは、ひとまとまりになったコードであり、多くの場合、より大きなコードの構造における役割によって定義されます。 もっと具体的に言うと、関数には様々な入力(多くは変数)によって動作するひとまとまりのコードが含まれており、入力に基づいて変数の値の変更や実際の操作などといった具体的な結果を生成します。
– Techopedia.com から
もっと簡単に言えば、
関数は、簡単に何度も呼び出すことができるコードです。
– code.org から
例えば、このレッスンのアクティビティでは、フォートナイト クリエイティブで雑学ゲームショーを実行するために使用する様々な関数を設定します。 つまりは、各機能(ここではシーケンサー)がゲーム内で一連の命令を実行(仕掛けを使用)します。
擬似コードとは、実際のコードに似た形でコードを書き、そのコードが表すであろうアイディアを説明する行為です。 疑似コードは 大まかな構造を示していますが、必ずしも適切なシンタックスに従っているわけではありません。 このレッスンでは、定期的に 疑似コードを使ってコンセプトをわかりやすく説明します。
まずは疑似コードの例を見てみましょう。
関数 1 (出題):ラウンドを開始/プレイヤーに出題 関数 2 (タイマー開始):カウントダウン用タイマー
自分の関数(出題) 以下を実行 回答ボタンをリセット 音を再生 雑学クイズの番号をランダムに選択 問題を表示 自分の関数(タイマー開始) カウントダウン用タイマーを開始 カウントダウンが0になった場合 時間切れ 音を再生 メッセージを表示 (「残念、時間切れです」) 次の問題を起動 関数を終了 関数を終了
関数 3:(正解) 自分の関数(正解) 以下を実行 ハッピーな音を再生 メッセージを表示 (「正解! お見事!」) スコアにポイントを追加 次の問題を起動 関数を終了 関数を終了
関数 4:(不正解) 自分の関数(不正解) 以下を実行 ダメな音を再生 メッセージを表示 (「残念、再挑戦しよう!」 次の問題を起動 関数を終了
上記の例では、関数(出題)が起動されると、以下のことが起きます。
回答ボタンをリセットする。
問題が出ることを示す音を再生する。
ランダムな数字を選び、どの雑学クイズを出題するかを決定する。
プレイヤーに問題を表示する。
その後、次の関数(タイマー開始)が起動し、以下のことが起きます。
カウントダウン用タイマーを開始する。
タイマーが0になったら音を再生し、回答を締め切る。
ここで2つの関数(正解)と(不正解)を追加します。 この2つは以下の動作を実行します。
音を再生する。
必要に応じてスコアを調整する。
メッセージを表示する。
次の問題を起動する。
こちらの関数を解説する動画も参考にしてください。
関数はどんなプログラミング言語でも使用することが可能ですし、フォートナイト クリエイティブのような環境でも使うことができます。
フォートナイトでは、シーケンサーを使い、その内部にイベント/動作を設置することで、シーケンサーが起動したときに、内部の動作が実行されるようにします。
アクティビティ
アクティビティの詳細については、生徒用ガイドと指導者用ガイドを参照してください。
生徒には生徒用ガイドにアクセスさせ、それに従って作業させましょう。
生徒の評価には、ダウンロード可能なルーブリックを利用してください。
外部リソース
CS 原則:変数入門 パート 1 CS 原則:変数入門 パート 2 変数の定義
教育基準
1A-AP-09 数字やその他のシンボルを使って情報を表すことで、プログラムがデータを格納して操作する方法をモデル化する。
1B-AP-10 シーケンス、イベント、ループ、条件記述を含むプログラムを作成する。
1B-AP-12 既存のプログラムの一部を変更、リミックス、あるいは自分の作品に組み込み、新しいものを開発、あるいはより高度な機能を追加する。
1B-AP-15 プログラムやアルゴリズムをテストしてデバッグ(エラーを特定して修正すること)を行い、意図したとおりに動作するようにする。
2-AP-10 フローチャートおよび/または疑似コードを使い、複雑な問題をアルゴリズムとして扱う。
2-AP-13 プログラムの設計、実装、レビューを容易にするため、問題と副問題を小さく分割する。
2-AP-14 パラメータ付きのプロシージャを作成することで、コードを整理し、再利用しやすくする。
2-AP-17 様々なテストケースを用い、体系的にプログラムをテストして改良する。
3A-AP-13 生徒の予備知識や個人の興味を活用し、アルゴリズムを用いたプロトタイプを作って計算の問題を解決する。
3A-AP-16 命令を開始するイベントを使用し、実用的な目的や個人的な表現のため、あるいは社会的問題に対処するため、コンピューター使って何らかのものを設計し、試行錯誤しながら開発する。
3A-AP-17 プロシージャ、モジュール、および/またはオブジェクトなどの構成要素を使い、体系な分析を通じて問題を小さく分割する。
3A-AP-18 プログラム内のプロシージャ、データとプロシージャを組み合わせたもの、または独立しているが相互に関連するプログラムを使用して、成果物を作成する。
3A-AP-22 協業用ツールを使ってチームを組んで作業し、コンピューターを使って設計、開発をする。
学際および 21ST CENTURY CONNECTIONS
このレッスンでは、プログラミング/コンピューターサイエンスに関連する分野を扱います。
21世紀型スキル:
批判的思考
創造力
コラボレーション
コミュニケーション
情報リテラシー
柔軟性
リーダーシップ
主体性
社会技能
合理的配慮および合理的変更
生徒のニーズや教育プログラム(IEP、504など)に合わせ、適宜変更と調節を行ってください。
生徒にチームを組ませることで、ペアプログラミングの手法を取り入れることができます。
生徒が解体/変更できるサンプルマップを提供してみてもよいでしょう。
必要に応じてアダプティブコントローラー/ゲームコントローラーを提供しましょう。