1. トップ
  2. 学校紹介
  3. 情報公開
  4. 学科情報
  5. シラバス - 科目一覧

シラバス

高度ゲーム制作科 2026年度入学生

科目名 プログラミングⅡ 作成日 2026/03/09
区分 必修 講義/演習
開催時期・標準履修年次 1年次 後期
講義・演習駒数/週 3駒
実習・実験駒数/週 0駒
合計駒数/週 3駒
総時間数 90時間
総単位数 6単位
企業連携
授業の目的 C++の核心である「オブジェクト指向によるシステム構築」と、ゲーム開発に不可欠な「実戦的なデータ処理技術」の習得を目的とする。
到達目標 オブジェクト指向を学習し、統一的な基底クラスから一括制御が出来る。 標準ライブラリ(STL)や動的メモリ確保を使いこなし、実行時に増減する複雑なデータ群を効率的かつ安全に管理が出来る。 外部ファイルの読み書きやビット演算によるフラグ制御を実装し、セーブデータ運用や低レイヤでの高速な状態管理が出来る。 生成AIが提案したコードの説明が出来る。

評価項目 ①定期テスト ②小テスト ③レポート ④課題 ⑤作品 ⑥ポートフォリオ ⑦成果発表 ⑧その他
割合 50%  %  % 25%  %  %  % 25%
評価基準
下記の項目A.B.C.全てを達成して単位取得とし、項目C.の点数によって秀・優・良・可の評価を行う。  A. 当科目授業の80%以上出席する。80%未満の学生は期末試験の受験資格が無く不合格となる。  B. 教員が指定する実習課題を全て提出する。  C. 中間テストおよび期末テストでそれぞれ60点以上を取得する。
※上記に示した評価項目の割合(%)を基準に、総合評価点を算出して成績評価を行う。
※出席率が80%未満の場合は、評価対象としない。

担当教員 植山 沙欧
テキスト・参考文献 C++ ゼロからはじめるプログラミング 教員が作成する資料及びテキスト 生成AI
実務経験有無  
  
授業外学習
(予習・復習等)
演習問題が出題されるので、その解決方法を検討したのちにコーディングを行うこと。 考えても理解できない、思いつかない点をまとめ、次回登校時に教員に聞く点をリスト化をすること。 予習よりも復習に重点を置き、分からない点を残さず理解を深めること。  履修前提
※自由選択科目のみ記載
  

授業計画

回数 学習目標 学習項目
1 メモリ上のアドレスの概念を理解し、アドレス演算子が使える。 ポインタ変数の宣言と型を正しく扱い、nullptrを用いた安全な初期化が出来る。  メモリ上のアドレスの概念を復習し、アドレス演算子を用いたメモリアクセスの基礎を学習する。 ポインタ変数の宣言とnullptrによる安全な初期化の手法を実践する。メモリ操作の基本を学習する。 ポインタを用いた直接的なデータ操作の機序を学習する。低レイヤの視点を実践する。 
【理解度確認】課題にて確認する。
2 配列名が先頭要素のアドレスであることを理解し、ポインタ演算による要素アクセスが出来る。 関数への引数としてポインタを渡し、呼び出し元の値を書き換える処理が作れる。  配列名とアドレスのポインタ演算を用いた配列要素へのアクセス手法を学習する。 関数への引数としてポインタを渡し、呼び出し元の変数を直接書き換える参照渡しを学習する。 ポインタを介した効率的なデータ伝達と、メモリ上の連続的なデータ操作を実践する。 
【理解度確認】課題にて確認する。
3 newとdelete演算子を使いメモリ領域を確保と解放が出来る。 ヒープ領域の特性を理解し、配列の動的確保による柔軟なデータ管理が行える。  newとdelete演算子を用いた動的なメモリ領域の確保と、手動による解放の手順を学習する。 ヒープ領域の特性を学習する。実行時の要求に応じた柔軟なメモリ管理手法を実践する。 動的配列の活用により、データの規模変化に適応可能なプログラムの構築手法を学習する。 
【理解度確認】課題にて確認する。
4 staticメンバ変数を用いて、全インスタンスで共有するデータの定義が出来る。 staticメンバ関数を使い、インスタンスを生成せずに呼び出せる機能が作れる。  staticメンバ変数を用いて、全インスタンス間で共有されるデータの定義と管理手法を学習する。 staticメンバ関数を実装し、インスタンスを生成せずにアクセス可能な機能の構築法を実践する。 クラス単位で共通化すべき情報と機能の切り分けを行い、効率的な資源利用を実践する。 
【理解度確認】課題にて確認する。
5 IS-A関係を理解し、コードの再利用が出来る。 アクセス指定子「protected」を使い、派生クラスへのカプセル化が出来る。  クラスを拡張する継承(IS-A関係)の概念を学習する。 アクセス指定子「protected」を活用し、派生クラスに対して適切な情報の公開と秘匿方法を学習する。 継承によるクラス階層の構築を通じて、拡張性の高いシステム設計の基礎を学習する。 
【理解度確認】課題にて確認する。
6 継承関係におけるコンストラクタとデストラクタの実行順序の説明が出来る。 基底クラスのコンストラクタへ初期化リストを用いた適切な初期化が出来る。  継承関係におけるコンストラクタとデストラクタの実行順序を学習する。 初期化リストを用いて基底クラスのコンストラクタを明示的に呼び出し、正しい初期設定を学習する。 派生クラスの生成プロセスを正確に把握し、不具合のないオブジェクト生成を実践する。 
【理解度確認】課題にて確認する。
7 仮想関数を使ってクラスごとに異なる振る舞いの実装が出来る。 overrideを使い名前の打ち間違いによるバグを未然に防ぐことが出来る。  仮想関数を用いたオーバーライドにより、クラスごとに異なる振る舞いを実装する手法を学習する。 override指定子を活用し、シグネチャの不一致による意図しないバグを未然に防ぐ作法を実践する。 多態性の基礎となる動的結合の仕組みを学習する。 
【理解度確認】課題にて確認する。
8 基底クラスのポインタで派生クラスのインスタンスを指すことが出来る。 仮想デストラクタを定義し、派生クラスのメモリ解放漏れを防止するコードが書ける。  基底クラスのポインタで派生クラスを操作するポリモーフィズムの具体的な運用方法を学習する。 仮想デストラクタを適切に定義し、派生クラスのメモリ解放漏れを防止する安全な設計を構築する。 型に依存しない抽象的な操作を実現し、プログラムの拡張性を飛躍的に高める手法を学習する。 
【理解度確認】課題にて確認する。
9 純粋仮想関数を持つ抽象クラスを定義し、派生クラスでの実装が出来る。 インターフェースの概念を用いて、異なるクラス群に共通の操作仕様を与えることが出来る。  純粋仮想関数を持つ抽象クラスを定義し、派生クラスに対して具体的な実装を強制する手法を学習する。 インターフェースの概念を用い、異なるクラス群に共通の操作仕様(規約)を与える設計を構築する。 具体的な実装と抽象的な操作を分離し、部品化に適した高度なクラス設計を実践する。 
【理解度確認】課題にて確認する。
10 ゲーム開発において時間の指標(デルタタイム)の管理が出来る。 std::chronoが使える。  なぜ「時」を制御する必要があるのかを学習する。 std::chronoの機能を学習する。 高精度タイマークラスを構築する。 
【理解度確認】中間テストにて確認する。
11 std::vectorなどの動的配列コンテナを使い、要素の追加や削除を効率的に行える。 std::stringを用いた高度な文字列操作や、std::mapによるキー検索機能が使える。  標準ライブラリ(STL)の動的配列コンテナであるstd::vectorを用い、要素管理を効率化を学習する。 std::stringによる高度な文字列操作や、std::mapによる高速なキー検索の活用手法を実践する。 標準提供されるデータ構造を使いこなし、開発効率と実行性能を両立させる技術を学習する。 
【理解度確認】課題にて確認する。
12 ファイルストリーム(ifstream/ofstream)を使い、テキストデータの読み書きが出来る。 設定ファイルからゲームのパラメータを読み込み、プログラムに反映させる処理が作れる。  ファイルストリーム(ifstream/ofstream)を用いて、テキストデータの読み書きを学習する。 外部の設定ファイルからパラメータを読み取り、プログラムに反映させるデータ主導の処理を構築する。 データの保存と復元のプロセスを通じ、外部リソースとの連携手法を実習にて実践する。 
【理解度確認】課題にて確認する。
13 バイナリ形式でのデータ保存を理解し、シリアライズによる構造体のファイル出力が出来る。 ビッグエンディアンとリトルエンディアンの説明が出来る。 CSVファイルのパース処理を実装し、Excel等で編集したデータの活用が出来る。  バイナリ形式でのデータ保存とシリアライズを学び、構造体等のデータを効率的にファイル化することを学習する。 エンディアンの差異に関する基礎知識を学習する。 CSVファイルのパース処理を構築する。 
【理解度確認】課題にて確認する。
14 論理演算(AND, OR, NOT, XOR)を使い、複数のフラグ情報を1つの変数での管理が出来る。 ビットマスクを用いた特定のフラグ判定や、フラグの反転・消去が出来る。  ビット単位の論理演算(AND, OR, NOT, XOR)を用い、複数のフラグ情報を変数一つで管理することを学習する。 ビットマスクを駆使して特定のフラグを判定・操作し、省メモリで高速な状態管理を実践する。 ゲーム開発で多用される「フラグ立て」や「判定」の処理を実践する。 
【理解度確認】課題にて確認する。
15 ビットシフト演算による高速な乗除算や、データパッキングの仕組みの説明が出来る。 ARGBカラーコードの各成分をビット演算で取り出し、色情報の加工や変換が出来る。  ビットシフト演算による高速な計算手法と、情報のパッキングによるデータ圧縮の仕組みを学習する。 ARGBカラーコードの成分抽出を題材に、ビット演算を用いた具体的な色情報の加工を実践する。 1年次の全学習内容を再確認する。 
【理解度確認】課題にて確認する。