概要:
プログラミングの技術を身に付けるための科目である.プログラミング言語は,C言語を用いるが,総合演習では,C言語以外のプログラミング言語を用いる場合がある.
2年次の情報処理の授業で作成したものよりも規模の大きいプログラムを,プログラミングスタイルや実行効率を考慮して記述できるようになるのが目標である.
授業の進め方・方法:
演習主体で進める.
演習レポート(80%)と小テスト(20%)とを総合して評価し,60%以上の得点率で合格とする.
注意点:
規定授業時数(単位時間)は60である.
演習レポートの提出遅れは大きな減点となるので受講者は注意すること.
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
ガイダンス |
|
2週 |
プログラミングスタイル:講義 |
プログラミングスタイルの基礎(インデントなどのソースコードの整形方法,変数名の付け方,コメントの働きなど)について理解し,プログラミングスタイルを考慮したプログラムを作成できる.
|
3週 |
プログラミングスタイル:演習(1) |
同上
|
4週 |
プログラミングスタイル:演習(2) |
同上
|
5週 |
デバッグとテスト:講義 |
デバッグの基礎について理解し,デバッガを用いた効率的なプログラムの修正ができるようになる.ソフトウェアテストの意義について理解し,簡単なテストケースを作成・利用できる.
|
6週 |
デバッグとテスト:演習(1) |
同上
|
7週 |
デバッグとテスト:演習(2) |
同上
|
8週 |
小テスト(I) |
小テストを通して,プログラミングスタイル・デバッグ・テストの知識の確認を行い,理解を深める.
|
2ndQ |
9週 |
ポインタとメモリ:講義(1) |
ポインタの意義について理解し,メモリとの関係について説明できる.また,配列とポインタの関係について理解し,説明できる.
|
10週 |
ポインタとメモリ:講義(2) |
同上
|
11週 |
ポインタとメモリ:演習(1) |
同上
|
12週 |
ポインタとメモリ:演習(2) |
同上
|
13週 |
メモリの動的割当て:講義 |
メモリの動的割当てについて理解し,それを活用したプログラムを作成できる.
|
14週 |
メモリの動的割当て:演習(1) |
同上
|
15週 |
メモリの動的割当て:演習(2) |
同上
|
16週 |
小テスト(II) |
小テストを通して,ポインタ・メモリ等の知識の確認を行い,理解を深める.
|
後期 |
3rdQ |
1週 |
分割コンパイルとリンク:講義 |
(分割)コンパイル,アセンブル,リンク,実行可能形式について理解し,複数のソースコードからなるプログラムを作成できる.
|
2週 |
分割コンパイルとリンク:演習(1) |
同上
|
3週 |
分割コンパイルとリンク:演習(2) |
同上
|
4週 |
プロファイリング:講義 |
プログラムの効率を改善するためのプロファイリングの方法について理解し,プロファイラを用いてプログラムの性能を分析できる.
|
5週 |
プロファイリング:演習(1) |
同上
|
6週 |
プロファイリング:演習(2) |
同上
|
7週 |
プロファイリング:演習(3) |
同上
|
8週 |
小テスト(III) |
小テストを通して,分割コンパイルやプロファイリング等の知識の確認を行い,理解を深める.
|
4thQ |
9週 |
総合演習(1) |
これまでの学習内容を基盤として,提示されたテーマに沿ったプログラムを作成できる.また,作成したプログラムの処理の流れや性能を評価して説明できる.
|
10週 |
総合演習(2) |
同上
|
11週 |
総合演習(3) |
同上
|
12週 |
総合演習(4) |
同上
|
13週 |
総合演習(5) |
同上
|
14週 |
総合演習(6) |
同上
|
15週 |
総合演習(7) |
同上
|
16週 |
小テスト(IV) |
小テストを通して,これまで学習した知識の確認を行い,理解を深める.
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 変数とデータ型の概念を説明できる。 | 3 | |
代入や演算子の概念を理解し、式を記述できる。 | 3 | |
制御構造の概念を理解し、条件分岐や反復処理を記述できる。 | 3 | |
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 3 | |
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 3 | |
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。 | 3 | |
主要な言語処理プロセッサの種類と特徴を説明できる。 | 3 | |
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。 | 3 | |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。 | 3 | |
ソフトウェア | アルゴリズムの概念を説明できる。 | 3 | |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 3 | |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。 | 3 | |
時間計算量や領域計算量などによってアルゴリズムを比較・評価できることを理解している。 | 3 | |
整列、探索など、基本的なアルゴリズムについて説明できる。 | 3 | |
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。 | 2 | |
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。 | 2 | |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。 | 2 | |
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。 | 2 | |
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。 | 2 | |