概要:
プログラミングⅠに引き続き、C言語によるプログラミングに関する講義と演習を行う。後半では、チーム開発の場面で必要な「リーダブルコード」を導入した実践的プログラミング能力を養う。
授業の進め方・方法:
前半の講義では、テキストの内容を理解するとともに応用問題の演習を個人単位で行い個人のプログラム開発能力を磨く。ここで、問題解決方法を机上で熟慮するとともにプログラム計画と記述の変更が分かるように履歴管理の習慣を付けることを推奨する。
後半の講義では、チームによるプログラム開発の手順(設計から実装)を学ぶとともに、チーム開発を念頭に、「リーダブルコード」で知られる「読みやすいプログラムはどのようなプログラムか」について、提示プログラムと各自の既作成のプログラムを元に理解を深める。最終的には、チーム単位でのプログラム開発を計画し実装する。
注意点:
プログラミングⅠを習得していること。本科目は、授業で保証する学習時間と、予習・復習及び課題レポート作成に必要な標準的な自己学習時間の総計が、90時間に相当する学習内容である。合格の対象としない欠席条件(割合) 1/3以上の欠課
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
構造体 |
構造体を理解し、プログラムを記述できる。
|
2週 |
ポインタ |
ポインタを理解し、プログラムを記述できる。
|
3週 |
ポインタ |
ポインタと配列の関係を理解し、プログラムを記述できる。
|
4週 |
アナログ時計の制作 |
OpenGLを使ってアナログ時計プログラムを記述できる。
|
5週 |
文字を描く |
OpenGLを使って文字描画プログラムを記述できる。
|
6週 |
キャラクターを表示する |
OpenGLを使ってキャラクター表示プログラムを記述できる。
|
7週 |
マウスを入力する |
マウス入力プログラムを記述できる。
|
8週 |
中間試験 |
1週~7週までの内容を理解し、プログラムが記述できる。
|
2ndQ |
9週 |
キー入力を使う |
キー入力プログラムを制作できる。
|
10週 |
ミニゲームの制作 |
OpenGLを使ってミニゲームを制作できる。
|
11週 |
ミニゲームの制作 |
OpenGLを使ってミニゲームを制作できる。
|
12週 |
オリジナルゲームの制作 |
OpenGLを使ってオリジナルゲームを設計、制作できる。
|
13週 |
オリジナルゲームの制作 |
OpenGLを使ってオリジナルゲームを設計、制作できる。
|
14週 |
オリジナルゲームの制作 |
OpenGLを使ってオリジナルゲームを設計、制作できる。
|
15週 |
オリジナルゲームの制作 |
OpenGLを使ってオリジナルゲームを設計、制作できる。
|
16週 |
期末試験 |
60点を取得する。
|
後期 |
3rdQ |
1週 |
プログラム品質、移植性とリーダブルコードの必要性 |
プログラム品質、移植性の意味とリーダブルコードの必要性が理解できる。
|
2週 |
C言語規約とプログラム記法 |
C言語規約の特徴とプログラム記法の例を理解する。
|
3週 |
チームによるプログラム設計と実装方法(1) |
チームによるプログラム設計方法が理解できる。
|
4週 |
チームによるプログラム設計と実装方法(2) |
チームによるプログラム実装方法が理解できる。
|
5週 |
リーダブルコード(1) - キーワードと命名規則 |
C言語のキーワードとユーザ定義変数の記述指針が理解できる。
|
6週 |
リーダブルコード(2) - コメント |
プログラムに記述するコメントの必要性と記述指針が理解できる。
|
7週 |
リーダブルコード(3) - 制御フロー |
読みやすい制御フローの記述が理解できる。
|
8週 |
中間試験 |
1週~7週までの内容を理解し、プログラムが記述できる。
|
4thQ |
9週 |
リーダブルコード(4) - インターフェース |
データ入出力、関数呼び出しでの記述指針が理解できる。
|
10週 |
リーダブルコード(5) - 性能 |
プログラム記述に違いによる性能(計算時間など)の違いが理解できる。
|
11週 |
リーダブルコード(6) - テスト |
テストの方法が理解できる。
|
12週 |
リーダブルコード(7) - 再利用 |
プログラム資源。の再利用の重要性が理解できる。
|
13週 |
チームによるプログラム開発 |
チームによるプログラム開発を計画し、実装できる。
|
14週 |
チームによるプログラム開発 |
チームによるプログラム開発を計画し、実装できる。
|
15週 |
チームによるプログラム開発 |
チームによるプログラム開発を計画し、実装できる。
|
16週 |
期末試験 |
60点以上を取得する。
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 代入や演算子の概念を理解し、式を記述できる。 | 4 | |
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 4 | |
変数の概念を説明できる。 | 4 | |
データ型の概念を説明できる。 | 4 | |
制御構造の概念を理解し、条件分岐を記述できる。 | 4 | |
制御構造の概念を理解し、反復処理を記述できる。 | 4 | |
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 4 | |
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。 | 4 | |
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。 | 4 | |
主要な言語処理プロセッサの種類と特徴を説明できる。 | 4 | |
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。 | 4 | |
プログラミング言語は計算モデルによって分類されることを説明できる。 | 4 | |
主要な計算モデルを説明できる。 | 4 | |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。 | 4 | |
要求仕様に従って、いずれかの手法により動作するプログラムを設計することができる。 | 4 | |
要求仕様に従って、いずれかの手法により動作するプログラムを実装することができる。 | 4 | |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを実装できる。 | 4 | |
ソフトウェア | アルゴリズムの概念を説明できる。 | 4 | |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 4 | |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。 | 4 | |
整列、探索など、基本的なアルゴリズムについて説明できる。 | 4 | |
時間計算量によってアルゴリズムを比較・評価できることを説明できる。 | 3 | |
領域計算量などによってアルゴリズムを比較・評価できることを説明できる。 | 3 | |
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。 | 4 | |
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。 | 4 | |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。 | 3 | |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造を実装することができる。 | 3 | |