授業計画 |
| 回数 |
学習目標 |
学習項目 |
| 1 |
開発環境やプログラミング言語の説明が出来る。
標準入出力、算術演算子を使うことが出来る。
エラーについて(Syntax、Runtime、Logical)の説明が出来る。 |
C++の開発環境とプログラムの基本構造を学習する。標準入出力を用いた基礎的な記述法を学習する。
算術演算子の使用法を実践する。数式の結果を画面に表示するプログラムを実装する。
構文・実行・論理の各エラーの違いを学習する。デバッグの重要性と手法を実践する。 |
| 【理解度確認】課題にて確認する。 |
| 2 |
型の使い分けが出来る。
キャストの説明が出来る。 |
数値や文字を扱うデータ型の適切な使い分けと、メモリ上のサイズについて学習する。
異なる型の間でデータを変換するキャスト(型変換)の機序と、その注意点を学習する。
変数への代入と型の変換を組み合わせ、意図した計算精度を維持する手法を実践する。 |
| 【理解度確認】課題にて確認する。 |
| 3 |
分岐(if、switch)が出来る。
条件演算子(三項演算子)の?が使える。
|
if文やswitch文を用いた条件分岐の構造を学び、プログラムの実行フローを構築する。
条件演算子(三項演算子)の構文を実践する。簡潔な条件判定の記述方法を実践する。
複数の条件を論理的に整理し、複雑な分岐ロジックを正確に実装する技術を実践する。 |
| 【理解度確認】課題にて確認する。 |
| 4 |
反復演算(for, while)が出来る。 |
for文およびwhile文を用いた反復処理の構造と、ループ制御の方法を学習する。
繰り返し処理を駆使し、規則的な計算やデータ処理を効率的に構築する。
無限ループの回避や早期脱出の作法を学び、安全な反復アルゴリズムを構築する。 |
| 【理解度確認】課題にて確認する。 |
| 5 |
配列(静的配列、多次元配列)の説明が出来る。
配列を使った処理が書ける。 |
同一型のデータを一括管理する静的配列と、多次元配列の概念およびメモリ配置を学習する。
添字を用いた要素へのアクセス手法を実践する。
ゲーム開発におけるマップデータ等の管理を想定した、多次元データの操作法を実践する。 |
| 【理解度確認】課題にて確認する。 |
| 6 |
関数(function、procedure)の説明が出来る。
関数の定義、引数の説明が出来る。
スコープの説明が出来る。 |
処理を部品化する関数の定義方法と、引数を介したデータ伝達の仕組みを学習する。
変数の有効範囲を決定するスコープの概念を学習する。安全な情報の管理手法を学習する。
機能単位でロジックを分離し、再利用性と可読性の高いプログラム構造を構築する。 |
| 【理解度確認】課題にて確認する。 |
| 7 |
戻り値のある関数を定義し使える。 |
関数から呼び出し元へ処理結果を返す戻り値の機序を学び、計算結果の活用法を実践する。
戻り値を持つ関数を定義し、複数の関数を組み合わせて複雑な処理を実践する。
関数呼び出しによるデータフローを正確に把握し、論理的なプログラム設計を実践する。 |
| 【理解度確認】課題にて確認する。 |
| 8 |
関数のオーバーロードが出来る。
関数のオーバーロード不可条件の説明が出来る。 |
同一名で異なる引数を持つ関数のオーバーロードを学び、柔軟なインターフェース設計を行う。
オーバーロードが不可能な条件やシグネチャの重複に関する記述規則を詳細に学習する。
引数の型や数に応じた適切な関数呼び出しの仕組みを学習する。 |
| 【理解度確認】中間テストを行う。 |
| 9 |
分割コンパイルの説明が出来る。
ヘッダーファイルが使える。 |
ソースコードを機能単位で分離する分割コンパイルの手法と、ヘッダーファイルの役割を学習する。
ヘッダーファイルを用いた宣言の共有を実践する。
プロジェクト管理の基礎的な作法を実践する。大規模開発において必須となる、コンパイル単位の独立性とビルド効率の向上を学習する。 |
| 【理解度確認】課題にて確認する。 |
| 10 |
構造体が作れる。 |
関連する異なる型のデータを一つに集約する構造体の定義と、その活用方法を学習する。
プログラム内の情報の整理と抽象化を学習する。
複数のメンバを持つ独自のデータ型を構築し、複雑な情報を一括管理する技術を実践する。 |
| 【理解度確認】課題にて確認する。 |
| 11 |
クラスとオブジェクトの説明が出来る。
インスタンスとは何かの説明が出来る。
参照(reference)の説明が出来る。 |
オブジェクト指向の核となるクラスとオブジェクトの概念、およびインスタンス化の仕組みを学習する。
変数の別名を定義する参照(reference)の構文と、その安全な利用方法を学習する。
データと手続きを一体化させる設計の意義を学習する。オブジェクト指向プログラミングを学習する。 |
| 【理解度確認】課題にて確認する。 |
| 12 |
メンバ関数(メソッド)が使える。
thisの説明が出来る。
|
クラス内に定義するメンバ関数の運用と、自インスタンスを指すthisポインタの役割を学習する。
thisポインタを用いたメンバアクセスを実践する。クラス内部での情報の識別法を学習する。
演算子のオーバーロードを実装し、自作クラスを標準型と同様に直感的に扱う手法を実践する。 |
| 【理解度確認】課題にて確認する。 |
| 13 |
コンストラクタ、デストラクタの説明が出来る。
クラスのアクセス指定子の説明が出来る。
constが使える。 |
オブジェクトの生成と消滅を司るコンストラクタ・デストラクタの役割と実装法を学習する。
アクセス指定子によるカプセル化と、constキーワードを用いた不変性の保証手法を実践する。
リソースの適切な初期化と解放を徹底し、安全なクラス設計の基礎を実践する。 |
| 【理解度確認】課題にて確認する。 |
| 14 |
シャローコピーとディープコピーの違いの説明が出来る。
状況によってコピーの使い分けが出来る。 |
浅いコピー(シャローコピー)と深いコピー(ディープコピー)の挙動の違いと、そのリスクを学習する。
状況に応じた適切なコピー手法を選択し、メモリ管理上の不具合を回避する実装を実践する。
オブジェクトの複製がプログラムの動作に給える影響を学習する。正しい複製ロジックを構築する。 |
| 【理解度確認】課題にて確認する。 |
| 15 |
今までに学習した内容の習得度を測り、振り返りが出来る。 |
1年前期の学習範囲を網羅的に復習し、基本文法とクラスの基礎に関する実践する度を確認する。
これまでの演習を振り返り、自身のプログラミングスキルにおける課題を抽出・整理する。 |
| 【理解度確認】課題にて確認する。 |