クラス情報
学年: 8~12 (中 2~ 高 3) (このクラスに参加するには、生徒は 13 歳以上でなくてはなりません)
レッスン時間: 1 時間
対象ツール: フォートナイト クリエイティブ
クラス / 学習環境: フォートナイトがプレイ可能なデバイス。生徒 1 人につき 1 台で、インターネットに接続可能。 コンピューター室、またはノートパソコンを置ける移動式の台があることが理想的。
作成者の連絡先
著者: Steven Isaacs と Brian Dickman
Eメール: [email protected] | [email protected]
Twitter: @mr_isaacs | @cleverlike
LinkedIn: www.linkedin.com/in/steve-isaacs | www.linkedin.com/in/cleverlike
クラス/学習環境の説明
このレッスンは、コンピューター サイエンス教育週間の Hour of Code イベントで利用するためのものとしてデザインされています。
独立したレッスンとして利用することもできますし、他の活動と組み合わせて、より大きなプロジェクトの制作に利用することもできます。
著者の1人であるSteve Issacsは、Epic Gamesの教育プログラムマネージャーです。 その役職において、Unreal Engine、フォートナイト クリエイティブ、Twinmotionなどのツールを教室に導入する中等教育者や学生をサポートしています。 Epicでの役職に就く前は、選択ベースの学習環境でゲームデザインと開発について指導しており、内容だけでなくプロジェクトの選択肢の面でも、学生自身の興味に基づいて学習成果を満たすために異なるアプローチを取る機会を提供していました。
著者の1人であるBrian Dickmanはコンピューターサイエンスを学んだあと、フルタイムのゲーム開発スタジオを運営し、人気のビデオゲーム内で娯楽と教育のコンテンツを制作しています。
レッスンの概要
ビデオゲームで得点がどのように取り扱われているのか考えたことはありますか?
パックマンをプレイしたことがある人なら、必ずハイスコアを狙ったことがあるはずです。 エサを集めるとポイントが手に入り、果物を取るとボーナスポイントが手に入ります。 モンスターが青色になった時には、モンスターを食べるたびに手に入るポイントが増えていきます。 数多くのゲームにスコアシステムがあり、欠かせない存在となっています。
ゲーム内のスコアは、変数で処理されています。 変数はゲーム開始時に設定され、スコアに影響するアクションに基づき、ゲームの進行に合わせて変わっていきます。
このアクティビティでは、変数を使ったスコアシステムを構築します。 プログラミングにおける変数の使い道は、これ以外にも数多く存在します。
理想の結果
生徒にとっての学習の成果は?
重要な疑問/意図
他の事柄と結びつきのないスキルとして単にプログラムの書き方を学ぶのではなく、意義のある活動の一環としてコンピューターサイエンスの概念を学べるのか?
フォートナイト クリエイティブでのアクティビティで関数などといったコンピューターサイエンスの概念を学ぶことで、プログラミング環境の概念を広く理解させられるのか?
ゲームの仕組みを通じ、コンピューターサイエンスの概念を学ぶことができるのか?
ゲームを使って概念を教えることで、コンピューターサイエンスを学ぶ意欲を高められるのか?
学習のアクティビティ
変数入門
プログラミングにおける 変数 とは、プログラムに伝達される条件や情報によって変動する値のことです。 通常、プログラムはコンピューターにすべきことを指示する命令と、プログラムが実行中に使用するデータで構成されています。 データは決して変化しない定数(固定の値) と、変数 (実際の値はプログラムのユーザーから提供されるため、通常は0または何らかのデフォルト値に初期化される)で構成されています。 通常、定数も変数も特定のデータ型として定義されています。 それぞれのデータ型は、データの形式を規定し、制限します。 データ型の例としては、10進数で表される整数や、テキスト文字の文字列などがあり、通常は長さが制限されています。
– WhatIs.com から
例えば、スコアシステムの場合、スコアのスタート時の値を0に設定することができます。 さらに、コインが収集されるたびに、スコアが10増加するようにできます。 プレイヤーのスコアが100ポイント以上の場合、プレイヤーが勝利し、ゲームが終了します。 そうでなければ、プレイヤーが100ポイント以上を獲得するまでゲームが続きます。
擬似コードとは、実際のコードに似た形でコードを書き、そのコードが表すであろうアイディアを説明する行為です。 疑似コードは大まかな構造を示していますが、必ずしも適切なシンタックスに従っているわけではありません。 このレッスンでは、定期的に疑似コードを使ってコンセプトをわかりやすく説明します。 まずは疑似コードの例を見てみましょう。
宣言 / 変数を設定 変数スコア=0 ゴールドコイン1つで10ポイント付与 ループ開始 プレイヤーのコインを確認 プレイヤーがゴールドコインを持っているか? はいの場合、スコア = スコア+10 再度ループ プレイヤーが100ポイントに到達するまでループ ループ開始 プレイヤーのコインを確認 プレイヤーがゴールドコインを持っているか? はいの場合、プレイヤーのスコアに10ポイント追加してコインを削除 プレイヤーは100ポイント以上持っているか はいの場合、そのプレイヤーが勝利したと表示 ゲームを終了する スコアが100未満の場合、再度ループ プレイヤーが100点以上になるまで、残りのプログラムを実行し続ける
以下はプログラミングにおける変数を解説する動画です。
変数はどんなプログラミング言語でも使用することが可能ですし、フォートナイト クリエイティブのように、ゲーム中に値が変化するシナリオを設定できる環境でも使うことができます。
アクティビティ
生徒はフォートナイト クリエイティブで宝探しを制作します。 プレイヤーは島で宝(コイン)を探します。 プレイヤーがコインを一定数集めるか、時間切れになると、ゲームが終了します。 集めたコインの枚数に基づいて値/スコアを追跡するため、宝探しに変数とスコアを取り入れましょう。
アクティビティの詳細については、指導者用ガイドを参照してください。
生徒には生徒用ガイドにアクセスさせ、それに従って作業させましょう。
拡張アクティビティ
時間に余裕があれば、以下のことに挑戦させましょう。
異なるスコア値が設定された新しいアイテムを追加する。
チーム&インベントリの仕掛けを使って、プレイヤーのダッシュ速度を上げる
時間切れになる前にプレイヤー 1 人で目標を達成できるようにゲームを調整する。
スコア マネージャーの仕掛けを使って、特別なアイテムを拾った時にプレイヤーのスコアを 0 にリセットする。
アクティビティの詳細については、指導者用ガイドを参照してください。
外部リソース
教育基準
1A-AP-09 数字やその他のシンボルを使って情報を表すことで、プログラムがデータを格納して操作する方法をモデル化する。
1B-AP-09 変数を使って、データを格納し変更するプログラミングを作成する。
1B-AP-10 シーケンス、イベント、ループ、条件記述を含むプログラムを作成する。
1B-AP-12 既存のプログラムの一部を変更、リミックス、あるいは自分の作品に組み込み、新しいものを開発、あるいはより高度な機能を追加する。
1B-AP-15 プログラムやアルゴリズムをテストしてデバッグ(エラーを特定して修正すること)を行い、意図したとおりに動作するようにする。
2-AP-1 異なるデータ型を表す、明確にわかる名前の変数を作成し、その値に対して演算を実行する。
2-AP-10 フローチャートおよび/または疑似コードを使い、複雑な問題をアルゴリズムとして扱う。
2-AP-13 プログラムの設計、実装、レビューを容易にするため、問題と副問題を小さく分割する。
2-AP-17 様々なテストケースを用い、体系的にプログラムをテストして改良する。
3A-AP-13 生徒の予備知識や個人の興味を活用し、アルゴリズムを用いたプロトタイプを作って計算の問題を解決する。
3A-AP-16 命令を開始するイベントを使用し、実用的な目的や個人的な表現のため、あるいは社会的問題に対処するため、コンピューター使って何らかのものを設計し、試行錯誤しながら開発する。
3A-AP-17 プロシージャ、モジュール、および/またはオブジェクトなどの構成要素を使い、体系な分析を通じて問題を小さく分割する。
3A-AP-22 協業用ツールを使ってチームを組んで作業し、コンピューターを使って設計、開発をする。
学際および 21ST CENTURY CONNECTIONS
このレッスンでは、プログラミング/コンピューターサイエンスに関連する分野を扱います。
21世紀型スキル:
批判的思考
創造力
コラボレーション
コミュニケーション
情報リテラシー
柔軟性
リーダーシップ
主体性
社会技能
合理的配慮および合理的変更
生徒のニーズや教育プログラム(IEP、504など)に合わせ、適宜変更と調節を行ってください。
生徒にチームを組ませることで、ペアプログラミングの手法を取り入れることができます。
生徒が解体/変更できるサンプルマップを提供してみてもよいでしょう。
必要に応じてアダプティブコントローラー/ゲームコントローラーを提供しましょう。